services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "7331:7331"
    environment:
      - NODE_ENV=production
      - SELF_HOSTED_MODE=true
      - UPLOAD_PATH=/app/data/uploads
      - DATABASE_URL=postgresql://postgres:postgres@postgres:5432/taxhacker
    volumes:
      - ./data:/app/data
    restart: unless-stopped
    logging:
      driver: "local"
      options:
        max-size: "100M"
        max-file: "3"

  postgres:
    image: postgres:17-alpine
    container_name: taxhacker-postgres
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=taxhacker
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    restart: unless-stopped
    ports:
      - "5432:5432"
    logging:
      driver: "local"
      options:
        max-size: "100M"
        max-file: "3"
