I am running Homey Self-Hosted Server (Homey SSH) in a Docker container on my Linux server. Recently, after updating my server, my Homey configuration was reset — all settings, flows, and device integrations disappeared.
I have a full snapshot of my previous server, including the Homey .homey-shs folder, which I backed up using Restic. I restored this folder into a new Homey SSH Docker container, but when I start the container:
Homey always starts as a new installation.
The log shows “Missing Homey ID” and asks to activate the server as if it is brand new.
I cannot connect using my original Homey ID or access my previous cloud subscription.
It seems the Homey ID might be tied to the old container or some internal database.
My goal is to fully restore my old Homey SSH server, including all flows, devices, and my original Homey ID, without losing my previous setup.
Does anyone know if there is a way to restore a Homey SSH Docker container from a snapshot (created with Restic) while keeping the original Homey ID? Or is it required to have an official backup/export from the old container?
Any guidance or suggestions would be greatly appreciated.
And I assume you restored everything back to /home/viliam/tmp_homey/home/viliam/.homey-shs?
It could very well be that Homey-SHS makes some sort of fingerprint of your setup that has changed due to your server change, but if that’s the case, you should probably ask Athom how this should be handled.
Yes, I restored the .homey-shs folder exactly to /home/viliam/tmp_homey/home/viliam/.homey-shs from my Restic snapshot.
It seems Homey SSH generates some internal fingerprint tied to the original container or machine, which prevents restoring the old Homey ID. I’ll probably need to contact Athom for guidance on how to restore a full setup while keeping the original Homey ID.
I’m attaching the startup log from Homey Self-Hosted Server (SHS) when booting from a restic snapshot of my .homey-shs directory.
The snapshot is a full filesystem-level backup (not an official Homey export) and it was restored to the original path and mounted into the Docker container.
Homey starts, initializes managers and apps, but fails during the cloud handshake with the error “Invalid Serial Number”.
I’m sharing the startup log in case someone can spot what might be missing or corrupted in the restored snapshot.
Self-Hosted Server in this community is abbreviated as SHS, it is better to keep it that way for findability. the abriviation SSH is used for Secure SHell
BTW:
coming to that:
experimental updates
Enable experimental updates to help test new versions of Homey before they are released to everyone.
These updates might be unstable, and after enabling you cannot revert without doing a factory reset.
For Homey Self-Hosted Server this will notify you when a new image is available with the beta tag ghcr.io/athombv/homey-shs:beta . To run this image use ghcr.io/athombv/homey-shs:beta instead of ghcr.io/athombv/homey-shs:latest when starting your Homey Self-Hosted Server.
Thanks for the clarification about SHS vs SSH — agreed, I’ll stick with SHS for consistency
Just to double-check the Docker image reference:
shouldn’t the correct official image be
ghcr.io/athombv/homey-shs:latest
(or :beta for experimental updates)?
I’m currently using ghcr.io/athombv/homey-shs:latest.
I can’t pull or find ghcr.io/homey/ssh:latest, so I assume that might be a typo or an outdated reference.
For context:
I restored the /homey/user directory from a restic snapshot (taken before the issue)
The container starts and loads apps/devices locally
But during cloud handshake it always fails with “Invalid Serial Number” and Homey gets uninitialized
I don’t have access to the original serial/token, only the Homey ID visible in the mobile app
I’ve also attached the full startup log from the restored snapshot in case it helps.
Any hints where the SHS serial / identity is stored or whether restoring it is officially supported would be greatly appreciated.
I’m sure OP is legit, but LLM’s tend to add random junk that makes things really confusing (last week I wasted more than an hour trying to debug an issue on an open source project I run, when it turned out that it was ChatGPT, or similar, that was just adding completely inconsistent text to the issue comments ).
I do use ChatGPT to help rewrite / structure my text in English, but the technical details, commands, logs and setup are mine, directly from my server.