Komodo
Run Komodo with MongoDB or FerretDB as a Docker Compose project.
komodo.sh downloads Komodo's official Compose file and compose.env, fills
in generated secrets and starts the stack under the project name komodo.
| Run it | Inside the container or VM. On a Proxmox VE host confirm_not_pve_host warns and asks Continue anyway? (y/N) |
| Requires | Docker with the Compose plugin (ensure_docker offers to install Docker) and openssl (installed with apk or apt-get if missing) |
| Supported OS | Not checked by the script; the dependency steps cover Alpine and apt-get systems |
| Port | 9120 |
| Source | tools/addon/komodo.sh |
Run
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/komodo.sh)"Prompts
| Prompt | Answer |
|---|---|
Install Komodo? (y/N) | y installs. Anything else exits |
Install Docker now? (y/N) (only when Docker is missing) | y installs Docker. Anything else exits with code 254 |
Enter your choice (default: 1): under Choose the database for Komodo: | 1 MongoDB (recommended), 2 FerretDB. Empty or invalid input uses MongoDB |
When /opt/komodo already exists:
| Prompt | Answer |
|---|---|
Uninstall Komodo? (y/N) | y removes it |
Update Komodo? (y/N) | y updates. Anything else exits with No action selected |
What it creates
| Item | Value |
|---|---|
| Compose file | /opt/komodo/mongo.compose.yaml or /opt/komodo/ferretdb.compose.yaml, from compose/ in the moghtech/komodo repository |
| Environment | /opt/komodo/compose.env |
| Database user | KOMODO_DATABASE_USERNAME=komodo_admin with a random 21-character password |
| Secrets | Random KOMODO_WEBHOOK_SECRET and KOMODO_JWT_SECRET (32 characters each) |
| Host setting | KOMODO_HOST=http://<ip>:9120 |
| Login | User admin, random 16-character password, printed and appended to ~/komodo.creds |
| Address | http://<ip>:9120 |
After starting the stack the script polls http://127.0.0.1:9120 up to 60
times, three seconds apart. If it never answers, the script points you to
docker logs komodo-core-1.
Update
Run the script again and answer y to Update Komodo?, or call update mode
directly:
type=update bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/komodo.sh)"The update:
- Finds the
*.compose.yamlfile in/opt/komodo. - Copies it and
compose.envto backups with a.bak_<date>_<time>suffix. - Downloads the current version of that Compose file. If the download fails, the backup is restored and the script exits with code 115.
- Applies the Komodo v2 changes to
compose.envwhen they are missing:COMPOSE_KOMODO_IMAGE_TAG=latestbecomes2,KOMODO_DB_USERNAME/KOMODO_DB_PASSWORDare renamed toKOMODO_DATABASE_USERNAME/KOMODO_DATABASE_PASSWORD,KOMODO_PASSKEYis removed,PERIPHERY_CORE_PUBLIC_KEYS=file:/config/keys/core.pubandCOMPOSE_KOMODO_BACKUPS_PATH=/etc/komodo/backupsare added. - Runs
docker compose pullandup -d.
The script does not create /usr/local/bin/update_komodo, so the container's
update command does not offer Komodo.
Remove
Uninstall Komodo? runs docker compose down --volumes --remove-orphans for
the komodo project and deletes /opt/komodo. The database volumes are
deleted with it. ~/komodo.creds and Docker stay.
Limits
- An installation that still uses
sqlite.compose.yamlorpostgres.compose.yamlcannot be updated. The script exits with code 238 and links to the migration guide. - If
/opt/komodoexists but holds no*.compose.yaml, update and uninstall stop with code 233.