eduardolat / pgbackweb

🐘 Effortless PostgreSQL backups with a user-friendly web interface! πŸŒπŸ’Ύ
MIT License
1.03k stars 48 forks source link
backup backups database postgres postgresql restore s3

PG Back Web

🐘 Effortless PostgreSQL backups with a user-friendly web interface! πŸŒπŸ’Ύ

Tests Status Go Report Card Release Version Docker Pulls License

Why PG Back Web?

PG Back Web isn't just another backup tool. It's your trusted ally in ensuring the security and availability of your PostgreSQL data:

Features

Installation

PG Back Web is available as a Docker image. You just need to set 3 environment variables and you're good to go!

Here's an example of how you can run PG Back Web with Docker Compose, feel free to adapt it to your needs:

services:
  pgbackweb:
    image: eduardolat/pgbackweb:latest
    ports:
      - "8085:8085" # Access the web interface at http://localhost:8085
    volumes:
      - ./backups:/backups # If you only use S3 destinations, you don't need this volume
    environment:
      PBW_ENCRYPTION_KEY: "my_secret_key" # Change this to a strong key
      PBW_POSTGRES_CONN_STRING: "postgresql://postgres:password@postgres:5432/pgbackweb?sslmode=disable"
      TZ: "America/Guatemala" # Set your timezone, optional
    depends_on:
      postgres:
        condition: service_healthy

  postgres:
    image: postgres:16
    environment:
      POSTGRES_USER: postgres
      POSTGRES_DB: pgbackweb
      POSTGRES_PASSWORD: password
    ports:
      - "5432:5432"
    volumes:
      - ./data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 5s
      retries: 5

You can watch this youtube video to see how easy it is to set up PG Back Web.

Configuration

You only need to configure the following environment variables:

Screenshot

Reset password

You can reset your PG Back Web password by running the following command in the server where PG Back Web is running:

docker exec -it <container_name_or_id> sh -c change-password

You should replace <container_name_or_id> with the name or ID of the PG Back Web container, then just follow the instructions.

Next steps

In this link you can see a list of features that have been confirmed for future updates:

Next steps ⏭️

Join the Community

Got ideas to improve PG Back Web? Contribute to the project! Every suggestion and pull request is welcome.

License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ’– Love PG Back Web? Give us a ⭐ on GitHub and share the project with your colleagues. Together, we can make PostgreSQL backups more accessible to everyone!