Skip to content

Releases

v1.0.0-beta.25

Choose a tag to compare

@github-actions github-actions released this 05 Nov 11:53

In short: a new terminal UI, moin login through the browser and a new home page: the fastest way to run your apps, from any screen.

New

  • A new terminal UI: moin opens a dashboard of your apps and servers, space shows everything you can do, space space searches apps, servers and actions, esc goes back.
  • Instant start: the terminal UI shows your last view at once and refreshes behind it; switches and env changes show before the server answers.
  • Log in through the browser: moin login and the terminal UI show a code, you approve it in the browser with GitHub, an email link or your password, done. No token to copy.
  • Your computers under Tokens: each browser login shows as "CLI on ", ends after 90 days without use, and you can sign it out one by one.
  • Where things work: a docs page lists every feature for web, CLI, terminal UI, API and MCP, with the reason where one is missing.
  • A new home page: one calm screen with a wall of app containers, then everything moin does in tabs, live in two minutes, security, backups, four ways in and a comparison.
  • Built in the open: the home page shows how often moin ships, read from the changelog.

Changed

  • One promise everywhere: Deploy anything. Lose nothing. Your apps on your servers. Every change backed up. Every restore tested. Home, sign-in, docs, CLI and catalog say the same.
  • Deploy now: the main button says Deploy now everywhere, instead of Get started or Start free.
  • Calmer navbar: on a phone only the logo and the menu; Apps has no New badge; GitHub stars show from 1,000 on.
  • Comparison in black and white: color only means status now.
  • moin login in a terminal: it always goes through the browser; pass a token with --token, on stdin or as MOIN_TOKEN.
  • Setup in the web: the terminal UI covers daily work; team, billing, adding servers, GitHub, the catalog and SQL open the right page in the browser.

Fixed

  • http on your tailnet: the CLI connects over plain http to short tailnet names like your server's name, not only to IP addresses.

Upgrade

Self-hosted: Update now, or sh update.sh. CLI: curl -fsSL https://moin.run/cli.sh | sh.

v1.0.0-beta.24

Choose a tag to compare

@github-actions github-actions released this 05 Nov 08:04

In short: the old name ops is gone: only moin and its names work now, so update scripts, CI and compose files that still say ops.

Changed

  • Guides: a small book icon on each card opens its guide, instead of a "How it works" link.
  • x-ops stops a deploy: a compose.yml with an x-ops block fails with a message to rename it to x-moin, instead of counting.
  • Instant address user: the user in front of a protected instant address is moin, and moin protect asks for moin by default; it takes effect with the app's next deploy.
  • Rules file: the agent reads only /etc/moin/rules. Move /etc/ops/rules there if you still have one.

Fixed

  • Switches stay where you put them: every switch saves only its own setting and shows what was saved, so "Deploy every push" no longer flips back when GitHub is slow.
  • Uptime pause sticks: pausing a check holds, even when a check was running at that moment or the control plane restarts.

Removed

  • The ops command: use moin. An agent still installed as ops no longer updates itself; install moin on that server again.
  • OPS_* variables: use MOIN_URL, MOIN_TOKEN, MOIN_STATE_DIR, MOIN_RULES, MOIN_IMAGE and MOIN_PULL.
  • The old CLI config folder: run moin login once if the CLI says you are not logged in.
  • Old downloads and image: /download/ops-* and ghcr.io/axadrn/ops-controlplane get no new releases; use /download/moin-* and ghcr.io/axadrn/moin.
  • X-Ops-Signature: webhooks carry only X-Moin-Signature.
  • The move from ops: update.sh no longer copies /etc/ops-controlplane, and settings that point to /run/ops-controlplane need /run/moin-controlplane.

Upgrade

Self-hosted: Update now, or sh update.sh; agents update themselves. CLI: curl -fsSL https://moin.run/cli.sh | sh.

v1.0.0-beta.9

Choose a tag to compare

@github-actions github-actions released this 04 Nov 11:26

In short: a new domain on a server without a Cloudflare Tunnel gets its HTTPS certificate again; update if you add domains.

Fixed

  • HTTPS for new domains: since beta.1, a domain added on a server that serves ports 80 and 443 itself got no Let's Encrypt certificate and showed a browser warning. It gets one again on the next deploy. Servers behind a Cloudflare Tunnel were never affected.

Upgrade

Self-hosted: Update now, or sh update.sh. Agents update themselves; then deploy each app with a new domain once.

v1.0.0-beta.8

Choose a tag to compare

@github-actions github-actions released this 04 Nov 10:32

In short: the app page puts Deploy from GitHub first; deploying from CI waits behind one click.

Changed

  • Deploy from CI: deploying an image and the deploy hook now sit folded under Deploy from CI on the app page, so the GitHub Deploy is the one you see. An app with a hook shows it open.

Upgrade

Self-hosted: Update now, or sh update.sh. Agents update themselves.

