Imported from qinbatista/Docker-DiscordChatGPT (
skills/docker-disaster-recovery/SKILL.md). Install upstream withnpx skills add qinbatista/Docker-DiscordChatGPT --skill docker-disaster-recovery. Copyright stays with the author.
Docker-DiscordChatGPT recovery
Discover the current container/image mapping from Docker inspection and this repository’s deployment files. Do not assume that this source repository is active on the target host.
- Clone this repository from its configured GitHub remote and read the current Dockerfile, Compose files, and runtime instructions. Compare the selected source commit with the image or build recorded in the recovery inventory; report any mismatch.
- Clone the private
qinbatista/google-drive-helperrepository and follow itsskills/docker-disaster-recovery/SKILL.md. Authenticate Google Drive on the replacement host, download the exact immutable Docker recovery bundle, and runrecovery_bundle.py stagein an empty private directory. Require a SHA-256 pass for every included regular file. The bundle and staged files may contain credentials; keep them outside Git. - Read
docker-inspect.jsonandmanifest.jsonin that bundle. Select this service's runtime configuration, bind mounts, named volumes, ports, networks, restart policy, and image digest. Restore only its reviewed paths, retaining ownership and permissions. If a required file or volume is absent, mark the service blocked rather than creating an empty substitute. - Validate the restored Compose configuration with
docker compose config --quietwhen Compose owns the service; otherwise rebuild or pull the recorded image and recreate the inspected run contract. Start on isolated ports first and perform the service check above. Verify Docker running/health state and real access before moving to production ports. - For dependencies, verify S3 through an authenticated object list and byte-checked download, and Google Drive through a listed and byte-checked download. The Drive helper's normal sync is local-authoritative: never run
sync --applyagainst an empty replacement source. Record the count of recovered files, failures, and any unverified network or credential boundary.