-
v0.5.34 Stable
released this
2026-10-30 01:16:05 +03:30 | 39 commits to main since this releaseSet up from other servers over IPFS
When the in-country mirrors are unreachable too, interzone can now fetch everything from other interzone servers over IPFS.
IPFS: from interzone's swarm
- A third Network situation on the Server step. The playbook, Ansible roles, OS and Docker packages, PyPI and every container image come from interzone's private IPFS swarm. The server only needs to reach one peer that has the files.
- Before the deploy, interzone installs the IPFS daemon (kubo) on the server and joins the swarm. It finds the newest publish and checks its signature before using anything, then serves the publish's images to Docker as a local registry. The playbook is held at the publish's commit, so the roles match the images.
- Share what this server downloads is asked during setup, with no answer preselected. Sharing keeps IPFS running after the deploy, listening on TCP 4001, and lets the swarm's members see that the server holds Matrix software. Without sharing, IPFS stops after each run.
ctrl+tandinterzone checktest that the publish and the swarm's entry node can be reached.- Offline bundles made with IPFS chosen carry the IPFS daemon for x86 and ARM servers.
The swarm's key ships with interzone. It keeps the public IPFS network out but isn't a secret. See the wiki's Blackout mode page, section 6.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.5.33 Stable
released this
2026-10-29 22:34:53 +03:30 | 44 commits to main since this releaseSafer on disk and on the wire: fixes from a codebase audit
Thank you, @TheNarratorsFrevor! Everything in this release comes from their audit of interzone (pull request #1): fifteen careful fixes, each with a clear account of what went wrong and why.
Security
- Ansible checks the server's SSH host key. Playbooks used to run with host key checking off, so someone in the middle could pose as the server and receive the sudo password and every secret. A new server is trusted the first time; a changed key stops the run.
- Offline bundles can't write outside the folder they unpack into, even through links made by earlier entries. A bundle also leaves out leftover files holding the admin's password.
- Passwords stay off command lines (registering a user no longer shows it in
ps), and the SSH connection-sharing folder in /tmp is only used when it's yours alone. - Answers, presets and the inventory are always written owner-only, and atomically, so a crash or full disk keeps the old file.
Data loss
interzone servers rmwith no name deleted the first server's answers. It now prints the usage.- A
config.jsonthat isn't valid JSON is moved aside instead of being overwritten with new secrets, which would have locked Synapse out of Postgres on the next deploy. - Rollback keeps each server's replaced answers apart (they shared one file), and stops if it can't save them.
- Moving to a new server copies all of /matrix, or says why not. A slow receiver could lose the end of the archive, and a full disk made the copy hang.
- The base domain must be a hostname: a pasted
https://is dropped, and an imported domain can't write outside the playbook.
Hangs and crashes
- A very long line of Ansible output no longer freezes the run.
- A server without /etc/os-release no longer crashes the mirror check.
- Background checks no longer crash the app when you change settings while they run.
- Leaving a screen mid-check no longer leaves it spinning for good, and a new user password shown once is no longer lost.
Smaller fixes
- Commands take their options after the arguments too (
restore dump.sql --yes). -layoutand-themeare checked before-resetmoves anything.- Passwords with
{{or{%, which Ansible would misread, are caught before the deploy, and passwords starting with-work with MAS. pgupscrolls the deploy log, logs and Fine-tune lists.makebuilds report a version self-update understands, andmake testruns what CI runs.- The screenshot scripts find their fonts on any distribution.
Update with
interzone self-updateor Manage › Update interzone.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.5.32 Stable
released this
2026-10-29 18:26:47 +03:30 | 59 commits to main since this releaseMore themes, and a little motion
New
- Six more themes: tokyonight, rose-pine, everforest, kanagawa, onedark and synthwave, each with a light and a dark version.
ctrl+ycycles through all 13. - The Welcome logo's colours flow, and while a deploy runs, its progress bar is drawn in the theme's colours with a highlight sweeping across it.
INTERZONE_MOTION=offkeeps the logo and bars still. Plain mode never animates, and nothing moves on screens where nothing is happening.
The README's screenshots and the wiki's deploy screenshots were retaken.
Update with
interzone self-updateor Manage › Update interzone.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Six more themes: tokyonight, rose-pine, everforest, kanagawa, onedark and synthwave, each with a light and a dark version.
-
v0.5.31 Stable
released this
2026-10-29 17:50:22 +03:30 | 64 commits to main since this releaseComponents that couldn't be set up now can
Fixed
- Draupnir can be set up. It needed an access token interzone never asked for, so Review always refused it. Settings now asks for the bot's token; the wiki shows how to get one after the first deploy. The Public community preset no longer ticks Draupnir, since its account only exists once the server is up.
- Meowlnir works, and bridges and bots know their admin. interzone now sets your first admin account as
matrix_admin, which Meowlnir needs for its management room and which baibot, many mautrix bridges, Postmoogle and Steam take as their administrator. - Review stops MAS next to a Synapse password provider. REST auth, Shared Secret Auth, LDAP auth and Matrix Corporal don't work once MAS does the logins, and the playbook refused the combination part way through the deploy. Review now says so first.
- The SMS bridge's truststore is optional, needed only when the gateway's certificate is self-signed.
- WeChat is marked unmaintained (it doesn't work with current Synapse) and mx-puppet Steam deprecated (use the other Steam bridge).
- Review's confirm box no longer has a double blank line when nothing failed.
New in the wiki: a guide to every component, by category, in English and Persian: what it does, what to fill in, its DNS, and how to use it after the deploy.
Update with
interzone self-updateor Manage › Update interzone.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.5.30 Stable
released this
2026-10-29 16:48:07 +03:30 | 72 commits to main since this releaseRooms no longer leaves its screen behind
Fixed
- Going from Rooms to another screen leaves nothing behind. A room name with a tab, a line break or some emoji was drawn wider than interzone measured it, so the terminal scrolled and Rooms' header and keys stayed on screen on Users and elsewhere. Changing screens now redraws the whole window.
- Room names, user names and log lines from the server are made safe to draw: tabs, line breaks and terminal escape codes become spaces, and joined emoji like 👨👩👧👦 are shown as their parts.
- Long names are cut to the space on screen, so names in Chinese, Japanese or with emoji, which take two cells a character, no longer run past their column.
Update with
interzone self-updateor Manage › Update interzone.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.5.29 Stable
released this
2026-10-29 16:15:06 +03:30 | 73 commits to main since this releaseThe Dashboard works again, and sudo passwords with a quote do too
Fixed
- The Dashboard and
interzone statuswork again. Since v0.5.26 Ansible refused to load the play behind them, on every server. Every play interzone writes is now checked by Ansible before a release. - A sudo password with a
'in it works. The quote was lost on its way to Ansible, so becoming root failed. The SSH host, user, port and key are quoted the same way now. - An SSH user, host or Git address starting with
-can't be taken as an option by ssh or git. An answers file passed with--configcould otherwise run a command on this machine. - No crash in very small windows on Backups, Alerts, Move server and Server. A wide layout picked with ctrl+l or
-layout wideswitches to compact when the window can't hold it, instead of drawing past the edges. - The menu fits short windows: it scrolls to where you are, with "more" above and below, instead of pushing the header off.
-plaindrops the menu's and actions' icons, so a screen reader doesn't read them out.- Every command's
-hsays how to use it, and a path that doesn't exist says so plainly instead of a rawstaterror. - Smaller things: the empty roll-back list says when deploys start being recorded, empty lists don't offer keys that do nothing, and typed confirmations no longer show a grey hint that looks like typed text.
Update with
interzone self-updateor Manage › Update interzone.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- The Dashboard and
-
v0.5.28 Stable
released this
2026-10-29 15:16:02 +03:30 | 81 commits to main since this releaseEasier to find your way: go to by name, every key listed, and Review asks before deploying
New
- Go to anything with ctrl+k. Type a few letters of a screen or a Manage action, e.g.
vacorbackup, and enter goes there. Actions that change the server wait for a second enter. ?lists every key of the screen you're on and the ones that work anywhere, in every layout. The footer always keeps "? all keys" when the rest doesn't fit.- Every Manage action has a shortcut:
Aalerts,Rrooms,Ddisk space,Vvacuum,PPostgres upgrade,Ccompress,$database shell,Uupdate interzone,Xuninstall.
Changed
- Review: enter asks before deploying. It shows whether it installs or updates, about how long that takes, what changes in
vars.ymland which checks failed;ythen deploys and anything else steps back. The page now scrolls as a whole with ↑↓. - Review's checks show up as each stage finishes, with the stage running and for how long.
cstops them and keeps what was found. - Choices show which one is picked with ◉ and ○, not only by colour.
- Confirmations look and work the same everywhere: an amber box,
yorenterto go ahead,escto cancel. Deleting a room can't be undone, so it now asks for the worddeleteto be typed. - One name per place: the menu's Updates is now "What's new", Tokens "Sign-up tokens", Rollback "Roll back", and Maintenance's Disk "Disk space", as the Manage actions call them.
- Shorter messages: paths in your home folder are written
~/…, the start-fresh line fits on the screen, and the common errors say first what to do, e.g. "run a full install first: …" or "start Synapse under Maintenance › Services: …".
Update with
interzone self-updateor Manage › Update interzone.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Go to anything with ctrl+k. Type a few letters of a screen or a Manage action, e.g.
-
v0.5.27 Stable
released this
2026-10-29 06:19:06 +03:30 | 90 commits to main since this releaseMatrix room alerts can be chosen; Review no longer crashes
Fixed
- Alerts › Matrix room can be chosen. v0.5.26 announced alerts in a Matrix room, but the Alerts screen only offered plain text and JSON. Now "Matrix room" is the third message format, and choosing it asks for the homeserver, the room and the alerts account's access token.
- Review no longer crashes when you scroll with ↑↓ while the window is too short to show the vars.yml preview, and then make the window taller.
zon Review shows the DNS records in a short window. It used to put them in the hidden preview, so it seemed to do nothing. Now the checks are cut short to make room, with a note that a taller window shows the rest.
Update with
interzone self-updateor Manage › Update interzone.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.5.26 Stable
released this
2026-10-29 05:54:33 +03:30 | 92 commits to main since this releaseAlerts, rooms, a server tester, and locks that keep a running server safe
New
- Alerts. The server checks itself on a timer, even when your computer is off. It looks for failed services, the homeserver not answering, a certificate expiring within 14 days, a disk over 90% full and a mirror not answering. It sends one message when something breaks and one when it's fixed. Messages go to an ntfy topic, to a webhook (Hookshot, Slack, Discord, Mattermost), or into a Matrix room as formatted messages: a coloured headline and a list. Once a day it also sends the playbook's new changelog entries, marking with ★ the ones about your homeserver or components. Find it under Manage › Alerts.
- Test any Matrix server. A new Test section in the menu takes one or more server names, user IDs or URLs and checks each from this computer, as other servers and apps would:
- where federation goes (well-known, SRV records or port 8448), the signing keys, and which software and version answer;
- the client well-known and its CORS header, the client API, the ways to log in and the support file;
- what Element X needs: sliding sync, OAuth 2.0 logins and a call server.
- Rooms (Synapse): every room on the server, biggest first. Block or unblock one, delete one for everyone here, or delete its history older than a number of days.
- Add many users at once from a CSV file with lines of the form
username[,password][,admin]. Missing passwords are generated, and all of them are saved next to the file as…-passwords.csv, readable only by you. - The Dashboard shows 30 days of history: load, memory and disk as small graphs, and roughly when the disk will be full at the current rate.
- Review checks more before deploying:
- the memory and disk your choice of components needs;
- the ports a firewall must let in, and whether each one gets through from outside;
- federation, the way a federation tester does;
- the server as apps see it.
- DNS records as zone-file lines, to paste into your DNS provider:
zon Review, orinterzone dns. - Updates: see the playbook's new changelog entries first, yours on top, and
ddoes a dry run that shows what an update would change on the server before it does. - Federate with only some servers, or with all but some, on the Server step.
- Maintenance › Disk: see what uses the disk, prune Docker, and set how long media cached from other servers is kept.
- Plain mode for screen readers and logs:
-plainorINTERZONE_PLAIN=1. It gives you no colours, ASCII boxes and bars, and no animation. - Start fresh:
Ron the Servers screen, or--reset, makes interzone forget every server and opens the wizard. Nothing is deleted: its config and data folders are moved aside as*.old-DATE.
Changed
- Choices a running server can't survive are locked. After installing or importing a server, its domain, its homeserver and (on Synapse) whether it uses MAS can't be changed in the setup, and deploys refuse to change them. Each lock says why, and what to do instead.
--resetused to show empty answers for the active server only. It now resets everything, as Start fresh does.
Update with
interzone self-updateor Manage › Update interzone.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.5.25 Stable
released this
2026-10-27 22:25:17 +03:30 | 112 commits to main since this releaseBlackout mode picks its mirrors; Maintenance from the playbook's docs
New
- Blackout mode picks working mirrors by itself. Choosing blackout on the Server step points every download at the in-country defaults. Before deploying, interzone checks them against the server and swaps in another known mirror where one falls short: PyPI before installing Ansible, the container registry against every image your services use, and the OS and Docker package mirrors against the server's distro and release. Each switch is logged and saved.
- Maintenance (Manage's menu), one tab per task from the playbook's docs:
- Services: start, stop or reinstall every service or one group. Reinstalling everything also removes components you've turned off, which a normal update leaves installed.
- Vacuum the database with any of the five presets.
- Upgrade Postgres to its newest major version, keeping the old data.
- Compress Synapse's state.
- Tags: run any playbook tags with extra vars.
- Uninstall everything, after typing the domain.
- Database shell: Manage opens
psqlon the server right in the terminal.
Update with
interzone self-updateor Manage › Update interzone.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads