Petite application web permettant de consulter des mots de passe Passbolt sans extension navigateur. Toute la cryptographie (OpenPGP) s'exécute côté client : la clé privée et la passphrase ne quittent jamais le navigateur.
git clone .../passbolt-viewer.git
cd passbolt-viewer
npm install
cp .env.example .env
# Éditer .env (au minimum `PASSBOLT_URL` et `SESSION_SECRET`)
# Lancer en local
node server.js
# ou pour rechargement automatique
npx nodemon server.js
L'application sera disponible sur http://localhost:3100.
Note : en développement NODE_ENV n'est pas production, les cookies CSRF ne sont donc pas marqués secure pour permettre HTTP.
Image officielle publiée sur Docker Hub : https://hub.docker.com/repository/docker/sebchevre/passbolt-viewer/general
sebchevre/passbolt-viewerdocker-compose.yml : latestCommandes utiles :
# Démarrer avec l'image publiée (production)
docker compose up -d
# Développement local (rebuild du code local)
docker compose -f dev-docker-compose.yml up -d --build
Remarque : pour tester une modification locale, utilisez dev-docker-compose.yml (monte un volume Docker pour persister tags.json).
Les tags ajoutés dans l'interface sont sauvegardés côté serveur dans TAGS_FILE (par défaut /data/tags.json) :
/data ou centralisez le fichier.Pour afficher ou migrer les tags depuis la machine hôte :
# Lire le fichier tags (si le container tourne)
docker exec pb-viewer cat /data/tags.json
# Ou depuis l'hôte, lire le volume nommé
docker run --rm -v pb_tags_data:/data alpine cat /data/tags.json
Pour exporter/importer les tags entre instances A → B :
# Sur A (export)
docker run --rm -v pb_tags_data:/data -v "$PWD":/backup alpine sh -c 'cp /data/tags.json /backup/tags.json || echo "{}" > /backup/tags.json'
# Transférer tags.json vers la machine B (scp/rsync)
# Sur B (import)
docker run --rm -v pb_tags_data:/data -v "$PWD":/backup alpine sh -c 'cp /backup/tags.json /data/tags.json'
Copier et éditer l'exemple d'environnement :
cp .env.example .env
# Définir au minimum :
# PASSBOLT_URL=https://votre.instance.passbolt
# SESSION_SECRET=<openssl rand -hex 32>
# ALLOWED_ORIGIN=https://keys.example.com
keys.example.com).cd ../nginx-reverse-proxy
docker compose exec reverse_proxy nginx -s reload
NODE_ENV=production.passbolt-viewer/
├── server.js # Backend proxy Express
├── package.json
├── Dockerfile
├── docker-compose.yml
├── dev-docker-compose.yml # Compose pour développement local
├── .env.example
├── public/ # Frontend
│ ├── index.html
│ ├── css/style.css
│ └── js/
│ ├── app.js
│ └── modules/
└── README.md
/data/tags.json est identique pour tous les réplicas.curl -sS 'https://keys.example.com/api/tags' | jq .
Si tu veux, je peux :
README.md dans le dépôt (git commit + git push),Content type
Image
Digest
sha256:aca0c50b5…
Size
66.5 MB
Last updated
6 months ago
docker pull sebchevre/passbolt-viewer