[{"data":1,"prerenderedAt":22},["ShallowReactive",2],{"blog:backups":3},{"title":4,"description":5,"date":6,"author":7,"url":8,"markdownPath":9,"html":10,"toc":11},"A backup is not a second running Server","What an independent workspace needs to recover, and why its backup destination is separate from live files.","2026-10-21","Inchi","\u002Fblog\u002Fbackups","\u002Fblog\u002Fbackups.md","\u003Cp>A Server can work perfectly today and still need a recovery plan for tomorrow. A backup is a copy used for recovery. It is not a live replica and it should not be confused with the bucket holding the files people use every day.\u003C\u002Fp>\n\u003Ch2 id=\"what-needs-to-survive\">\u003Ca class=\"heading-anchor\" href=\"#what-needs-to-survive\">What needs to survive?\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>A useful recovery plan covers more than chat messages. Server identity, Accounts, configuration, secrets and content belong together. Restoring content without the identity or the secrets it depends on may leave a workspace that looks familiar but cannot operate as the same Server.\u003C\u002Fp>\n\u003Cp>L4 gives each Server a persistent UUID. The recovery objective is to bring back the Server and its data with that identity intact, then check that Members and their permissions still behave as expected.\u003C\u002Fp>\n\u003Ch2 id=\"keep-the-copy-separate\">\u003Ca class=\"heading-anchor\" href=\"#keep-the-copy-separate\">Keep the copy separate\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>On Cloudflare with R2, the installer creates a backups bucket next to the live files bucket, and the Server writes a backup there every week and before every update. Without that bucket, you download the backup from Settings or send it to an S3 bucket of your own. Removing a Server never deletes backups. On a VPS, \u003Ccode>llll backup\u003C\u002Fcode> archives the whole installation. The details are in \u003Ca href=\"\u002Fdocs\u002Fconcepts\u002Ffiles-and-backups\">Files and backups\u003C\u002Fa>. Separation reduces the chance that an operation on live resources also destroys the recovery copy; it does not by itself prove that a backup can be restored.\u003C\u002Fp>\n\u003Ch2 id=\"practice-recovery\">\u003Ca class=\"heading-anchor\" href=\"#practice-recovery\">Practice recovery\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Before calling a backup plan complete, make a copy, restore it into an isolated environment and check the result: identity, owner sign-in, a second Member, permissions, a message and a file. Record which release and deployment target were used. Protect the recovery material and secrets with the same care as the live workspace.\u003C\u002Fp>\n\u003Cp>We are still testing restores on real Cloudflare and VPS Servers, and we&#39;ll report those results separately from automated tests. A backup&#39;s value is not that a button said it succeeded; it is that you can recover the community when you need it.\u003C\u002Fp>\n",[12,16,19],{"id":13,"text":14,"depth":15},"what-needs-to-survive","What needs to survive?",2,{"id":17,"text":18,"depth":15},"keep-the-copy-separate","Keep the copy separate",{"id":20,"text":21,"depth":15},"practice-recovery","Practice recovery",1793335826767]