-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathdocker-compose.staging.yml
More file actions
75 lines (72 loc) · 2.89 KB
/
Copy pathdocker-compose.staging.yml
File metadata and controls
75 lines (72 loc) · 2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# Matrix OS -- Staging on this VPS
#
# Hot-reloading dev container exposed at staging.matrix-os.com via the
# existing cloudflared tunnel. Source is bind-mounted from ~/matrix-os
# so edits on disk hit `next dev` (Turbopack HMR) and `tsx watch` for
# the gateway. Joins the platform's matrixos-net so cloudflared can
# reach it as `matrixos-staging:3000` / `matrixos-staging:4000`.
#
# Usage:
# docker compose -f docker-compose.staging.yml up -d --build
# docker compose -f docker-compose.staging.yml logs -f
# docker compose -f docker-compose.staging.yml down
#
# Reuses the platform's postgres (distro-postgres-1) on matrixos-net.
services:
staging-dev:
container_name: matrixos-staging
build:
context: .
dockerfile: Dockerfile.dev
volumes:
- ./packages:/app/packages
- ./shell:/app/shell
- ./home:/app/home
- ./skills:/app/skills
- ./tests:/app/tests
- ./specs:/app/specs
- ./docs:/app/docs
- ./distro:/app/distro
- ./scripts:/app/scripts
- ./package.json:/app/package.json
- ./pnpm-workspace.yaml:/app/pnpm-workspace.yaml
- ./pnpm-lock.yaml:/app/pnpm-lock.yaml:ro
- ./tsconfig.json:/app/tsconfig.json
- ./vitest.config.ts:/app/vitest.config.ts
- staging-node-modules:/app/node_modules
- staging-home:/home/matrixos/home
environment:
- NODE_ENV=development
- MATRIX_HOME=/home/matrixos/home
- MATRIX_HANDLE=staging
- MATRIX_DISPLAY_NAME=Staging
- PORT=4000
# Public URLs the browser will see. Cloudflared terminates TLS.
- NEXT_PUBLIC_GATEWAY_WS=wss://api-staging.matrix-os.com/ws
- NEXT_PUBLIC_GATEWAY_URL=https://api-staging.matrix-os.com
- GATEWAY_URL=http://localhost:4000
- POSTHOG_TOKEN=${POSTHOG_TOKEN:-}
- POSTHOG_HOST=${POSTHOG_HOST:-}
- NEXT_PUBLIC_POSTHOG_KEY=${NEXT_PUBLIC_POSTHOG_KEY:-}
- NEXT_PUBLIC_POSTHOG_PROJECT_TOKEN=${NEXT_PUBLIC_POSTHOG_PROJECT_TOKEN:-}
- NEXT_PUBLIC_POSTHOG_HOST=${NEXT_PUBLIC_POSTHOG_HOST:-}
- NEXT_PUBLIC_POSTHOG_API_HOST=${NEXT_PUBLIC_POSTHOG_API_HOST:-}
# Reuse platform postgres on matrixos-net. Keep the password in a local
# .env file, not in git.
- DATABASE_URL=${STAGING_DATABASE_URL:-postgresql://${STAGING_DB_USER:-matrixos}:${STAGING_DB_PASSWORD:?set STAGING_DB_PASSWORD in .env}@postgres:5432/${STAGING_DB_NAME:-matrixos_staging}}
- PLATFORM_DATABASE_URL=${STAGING_PLATFORM_DATABASE_URL:-postgresql://${STAGING_DB_USER:-matrixos}:${STAGING_DB_PASSWORD:?set STAGING_DB_PASSWORD in .env}@postgres:5432/${STAGING_DB_NAME:-matrixos_staging}}
networks:
- matrixos-net
restart: unless-stopped
healthcheck:
test: wget -qO- http://localhost:4000/health || exit 1
interval: 15s
timeout: 5s
start_period: 60s
volumes:
staging-node-modules:
staging-home:
networks:
matrixos-net:
external: true
name: matrixos-net