services: grav: build: . # Overridable so a git worktree can run its own isolated dev server (see # `make worktree-new`); unset → the canonical main-checkout values below. container_name: ${GRAV_CONTAINER:-intotheeast_grav} environment: - GRAV_CHANNEL=production - APACHE_RUN_USER=#1000 - APACHE_RUN_GROUP=#1000 ports: - "${GRAV_PORT:-8081}:80" volumes: - ./user:/var/www/html/user - ./php/php-local.ini:/usr/local/etc/php/conf.d/php-local.ini # Grav stages form uploads in tmp/forms// before the submit moves # them into the page folder. The image declares /var/www/html as a VOLUME, # so without this it lives in an ANONYMOUS volume that is discarded on any # `docker compose up` that recreates the container — dropping the photos of # a post that was filled in but not yet submitted. Naming it gives the # staging area its own lifecycle. - grav_tmp:/var/www/html/tmp restart: unless-stopped travel-memories: build: ./services/travel-memories ports: - "${TM_PORT:-8082}:8082" volumes: - ./docs/immich-workflow:/app/state - ./user/pages:/app/pages env_file: .env user: "${UID}:${GID}" volumes: grav_tmp: