Download & install
One Docker container, no external database. You only need Docker with the Compose plugin.
1
Install Docker
Install Docker with the Compose plugin on your server.
2
Create a docker-compose.yml
Copy the file below (or the one in the repo).
services:
cloudbank:
image: ghcr.io/easly1989/cloudbank:main # latest stable release
container_name: cloudbank
restart: unless-stopped
ports:
- "8080:8080"
environment:
CB_SECURE_COOKIES: "false" # behind HTTPS? set to "true"
volumes:
- cloudbank-data:/data
volumes:
cloudbank-data: 3
Start it
docker compose up -d — the whole install, one container.
4
Open the app
Visit http://localhost:8080 and complete the first-run admin setup. Your data lives in the cloudbank-data volume.
Image tags
Images are published to GHCR: ghcr.io/easly1989/cloudbank. The tag scheme is
intentional — :main is stable, :latest is the nightly.
| Tag | Meaning |
|---|---|
:main | Latest stable release — use this for a stable self-hosted install. |
:latest | Nightly build from the main branch — bleeding edge, may break. |
:vX.Y.Z | A specific released version (also :vX.Y). |
Configuration
| Env var | Default | Description |
|---|---|---|
CB_ADDR | :8080 | Address the HTTP server listens on. |
CB_DATA_DIR | /data | Directory holding the SQLite database and backups. |
CB_LOG_LEVEL | info | debug, info, warn or error. |
CB_SECURE_COOKIES | true | Set false for plain-HTTP LAN installs (no TLS). |
CB_RATE_URL | frankfurter.app | Override the online exchange-rate API root. |