Files
Germaine Brown 98073dc636
Publish Docs Site / build (push) Failing after 5s
feat: initial itpp-docs setup with MkDocs Material
- mkdocs.yml with dark slate theme, nav for 12 ITPP projects
- build-docs.sh aggregates docs from all project repos
- .gitea/workflows/docs-publish.yml for nightly rebuild+deploy
- README and CHANGELOG for the itpp-docs repo itself
- docs-source/ populated from all 12 repos
- site/ ready for deployment to docs.itpropartner.com
2026-08-09 23:49:45 -04:00
..

Backup-Restore — my.itpropartner.com/backups/

Architecture

  • Server: app3 (152.53.241.111, netcup RS 4000)
  • Backend: Flask Python app at /opt/backup-restore/app/app.py (port 8090)
  • Proxy: Caddy on Core → reverse_proxy to 152.53.241.111:8090 with 300s timeouts
  • Snapshots: /opt/backup-restore/snapshots/<domain>/<timestamp>/
  • Scheduled: 0 1,13 * * * /opt/backup-restore/snapshot.sh — 1 AM and 1 PM daily
  • Systemd: backup-restore.service
  • Retention: 30 days (auto-cleanup)

Sites Backed Up (9 domains)

apextrackexperience.com, boxpilotlogistics.com, debtrecoveryexperts.com, iamgmb.com, katiewattdesign.com, katiewattsdesign.com, mainwp.itpropartner.com, vigilanttac.com, voipsimplicity.com

Snapshot Contents

Each snapshot directory contains:

  • files.tar.gz — WordPress document root tarball
  • database.sql — MySQL dump
  • size.txt — Total backup size in bytes
  • note.txt — Optional manual backup note

API Endpoints

Method Path Auth Description
GET /backups/ No Backup dashboard page
POST /api/backup No Trigger manual backup
POST /api/restore No Restore a snapshot
POST /api/delete No Delete a snapshot
GET /api/download// No Download snapshot archive
GET /api/log No Restore history

Caddy Routes (on Core)

handle /api/backup → app3:8090
handle /api/restore → app3:8090 (flush_interval -1, 300s timeouts)
handle /api/download/* → app3:8090
handle /api/log → app3:8090
handle_path /backups/* → app3:8090 (300s timeouts)

Recovery

systemctl restart backup-restore
# Manual snapshot:
/opt/backup-restore/snapshot.sh
# Manual restore via curl:
curl -X POST https://my.itpropartner.com/api/restore \
  -H "Content-Type: application/json" \
  -d '{"domain":"katiewattdesign.com","snapshot":"2026-07-20_130001"}'