Add KiteStacks cloud migration backup
This commit is contained in:
commit
6ffcbea4ad
33 changed files with 9443 additions and 0 deletions
77
restore/RESTORE.md
Normal file
77
restore/RESTORE.md
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
# Restore Outline
|
||||
|
||||
This is the high-level restore path for a new Hetzner Cloud host.
|
||||
|
||||
## 1. Prepare Host
|
||||
|
||||
Install Docker and Docker Compose plugin.
|
||||
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install -y docker.io docker-compose-plugin git tar gzip
|
||||
sudo usermod -aG docker "$USER"
|
||||
```
|
||||
|
||||
Log out and back in after adding the Docker group.
|
||||
|
||||
## 2. Clone Backup
|
||||
|
||||
```bash
|
||||
git clone https://gitforge.kitestacks.com/kenpat/kitestacks-cloud.git
|
||||
cd kitestacks-cloud
|
||||
sha256sum -c SHA256SUMS
|
||||
```
|
||||
|
||||
## 3. Restore Bind-Mounted Data
|
||||
|
||||
```bash
|
||||
mkdir -p /home/kenpat
|
||||
tar -xzf archives/docker-bind-data.tar.gz -C /home/kenpat
|
||||
tar -xzf archives/syncthing-shared.tar.gz -C /home/kenpat
|
||||
tar -xzf archives/kitestacks-scripts.tar.gz -C /home/kenpat
|
||||
```
|
||||
|
||||
## 4. Restore Named Docker Volumes
|
||||
|
||||
Create the external network used by the stack:
|
||||
|
||||
```bash
|
||||
docker network create kitestacks
|
||||
```
|
||||
|
||||
For each file in `volume-exports`, create and restore the volume:
|
||||
|
||||
```bash
|
||||
for archive in volume-exports/*.tar.gz; do
|
||||
volume="$(basename "$archive" .tar.gz)"
|
||||
docker volume create "$volume"
|
||||
docker run --rm \
|
||||
-v "$volume:/volume" \
|
||||
-v "$PWD/volume-exports:/backup:ro" \
|
||||
alpine \
|
||||
sh -c "tar -xzf /backup/$volume.tar.gz -C /volume"
|
||||
done
|
||||
```
|
||||
|
||||
## 5. Start Services
|
||||
|
||||
Start core services in dependency order. Example:
|
||||
|
||||
```bash
|
||||
cd /home/kenpat/docker/authentik && docker compose up -d
|
||||
cd /home/kenpat/docker/forgejo && docker compose up -d
|
||||
cd /home/kenpat/docker/cloudflared && docker compose up -d
|
||||
```
|
||||
|
||||
Then start the remaining service folders under `/home/kenpat/docker`.
|
||||
|
||||
## 6. DNS and Tunnel Cutover
|
||||
|
||||
Review:
|
||||
|
||||
- `inventory/docker-running.txt`
|
||||
- `inventory/docker-networks.txt`
|
||||
- `/home/kenpat/docker/cloudflared/docker-compose.yml`
|
||||
- Cloudflare tunnel credentials under the restored cloudflared folder
|
||||
|
||||
Move DNS/tunnel targets to the Hetzner host after services are healthy.
|
||||
Reference in a new issue