Directory
Circuits
Somebody has already set up nginx, locked down SSH and added the deploy users. Here's their circuit. Add one module block, point it at your hosts, and plan.
baseline
OfficialA sensible start for any server: time zone, chrony, sysctl settings and SSH that only takes keys.
source = "github.com/conn3xorg/circuit-baseline?ref=v0.1.0"Tested on Rocky 10, Fedora 45, Ubuntu 24.04, Debian 13
nginx
OfficialInstalls nginx, writes your site, keeps the service running and opens port 80 in firewalld or ufw.
source = "github.com/conn3xorg/circuit-nginx?ref=v0.1.0"Tested on Rocky 10, Fedora 45, Ubuntu 24.04, Debian 13
node-exporter
OfficialRuns Prometheus node_exporter at a pinned, checksummed version as its own system user.
source = "github.com/conn3xorg/circuit-node-exporter?ref=v0.1.0"Tested on Rocky 10, Fedora 45, Ubuntu 24.04, Debian 13
users
OfficialCreates users, groups and their SSH keys from one map, with optional passwordless sudo.
source = "github.com/conn3xorg/circuit-users?ref=v0.1.0"Tested on Rocky 10, Fedora 45, Ubuntu 24.04, Debian 13
Nothing matches yet. Maybe it's yours to write.
Use one
A circuit here is an ordinary module. Give it your hosts, run conn3x init to fetch it, and the plan shows every step it will take on every host, like any circuit of your own.
module "web" {
source = "github.com/conn3xorg/circuit-nginx?ref=v0.1.0"
hosts = { web1 = "203.0.113.10" }
}Pin ref to a tag, read the circuit before you run it, and bump the tag when you're ready for a new version. It's code that runs as root on your servers, so treat it like any other dependency.