Installing Cloudillo Yourself
Rust Version
This guide is for the Rust implementation of Cloudillo (v0.1.0-alpha). The Node.js version is deprecated and no longer maintained.
Alpha Software
The Rust version is 90% complete. Core functionality works, but some API endpoints are still in development. See Status Page for details.
Before You Begin
- Review Prerequisites to ensure your system meets requirements
- Have a domain name ready with DNS control
- Decide on deployment mode (standalone vs proxy)
Installation Options
You have several options for installing Cloudillo:
- Docker (recommended) - Simplest and most versatile
- Build from source - For development or custom builds
You also need to decide whether to run in:
- Standalone mode - Cloudillo handles HTTPS with Let’s Encrypt
- Proxy mode - Run behind a reverse proxy (nginx, Caddy, etc.)
Running Cloudillo using Docker in Standalone Mode
Warning
Docker images for the Rust version may not be published yet. Check the cloudillo-rs repository for latest status. If not available, use the build from source method below.
Here is the Docker command (adjust image name when available):
You basically need a local directory on your server and mount it to /data inside the container and publish port 443 (HTTPS) and 80 (HTTP). You can read about the configuration environment variables below.
Cloudillo in standalone mode uses TLS certificates managed by Let’s Encrypt. If you want to use different certificates then you have to use Proxy Mode.
DNS Required
For Let’s Encrypt certificate issuance to work you have to ensure that $BASE_APP_DOMAIN and cl-o.$BASE_ID_TAG both have DNS A records pointing to one of $LOCAL_IPS before first starting the container.
Here is a docker-compose for the same:
Security
You should change the default password as soon as possible!
Configuration Environment Variables
| Variable | Value | Default |
|---|---|---|
| MODE | “standalone” or “proxy” | “standalone” |
| LOCAL_IPS | Comma separated list of IP addresses this node serves | * |
| BASE_ID_TAG | ID tag for the admin user to create | * |
| BASE_APP_DOMAIN | App domain for the admin user to create | * |
| BASE_PASSWORD | Password for the admin user to create | * |
| ACME_EMAIL | Email address for ACME registration | - |
| ACME_TERMS_AGREED | Whether to agree to ACME terms | - |
| DATA_DIR | Path to the data directory | /data |
| PRIVATE_DATA_DIR | Path to the private data directory | $DATA/priv |
| PUBLIC_DATA_DIR | Path to the public data directory | $DATA/pub |
In case you are not familiar with the Cloudillo Identity System we provide some information about the notions used above:
The ID tag is the unique identifier of a Cloudillo profile. It can be any domain name associated with a user.
The App Domain is the domain address used by the user to access their Cloudillo shell. Currently the App Domain is also unique for every user, but it might change in the future. It is preferably the same as the ID tag of the user, but it can be different when the domain is used by an other site.
For a domain to work as a Cloudillo Identity it must serve a Cloudillo API endpoint accessable at the cl-o subdomain. In the above example you have to create the following DNS records:
| Name | Type | Value | Purpose |
|---|---|---|---|
| agatha.example.com | A | 1.2.3.4 | App domain (APP_DOMAIN) |
| cl-o.agatha.example.com | A | 1.2.3.4 | API domain (cl-o.ID_TAG) |
Running Cloudillo using Docker in Proxy Mode
An other one-liner:
In proxy mode you have to provide your own solution for TLS certificates. In proxy mode Cloudillo serves its API port on 1443 but using HTTP and it doesn’t serve the HTTP port by default. You should provide your own redirections. However, you can turn it on with the LISTEN_HTTP=1080 environment variable.
We provide an example nginx configuration:
Building from Source
For the latest features or if Docker images aren’t available yet, build from source:
Prerequisites
Clone and Build
Run the Server
Next Steps
After installation:
- Verify Installation: Access https://your-domain.com
- Configure First User: Login with credentials you set
- Review Features: Check Status Page for available features
- Follow First Steps: First Steps Guide →
More Information
- Rust Version Repository: https://github.com/cloudillo/cloudillo-rs
- Feature Status: Status Page
- Prerequisites: Prerequisites