The Capinetta RP Bot System can be deployed to production across three supported platforms. Regardless of which you choose, PM2 is the recommended process manager for running both bots (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Capinetta-RP/capinetta-discord-bot/llms.txt
Use this file to discover all available pages before exploring further.
capinetta-general and capinetta-whitelist) as persistent, auto-restarting background services. Each platform guide walks you through Node.js setup, MariaDB configuration, slash command deployment, and optional Nginx + SSL hardening.
Oracle Cloud
Always Free Tier — 2–4 vCPU, 12–24 GB RAM, 200 GB storage. The recommended platform for production deployments with zero ongoing cost.
VPS
Generic Linux VPS — DigitalOcean, Linode, Hetzner, or any Ubuntu 22.04 provider. ~$5–10/mo for a small-to-medium community server.
Docker
Docker Compose — Bundles the bots, MariaDB, and Redis in isolated containers. Ideal for local development, testing, and reproducible environments.
Platform Comparison
| Platform | Cost | Resources | Recommended For |
|---|---|---|---|
| Oracle Cloud Free Tier | Free | 2 vCPU, 12 GB RAM, 200 GB | Production (small–medium communities) |
| VPS (DigitalOcean/Linode) | ~$5–10/mo | 1–2 vCPU, 2–4 GB RAM | Production |
| Docker Local | Free | Host-dependent | Development / Testing |
Prerequisites for All Platforms
Before following any platform-specific guide, ensure your server or local machine meets these baseline requirements:- Node.js v18+ — v20 LTS is recommended (
node --versionto verify) - MariaDB / MySQL 8.0+ — used by Prisma ORM for all persistent data
- PM2 globally installed:
- Git — for cloning the repository:
Common Post-Deploy Steps
After completing the platform-specific setup, these steps apply universally:-
Nginx reverse proxy — expose the dashboard (port 3000) on port 80/443:
-
SSL/TLS with Let’s Encrypt — secure your dashboard with a free certificate:
After adding HTTPS, update
DASHBOARD_CALLBACK_URLin.envto usehttps://. -
Self-signed SSL for development — the project ships a
generate-ssl-certs.jsscript that createscerts/key.pemandcerts/cert.pemvia OpenSSL. Run it with:Then setHTTPS_ENABLED=truein.envand restart. Use this for local testing only — use Let’s Encrypt for production. -
Enable PM2 startup on boot — so both bots restart automatically after a server reboot:
