This is a template for a Drogon C++ web application. It includes a basic structure for building a RESTful API with database integration, JWT authentication, and more.
Before you begin, ensure you have the following installed:
- C++ Compiler: A C++23 compatible compiler.
- CMake: Version 3.10 or higher.
- PostgreSQL: A running PostgreSQL server.
- Drogon: The Drogon C++ web framework. Shipped as a submodule.
- jwt-cpp: The JWT (JSON Web Tokens) library for C++. Shipped as a submodule.
- libpq-dev: The PostgreSQL client library development headers.
- uuid-dev: The UUID library development headers.
-
Open your terminal and navigate to the directory where you want to clone the project.
-
Run the following command:
git clone --recursive --depth=1 --shallow-submodules https://github.com/1Kuso4ek1/drogon-template.git cd drogon-templateNote: The
--depth=1 --shallow-submodulesflags are used for faster cloning. If you need to work with the Drogon submodule directly (e.g., switch branches), you might need to clone without these flags.
-
Create a build directory:
mkdir build cd build -
Configure the project using CMake:
cmake .. -DCMAKE_BUILD_TYPE=Release
-
Build the project:
make -j$(nproc)
There's a config/config-template.json file, which you should use as a template for your configuration. You can either make changes to this file directly, or copy/rename/move it. Either way, you need to fill in your database credentials, server port, and other settings.
-
Navigate to the
builddirectory:cd build -
Run the executable:
./backend
This will start the Drogon web server.
-
If you moved the default
config/config-template.jsonfile, you can provide a path to your config file as an argument:./backend /path/to/your/config.json