selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Torollo logo

Self-host Torollo

v1.2.5

Visual system-design lab running real Docker containers

ReleaseOpen SourceMIT
Docker ComposeCompose file & guide
docker compose up --build -d
Updatedlast month
LanguageTypescript
Setup difficultyEasy
ThemeDark mode
Stars
449
Port
23232 (Browser-facing frontend/proxy port)
Requires
Docker
Roadmap step validated against running Docker containers: failed check, firewall fix, passing check.The canvas with four running nodes inside a VPC and the node library open.Database inspector with resource limits, replication and partitioning controls, and SQL shell.A roadmap step failing validation with an explanatory toast.

What is Torollo?

Torollo is a browser-based lab for practicing backend architecture and network fundamentals entirely on your own computer. The canvas is no drawing toy: dropping a card starts an actual container on your local Docker daemon, so Postgres, Redis, MongoDB, RabbitMQ, an Nginx balancer, Ubuntu hosts, auto-scaling groups, subnets, NAT and firewall rules all genuinely exist while you play. Subnet isolation rides on Docker bridge networks, security-group policies become iptables entries inside each container, and the gateway uses real ip_forward plus MASQUERADE routing. In-browser terminals exec into any running container, and data explorers let you fire live SQL or inspect stored keys. The teaching layer is a set of graded roadmaps whose validators probe your running lab — schema contents, port reachability, HTTP replies — before a step turns green. Roadmap files are open JSON you can author or import yourself; three are free while a paid incident bundle is sold separately. Launch it via npx or the included Compose stack; nothing leaves your machine unless you opt into anonymous telemetry. One caveat: there is no login at all, so exposing it beyond localhost hands Docker control to whoever can reach the port.

Should you self-host Torollo?

Torollo scores 47/100 on selfhost.directory (how scoring works) and ranks #15 of 30 in Education. It has 449 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v1.2.5, came out on 10 September 2026. New versions land roughly every 2 days.

Setup is easy: most people get it running in one sitting. It is MIT-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is CTFd (70/100, 6 894 stars). It scores higher overall, so compare the two before you pick. See Torollo vs CTFd side by side.

Features

  • Anonymous opt-in telemetryOpt-in only; can be hard-disabled by self-hosters at build time.
  • Auto scaling groups
  • Built-in database explorers
  • CLI environment diagnostics
  • Custom roadmap import (JSON/zip)
  • Guided auto-graded learning roadmaps
  • In-browser web terminals
  • Multilingual UI (English/French)
  • NAT Gateway
  • Nginx load balancer
  • Per-container resource limits
  • Security groups as iptables rules
  • Traffic simulator
  • VPC and subnet simulation

Torollo README

How to install Torollo

Install Torollo with Docker Compose

Environment variables
COMPOSE_PROJECT_NAME, TOROLLO_BIND_ADDRESS, TOROLLO_FRONTEND_PORT, TOROLLO_BACKEND_PORT, TOROLLO_DOCKER_SOCKET, TOROLLO_ALLOWED_ORIGINS
cp .env.example .env # optional: defaults work for localhost
docker compose up --build -d
docker compose logs -f

Opens at http://localhost:23232; mounts the host Docker socket; state in the torollo-data volume.

How to configure Torollo

  • COMPOSE_PROJECT_NAMEtorolloPrefix for containers, networks, and volumes

    Prefix for containers, networks, and volumes

  • TOROLLO_ALLOWED_ORIGINSemptyComma-separated extra browser origins

    Comma-separated extra browser origins

  • TOROLLO_BACKEND_PORT23233Backend port published only by the development override

    Backend port published only by the development override

  • TOROLLO_BIND_ADDRESS127.0.0.1Host address used for published ports

    Host address used for published ports

  • TOROLLO_DOCKER_SOCKET/var/run/docker.sockHost Docker socket to mount into the backend

    Host Docker socket to mount into the backend

  • TOROLLO_FRONTEND_PORT23232Browser-facing frontend/proxy port

    Browser-facing frontend/proxy port

  • TOROLLO_HOST127.0.0.1Address the API binds to when running via the CLI (set to 0.0.0.0 to listen on all interfaces).

    Address the API binds to when running via the CLI (set to 0.0.0.0 to listen on all interfaces).

    values: Any bind address, e.g. 0.0.0.0

  • VITE_TELEMETRY_DOMAINBuild-time domain setting used with the telemetry endpoint.

    Build-time domain setting used with the telemetry endpoint.

  • VITE_TELEMETRY_ENDPOINTBuild-time setting for forks and self-hosters to point anonymous telemetry events at their own Plausible-compatible endpoint; an empty value hard-disables telemetry.

    Build-time setting for forks and self-hosters to point anonymous telemetry events at their own Plausible-compatible endpoint; an empty value hard-disables telemetry.

    values: URL or empty (disables telemetry)

Torollo releases & version history

More in Docker

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…