Install on Linux (and macOS)
The one-command installer: what it checks, what it asks, where it puts things.
The same command works on a Mac with Docker Desktop; see “Install on Windows and macOS” for what is different there. The rest of this page is the Linux case: a server, a VM, or a desktop.
What it needs
At least 2 CPU cores, 2 GB of memory and 10 GB of free disk; 4 cores, 4 GB and 20 GB are recommended. Below the minimum the installer warns and asks before going on. Docker is not needed in advance: if it is missing the installer offers to install Docker Engine and the Compose plugin with Docker’s own installer (get.docker.com), and to start the service if it is stopped. On a server where your user is not in the docker group it offers to use sudo.
What it asks
Every question is a yes/no with Enter meaning no, and nothing is changed before you have seen the plan and said yes. If port 3000 or 3001 is taken it suggests the next free port: press Enter to accept it, or type another. Questions are read from your terminal, so they work even through curl | sh. With --yes every question is answered yes, for scripts; without a terminal and without --yes the installer stops rather than guess.
Where it puts things
Two files (docker-compose.yml and .env) in /opt/talos when run as root, otherwise ~/talos. The .env holds generated secrets (hex) and is readable only by its owner. The data lives in Docker volumes named talos_talos_postgres, talos_talos_redis and talos_talos_terraform.
Back up .env as soon as the installer finishes. Its ENCRYPTION_KEY cannot be recovered, and a database backup without it is unreadable.
Running it again
Safe at any time. The installer finds the existing install (by its containers, and by its data volumes even when it is stopped) and updates it in place: same folder, same data, same secrets, same ports. It never starts a second, empty database next to data it can see; if it finds data it cannot place (a renamed folder, a missing .env) it stops and explains instead. It is also how to start a stopped Talos again: the plan says “Start” when nothing else changes. If a newer release has come out since, the plan says “UPGRADE” with both versions before it asks; to only start it, answer no and run it again with --version and the installed version. Without --version it never moves an install to an older version. A custom --dir is remembered (in ~/.talos/install-dir), so a plain re-run finds it even after docker compose down.
Pinning a version, and the public address
--url is where people will open Talos. It is used in invitation and password-reset emails, so set it whenever that is not localhost. All options are listed in “Installer options”.
arm64
Talos runs on arm64 (Graviton, Ampere, Raspberry Pi 4/5 with a 64-bit OS). Some older arm64 kernels have a memory bug Redis 7 refuses to run on; the installer checks for it before starting anything and stops with an explanation. Kernels from 5.10 (and 5.9.12, 5.4.81, 4.19.161, 4.14.210) are fixed.