https://github.com/gromanoff/pgsnapsafe
is an automated PostgreSQL backup service with S3 storage support and email notifications. It allows flexible scheduling of backups and efficient management of stored copies via a simple `.yml` configuration file.
https://github.com/gromanoff/pgsnapsafe
automation backup-tool best-backup-tool cron database-management docker docker-compose opensource postgres postgresql postgresql-tools
Last synced: about 2 months ago
JSON representation
is an automated PostgreSQL backup service with S3 storage support and email notifications. It allows flexible scheduling of backups and efficient management of stored copies via a simple `.yml` configuration file.
- Host: GitHub
- URL: https://github.com/gromanoff/pgsnapsafe
- Owner: gromanoff
- License: mit
- Created: 2025-03-09T17:17:00.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-29T10:11:25.000Z (about 1 year ago)
- Last Synced: 2025-07-12T15:41:05.293Z (12 months ago)
- Topics: automation, backup-tool, best-backup-tool, cron, database-management, docker, docker-compose, opensource, postgres, postgresql, postgresql-tools
- Language: Go
- Homepage:
- Size: 31.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.ru.md
- License: LICENSE
Awesome Lists containing this project
README
# π PgSnapSafe
[English](README.md) | Π ΡΡΡΠΊΠΈΠΉ




**PgSnapSafe** β ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ PostgreSQL Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±ΡΠΊΠ°ΠΏΠΎΠ² Π² S3 ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ email. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π±ΡΠΊΠ°ΠΏΠΎΠ² ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ Ρ
ΡΠ°Π½ΠΈΠΌΡΠΌΠΈ ΠΊΠΎΠΏΠΈΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» `.yml`.
## π ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
β
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ PostgreSQL
β
ΠΠΈΠ±ΠΊΠΎΠ΅ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π±ΡΠΊΠ°ΠΏΠΎΠ² (ΡΠ΅ΡΠ΅Π· YAML)
β
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Ρ
ΡΠ°Π½ΠΈΠΌΡΡ
ΠΊΠΎΠΏΠΈΠΉ
β
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² **AWS S3 / MinIO**
β
Email-ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎ ΡΡΠ°ΡΡΡΠ΅ Π±ΡΠΊΠ°ΠΏΠ°
β
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ **health check**
## π Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
### 1οΈβ£ ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
```bash
git clone https://github.com/yourusername/PgSnapSafe.git
cd PgSnapSafe
```
### 2οΈβ£ ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
Π‘ΠΎΠ·Π΄Π°ΠΉ `.env` ΡΠ°ΠΉΠ» ΠΈ Π΄ΠΎΠ±Π°Π²Ρ Π² Π½Π΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
ΠΈ S3:
```ini
# PostgreSQL
POSTGRESQL_HOST=your-postgresql-host
POSTGRESQL_PORT=5432
POSTGRESQL_USER=your-user
POSTGRESQL_PASSWORD=your-password
POSTGRESQL_DBNAME=your-database
# ΠΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π±ΡΠΊΠ°ΠΏΠΎΠ²
DIRECTORY_BACKUP_PATH=/app/db_backups
# S3 (Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ)
S3_BUCKET_NAME=your-bucket
S3_REGION=your-region
S3_ACCESS_KEY=your-access-key
S3_SECRET_KEY=your-secret-key
S3_ENDPOINT=your-s3-endpoint
# Email (Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ)
SMTP_HOST=smtp.your-email.com
SMTP_PORT=587
SMTP_USER=your-email@example.com
SMTP_PASS=your-password
SMTP_SENDER_SIGN=PgSnapSafe
EMAIL_DELIVERY=your-notify-email@example.com
```
### 3οΈβ£ ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ Π±ΡΠΊΠ°ΠΏΠΎΠ²
ΠΡΠΊΡΠΎΠΉ `config.yml` ΠΈ ΡΠΊΠ°ΠΆΠΈ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠΊΠ°ΠΏΠΎΠ² ΠΈ ΡΠΈΡΠ»ΠΎ Ρ
ΡΠ°Π½ΠΈΠΌΡΡ
ΠΊΠΎΠΏΠΈΠΉ:
```yaml
backup:
times:
- "02:00"
- "14:00"
keep_copies: 5
s3: true # ΠΠΊΠ»ΡΡΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π² S3
smtp: true # ΠΠΊΠ»ΡΡΠΈΡΡ email-ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ
health_check: true # ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅
```
### 4οΈβ£ ΠΠ°ΠΏΡΡΠΊ ΡΠ΅ΡΠ΅Π· Docker
```bash
docker-compose up -d
```
## π ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
### ΠΠ°ΠΏΡΡΠΊ Π²ΡΡΡΠ½ΡΡ
```bash
docker exec -it postgresdump /usr/local/bin/postgresdump
```
### ΠΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΡΠ²ΠΈΡΠ°
```bash
docker-compose down
```
## π ΠΠΈΡΠ΅Π½Π·ΠΈΡ
ΠΡΠΎΠ΅ΠΊΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ **MIT License**. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ!
## πΠΠΎΠ΄Π΄Π΅ΡΠΆΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π΄ΠΎΠ½Π°ΡΠΎΠΌ π
USDT TRC20
```bash
TMpytFwhc5BaWpUeBkB9BdJndoHb7nFWkU
```