PG Back Web
π Effortless PostgreSQL backups with a user-friendly web interface! ππΎ
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:
- π― Designed for everyone: From individual developers to teams.
- β±οΈ Save time: Automate your backups and forget about manual tasks.
- β‘ Plug and play: Don't waste time with complex configurations.
Features
- π¦ Intuitive web interface: Manage your backups with ease, no database
expertise required.
- π
Scheduled backups: Set it and forget it. PG Back Web takes care of the
rest.
- π Backup monitoring: Visualize the status of your backups with execution
logs.
- π€ Instant download & restore: Restore and download your backups when you
need them, directly from the web interface.
- π₯ Multi-version support: Compatible with PostgreSQL 13, 14, 15, 16,
and 17.
- π Local & S3 storage: Store backups locally or add as many S3 buckets as
you want for greater flexibility.
- β€οΈβπ©Ή Health checks: Automatically check the health of your databases and
destinations.
- π Webhooks: Get notified when a backup finishes, failed, health check
fails, or other events.
- π Security first: PGP encryption to protect your sensitive information.
- π‘οΈ Open-source trust: Open-source code under MIT license, backed by the
robust pg_dump tool.
- π Dark mode: Because we all love dark mode.
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:17
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:
-
PBW_ENCRYPTION_KEY
: Your encryption key. Generate a strong one and store it
in a safe place, as PG Back Web uses it to encrypt sensitive data.
-
PBW_POSTGRES_CONN_STRING
: The connection string for the PostgreSQL database
that will store PG Back Web data.
-
PBW_LISTEN_HOST
: Host for the server to listen on, default 0.0.0.0
(optional)
-
PBW_LISTEN_PORT
: Port for the server to listen on, default 8085 (optional)
-
TZ
: Your
timezone
(optional). Default is UTC
. This impacts logging, backup filenames and
default timezone in the web interface.
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 βοΈ
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!