This is a high-performance asynchronous web backend built with C++26, Drogon Framework, and PostgreSQL.
You can run this project using either Docker (recommended) or Native installation.
Docker ensures all dependencies (Clang 20+, GCC 14+, Drogon, vcpkg) are correctly configured.
- Docker and Docker Compose installed.
docker compose up --buildThe backend will wait for the PostgreSQL database and the main.sql schema to be initialized before starting.
For developers who want to run the project directly on their host machine. This method will install the latest compilers and build the project natively.
- OS: Arch Linux, Debian/Ubuntu (24.04+), or Fedora (41+).
We provide a unified script to install everything (Compilers, Drogon, dependencies) and build the project in one go.
chmod +x scripts/install.sh
./scripts/install.shAfter the script finishes successfully, you can find the binary in the build/ directory:
./build/backendNote: Ensure your PostgreSQL database is running as configured in config.yaml.
We use Swagger UI to provide interactive API documentation.
- URL: http://localhost:5555/swagger/ui/
- Configuration: Static files are served from
./dist/swagger/ui.
controllers/: Request handlers (Drogon Controllers).service/: Business logic layer (Functional approach).repository/: Database access layer (PostgreSQL).domain/: Core models using C++ Modules.dto/: Data Transfer Objects (Glaze).dist/: Static assets (Swagger, Frontend).main.sql: Database schema initialization.
The backend service will only start when:
- The Postgres server is ready.
- The
tbl_userstable exists (schema is fully initialized).
Created with Gemini CLI