[Tuto] Installation de Cryptgeon en Docker

Cryptgeon c'est quoi ?
cryptgeon est un système de partage de notes sécurisées, open source mais également un service de partage de fichiers inspiré de PrivNote.
Plus d'info sur le Github Officiel
un site Démo est disponible ici : https://cryptgeon.nicco.io/
## Table des matières
- 1. Prérequis
- 2. Création des conteneurs
- 2.a Préparation du fichier docker-compose.yml
____- 2.b Personnalisation des paramètres de Cryptgeon ( optionnel )
____ - 2.c Création des conteneurs
- 3. Mise en place du reverse-proxy
____- 3.a Paramètres NGINX
- 4. Utilisation de Cryptgeon
____- 4.a Accès à l'interface
C'est parti !
- 1. Prérequis
Avoir une machine compatible Docker
Avoir un accès SSH à la machine
De préférence sous l'architecture amd64 ( bien qu'une image arm64 soit en dévelloppement, cela ne semble pas encore au point pour le moment, plus d'info ici )
Utiliser un reverse-proxy ( et donc avec un nom de domaine, avec un certificat, ... )
- 2. Création des conteneurs
- 2.a Préparation du fichier docker-compose.yml
Sur votre serveur, nous allons créer un dossier cryptgeon avec la commande mkdir :
mkdir cryptgeon
Puis dans ce dossier, créer un fichier docker-compose.yml, par exemple avec l'aide de nano :
nano docker-compose.yml
Donc ce fichier, vous allez copier/coller ce script de créations des conteneurs :
YAML:
version: '3.7'
services:
memcached:
container_name: cryptgeon_memcached
image: memcached:1-alpine
entrypoint: memcached -m 128M -I 4M
restart: unless-stopped
app:
container_name: cryptgeon
image: cupcakearmy/cryptgeon:latest
depends_on:
- memcached
environment:
SIZE_LIMIT: 4M
ports:
- 5000:5000
restart: unless-stopped
On quitte le fichier Ctrl+X et on valide les modifications.
Vous pouvez aussi télécharger ce script en bas du post ( fichier joint ), et l'uploader sur votre serveur via Filezilla par exemple.
____- 2.b Personnalisation des paramètres de Cryptgeon ( optionnel )
Cette étape à présente a titre d'information, et n'est pas obligatoire, il est possible de passer directement au paragraphe 2.c
Dans notre docker-compose, le conteneur memcached possède cette ligne :
entrypoint: memcached -m 128M -I 4M
Le paramètre
128M
représente la taille de RAM qui sera utilisé pour le stockage des notes/fichiers. A partir du moment ou les 128Mo seront tous utilisé, alors les plus anciennes notes/fichiers seront automatiquement supprimées pour laisser la place aux suivantes.Le paramètre
4M
représente la taille maximum du fichier autorisé a être uploader. Ce paramètre devrait être identique avec la valeur d'environnement du conteneur cryptgeon, présent sur cette ligne : SIZE_LIMIT: 4M
____- 2.c Création des conteneurs
Maintenant, que notre fichier docker-compose.yml est prêt, en SSH, on se rend dans le dossier cryptgeon ou nous avons précédement placé notre docker-compose puis nous exécutons la commande suivante pour lancer la création :
docker-compose up -d
( penser à utiliser sudo au besoin ! sudo docker-compose up -d
)
- 3. Mise en place du reverse-proxy
____- 3.a Paramètres NGINX - SWAG
Cryptgeon à besoin de passer a travers un reverse proxy pour fonctionner correctement.
Voici les paramètres de mon reverse proxy SWAG sous NGINX :
cryptgeon.subdomain.conf
NGINX:
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name cryptgeon.*;
include /config/nginx/ssl.conf;
client_max_body_size 0;
location / {
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;
set $upstream_app 192.168.0.42;
set $upstream_port 5000;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
}
Ici, le sous domaine sera cryptgeon et le reverse le renvoi vers l'adresse ip de la machine qui heberge cryptgeon, 192.168.1.42 sur le port 5000
- 4. Utilisation de Cryptgeon
____- 4.a Accès à l'interface
Maintenant que Cryptgeon est en place et le reverse proxy également, j’accède a l'interface via le sous-domaine cryptgeon.mon_domaine.fr :

Avec l'option "File", il est possible d'envoyer un fichier ( qui ne dépasse pas la limite que nous avons fixé, par défaut 4M ).
Pièces jointes
Dernière édition: