Skip to main content

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:

  1. Generates a self-signed SSL cert for your hostname
  2. Creates .env.onpremise.{region} with random secrets
  3. Creates web/.env.onpremise.{region} with correct locale/API URLs
  4. Adds hostname to /etc/hosts (optional)
  5. 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

FilePurpose
docker-compose-onpremise.ymlAll-in-one compose (infra + services + nginx)
.env.onpremiseTemplate env
.env.onpremise.{region}Generated by setup
scripts/setup-onpremise.shAutomated first-time setup
scripts/generate-ssl-cert.shSelf-signed SSL generator
scripts/mongo_setup.shMongoDB replica-set init
docker/reverse-proxy/templates/onpremise.conf.templateNginx config using Docker DNS
web/.env.onpremiseFrontend 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