Docker

Une image tout-en-un — le core et vingt-et-un modules — déployée avec sa base de données. C'est la voie la plus courte : une commande, et rien à préparer sur la machine hôte.

Pré-requis #

  • Un serveur Linux x86-64 — l'image publiée n'existe pas pour ARM.
  • Docker : le script l'installe lui-même s'il manque.
  • Le port 8080 libre, ou un autre avec --port.
Note

PostgreSQL n'est pas dans l'image Kubuno : le déploiement lance deux conteneurs, l'un pour Kubuno, l'autre pour PostgreSQL 16. Vous n'avez rien à installer ni à configurer pour autant.

Installation #

curl -fsSL https://raw.githubusercontent.com/kubuno/docker/main/install.sh | sudo bash

Votre instance répond ensuite sur http://<ip-du-serveur>:8080.

Le mot de passe du premier administrateur #

Il n'y a pas de mot de passe par défaut. Deux cas :

  • vous passez --admin-password : c'est le vôtre ;
  • vous n'en passez pas : le serveur en tire un au hasard, le dépose dans un fichier que lui seul peut lire, et exige son changement à la première connexion.
sudo /opt/kubuno/compose.sh exec kubuno cat /var/lib/kubuno/initial-admin-password

Avec un domaine et HTTPS #

Le certificat est obtenu et renouvelé tout seul. Ouvrez les ports 80 et 443, et faites pointer le DNS vers le serveur avant de lancer la commande.

curl -fsSL https://raw.githubusercontent.com/kubuno/docker/main/install.sh \
  | sudo bash -s -- --domain cloud.exemple.com --email vous@exemple.com

Les options du script #

OptionEffet
--domainSert l'instance sur ce domaine, en HTTPS.
--emailAdresse de contact pour le certificat.
--portPort d'écoute sur l'hôte, à la place de 8080.
--dirRépertoire d'installation et de données.
--tagVersion d'image à déployer, au lieu de la plus récente.
--admin-user, --admin-password, --admin-emailCrée le compte administrateur sans passer par l'assistant.
--no-auto-updateN'installe pas la mise à jour automatique quotidienne.
--uninstallRetire l'installation.

Mettre à jour #

Le script installe par défaut une mise à jour automatique quotidienne (une tâche cron, à 4h30). Pour mettre à jour tout de suite, relancez exactement la même commande : l'image est retéléchargée et le conteneur redémarré. Vos données, vos secrets et votre configuration sont conservés.

curl -fsSL https://raw.githubusercontent.com/kubuno/docker/main/install.sh | sudo bash

Docker Compose #

Si vous préférez piloter vous-même, la même image se déploie avec Compose — y compris sur macOS et Windows via Docker Desktop.

git clone https://github.com/kubuno/docker && cd docker
cp .env.docker.example .env   # renseignez les secrets
docker compose -f docker-compose.yml -f docker-compose.prod.yml pull
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d

Sauvegarder #

Deux choses à emporter : la base et le volume de données (fichiers des utilisateurs, données des modules, thèmes).

sudo /opt/kubuno/compose.sh exec db pg_dump -U kubuno kubuno > kubuno.sql
# puis une copie du volume Docker kubuno-data

Désinstaller #

curl -fsSL https://raw.githubusercontent.com/kubuno/docker/main/install.sh | sudo bash -s -- --uninstall
Attention

Cette commande efface aussi vos données : conteneurs, images, volumes — donc la base et les fichiers — et le répertoire d'installation avec ses secrets. Elle ne demande aucune confirmation. Sauvegardez avant.

Modules

Les vingt-et-un modules sont déjà dans l'image : rien à installer en plus, et la console d'administration ne sert pas à en ajouter ici. Une autre sélection se décide au moment de construire l'image — voyez le dépôt kubuno/docker.