Files
silverlinux-infra/docs/backups.md
T
2026-06-22 15:55:41 +03:30

3.7 KiB

Backups

Overview

This document describes the backup strategy for SilverLinux.

The goal is to ensure that all critical services can be restored after hardware failure, accidental deletion, corruption, or disaster recovery scenarios.


Backup Priorities

Critical

These items must always be backed up.

PostgreSQL

Contains:

  • OpenProject database
  • Gitea database
  • Future application databases

Importance:

Critical


Microsoft SQL Server

Data location:

/srv/docker/mssql/data

Required:

  • Native SQL Server database backups
  • MSSQL Compose configuration
  • MSSQL_SA_PASSWORD from the shared secrets backup

Importance:

Critical

Do not rely on copying live database files as the only backup method.


Gitea Data

Location:

/srv/docker/gitea/data

Contains:

  • Git repositories
  • Attachments
  • Configuration
  • User data

Importance:

Critical


OpenProject Assets

Location:

/srv/docker/openproject/assets

Contains:

  • Attachments
  • Uploaded files
  • User generated content

Importance:

Critical


Shared Secrets

Location:

/srv/secrets/company.env

Contains:

  • SMTP credentials
  • PostgreSQL passwords
  • MSSQL SA password
  • OpenProject secrets
  • Future DbGate password
  • Future OAuth secrets

Importance:

Critical

Without this file applications may not start correctly.


Nginx Proxy Manager

Locations:

/srv/docker/nginx-proxy-manager/data
/srv/docker/nginx-proxy-manager/letsencrypt

Contains:

  • Proxy configuration
  • SSL certificates
  • Domain routing

Importance:

Critical


Medium Priority

Portainer

Volume:

portainer_portainer_data

Contains:

  • Portainer users
  • Portainer configuration
  • Stack definitions

Importance:

Medium

Can be recreated if necessary.


Jitsi Configuration

Location:

/srv/docker/jitsi

Contains:

  • Jitsi configuration
  • Internal authentication configuration

Importance:

Medium


BaGet Data

Location:

/srv/docker/baget/data

Contains:

  • Hosted NuGet packages
  • SQLite database

Importance:

Medium


Gitea Actions Runner Configuration

Location:

/srv/docker/gitea-runner

Contains:

  • Runner deployment configuration
  • Runner state

The registration token is stored separately in /srv/secrets/company.env.

Importance:

Medium


DbGate Data

Location:

/srv/docker/dbgate/data

Contains:

  • Saved connections
  • DbGate application state

Also retain the Nginx Proxy Manager route and DbGate authentication credential.

Importance:

Medium


Backup Storage

Current Location:

/srv/backups

Suggested Structure:

/srv/backups/
├── daily
├── weekly
└── monthly

Retention Policy

Daily

Keep:

7 days

Weekly

Keep:

4 weeks

Monthly

Keep:

12 months

Restore Priorities

Restore order:

  1. Shared secrets
  2. PostgreSQL
  3. Microsoft SQL Server
  4. Nginx Proxy Manager
  5. Gitea
  6. OpenProject
  7. Portainer
  8. Jitsi
  9. BaGet
  10. Gitea Actions Runner
  11. DbGate

Disaster Recovery Checklist

Step 1

Install:

  • Ubuntu Server
  • Docker
  • Docker Compose

Step 2

Restore:

/srv/secrets/company.env

Step 3

Restore:

/srv/docker

data directories.

Step 4

Restore PostgreSQL and Microsoft SQL Server databases.

Step 5

Deploy Docker stacks.

Step 6

Verify:

  • DNS
  • SSL certificates
  • Email delivery
  • Application access

  • docs/server.md
  • docs/security.md
  • docs/secrets.md
  • postgres/README.md
  • gitea/README.md
  • openproject/README.md
  • mssql/README.md
  • dbgate/README.md