I❤️Fiction is an ambitious open-source project to build a modern, feature-rich platform for both original and fan fiction. Built on a .NET and ASP.NET Core backend with a Blazor frontend, it aims to be a viable competitor to established platforms by focusing on a clean user experience, powerful authoring tools, and a strong community.
To get the project running locally, you'll need the following installed:
- .NET 10 SDK
- Docker Desktop
- (Optional) Aspire CLI
Once the prerequisites are installed, you can run the project using the .NET CLI:
dotnet run --project src/aspire/IHFiction.AppHostOR (If the AppHost is set up as the default startup project)
dotnet runAlternatively, you can run the project using the Aspire CLI (if you have it installed).
aspire runThe Keycloak realm fiction is pre-configured by the realm import file. However the client secrets are not.
- Explore the Keycloak resource properties in the Aspire Dashboard. You should find the admin user and password for the Keycloak server.
- Once the Keycloak service status shows healthy in the Aspire Dashboard, click the link to the Keycloak server. Once in, access the fiction realm and its clients.
- Regenerate and copy the credential (secret) for
fiction-admin-client. - The first time the Aspire Dashboard launches for you, you should be prompted to provide missing secrets. You can click this message to provide the secret you just generated.
- (Alternatively) Use the dotnet cli to update the secret
dotnet user-secrets --project ./src/aspire/IHFiction.AppHost/ set Parameters:KeycloakAdminClientSecret <YOUR_SECRET_HERE> - Repeat the last two steps for
fiction-frontendclient to set theParameters:KeycloakAdminClientSecretvalue.
The project is built on the .NET platform, embracing a modern, cloud-native architecture.
- Backend: ASP.NET Core
- Framework: ASP.NET Core using Minimal APIs for a lightweight and high-performance service layer.
- Frontend: Blazor Web App for a rich, interactive user experience.
- Orchestration: .NET Aspire to manage and compose the various services that make up the application.
- Database: PostgreSQL for robust and scalable data storage.
- Data Access: Entity Framework Core (EFCore) for object-relational mapping.
- Authentication: Keycloak for secure and flexible identity and access management.
- Containerization: Docker and Docker Compose for consistent development and deployment environments.
For a detailed explanation of the project's architecture, design philosophy, and technical decisions, please see ARCHITECTURE.md.
I❤️Fiction is a community-driven project. If you'd like to support our work, please consider sponsoring us.