Guide d'auto-hébergement
Faites tourner l'application GlassFolio complète sur votre ordinateur ou votre serveur avec Docker. Votre coffre chiffré est écrit dans un volume que vous contrôlez, rien ne dépend de notre infrastructure et le code source est public.
Démarrage rapide
Clonez le dépôt et démarrez le conteneur. Le script npm vérifie d'abord vos réglages réseau, puis construit l'image et la lance en arrière-plan.
$ git clone https://github.com/Damien-Esilv/GlassFolio.git$ cd GlassFolio$ npm run docker:up
Ouvrez http://localhost:3000 dans votre navigateur et créez votre coffre. La première construction prend quelques minutes ; les démarrages suivants, quelques secondes.
Commandes du quotidien
Suivre les journaux du conteneur
$ npm run docker:logsArrêter l'application (vos données restent dans le volume)
$ npm run docker:downPrérequis
- Docker Engine 24 ou plus récent avec Compose v2, ou Docker Desktop sous macOS et Windows (WSL 2).
- Node.js 22, utilisé par le script de démarrage pour vérifier vos réglages réseau avant de lancer Docker.
- Git, pour télécharger le code puis récupérer les mises à jour.
- Environ 1 Go d'espace disque pour l'image. Le conteneur est limité à 512 Mo de mémoire.
Configuration
Les réglages sont des variables d'environnement. Mettez les réglages durables dans docker/docker.env, ou placez-les devant la commande de démarrage pour un changement ponctuel. Ne mettez jamais le jeton d'accès dans un fichier : définissez-le dans votre terminal.
| Variable | Défaut | Rôle |
|---|---|---|
| GLASSFOLIO_PORT | 3000 | Port de votre machine sur lequel l'application répond. |
| GLASSFOLIO_BIND | 127.0.0.1 | Adresse réseau d'écoute. 127.0.0.1 garde l'application privée à cet ordinateur. |
| GLASSFOLIO_DATA | glassfolio-data | Emplacement de vos données chiffrées : le volume Docker nommé, ou un dossier de l'hôte accessible en écriture à l'utilisateur 1000. |
| GLASSFOLIO_ACCESS_TOKEN | (vide) | Mot de passe demandé par le navigateur quand l'application est accessible depuis le réseau. 16 caractères minimum. |
| GLASSFOLIO_ALLOWED_HOSTS | (vide) | Noms de domaine autorisés à utiliser l'API du coffre, séparés par des virgules, par exemple derrière un proxy inverse. localhost et les adresses IP fonctionnent toujours. |
| GLASSFOLIO_CSP_CONNECT_SRC | (vide) | Origines supplémentaires que la page peut appeler, séparées par des espaces, comme un serveur Ollama distant. |
Accès depuis votre réseau
Par défaut, seul cet ordinateur peut ouvrir l'application. Pour y accéder depuis un téléphone ou une autre machine, écoutez sur toutes les interfaces et définissez un jeton d'accès ; le script de démarrage refuse d'exposer l'application sans jeton.
$ export GLASSFOLIO_ACCESS_TOKEN="$(openssl rand -hex 16)"$ echo "$GLASSFOLIO_ACCESS_TOKEN"$ GLASSFOLIO_BIND=0.0.0.0 npm run docker:up
Votre navigateur demande alors un nom d'utilisateur et un mot de passe : l'utilisateur est glassfolio et le mot de passe est le jeton affiché par la deuxième ligne, à garder dans votre gestionnaire de mots de passe. Lancez chaque docker:up suivant (mises à jour comprises) avec les mêmes GLASSFOLIO_ACCESS_TOKEN et GLASSFOLIO_BIND, sinon l'application ne redevient accessible que depuis cet ordinateur. Le point /health reste ouvert pour la supervision.
Pour un accès depuis l'extérieur de chez vous, placez l'application derrière un proxy inverse en HTTPS et déclarez son domaine dans GLASSFOLIO_ALLOWED_HOSTS. N'exposez jamais le port 3000 directement sur Internet.
Sauvegarder et restaurer
Tout ce que vous saisissez se trouve dans le volume /data du conteneur, déjà chiffré. Cette commande écrit une copie compressée dans le dossier courant pendant que l'application continue de tourner.
$ docker run --rm --volumes-from glassfolio-app -v "$PWD":/backup alpine tar czf /backup/glassfolio-data.tgz -C /data .Pour restaurer une sauvegarde, arrêtez le conteneur, remplacez le contenu du volume par l'archive, puis redémarrez-le.
$ docker stop glassfolio-app$ docker run --rm --volumes-from glassfolio-app -v "$PWD":/backup alpine sh -c "rm -rf /data/* && tar xzf /backup/glassfolio-data.tgz -C /data"$ docker start glassfolio-app
Mettre à jour
Récupérez le dernier code et relancez le script de démarrage. L'image est reconstruite et votre volume de données est conservé tel quel.
$ git pull$ npm run docker:up
IA locale avec Ollama
L'assistant peut tourner entièrement sur votre machine grâce à Ollama : aucune donnée de portefeuille ne quitte votre réseau. Installez Ollama, téléchargez un modèle, puis démarrez-le pour qu'il accepte les requêtes venant de l'adresse de l'application.
$ OLLAMA_ORIGINS=http://localhost:3000 ollama serveDans GlassFolio, ouvrez les Paramètres, choisissez Ollama comme fournisseur d'IA et gardez l'adresse par défaut http://localhost:11434.
Si Ollama tourne sur une autre machine, ajoutez son adresse à GLASSFOLIO_CSP_CONNECT_SRC pour que la page soit autorisée à l'appeler.