services: postgres: image: postgres:16-alpine restart: unless-stopped volumes: - pgdata:/var/lib/postgresql/data environment: POSTGRES_USER: matrixos POSTGRES_PASSWORD: matrixos POSTGRES_DB: matrixos healthcheck: test: ["CMD-SHELL", "pg_isready -U matrixos"] interval: 10s timeout: 5s start_period: 10s matrix-os: build: context: . args: 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:-} depends_on: postgres: condition: service_healthy ports: - "3000:3000" - "4000:4000" volumes: - matrixos-data:/home/matrixos/home env_file: - .env.docker environment: DATABASE_URL: ${DATABASE_URL:-postgresql://matrixos:matrixos@postgres:5432/matrixos} 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:-} healthcheck: test: ["CMD", "wget", "-qO-", "http://localhost:4000/health"] interval: 30s timeout: 5s start_period: 15s restart: unless-stopped volumes: matrixos-data: pgdata: