Docker containers are for production hosting or self-hosting. For development contributions, check the Local Setup guide.
Deployment Type: This guide covers development and single-team deployments. The satellite runs without process isolation, suitable for local development or when serving only your own team.For production deployments with multiple teams or external users, see Production Satellite Setup which includes nsjail process isolation for security and team separation.
Overview
This guide provides step-by-step instructions to install and configure DeployStack using Docker Compose. The setup includes frontend and backend with persistent data storage and proper networking. Important: Only modify settings explicitly mentioned in this guide. Altering other configurations may lead to issues.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.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.
Step 4: Launch DeployStack
Start the Docker containers:- Pull the latest DeployStack images (frontend and backend)
- Create necessary volumes for persistent data
- Start frontend and backend services
- Set up networking between services
Note: This deploys the backend and frontend only. The satellite service must be deployed separately after completing the setup wizard (see Step 7 below).
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)
The satellite must be deployed separately after completing the setup wizard:-
Complete Setup Wizard First:
- Access http://localhost:8080/setup
- Create your admin account
- Complete basic platform configuration
-
Generate Registration Token:
- Log in to DeployStack as admin
- Navigate to Admin → Satellites → Pairing
- Click “Generate Token” and copy the full token
- Token format:
deploystack_satellite_global_eyJhbGc...
-
Deploy Satellite with Docker:
For local development (connecting from same machine):
For remote access (connecting from MCP clients via domain/IP):When to set
DEPLOYSTACK_SATELLITE_URL:- Required when MCP clients (Claude Code, VS Code, etc.) connect via a domain or IP address
- Not needed for local development on localhost
- Use base URL only (e.g.,
https://satellite.example.com) - no/mcpor/ssepaths - Required for OAuth authentication to work with remote MCP clients
-
Verify Satellite Registration:
Note: After initial registration, the satellite saves its API key to persistent storage. The registration token is only needed for the first startup. Container restarts will use the saved API key automatically.
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
httporhttpsdepending 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
.envfile:
- 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
- deploystack_satellite_persistent: Satellite credentials and process data (created when satellite is deployed separately)
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
Satellite services are deployed separately usingdocker run commands (not via docker-compose). See Step 7: Deploy Satellite Service for deployment instructions.
Required Satellite Environment Variables:
| Variable | Description | Example |
|---|---|---|
DEPLOYSTACK_BACKEND_URL | Backend URL for satellite to connect to | http://deploystack-backend:3000 |
DEPLOYSTACK_SATELLITE_NAME | Unique satellite name (10-32 chars, lowercase only) | docker-satellite-001 |
DEPLOYSTACK_REGISTRATION_TOKEN | JWT registration token from admin (required for initial pairing) | deploystack_satellite_global_eyJhbGc... |
| Variable | Description | Default | Example |
|---|---|---|---|
DEPLOYSTACK_SATELLITE_URL | Public URL of satellite for OAuth metadata (required when MCP clients connect remotely) | http://localhost:PORT | https://satellite.example.com |
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.

