K0nsult CNC | AgroTony PostgreSQL | Fly.io Infrastructure
| Aplikacja | Typ | Status | Region |
|---|---|---|---|
| agrotony | App (produkcja) | deployed | FRA |
| agrotony-db | PostgreSQL 17.2 Flex | deployed | FRA |
| agrotony-dev | App (dev) | suspended | FRA |
| k0nsult | App | deployed | FRA |
| gok-grl | App (Rails) | suspended | - |
| gok-grl-db | PostgreSQL | deployed | - |
| Parametr | Wartosc |
|---|---|
| Engine | PostgreSQL 17.2 (Flex) via flyio/postgres-flex:17.2 |
| Rola maszyny | Primary (single node) |
| Region | FRA (Frankfurt) |
| Volume | vol_4y5lzkydp35wzn9r — 1 GB (encrypted) |
| Uzycie dysku /data | 173 MB |
| Health checks | 3/3 passing |
| Bazy danych | agrotony, agrotony_dev, postgres, repmgr |
| Uzytkownicy | agrotony, agrotony_dev, flypgadmin, postgres, repmgr |
| Porty | 5432 (haproxy), 5433 (postgres direct), 9187 (exporter) |
| pg_dump dostepny | Tak — v17.7 |
| Element | Status | Szczegoly |
|---|---|---|
| Fly.io managed backups | WYLACZONE | Komenda fly pg backup list zwraca: "backups are not enabled" |
| Replikacja (replicas) | BRAK | Jeden node (primary only), brak standby |
| Point-in-time recovery (PITR) | NIEDOSTEPNE | Wymaga wlaczenia managed backups |
| Zewnetrzny backup (S3/GCS) | BRAK | Nie skonfigurowano eksportu na zewnetrzny storage |
| pg_dump reczny | MOZLIWY | pg_dump 17.7 dostepny na serwerze, mozna wykonac ad-hoc |
# Wlaczenie automatycznych backupow fly pg backup enable -a agrotony-db # Weryfikacja fly pg backup list -a agrotony-db
# Proxy do bazy (w osobnym terminalu) fly proxy 15432:5432 -a agrotony-db # pg_dump przez proxy (nowy terminal) pg_dump "postgres://postgres:PASSWORD@localhost:15432/agrotony" \ --format=custom --compress=9 \ -f agrotony_backup_2026-03-21.dump # Alternatywnie: bezposrednio na serwerze fly ssh console -a agrotony-db -C \ "pg_dump -h localhost -p 5433 -U postgres -Fc agrotony > /tmp/backup.dump"
# Przykladowy GitHub Action (codziennie o 3:00 UTC) name: Daily DB Backup on: schedule: - cron: '0 3 * * *' jobs: backup: runs-on: ubuntu-latest steps: - uses: superfly/flyctl-actions/setup-flyctl@master - run: | fly proxy 15432:5432 -a agrotony-db & sleep 5 pg_dump "postgres://...@localhost:15432/agrotony" \ --format=custom -f backup.dump aws s3 cp backup.dump s3://bucket/agrotony/$(date +%F).dump
fly machine clone MACHINE_ID --region fra -a agrotony-db
# Lista dostepnych backupow fly pg backup list -a agrotony-db # Przywrocenie do nowej instancji fly pg backup restore BACKUP_ID -a agrotony-db --new-name agrotony-db-restored # Po weryfikacji: przełącz app na nową bazę fly secrets set DATABASE_URL="postgres://...@agrotony-db-restored.internal:5432/agrotony" -a agrotony
# 1. Proxy do bazy docelowej fly proxy 15432:5432 -a agrotony-db # 2. Stworz czysta baze (opcjonalne) psql "postgres://postgres:PASSWORD@localhost:15432/postgres" \ -c "CREATE DATABASE agrotony_restore;" # 3. Przywroc z dumpa pg_restore -h localhost -p 15432 -U postgres \ -d agrotony_restore --clean --if-exists \ agrotony_backup_2026-03-21.dump # 4. Weryfikacja psql "postgres://postgres:PASSWORD@localhost:15432/agrotony_restore" \ -c "SELECT count(*) FROM information_schema.tables WHERE table_schema='public';" # 5. Po weryfikacji: swap nazw baz (maintenance window!) psql "postgres://postgres:PASSWORD@localhost:15432/postgres" <
# 1. Stworz nowa instancje PostgreSQL fly pg create --name agrotony-db-new --region fra \ --initial-cluster-size 1 --vm-size shared-cpu-1x \ --volume-size 1 # 2. Przywroc backup fly proxy 15432:5432 -a agrotony-db-new pg_restore -h localhost -p 15432 -U postgres -d agrotony \ agrotony_backup_2026-03-21.dump # 3. Przełącz aplikację fly secrets set DATABASE_URL="postgres://agrotony:PASS@agrotony-db-new.internal:5432/agrotony" -a agrotony # 4. Restart aplikacji fly apps restart agrotony
| # | Krok | Wynik |
|---|---|---|
| 1 | Sprawdz czy baza jest online | OK — 3/3 checks passing |
| 2 | Zidentyfikuj bazy danych | OK — 4 bazy: agrotony, agrotony_dev, postgres, repmgr |
| 3 | Sprawdz rozmiar danych | OK — 173 MB / 1 GB volume |
| 4 | Sprawdz managed backups | FAIL — Backupy NIE SA wlaczone |
| 5 | Sprawdz dostepnosc pg_dump | OK — pg_dump 17.7 dostepny |
| 6 | Sprawdz replikacje | WARN — Brak replik, single node |
| 7 | Sprawdz zewnetrzne backupy | FAIL — Brak konfiguracji |
| 8 | Sprawdz procedury restore | INFO — Udokumentowane w tym raporcie |
Status ogolny: BACKUP NIE JEST AKTYWNY
Baza danych agrotony-db (PostgreSQL 17.2, 173 MB danych) dziala poprawnie na Fly.io w regionie FRA. Jednak nie ma zadnego mechanizmu backupu — ani managed backups Fly.io, ani zewnetrznego eksportu, ani replikacji.
Kluczowe ryzyka:
Nastepny krok: Wykonaj fly pg backup enable -a agrotony-db i reczny pg_dump natychmiast.