Circuits you can borrow, and a place to share yours

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.

Share yours
  1. baseline

    Official

    A sensible start for any server: time zone, chrony, sysctl settings and SSH that only takes keys.

    conn3xorg/circuit-baseline · v0.1.0

    source = "github.com/conn3xorg/circuit-baseline?ref=v0.1.0"

    Tested on Rocky 10, Fedora 45, Ubuntu 24.04, Debian 13

    • security
    • ssh
    • time
  2. nginx

    Official

    Installs nginx, writes your site, keeps the service running and opens port 80 in firewalld or ufw.

    conn3xorg/circuit-nginx · v0.1.0

    source = "github.com/conn3xorg/circuit-nginx?ref=v0.1.0"

    Tested on Rocky 10, Fedora 45, Ubuntu 24.04, Debian 13

    • web
    • nginx
    • firewall
  3. Runs Prometheus node_exporter at a pinned, checksummed version as its own system user.

    conn3xorg/circuit-node-exporter · v0.1.0

    source = "github.com/conn3xorg/circuit-node-exporter?ref=v0.1.0"

    Tested on Rocky 10, Fedora 45, Ubuntu 24.04, Debian 13

    • monitoring
    • prometheus
  4. users

    Official

    Creates users, groups and their SSH keys from one map, with optional passwordless sudo.

    conn3xorg/circuit-users · v0.1.0

    source = "github.com/conn3xorg/circuit-users?ref=v0.1.0"

    Tested on Rocky 10, Fedora 45, Ubuntu 24.04, Debian 13

    • users
    • ssh
    • sudo

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.