Skip to content

bac-ptit/pentest-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pentest Backend Project

This is a high-performance asynchronous web backend built with C++26, Drogon Framework, and PostgreSQL.

🚀 Installation Options

You can run this project using either Docker (recommended) or Native installation.


1. Docker Installation (Quick Start)

Docker ensures all dependencies (Clang 20+, GCC 14+, Drogon, vcpkg) are correctly configured.

Prerequisites

  • Docker and Docker Compose installed.

Running the Project

docker compose up --build

The backend will wait for the PostgreSQL database and the main.sql schema to be initialized before starting.


2. Native Installation (Arch, Debian/Ubuntu, Fedora)

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.

Minimum Requirements

  • OS: Arch Linux, Debian/Ubuntu (24.04+), or Fedora (41+).

One-Command Installation

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.sh

Post-Installation

After the script finishes successfully, you can find the binary in the build/ directory:

./build/backend

Note: Ensure your PostgreSQL database is running as configured in config.yaml.


📖 API Documentation (Swagger)

We use Swagger UI to provide interactive API documentation.

🛠 Project Structure

  • 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.

🧪 Database Health Check

The backend service will only start when:

  1. The Postgres server is ready.
  2. The tbl_users table exists (schema is fully initialized).

Created with Gemini CLI

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors