One command. Complete deployments. Generate production-ready Docker stacks for Pangolin, Coolify, and more with automatic security, monitoring, and backup features.
Manidae is a smart deployment generator that creates complete Docker Compose stacks with just a few environment variables. No complex configuration files, no manual setup - just specify what you want and get a production-ready deployment.
- DevOps Engineers setting up new environments quickly
- Self-hosters wanting secure, monitored applications
- Teams needing consistent, reproducible deployments
- Anyone who wants Docker deployments without the complexity
| Platform | Description | Best For |
|---|---|---|
| π¦ Pangolin | Application platform + WireGuard VPN | Secure app hosting with VPN access |
| π¦+ Pangolin+ | Pangolin + CrowdSec security | Production apps needing threat protection |
| π³ Coolify | Self-hosted deployment platform | Teams managing multiple applications |
- π‘οΈ CrowdSec - Collaborative security engine
- π Log Dashboard - Real-time analytics with GeoIP
- π OAuth - Google authentication integration
- π€ AI Interface - Natural language management
- π Landing Pages - Custom static pages
- πΎ Automated Backups - Git-based configuration backups
# Minimal setup - just domain and email
DOMAIN=yourdomain.com \
EMAIL=admin@yourdomain.com \
docker compose -f docker-compose-setup.yml up
# Start your stack
docker compose up -dAccess: https://pangolin.yourdomain.com
# Enhanced security with CrowdSec protection
DOMAIN=yourdomain.com \
EMAIL=admin@yourdomain.com \
ADMIN_USERNAME=admin@yourdomain.com \
ADMIN_PASSWORD=YourSecurePassword123! \
CROWDSEC_ENROLLMENT_KEY=your-crowdsec-key \
docker compose -f docker-compose-setup.yml up
# Start your stack
docker compose up -dFeatures: Automatic threat detection, IP blocking, CAPTCHA challenges
# Self-hosted app deployment platform
DB_PASSWORD=$(openssl rand -hex 32) \
REDIS_PASSWORD=$(openssl rand -hex 32) \
PUSHER_APP_KEY=$(openssl rand -hex 16) \
docker compose -f docker-compose-setup.yml up
# Start your stack
docker compose up -dAccess: http://your-server-ip:8000
No need to specify components! Manidae automatically detects what you want based on your environment variables:
# This automatically includes CrowdSec because you provided the enrollment key
DOMAIN=example.com \
EMAIL=admin@example.com \
CROWDSEC_ENROLLMENT_KEY=your-key \
docker compose -f docker-compose-setup.yml upAuto-detected components:
- π‘οΈ CrowdSec (when
CROWDSEC_ENROLLMENT_KEYis set) - π Log Dashboard (when
MAXMIND_LICENSE_KEYis set) - π OAuth (when
CLIENT_ID+CLIENT_SECRETare set) - π€ AI Interface (when
OPENAI_API_KEYis set) - πΎ Backups (when
MAX_BACKUPS > 0)
Enable automatic Git-based configuration backups:
# Backup your config to Git every 24 hours, keep 7 days
MAX_BACKUPS=7 \
DOMAIN=yourdomain.com \
EMAIL=admin@yourdomain.com \
docker compose -f docker-compose-setup.yml upWhat gets backed up:
- All configuration files
- Database schemas and data
- SSL certificates
- Custom settings
Repository: git@github.com:ManidaeCloud/{deployment-name}_syncresources.git
- Real-time threat detection with CrowdSec
- Automatic IP blocking for malicious actors
- CAPTCHA challenges for suspicious traffic
- Collaborative intelligence from global threat feeds
- SSL/TLS encryption with automatic certificate management
- Traefik reverse proxy with security headers
- Let's Encrypt SSL certificates
- Network isolation between services
- Secure defaults for all components
After running the setup, you'll have:
π Your Deployment
βββ π³ compose.yaml # Complete Docker Compose stack
βββ βοΈ config/ # All configuration files
β βββ π¦ pangolin/ # App configuration
β βββ π traefik/ # Reverse proxy rules
β βββ π‘οΈ crowdsec/ # Security configuration
β βββ π letsencrypt/ # SSL certificates
βββ π DEPLOYMENT_INFO.txt # Access URLs and credentials
βββ π§ container-setup.sh # Post-deployment scripts
# Secure business app with monitoring
COMPONENTS="pangolin+" \
DOMAIN=company.com \
MAXMIND_LICENSE_KEY=your-key \
CROWDSEC_ENROLLMENT_KEY=your-key \
docker compose -f docker-compose-setup.yml up# Simple home server setup
DOMAIN=homelab.local \
EMAIL=admin@homelab.local \
docker compose -f docker-compose-setup.yml up# Coolify for team app deployments
DB_PASSWORD=secure123 \
REDIS_PASSWORD=redis123 \
docker compose -f docker-compose-setup.yml upCOMPONENTS=openai-chatkit DOMAIN=yourdomain.com EMAIL=admin@yourdomain.com OPENAI_API_KEY=sk-proj-your-key WORKFLOW_ID=wf_your-workflow docker compose -f docker-compose-setup.yml upCOMPONENTS=agentgateway \
DOMAIN=yourdomain.com \
EMAIL=admin@yourdomain.com \
ADMIN_USERNAME=admin@yourdomain.com \
ADMIN_PASSWORD=your-secure-password \
OPENAI_API_KEY=sk-proj-your-key \
WORKFLOW_ID=wf_your-workflow \
docker compose -f docker-compose-setup.yml upIf you want Pangolin to be prepopulated with the resources/targets for your deployment, you use the contents of the postgres_export directory. You can run this automatically but first you will need an initial admin user.
docker exec PANGOLIN_CONTAINER_NAME pangctl set-admin-credentials --email "admin@yourdomain.com" --password "YourPassword"
chmod +x ./components/pangolin/initialize_sqlite.sh
./components/pangolin/initialize_sqlite.sh
chmod +x ./components/crowdsec/update-bouncer-post-install.sh
./components/crowdsec/update-bouncer-post-install.sh CROWDSEC_CONTAINER_NAME- π Complete Configuration Guide - All options and advanced features
- π Backup Service Guide - Automated backup configuration
- π οΈ Component Documentation - Individual component guides
- Docker and Docker Compose installed
- Domain name pointing to your server (for Pangolin)
- Ports 80, 443, 51820 open on your firewall
- Basic knowledge of Docker and domain management
β Simple - One command deployments β Secure - Built-in security best practices β Smart - Automatic component detection β Complete - Everything you need included β Flexible - Easy to customize and extend β Reliable - Production-tested configurations
Get started in minutes, not hours. π