# ----------------------------------------------------------------------------- # Production-style local deploy of the hackerspace-management app. # Reads secrets from .env.local. For a real droplet, point env_file at # .env.production and lock the file to 0600. # ----------------------------------------------------------------------------- services: app: build: context: . dockerfile: Dockerfile args: NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL} NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY} NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL} NEXT_PUBLIC_SINGLE_TENANT: ${NEXT_PUBLIC_SINGLE_TENANT:-} NEXT_PUBLIC_SITE_NAME: ${NEXT_PUBLIC_SITE_NAME:-} NEXT_PUBLIC_SINGLE_TENANT_SPACE_SLUG: ${NEXT_PUBLIC_SINGLE_TENANT_SPACE_SLUG:-} NEXT_PUBLIC_SINGLE_TENANT_OPEN_JOIN: ${NEXT_PUBLIC_SINGLE_TENANT_OPEN_JOIN:-} NEXT_PUBLIC_SHOW_MARKETING: ${NEXT_PUBLIC_SHOW_MARKETING:-} image: hackerspace-management:latest container_name: hackerspace_app restart: unless-stopped ports: - "3000:3000" env_file: - .env.local environment: NODE_ENV: production healthcheck: test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/api/health", ] interval: 30s timeout: 5s retries: 3 start_period: 30s networks: default: name: hackerspace_net