On-Premise Deployment
On-premise uses an all-in-one Docker Compose file
(docker-compose-onpremise.yml) containing infrastructure (MongoDB, NATS,
PostgreSQL, IPFS) + all 15 microservices + nginx reverse proxy + frontend,
with health checks and startup ordering.
Setup
Automated
Interactive script generates SSL cert, env files, builds images.
scripts/setup-onpremise.sh
Setup
Manual
Generate cert, edit env, run docker compose up.
docker-compose-onpremise.yml
Switch
Change region
Re-run setup with --region, keeps data volumes.
--region japan--region philippines
Quick start (automated)
cd infrastructure
# Interactive
./scripts/setup-onpremise.sh
# Non-interactive
./scripts/setup-onpremise.sh --region japan --hostname medos.local --yes
This:
- Generates a self-signed SSL cert for your hostname
- Creates
.env.onpremise.{region}with random secrets - Creates
web/.env.onpremise.{region}with correct locale/API URLs - Adds hostname to
/etc/hosts(optional) - Builds all Docker images
Manual setup
cd infrastructure
# 1. Generate self-signed SSL cert
./scripts/generate-ssl-cert.sh medos.local
# 2. Add to /etc/hosts
echo "127.0.0.1 medos.local" | sudo tee -a /etc/hosts
# 3. Configure env
cp .env.onpremise .env.onpremise.japan
# Edit: TZ=Asia/Tokyo, BASE_URL=https://medos.local
# 4. Start
docker compose --env-file .env.onpremise.japan \
-f docker-compose-onpremise.yml up -d
# 5. Wait ~60s, open https://medos.local
# 6. Seed
./deploy.sh japan seed
Files
| File | Purpose |
|---|---|
docker-compose-onpremise.yml | All-in-one compose (infra + services + nginx) |
.env.onpremise | Template env |
.env.onpremise.{region} | Generated by setup |
scripts/setup-onpremise.sh | Automated first-time setup |
scripts/generate-ssl-cert.sh | Self-signed SSL generator |
scripts/mongo_setup.sh | MongoDB replica-set init |
docker/reverse-proxy/templates/onpremise.conf.template | Nginx config using Docker DNS |
web/.env.onpremise | Frontend env template |
Switching region on an existing server
docker compose -f docker-compose-onpremise.yml down
./scripts/setup-onpremise.sh --region philippines --hostname medos.local
docker compose --env-file .env.onpremise.philippines \
-f docker-compose-onpremise.yml up -d
./deploy.sh philippines seed
Frontend dev against on-premise backend
cd web
cp .env.onpremise.japan .env
pnpm dev # Vite at http://localhost:5173