PostgreSQL PostgreSQL

Powerful open source object-relational database system

PostgreSQL is a powerful, open source object-relational database system with over 35 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.

Links:

TODO: Add PgBouncer container for connection pooling TODO: Add PostgreSQL exporter for Prometheus monitoring TODO: Implement automated backup solution (pg_dump or pgBackRest) TODO: Consider enabling SSL/TLS for encrypted connections TODO: Set up streaming replication for high availability

name: postgresql
services:
  postgresql-init:
    image: busybox:1.38.0
    container_name: postgresql-init
    command: ["sh", "-c", "chown -R 999:999 /var/lib/postgresql"]
    volumes:
      - ${DOCKER_VOLUMES}/postgresql/data:/var/lib/postgresql

  postgresql:
    image: postgres:18.6-trixie
    container_name: postgresql
    restart: unless-stopped
    shm_size: 128mb
    environment:
      TZ: ${TIMEZONE}
      POSTGRES_USER: ${POSTGRES_USER:-postgres}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: ${POSTGRES_DB:-postgres}
      POSTGRES_INITDB_ARGS: --data-checksums
    volumes:
      - ${DOCKER_VOLUMES}/postgresql/data:/var/lib/postgresql
      - ./config/initdb:/docker-entrypoint-initdb.d
    ports:
      - 5432:5432
    networks:
      - proxy
    depends_on:
      postgresql-init:
        condition: service_completed_successfully
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres}"]
      interval: 10s
      timeout: 5s
      retries: 5
    labels:
      traefik.enable: false
      homepage.group: Storage
      homepage.name: PostgreSQL
      homepage.icon: postgresql.png
      homepage.description: "Powerful open source object-relational database system"

networks:
  proxy:
    external: true