Repository navigation
OpsCrew 0.1.3
Added
-
A server of its own for a service. Put a database, cache or broker on another server by adding it under
serversinopscrew/plan.yamland naming it in the service'sserver. It can be another Hetzner Cloud server, a DigitalOcean Droplet or a server you already have.opscrew designsizes and prices each server, and estimates the delay each query then adds.- Your app's code doesn't change: only the address it is given does.
status,logs,drift,secure,verifyanddestroycover every server.
-
Moving a running service to another server, with its data.
opscrew provisioncopies PostgreSQL's data in a short maintenance window it shows you first, and pauses deploys meanwhile.opscrew provision --finish-movethen deletes the old copy, after you type the service's name. In a script,--allow-downtimeapproves the window. Valkey, Redis and Dragonfly start empty on the new server; other services that keep data can't move yet. -
A private network between your app's servers (WireGuard): databases and caches on another server listen only there.
-
Your own devices on that network (see Your devices on the private network):
opscrew vpn add <name>writes a WireGuard configuration for a laptop, or for a phone with--qr.opscrew vpn listshows each device and when it last connected;opscrew vpn removetakes one off.opscrew vpn grant <device> <service>gives a device its own login to a database or cache, read-only unless--full;opscrew vpn revokeremoves it. See Your production database from your device.
-
SSH closed to the internet.
opscrew secure --close-public-sshmakes every server answer SSH only on the private network, and--open-public-sshopens it again. If you lose this computer's tunnel, the guide says how to get back in. See Close public SSH. -
Removing a server in a script.
opscrew provision --confirm <app>-<server> --yeslifts the delete protection of a Hetzner server you took out ofservers, then prints the command that deletes it. -
When a deploy fails, and how to recover: what your visitors get, what OpsCrew already put back and what to do next, for each kind of failure.
-
The Claude Code plugin shows each server and the private network in
opscrew_status.opscrew_placement_estimateprices a placement and estimates its delay before you change anything, and the deploy and troubleshoot skills know about several servers.
Fixed
- A script that runs
opscrew provision --approveagain with every hash it was given, the infrastructure plan's and each host plan's, no longer fails with "Saved plan is stale" on servers OpsCrew creates: an infrastructure plan that was already applied is planned afresh. opscrew driftno longer reports a Hetzner firewall rule as changed outside OpsCrew after a provision changed the firewall. The nextopscrew provisionupdates the firewall once.opscrew designno longer makes a server it already created smaller than its disk allows: neither Hetzner Cloud nor DigitalOcean can shrink a disk, so the change used to fail at the provider. It keeps the server's type, says why, and keeps the server in its location rather than proposing to replace it.opscrew destroystops before changing anything while the server's own runner is running a job, which GitHub would refuse to delete, and says to wait for the job or cancel it.opscrew promotenames the branch an environment really deploys from. Its hint for--versionon a server environment now says how to go back to an earlier version.opscrew secure's advice for a pending reboot no longer suggestssudoon servers OpsCrew created, where the deploy user has none.
Full changelog: v0.1.2...v0.1.3