kitestacks-homelab/cloud-migration/restore/RESTORE.md
kenpat fb822d5142 Reorganize repos into kitestacks-homelab + plain-English doc rewrite
- Rewrote RUNBOOK.md and DEBUG-DOCUMENTATION.md in simple 5th-grade language
  with real-world analogies for every technical concept
- Updated README.md with current service inventory and folder map
- Added cloud-migration/ subdirectory (from kitestacks-cloud-migration repo)
- Added autosync/ subdirectory (from kitestacks-homelab-autosync-test repo)
- Added osticket/ subdirectory (from OSTicketSystem repo)
- Added cloud/ placeholder for future cloud configs
- Excluded binary DB/postgres files from autosync subdirectory

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 18:37:58 -05:00

77 lines
1.8 KiB
Markdown

# 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.