services: homeio: build: . image: ghcr.io/doctor-io/homeio:latest container_name: homeio restart: unless-stopped ports: - "12026:3000" environment: DATABASE_URL: postgresql://homeio:homeio@db:5432/homeio # Leave unset and the entrypoint generates one on first start and keeps # it in the stacks volume. Set it here to pin your own. AUTH_SESSION_SECRET: ${AUTH_SESSION_SECRET:-} LOG_LEVEL: ${LOG_LEVEL:-info} STORE_STACKS_ROOT: /stacks STORE_APP_DATA_ROOT: /DATA/AppData FILES_ROOT: /DATA DOCKER_SOCKET_PATH: /var/run/docker.sock # V8 heap cap. The entrypoint defaults to --max-old-space-size=768 # for Pi safety; lower (e.g. --max-old-space-size=384) on Pi 3 with # other heavy containers, raise on amd64 hosts with plenty of RAM. # NODE_OPTIONS: "--max-old-space-size=768" # Soft container memory cap. Adjust to match your host. Helps the # OOM killer hit homeio rather than randomly killing other apps. mem_limit: 1g volumes: - /var/run/docker.sock:/var/run/docker.sock - homeio_stacks:/stacks - ${DATA_ROOT:-/DATA}:/DATA depends_on: db: condition: service_healthy db: image: postgres:16-alpine container_name: homeio-db restart: unless-stopped environment: POSTGRES_USER: homeio POSTGRES_PASSWORD: homeio POSTGRES_DB: homeio volumes: - homeio_db:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U homeio -d homeio"] interval: 10s timeout: 5s retries: 5 volumes: homeio_db: homeio_stacks: