A container platform I host myself
Give it a Docker image, a port and a name, and it runs the image on a public HTTPS address in under a minute. It is built for a single ARM64 board, and the machine it runs on opens no ports to the internet at all: traffic arrives over one outbound Cloudflare Tunnel.
An app's address exists only while its container does. The router finds the right container by reading labels Rig writes when it creates one, so nothing has to be set up per app, and deleting an app takes its URL with it.
Access to Docker is split in two, a read-only proxy for the router and a narrower read-write one for the control plane, so a compromise of the part facing the internet cannot start a container. The apps themselves run on their own network, with no host ports, no bind mounts and almost every Linux capability dropped.
TypeScript, Fastify, React, PostgreSQL, Docker, Traefik, Cloudflare Tunnel
Visit rig.tobipi.dev ↗
An npm library
For the things every service needs sooner or later: retries, timeouts, backing off when something is struggling, and a circuit breaker that stops calling a service that's down.
TypeScript, npm