A minimalist, non-layered startup solution with the ABP Framework. This template provides a single-layer architecture (no separate Domain/Application/Infrastructure layers) for rapid development and simplicity, with practical customizations already applied.
- Backend API: https://abp.antosubash.com
- React App: https://abpreact.antosubash.com
- Tanstack React App: https://abp-tanstack.antosubash.com
This template includes several enhancements over the standard ABP no-layer template:
- ✅ Improved Swagger: Fixed class names for better readability
- ✅ HTTPS Redirect: Automatic HTTP to HTTPS redirection
- ✅ Docker Support: Production-ready Dockerfile included
- ✅ Auto Migrations: Database migrations run automatically on startup
- ✅ SameSite Cookies: Configured for better security
- ✅ Database Data Protection: Keys stored in the database
- ✅ Seq Logging: Integrated Serilog with Seq support
- ✅ CI/CD Pipeline: GitHub Actions workflow included
- ✅ Versioning: Project versioning configured
- Framework: .NET 10.0
- ABP Framework: 10.0.1
- Database: PostgreSQL
- ORM: Entity Framework Core
- Authentication: OpenIddict
- Logging: Serilog (with Seq integration)
- UI Theme: LeptonXLite
- Container: Docker (Linux)
- .NET 10.0 SDK
- PostgreSQL (running locally or remotely)
- Docker (optional, for containerization)
git clone https://github.com/antosubash/abp-single-layer-template.git
cd abp-single-layer-templateEnsure PostgreSQL is running. The application expects:
- Database:
AbpTemplate(or configure inappsettings.json) - User:
postgres(or your configured user) - Password:
postgres(or your configured password) - Port:
5432
Note: PostgreSQL should be running on your system (not via Docker for development).
- Update
appsettings.jsonwith your database connection string - Optionally configure
appsettings.secrets.jsonfor sensitive settings
Search and replace AbpTemplate with your project name throughout the solution.
cd abp/AbpTemplate
dotnet run --migrate-databaseThe application will:
- Automatically create and run migrations
- Seed initial data
- Start on
https://localhost:44300(or configured port)
- Swagger UI:
https://localhost:44300/swagger - Web UI:
https://localhost:44300
Default credentials:
- Username:
admin - Password:
1q2w3E*
abp/AbpTemplate/
├── Controllers/ # API Controllers
├── Data/ # DbContext and migration services
├── Entities/ # Domain entities
├── Extensions/ # Extension methods and configurations
├── Localization/ # Localization resources
├── Migrations/ # EF Core migrations
├── ObjectMapping/ # AutoMapper profiles
├── Permission/ # Permission definitions
├── Repository/ # Custom repositories
├── Services/ # Application services and DTOs
└── Utils/ # Utility classes and constants
Migrations run automatically on startup. To create a new migration:
cd abp/AbpTemplate
dotnet ef migrations add MigrationNamecd abp/AbpTemplate
dotnet csharpier .cd abp/AbpTemplate
dotnet add package PackageName- For AI Agents: See AGENTS.md for detailed guidelines, project structure, and coding conventions
- ABP Framework: https://docs.abp.io
This template is ideal for:
- Rapid prototyping
- Small to medium-sized applications
- Projects that don't require strict layer separation
- React + ABP backend projects
- Learning ABP Framework
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Use conventional commits:
fix:for bug fixesdocs:for documentation changesrefactor:for code refactoringchore:for maintenance tasks
This project is licensed under the MIT License.
- ABP Framework - The underlying framework
- Volo ABP - The open-source community
For issues, questions, or suggestions:
- Open an issue on GitHub
- Check the ABP Framework documentation