![]() |
Mantis App v0.2.7
|
A lightweight, pluggable Backend-as-a-Service (BaaS) library built in C++
Portable. Embeddable. Syncable. Built for speed and extensibility.
Mantis is a modular, lightweight C++ library designed to power modern backend systems in embedded devices, desktop tools, or standalone server deployments. Inspired by systems like PocketBase and Supabase, Mantis focuses on:
Note: On Windows, use
mingw
(notMSVC
) due to feature incompatibility. Formingw
, version 13+ is required forstd::format
support.
There are several ways to get started with Mantis:
Download pre-built binaries from the release page. Unzip the package and start the server:
To use the admin dashboard, you must first create an admin user account. This can be done via the CLI:
You will be prompted to enter and confirm the password. The account can then be used to log in to the admin dashboard.
Clone the repository and build the project:
By default, the server runs on port 7070
.
You can embed Mantis as a library in your own C++ project:
mantis
library target.Check mantis/examples for a sample.
Note:
MantisApp
has a blocking event loop when listening for HTTP events. To avoid blocking your main thread, run it in a separate thread if needed.
You can also run mantisapp
in a Docker container. See doc/docker.md for more information.
Mantis ships with a lightweight admin dashboard available at <host>:<port>/admin
(admin login required). The dashboard allows for easy management of:
By default, admin auth tokens expire after an hour (configurable in the dashboard settings).
Admin dashboard snapshot
Mantis provides a healthcheck endpoint for monitoring and orchestration tools:
Returns:
Use this endpoint to verify server availability and uptime.
Mantis supports file uploads and management via the API:
/api/files/<table name>/<filename>
POST
request to the table route using multipart/form-data
(FormData)PATCH
request to the table record with new files as you would update other fieldsSee files.md for more details.
Contributions are welcome! Please see CONTRIBUTING.md and open an issue or PR.