Quick install
Install KumoYami on a Linux server with a single command.
The installer sets everything up on a Linux server or VPS: it installs Docker if needed, logs in to the private registry with your license, downloads KumoYami's files, sets up HTTPS with Caddy if you give it a domain, starts the site and shows you the code for the first-run setup.
ARM: coming soon
KumoYami's image is x86_64 only for now (Intel and AMD processors). The ARM build (arm64: Raspberry Pi, Apple Silicon Macs, ARM servers and NAS) is coming in an upcoming release, and this guide will be updated when it lands.
Before you start
- A Linux server (Debian, Ubuntu, Rocky, Alma…) with
rootorsudoaccess, at least 1 GB of RAM and 5 GB of free disk space. - Your license ID (
lic_…) and key (KY1.…), from your purchase email. - If you want HTTPS from the start: a domain (for example
nube.example.com) with anArecord pointing at the server's IP, and ports 80 and 443 free and open in the firewall.
Install
Run the installer
Connect to the server over SSH and run:
curl -fsSL https://kumoyami.com/install.sh | sudo bashAnswer its questions
- Docker: if it isn't installed, it asks whether to install it (with the official script from get.docker.com).
- License: the
lic_…ID and theKY1.…key. The key isn't shown as you type it. - Domain: enter one for automatic HTTPS with Caddy, or leave it empty to skip.
- Email for Let's Encrypt: optional.
Note down the setup code
When it finishes, the installer shows a box with the initial setup code and the address of the admin panel. Open
https://your-domain/admin, enter the code and follow the setup wizard.
If you didn't give it a domain, KumoYami is only reachable from the server itself. To open the panel from your own
computer, start an SSH tunnel and visit http://localhost:4890/admin:
ssh -L 4890:127.0.0.1:4890 root@SERVER-IPWhen you're ready for a domain, run the installer again with --domain, or use
your own reverse proxy.
What it does, step by step
- Checks the system is Linux on x86_64 or aarch64, that it's running as root, and that there's enough memory and disk (it warns below 1 GB of RAM or 5 GB free).
- Installs Docker and the
docker composeplugin if they're missing, and starts the service. - Logs in to
registry.kumoyami.comwith your license (docker login). If there's already a session, it asks whether to keep it. - Creates the install folder,
/opt/kumoyamiby default, with:docker-compose.yml, downloaded fromkumoyami.com/install/docker-compose.yml..env, created fromkumoyami.com/install/env.example(the first time only; after that it's kept).datos/, where KumoYami keeps its settings, owned by the container's user (uid 1000).
- With a domain: checks that ports 80 and 443 are free and that DNS points at the server, then writes a
Caddyfileand adocker-compose.override.ymlwith Caddy. - Pulls the image, starts the containers and waits up to 2 minutes for the setup code to appear.
You can run it again whenever you like: it updates docker-compose.yml (keeping the old one as
docker-compose.yml.bak-DATE), keeps .env and your data, then pulls and restarts the containers.
Options
With curl | bash, options go after bash -s --:
curl -fsSL https://kumoyami.com/install.sh | sudo bash -s -- --domain nube.example.com --email you@example.com| Option | What it does |
|---|---|
--domain DOMAIN | Enables automatic HTTPS with Caddy for that domain. |
--email EMAIL | Contact email for Let's Encrypt (optional). |
--dir PATH | Install folder (/opt/kumoyami by default). |
--no-caddy | Doesn't set up Caddy, and turns it off if an earlier run enabled it. |
--keep-compose | Keeps the current docker-compose.yml instead of updating it. |
--unattended | No questions: the license details come from environment variables. |
-h, --help | Shows the help. |
Environment variables
| Variable | What it does |
|---|---|
KUMOYAMI_LICENSE_ID | License ID (lic_ and 12 hexadecimal characters). |
KUMOYAMI_LICENSE_KEY | License key (starts with KY1.). |
KUMOYAMI_DIR | Same as --dir. |
KUMOYAMI_DOMAIN | Same as --domain. |
KUMOYAMI_EMAIL | Same as --email. |
KUMOYAMI_INSTALL_DOCKER | yes: installs Docker without asking. no: never installs it. |
With sudo, variables go after sudo (any you've exported don't make it through). For example, an install with
no questions asked:
curl -fsSL https://kumoyami.com/install.sh | sudo KUMOYAMI_LICENSE_ID=lic_xxxxxxxxxxxx \
KUMOYAMI_LICENSE_KEY='KY1.…' bash -s -- --unattended --domain nube.example.com--unattended needs the ID and the key, unless the server is already logged in to the registry.
Handy commands
In the install folder (cd /opt/kumoyami):
docker compose logs -f web # follow the logs (Ctrl+C to exit)
docker compose pull && docker compose up -d # update
docker compose logs web | grep -i código # show the setup code againSettings live in /opt/kumoyami/.env and data in /opt/kumoyami/datos.