Installation Docker
Installation de Dokos avec Docker
Pré-requis
Installer Docker
Si Docker n'est pas installé sur votre serveur, vous pouvez utiliser la commande suivante ou vous reporter à la documentation de Docker.
curl -fsSL https://get.docker.com | sudo bash
Ensuite, suivez les étapes de post-installation Docker si nécessaire.
sudo groupadd docker
sudo usermod -aG docker $USER
exit
Enfin, vérifiez l'installation de Docker avec les commandes suivantes.
docker --version
docker compose version
docker run hello-world
Télécharger le fichier Compose pour Dokos
Téléchargez le fichier compose.yaml pour Dokos depuis le dépôt GitLab de Docli (bench comme nous le verrons plus tard).
Par défaut, la version de Dokos utilisée est la dernière version stable, disponible avec le tag latest.
curl -o compose.yaml https://gitlab.com/dokos/docli/-/raw/develop/compose/dokos.yaml
Lancer Dokos
Vous pouvez ensuite lancer le conteneur de Dokos avec :
docker compose up -d
Le fichier lance MariaDB 10.6, trois serveurs Redis et Dokos. Au premier démarrage, le service create-site crée le site frontend avec les applications Payments, Dokos, HRMS et Webshop. Cette étape prend quelques minutes : le site reste indisponible pendant ce temps.
admin pour l'utilisateur Administrator et pour l'utilisateur root de MariaDB. Changez-les avant d'exposer le serveur sur Internet.Accéder à Dokos
Vous pouvez accéder à Dokos en accédant au port 8080 du serveur dans votre navigateur, par exemple http://localhost:8080 si le conteneur tourne sur votre ordinateur.
Ensuite, vous pouvez vous connecter avec les identifiants suivants :
- Nom d'utilisateur :
Administrator - Mot de passe :
admin
Administrator après la finalisation de l'installation.
Pour changer le mot de passe, cliquez sur votre avatar en haut à droite, puis sur Mes paramètres. Dans l'onglet Paramètres, ouvrez la section Modification de mot de passe.Arrêter Dokos
Pour arrêter Dokos, vous pouvez utiliser la commande suivante :
docker compose down
Configurer son nom de domaine
Pour accéder à Dokos via votre nom de domaine (ex. https://demo.dokos.cloud), il va falloir installer les éléments suivants sur votre serveur:
- Nginx: Reverse proxy permettant de rediriger votre nom de domaine vers le port 8080 de votre serveur
- Certbot: Utilitaire permettant de créer un certificat SSL pour une connexion sécurisée
Nous vous recommandons de renforcer cette configuration avec toutes les mesures de sécurité qui vous semblent appropriées.
1. Effectuer une redirection DNS
La première étape consiste à aller dans les paramètres DNS de votre nom de domaine et à ajouter une entrée de redirection A vers le serveur sur lequel vous avez installé Dokos.
Ex. demo.dokos.cloud | A | 15.237.107.35
2. Installation de Nginx
Sur Ubuntu, l'installation de Nginx se fait avec la commande suivante:
sudo apt install nginx
Une fois Nginx installé, créez un fichier de configuration pour votre site dans le dossier /etc/nginx/sites-enabled/:
sudo nano /etc/nginx/sites-enabled/demo.conf
Ajoutez-y une redirection vers le port 8080 dans ce fichier et enregistrez le:
server {
server_name demo.dokos.cloud; # A remplacer par votre nom de domaine
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8080;
}
}
Redémarrez Nginx et connectez-vous à l'adresse demo.dokos.cloud pour vérifier que la redirection fonctionne bien.
sudo nginx -t
sudo systemctl reload nginx
3. Création d'un certificat
Installez certbot (https://certbot.eff.org/) sur votre système.
Pour Ubuntu:
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Lancez certbot pour générer un certificat: sudo certbot --nginx
Rechargez la page de votre site (ex. demo.dokos.cloud), vous pourrez constater que votre certificat est actif.
4. Configuration du nom de domaine dans Docker
Le nom de domaine configuré par défaut est http://localhost:8080 ceci afin de permettre que les images s'affichent sur les PDF imprimés.
Pour définir le nom de domaine dans la configuration du site afin qu'il corresponde à la configuration serveur, vous pouvez exécuter la commande suivante :
docker compose run backend bench --site frontend set-config host_name https://site.example.com
Sauvegarder, restaurer, mettre à jour
Sauvegarder Dokos
Pour sauvegarder Dokos une fois lancé, vous pouvez utiliser la commande suivante :
# Le système doit être up pour effectuer une sauvegarde
docker compose run backend bench backup --with-files --compress
Si vous souhaitez récupérer ces sauvegardes depuis l'extérieur du conteneur, vous avez plusieurs possibilités :
- Utiliser
docker cppour copier les fichiers depuis le conteneur vers votre machine.Le fichierdocker cp dodock-backend-1:/home/frappe/frappe-bench/sites/frontend/private/backups/ ./dokos-backupscompose.yamlnomme le projetdodock: le conteneur s'appelle doncdodock-backend-1. Si vous changez le nom du projet (option-p), affichez le nom du conteneur avecdocker compose ps. - Utiliser
docker runpour dupliquer les volumesdb-dataetsites. https://docs.docker.com/storage/volumes/#back-up-restore-or-migrate-data-volumes
Restaurer Dokos
Pour restaurer Dokos, vous devez d'abord démarrer le système et suivre cette procédure :
# Le projet dokos doit être up pour effectuer une restauration
docker compose up -d
# Lister les sauvegardes disponibles
docker compose run backend ls sites/frontend/private/backups
# Restaurer la sauvegarde en spécifiant le nom du fichier
docker compose run backend bench restore \
[...]-frontend-database.sql.gz \
--with-public-files [...]-frontend-files.tar.gz \
--with-private-files [...]-frontend-private-files.tar.gz
Mettre à jour Dokos
Pour mettre à jour Dokos, vous pouvez utiliser la commande suivante :
# Modifiez le numéro de version dans le fichier compose.yaml si besoin
# Télécharger les nouvelles images Docker
docker compose pull
# Relancer les conteneurs
docker compose down
docker compose up -d
# Migrer les sites
docker compose run backend bench --site all migrate
Résolution de problèmes
- La page du bureau est vide après une mise à jour : il faut toujours démonter les conteneurs avec la commande
docker compose downaprès une mise à jour.