Docker Compose Setup
Deploy DeployStack using Docker Compose for a production-ready, self-hosted installation. This method is recommended for most users as it provides a reliable, scalable setup with minimal configuration.Docker containers are for production hosting or self-hosting. For development contributions, check the Local Setup guide.
Overview
This guide provides step-by-step instructions to install and configure DeployStack using Docker Compose. The setup includes frontend, backend, and required satellite service with persistent data storage and proper networking.Satellites are required: DeployStack cannot manage MCP servers without at least one satellite. This guide includes satellite deployment as a mandatory step.
System Requirements
- RAM: Ensure your environment has at least 4GB of RAM. Insufficient memory can cause processes to crash.
- Docker & Docker Compose: Make sure both are installed and up-to-date.
- Storage: At least 2GB of available disk space for images and persistent data.
Beggining the setup for Docker Compose
Follow these steps for a setup with docker compsoeStep 1: Download Docker Compose File
Download thedocker-compose.yml
file to your working directory:
Step 2: Generate Encryption Secret
DeployStack requires a secure encryption secret for protecting sensitive data like API keys and credentials.Important: Keep this secret secure and do not share it. Store it safely as you’ll need it for upgrades.
Step 3: Set Environment Variables
Create a.env
file in the same directory as your docker-compose.yml
:
your-generated-secret-here
with the secret you generated in Step 2.
Important: Leave
DEPLOYSTACK_REGISTRATION_TOKEN
empty for now. You’ll add it after completing the admin setup in Step 6.Step 4: Launch DeployStack
Start the Docker containers:- Pull the latest DeployStack images
- Create necessary volumes for persistent data
- Start both frontend and backend services
- Set up networking between services
Step 5: Verify Installation
Check that all services are running:deploystack-frontend
and deploystack-backend
containers in “Up” status.
Step 6: Access DeployStack
Open your browser and navigate to:- Frontend: http://localhost:8080
- Backend API: http://localhost:3000
Step 7: Deploy Satellite Service (Required)
Satellites are required - Without at least one satellite, DeployStack cannot manage MCP servers. Complete this step to make your deployment functional.
-
Generate Registration Token (via admin interface after backend setup):
- Log in to DeployStack as admin (complete Step 6 first)
- Navigate to Admin → Satellites → Pairing
- Click “Generate Token” and copy it
-
Add token to your
.env
file: -
Restart services to apply token:
-
Verify satellite registration:
Configuration
External Access
By default, DeployStack runs onlocalhost
. To access it via an external domain or IP address, you need to configure the environment variables.
Understanding URLs
- Protocol: Use
http
orhttps
depending on your setup - Domain/IP: The domain name or IP address where your application is accessible
- Port: Include the port number if not using standard ports (80 for http, 443 for https)
Configuring for External Access
- Update your
.env
file:
- Restart the services:
SSL/HTTPS Setup
HTTPS is recommended for production deployments to ensure secure communication and enable all browser features.
Data Persistence
DeployStack uses Docker volumes to persist data:- deploystack_backend_persistent: Application database, configuration, and user uploads
Backup Your Data
Regularly backup your persistent data:Environment Variables Reference
Required Variables
Variable | Description | Example |
---|---|---|
DEPLOYSTACK_ENCRYPTION_SECRET | 32-character secret for encrypting sensitive data | a1b2c3d4e5f6... |
Optional Variables
Variable | Description | Default | Example |
---|---|---|---|
DEPLOYSTACK_FRONTEND_URL | URL where frontend is accessible | http://localhost:8080 | https://deploystack.company.com |
VITE_DEPLOYSTACK_BACKEND_URL | Backend API URL for frontend | http://localhost:3000 | https://api.deploystack.company.com |
VITE_APP_TITLE | Custom application title | DeployStack | Company DeployStack |
FRONTEND_PORT | Frontend port mapping | 8080 | 80 |
BACKEND_PORT | Backend port mapping | 3000 | 3001 |
Satellite Variables (Required)
Variable | Description | Example |
---|---|---|
DEPLOYSTACK_REGISTRATION_TOKEN | JWT registration token from admin (required for initial satellite pairing) | deploystack_satellite_global_eyJhbGc... |
Note: The satellite name
docker-satellite-001
is pre-configured in docker-compose.yml. You only need to provide the registration token in your .env
file.Troubleshooting
Common Issues
Services Won’t Start
Getting Help
If you encounter issues not covered here:- Search existing GitHub Issues
- Join our Discord community
- Create a new issue with detailed logs and system information
Need to upgrade? Check our Upgrade Guide for step-by-step instructions.