Skip to content

Setup PGbackWeb

Overview

🐘 Effortless PostgreSQL backups with a user-friendly web interface! 🌐💾

Important Docker Files

.env file

.env
DB_USER=pgbackweb
DB_PASS=
DB_NAME=pgbackweb
SECRET=
NAME=pgbackweb
DOMAIN=
SUB=pgbackup
PORT=8085
APPDATA=

docker-compose.yml file

docker-compose.yml
services:
  pgbackweb:
    image: eduardolat/pgbackweb
    container_name: ${NAME}
    environment:
      PBW_ENCRYPTION_KEY: ${SECRET}
      PBW_POSTGRES_CONN_STRING: "postgresql://${DB_USER}:${DB_PASS}@postgres:5432/${DB_NAME}?sslmode=disable"
    depends_on:
      postgres:
        condition: service_healthy
    networks:
      - proxy
      - internal-db
    dns:
      - '10.1.10.1'
    labels:
      swag: enable
      swag_address: ${NAME}
      swag_port: ${PORT}
      swag_proto: http
      swag_url: ${SUB}.${DOMAIN}
      com.centurylinklabs.watchtower.enable: true
  postgres:
    image: postgres:17-alpine
    container_name: ${NAME}-db
    environment:
      POSTGRES_USER: ${DB_USER}
      POSTGRES_DB: ${DB_NAME}
      POSTGRES_PASSWORD: ${DB_PASS}
    networks:
      - internal-db
    volumes:
      - ${APPDATA}/${NAME}/${NAME}-db:/var/lib/postgresql/data
    healthcheck:
      interval: 10s
      retries: 10
      test: pg_isready -U ${DB_USER} -d ${DB_NAME}
      timeout: 2s
    labels:
      com.centurylinklabs.watchtower.enable: true
networks:
  proxy:
    external: true
  internal-db:
    external: true

Start the Container

Start the Container
docker compose up -d