You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: self-hosted/docker-compose.mdx
+72-31Lines changed: 72 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,10 +18,10 @@ For **production deployments with multiple teams** or external users, see [Produ
18
18
19
19
## Overview
20
20
21
-
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.
21
+
This guide provides step-by-step instructions to install and configure DeployStack using Docker Compose. The setup includes frontendand backend with persistent data storage and proper networking.
22
22
23
23
<Warning>
24
-
**Satellites are required**: DeployStack cannot manage MCP servers without at least one satellite. This guide includes satellite deployment as a mandatory step.
24
+
**Satellites are required**: DeployStack cannot manage MCP servers without at least one satellite. After completing the Docker Compose setup, you must deploy a satellite separately (instructions included below).
25
25
</Warning>
26
26
27
27
**Important:** Only modify settings explicitly mentioned in this guide. Altering other configurations may lead to issues.
Replace `your-generated-secret-here` with the secret you generated in Step 2.
97
93
98
-
<Warning>
99
-
**Important**: Leave `DEPLOYSTACK_REGISTRATION_TOKEN` empty for now. You'll add it after completing the admin setup in Step 6.
100
-
</Warning>
101
-
102
94
### Step 4: Launch DeployStack
103
95
104
96
Start the Docker containers:
@@ -108,11 +100,15 @@ docker-compose up -d
108
100
```
109
101
110
102
This command will:
111
-
- Pull the latest DeployStack images
103
+
- Pull the latest DeployStack images (frontend and backend)
112
104
- Create necessary volumes for persistent data
113
-
- Start both frontend and backend services
105
+
- Start frontend and backend services
114
106
- Set up networking between services
115
107
108
+
<Info>
109
+
**Note**: This deploys the backend and frontend only. The satellite service must be deployed separately after completing the setup wizard (see Step 7 below).
110
+
</Info>
111
+
116
112
### Step 5: Verify Installation
117
113
118
114
Check that all services are running:
@@ -135,32 +131,65 @@ Open your browser and navigate to:
135
131
**Satellites are required** - Without at least one satellite, DeployStack cannot manage MCP servers. Complete this step to make your deployment functional.
136
132
</Warning>
137
133
138
-
The satellite service is **already included** in the docker-compose.yml file. You just need to configure the registration token:
134
+
The satellite must be deployed separately after completing the setup wizard:
135
+
136
+
1.**Complete Setup Wizard First**:
137
+
- Access http://localhost:8080/setup
138
+
- Create your admin account
139
+
- Complete basic platform configuration
139
140
140
-
1.**Generate Registration Token** (via admin interface after backend setup):
141
-
- Log in to DeployStack as admin (complete Step 6 first)
- Required when MCP clients (Claude Code, VS Code, etc.) connect via a domain or IP address
179
+
- Not needed for local development on localhost
180
+
- Use base URL only (e.g., `https://satellite.example.com`) - no `/mcp` or `/sse` paths
181
+
- Required for OAuth authentication to work with remote MCP clients
182
+
</Info>
183
+
184
+
4.**Verify Satellite Registration**:
158
185
```bash
159
186
docker logs deploystack-satellite
160
187
# Should show: ✅ Satellite registered successfully: docker-satellite-001
161
188
```
162
189
163
-
**Note**: After initial registration, the satellite saves its API key to persistent storage and doesn't need the registration token for subsequent starts.
190
+
<Info>
191
+
**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.
192
+
</Info>
164
193
165
194
## Configuration
166
195
@@ -234,6 +263,7 @@ server {
234
263
DeployStack uses Docker volumes to persist data:
235
264
236
265
-**deploystack_backend_persistent**: Application database, configuration, and user uploads
266
+
-**deploystack_satellite_persistent**: Satellite credentials and process data (created when satellite is deployed separately)
237
267
238
268
#### Backup Your Data
239
269
@@ -243,8 +273,11 @@ Regularly backup your persistent data:
243
273
# Create backup directory
244
274
mkdir -p backups/$(date +%Y%m%d)
245
275
246
-
# Backup volume
276
+
# Backup backend volume
247
277
docker run --rm -v deploystack_backend_persistent:/data -v $(pwd)/backups/$(date +%Y%m%d):/backup alpine tar czf /backup/backend_persistent.tar.gz -C /data .
278
+
279
+
# Backup satellite volume (if satellite is deployed)
280
+
docker run --rm -v deploystack_satellite_persistent:/data -v $(pwd)/backups/$(date +%Y%m%d):/backup alpine tar czf /backup/satellite_persistent.tar.gz -C /data .
|`FRONTEND_PORT`| Frontend port mapping |`8080`|`80`|
266
299
|`BACKEND_PORT`| Backend port mapping |`3000`|`3001`|
267
300
268
-
### Satellite Variables (Required)
301
+
### Satellite Variables
302
+
303
+
Satellite services are deployed separately using `docker run` commands (not via docker-compose). See [Step 7: Deploy Satellite Service](#step-7-deploy-satellite-service-required) for deployment instructions.
304
+
305
+
**Required Satellite Environment Variables:**
269
306
270
307
| Variable | Description | Example |
271
308
|----------|-------------|----------|
272
-
|`DEPLOYSTACK_REGISTRATION_TOKEN`| JWT registration token from admin (required for initial satellite pairing) |`deploystack_satellite_global_eyJhbGc...`|
309
+
|`DEPLOYSTACK_BACKEND_URL`| Backend URL for satellite to connect to |`http://deploystack-backend:3000`|
310
+
|`DEPLOYSTACK_SATELLITE_NAME`| Unique satellite name (10-32 chars, lowercase only) |`docker-satellite-001`|
311
+
|`DEPLOYSTACK_REGISTRATION_TOKEN`| JWT registration token from admin (required for initial pairing) |`deploystack_satellite_global_eyJhbGc...`|
273
312
274
-
<Info>
275
-
**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.
276
-
</Info>
313
+
**Optional (Required for Remote Access):**
314
+
315
+
| Variable | Description | Default | Example |
316
+
|----------|-------------|---------|----------|
317
+
|`DEPLOYSTACK_SATELLITE_URL`| Public URL of satellite for OAuth metadata (required when MCP clients connect remotely) |`http://localhost:PORT`|`https://satellite.example.com`|
Copy file name to clipboardExpand all lines: self-hosted/quick-start.mdx
+46-9Lines changed: 46 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ description: Get DeployStack running in minutes with Docker Compose or individua
4
4
---
5
5
6
6
7
-
Get DeployStack up and running in minutes. This guide covers deploying the core platform (frontend + backend) and the required satellite service for MCP server management.
7
+
Get DeployStack up and running in minutes. This guide covers deploying the core platform (frontend + backend). After completing the initial setup, you'll deploy a satellite service for MCP server management.
8
8
9
9
<Warning>
10
10
**Important**: Satellites are required for DeployStack to function. The platform alone cannot manage MCP servers - you must deploy at least one satellite.
@@ -24,29 +24,36 @@ For **production deployments with multiple teams** or external users, see [Produ
24
24
25
25
## Method 1: Docker Compose (Recommended)
26
26
27
-
The fastest way to get DeployStack running with proper networking and persistence.
27
+
The fastest way to get DeployStack backend and frontend running with proper networking and persistence.
28
28
29
29
<Steps>
30
30
<Steptitle="Download and Start">
31
-
Run these two commands to get DeployStack running:
32
-
31
+
Run these two commands to get DeployStack backend and frontend running:
DEPLOYSTACK_ENCRYPTION_SECRET=$(openssl rand -hex 16) docker-compose up -d
36
36
```
37
+
38
+
<Info>
39
+
**Note**: This deploys the backend and frontend only. The satellite service must be deployed separately after completing the setup wizard (see [Satellite Service](#satellite-service) section below).
After completing the setup wizard, proceed to the [Satellite Service](#satellite-service) section below to deploy your first satellite and start managing MCP servers.
50
57
</Step>
51
58
</Steps>
52
59
@@ -203,6 +210,7 @@ After completing the basic backend and frontend setup, deploy at least one satel
203
210
</Step>
204
211
205
212
<Steptitle="Start Satellite Service">
213
+
**For local development (connecting from same machine):**
206
214
```bash
207
215
docker run -d \
208
216
--name deploystack-satellite \
@@ -213,6 +221,27 @@ After completing the basic backend and frontend setup, deploy at least one satel
- Required when MCP clients (Claude Code, VS Code, etc.) connect via a domain or IP address
241
+
- Not needed for local development on localhost
242
+
- Use base URL only (e.g., `https://satellite.example.com`) - no `/mcp` or `/sse` paths
243
+
- Required for OAuth authentication to work with remote MCP clients
244
+
</Info>
216
245
217
246
<Warning>
218
247
**Satellite Name Requirements:**
@@ -263,14 +292,22 @@ The registration token is only required once during initial pairing.
263
292
|`VITE_DEPLOYSTACK_BACKEND_URL`| Backend API URL for frontend |`http://localhost:3000`|`https://api.deploystack.company.com`|
264
293
|`VITE_APP_TITLE`| Custom application title |`DeployStack`|`Company DeployStack`|
265
294
266
-
### Satellite Variables (Required)
295
+
### Satellite Variables
296
+
297
+
**Required:**
267
298
268
299
| Variable | Description | Example |
269
300
|----------|-------------|----------|
270
301
|`DEPLOYSTACK_BACKEND_URL`| Backend URL for satellite to connect to |`http://localhost:3000`|
271
302
|`DEPLOYSTACK_SATELLITE_NAME`| Unique satellite name (10-32 chars, lowercase only) |`my-satellite-001`|
272
303
|`DEPLOYSTACK_REGISTRATION_TOKEN`| JWT registration token from admin (required for initial pairing) |`deploystack_satellite_global_eyJhbGc...`|
273
304
305
+
**Optional (Required for Remote Access):**
306
+
307
+
| Variable | Description | Default | Example |
308
+
|----------|-------------|---------|----------|
309
+
|`DEPLOYSTACK_SATELLITE_URL`| Public URL of satellite for OAuth metadata (required when MCP clients connect remotely) |`http://localhost:PORT`|`https://satellite.example.com`|
310
+
274
311
## Next Steps
275
312
276
313
Once DeployStack is running with at least one satellite:
0 commit comments