v1.0.0-beta.7

Choose a tag to compare

@github-actions github-actions released this 04 Nov 09:46

In short: apps and servers are slim cards you drag as a whole, the version of ops is always in sight, and changing repos on github.com no longer ends on an error.

New

  • Version in the sidebar: the control plane's version sits at the bottom of the sidebar and opens the changelog.
  • Update pending: a server whose agent is behind says so next to its version; it updates itself on its next connect.

Changed

  • Apps and servers lists: every app and server is a slim card of its own, with its grip on the left, the same on both pages.
  • List and grid switch: icons only.

Fixed

  • GitHub repos changed on github.com: coming back to ops no longer shows "GitHub is not connected"; the change was saved all along.

Upgrade

Self-hosted: Update now, or sh update.sh. Agents update themselves.

v1.0.0-beta.6

Choose a tag to compare

@github-actions github-actions released this 04 Nov 09:24

In short: every agent now updates itself, so metrics arrive everywhere, charts move to a file of their own to keep the database small, and the app tabs fit on a phone.

Changed

  • Charts in their own file: metrics and hourly uptime live in history.db next to the database, without a backup. The database stays small and a restore fast. The charts start over once; outages and uptime state stay.
  • Home page: the live numbers show from 1,000 deploys on.

Fixed

  • Agents that never updated: an agent built from a commit instead of a release, such as one installed from main, now updates itself like any older agent.
  • Metrics page: no longer tells you to update agents by hand; they update themselves.
  • App tabs on a phone: Overview, Data, Backups, Uptime and Metrics no longer push the page wider than the screen; swipe them.

Upgrade

Self-hosted: Update now, or sh update.sh. Agents update themselves.

v1.0.0-beta.23

Choose a tag to compare

@github-actions github-actions released this 04 Nov 22:10

In short: page counts only on the public site, never inside your workspace.

Changed

  • Analytics only where it belongs: the home page, docs, changelog, catalog and legal pages are counted; the app, the admin and sign-in never are, so no workspace or app name and no sign-in link reaches a page counter.

Upgrade

Self-hosted: Update now, or sh update.sh.

v1.0.0-beta.22

Choose a tag to compare

@github-actions github-actions released this 04 Nov 21:12

In short: every app in the catalog speaks moin now, so installs keep working after the old name goes on December 4.

Fixed

  • Catalog after December 4: the 47 apps still used the old x-ops block in their compose files and would have stopped installing then. They use x-moin now.
  • Messages: the last hints that still said ops deploy say moin deploy.

Upgrade

Self-hosted: Update now, or sh update.sh. Agents update themselves.

v1.0.0-beta.21

Choose a tag to compare

@github-actions github-actions released this 04 Nov 20:54

In short: the site says everything moin does today: Postgres next to SQLite everywhere, a fair comparison with sources, and answers to the questions people ask now.

Changed

  • Postgres everywhere it belongs: the homepage, the comparison and the docs name Postgres next to SQLite, for backups to any second, the daily restore check and the data browser.
  • A fairer comparison: a new row for Postgres backups, every competitor fact from their own docs.
  • Answers that are true today: any language deploys without a Dockerfile, the catalog, instant addresses, moin exec, and alerts for backups, deploys and full disks.
  • Roadmap: what shipped moved to Now; MySQL backups are next.
  • A new footer: product, docs, open source and company, at a glance.
  • Why moin: its own section on the homepage, linked under the buttons.

Fixed

  • Self-hosting commands: the install URL and git clone pointed at the old repository name.

Upgrade

Self-hosted: Update now, or sh update.sh.

v1.0.0-beta.20

Choose a tag to compare

@github-actions github-actions released this 04 Nov 20:04

In short: ops is now moin, at moin.run. Deploy anything. Lose nothing. Everything you run moves over by itself, and nothing breaks on the way.

Why

moin is how Hamburg says hello. Hamburg is a container port, and your apps run in containers too. The story.

Changed

  • New name, new home: moin at moin.run, the command moin, the logo moin.. The old address sends you to the new one.
  • Your servers move by themselves: the next agent update renames everything on the server to moin, copies each app's data and checks it file by file. Apps keep serving while it moves.
  • Backups go on: Postgres starts a fresh continuous backup under its new name right away. Every older snapshot and point in time still restores.
  • Self-hosted moves too: update.sh copies your settings and data to the new folders and starts moin from the image ghcr.io/axadrn/moin. The old folders stay.
  • Old names keep working until December 4, 2026: the ops command, x-ops in compose.yml, OPS_* variables, the old download paths and image, and the X-Ops-Signature webhook header next to the new X-Moin-Signature.
  • One address for everything: write to hello@moin.run.

Upgrade

Hosted: nothing to do. Self-hosted: Update now, or sh update.sh; agents follow by themselves. CLI: curl -fsSL https://moin.run/cli.sh | sh.