WIP: First pass on backups, added restic, created backup and restore scripts. Need to improve the disaster recovery plan. #17

Draft
alexanrf wants to merge 2 commits from loomio-backups into main
Owner

Backups kjører i produksjon allerede. Men det er noen åpne oppgaver her.

  • Dokumentasjonen er ikke god nok og er kladdete og KI drevet.
  • Disaster recovery prosedyre må gjennomgås.
  • Vi burde diskutere avviket - Per nå så er S3 tilganger i samme .env som docker composen bruker. Altså, får noen tilgang til den så får de også tilgang til backupsene våre. Det må endres på.
  • Vi burde rive ut Loomio sin backup løsning og kun bruke det ene scriptet her.

Så, det kjøres backups nå, men det må forbedres. Men det dekker en del risiko sett opp mot Loomio lanseringen.

Backups kjører i produksjon allerede. Men det er noen åpne oppgaver her. - [ ] Dokumentasjonen er ikke god nok og er kladdete og KI drevet. - [ ] Disaster recovery prosedyre må gjennomgås. - [ ] Vi burde diskutere avviket - Per nå så er S3 tilganger i samme .env som docker composen bruker. Altså, får noen tilgang til den så får de også tilgang til backupsene våre. Det må endres på. - [ ] Vi burde rive ut Loomio sin backup løsning og kun bruke det ene scriptet her. Så, det kjøres backups nå, men det må forbedres. Men det dekker en del risiko sett opp mot Loomio lanseringen.
Author
Owner

Rask diskusjon med Stigo. Vi burde få isolert ut secrets til backup inn i en egen SOPS og .env fil.

Rask diskusjon med Stigo. Vi burde få isolert ut secrets til backup inn i en egen SOPS og .env fil.
@ -6,2 +6,4 @@
**Observability:** Kjører på samme system. Kompleksitet med å sette opp en observability stack for å monitorere en tjeneste er en for stor oppgave på dette tidspunktet.
**Backups:**
1. Backup hemmeligheter deler .env fil med deployment Loomio. Dette er en konsekvens av hvordan SOPS for Loomio er satt opp til å dele alt som ligger i den sops filen. Backups skal på sikt bli et eget system og det rådes sterkt til at denne konfigurasjonen isoleres. Per nå har Loomio docker containeren samme tilganger til Scaleway bucketen som backup systemet.

Denne er utdatert nå?

Denne er utdatert nå?
@ -1,11 +1,25 @@
Kladd:
Backups er lagret på Scaleway som Alexander Fife har tilgang til. Dette er en midlertidig løsning frem til vi lander et bedre backupssystem.

Kan vi legge til flere folk på kontoen?

Kan vi legge til flere folk på kontoen?
@ -16,0 +32,4 @@
# Backups
Backups er lagret på Scaleway S3 (fr-par). Restic krypterer alt før opplasting.

For å unngå løsepengeangrep har vi versjonering på S3-bøtten?

For å unngå løsepengeangrep har vi versjonering på S3-bøtten?
@ -16,0 +34,4 @@
Backups er lagret på Scaleway S3 (fr-par). Restic krypterer alt før opplasting.
Backup-filer ligger i `/opt/loomio-deploy/dk-backups/`.

Om filer ligger her få vi en git diff? Om vi får det kommer vi til å ha problemer med oppgradering av loomio-deploy repo som vi gjør i #16

Om filer ligger her få vi en git diff? Om vi får det kommer vi til å ha problemer med oppgradering av loomio-deploy repo som vi gjør i #16
@ -16,0 +73,4 @@
```
### Manuell database-backup
TODO: Denne må bekreftes. Men jeg ønsker egentlig å ikke bruke Loomio sitt backup script.

Jeg tror kommandoen var:

docker compose --file /opt/loomio-deploy/docker-compose.yml run pgbackups /backup.sh
Jeg tror kommandoen var: ``` docker compose --file /opt/loomio-deploy/docker-compose.yml run pgbackups /backup.sh ```
@ -16,0 +104,4 @@
1. Stopp Loomio:
```bash
cd /opt/loomio-deploy && docker compose down

Bør dette være docker compose down app slik at databasen er oppe?

Bør dette være `docker compose down app` slik at databasen er oppe?
@ -0,0 +12,4 @@
ProtectSystem=strict
ReadWritePaths=/opt/loomio-deploy
ProtectHome=true
NoNewPrivileges=true

I think it would be good to add a timeout and a OOMPolicy

TimeoutStartSec=3000 # 50 minutes
OOMPolicy=stop
I think it would be good to add a timeout and a OOMPolicy ``` TimeoutStartSec=3000 # 50 minutes OOMPolicy=stop ```
This pull request is marked as a work in progress.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin loomio-backups:loomio-backups
git switch loomio-backups
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
datakollektivet/systemer!17
No description provided.