# Local development services for Tia (Postgres + Redis). # Postgres major version is pinned to match production. services: postgres: # pg18 to match production (Hetzner prod runs Postgres 18). # Keeping dev on the same major version avoids dump/restore mismatches # and version-specific behaviour drift. image: pgvector/pgvector:pg18 container_name: tia-postgres environment: POSTGRES_DB: tia_dev POSTGRES_USER: tia POSTGRES_PASSWORD: tia_local_dev ports: - "5433:5432" volumes: # pg18 image convention: mount at /var/lib/postgresql (NOT .../data). # The image places data in a version-specific subdirectory under it. - ./data/postgres:/var/lib/postgresql - ./docker/init-db:/docker-entrypoint-initdb.d healthcheck: test: ["CMD-SHELL", "pg_isready -U tia -d tia_dev"] interval: 5s timeout: 5s retries: 5 redis: image: redis:7-alpine container_name: tia-redis ports: - "6380:6379" volumes: - ./data/redis:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 5