Synology [Tuto] Installer Vaultwarden avec une sauvegarde automatique des données (nouvelle version)

Hello,

NPM, NPM Plus pour moi est le top, tout est faisable dans l'interface, sans avoir à aller mettre les mains dans le cambouis.

Pour voir les bouncers enregistré :

docker exec -it crowdsec cscli bouncers list

bouncer.png

Après moi NPM Plus est en test.

Donc, je n'ai pas plus poussé la config plus loin que la base, et cela fonctionne, et comme la doc est rare, pas évident de faire beaucoup plus.

Pour le moment, je reste sur NPM + fail2Ban + Crowdsec en production.

Je suis impatient de voir ton tuto..:)

voila, voila ;)
 
Hello,

NPM, NPM Plus pour moi est le top, tout est faisable dans l'interface, sans avoir à aller mettre les mains dans le cambouis.

Pour voir les bouncers enregistré :

docker exec -it crowdsec cscli bouncers list

Voir la pièce jointe 18677

Après moi NPM Plus est en test.

Donc, je n'ai pas plus poussé la config plus loin que la base, et cela fonctionne, et comme la doc est rare, pas évident de faire beaucoup plus.

Pour le moment, je reste sur NPM + fail2Ban + Crowdsec en production.

Je suis impatient de voir ton tuto..:)

voila, voila ;)
Ça avance ça avance 😁
Le tuto est presque prêt.
Mais j’ai rien tester en production encore…
Il me reste encore la partie geoblocking à détailler.
@PackTu , si tu veux bêta-tester fait moi signe 😊

Ps : moi je n’ai aie réussi à intégrer Crowdsec à NginxProxyManager…
Par contre ça fonctionne avec NPMplus, enfin la configuration est ok et l’accès semble ok . Mas j’ai pas encore tester en live.
 
Ça avance ça avance 😁
Le tuto est presque prêt.
Mais j’ai rien tester en production encore…
Il me reste encore la partie geoblocking à détailler.
@PackTu , si tu veux bêta-tester fait moi signe 😊

Ps : moi je n’ai aie réussi à intégrer Crowdsec à NginxProxyManager…
Par contre ça fonctionne avec NPMplus, enfin la configuration est ok et l’accès semble ok . Mas j’ai pas encore tester en live.
Salut @MilesTEG , je suis aussi en phase de préparation sur npmplus + openappsec-agent + geoipupdate + crowdsec ( + crowdsecurity/lua-bouncer-nginx:latest ?) via cela : https://github.com/crowdsecurity/example-docker-compose/blob/main/NPMplus/compose.yaml
Je vous tiens au courant quand j'aurai fini les tests. Dans beaucoup de jours :ROFLMAO:

J'en suis là mais sans test et vérification :
Code:
version: "3.9"

services:
  # -------------------
  # NPMplus avec Open-AppSec
  # -------------------
  npmplus:
    container_name: npmplus
    image: docker.io/zoeyvid/npmplus:latest
    restart: unless-stopped
    networks:
      - npmplus-net
    ports:
      - "9880:80"     # HTTP externe sur DSM
      - "2443:443"    # HTTPS externe sur DSM
      - "81:81"       # Interface admin
    volumes:
      - /volume2/docker/npmplus/data:/data
      - /volume2/docker/npmplus/letsencrypt:/etc/letsencrypt
      - /volume2/docker/npmplus/logs:/var/log/npm
      - shm-volume:/dev/shm/check-point
    environment:
      - TZ=Europe/Paris
      - ACME_EMAIL=ton-email@example.com
      - GOA=true
    ipc: service:openappsec-agent   # pour l'agent Open-AppSec

  # -------------------
  # Open-AppSec Agent
  # -------------------
  openappsec-agent:
    container_name: openappsec-agent
    image: ghcr.io/openappsec/agent:latest
    restart: unless-stopped
    networks:
      - npmplus-net
    ipc: container:npmplus
    environment:
      - TZ=Europe/Paris
      - autoPolicyLoad=true
      - registered_server=NPMplus
    volumes:
      - /volume2/docker/npmplus/openappsec/data:/data
      - /volume2/docker/npmplus/openappsec/conf:/etc/cp/conf"
      - /volume2/docker/npmplus/openappsec/logs:/var/log/nano_agent"
#     - /volume2/docker/npmplus/openappsec/localconf:/ext/appsec" # if you don't set AGENT_TOKEN, then please put a local_policy.yaml in the /opt/openappsec/localconf folder before deploying

  # -------------------
  # GeoIP update pour GoAccess / CrowdSec
  # -------------------
  geoipupdate:
    container_name: npmplus-geoipupdate
    image: docker.io/maxmindinc/geoipupdate:latest
    restart: unless-stopped
    networks:
      - npmplus-net
    environment:
      - TZ=Europe/Paris
      - GEOIPUPDATE_EDITION_IDS=GeoLite2-Country GeoLite2-City GeoLite2-ASN
      - GEOIPUPDATE_ACCOUNT_ID=<ton-account-id>
      - GEOIPUPDATE_LICENSE_KEY=<ton-license-key>
      - GEOIPUPDATE_FREQUENCY=24
    volumes:
      - /volume2/docker/npmplus/goaccess/geoip:/usr/share/GeoIP

  # -------------------
  # CrowdSec engine
  # -------------------
  crowdsec:
    container_name: crowdsec
    image: docker.io/crowdsecurity/crowdsec:latest
    restart: unless-stopped
    networks:
      - npmplus-net
    ports:
      - "127.0.0.1:7422:7422"  # API local pour bouncers
      - "127.0.0.1:8080:8080"  # Dashboard local
    environment:
      - TZ=Europe/Paris
      - COLLECTIONS=ZoeyVid/npmplus
    volumes:
      - /volume2/docker/npmplus/crowdsec/npmplus.yaml:/etc/crowdsec/acquis.d/npmplus.yaml:ro
      - /volume2/docker/npmplus/crowdsec/conf:/etc/crowdsec
      - /volume2/docker/npmplus/crowdsec/data:/var/lib/crowdsec/data
      - /volume2/docker/npmplus/nginx:/opt/npmplus/nginx:ro
      - /volume2/docker/npmplus/logs:/var/log/npm:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro

  # -------------------
  # CrowdSec Nginx Lua Bouncer
  # -------------------
  crowdsec-nginx-bouncer:
    container_name: crowdsec-nginx-bouncer
    image: crowdsecurity/lua-bouncer-nginx:latest
    restart: unless-stopped
    networks:
      - npmplus-net
    depends_on:
      - crowdsec
    environment:
      - TZ=Europe/Paris
      - CROWDSEC_API_URL=http://crowdsec:7422/
      - CROWDSEC_API_KEY=<ton-api-key> # généré via crowdsec CLI
    volumes:
      - /volume2/docker/npmplus/logs:/var/log/npm:ro
      - /volume2/docker/npmplus/data:/etc/nginx/conf.d:rw

networks:
  npmplus-net:
    driver: bridge
 
Dernière édition:
  • J'aime
Réactions: MilesTEG
Là j’en suis ici :
Deux proxy host fonctionnels pour les essais que je fait (Audiobookshelf et Vaultwarden) avec Crowdsec et Fail2ban qui quand ils ban, ça ban bien et plus d’accès depuis l’IP bannie.
Rsyslog fonctionnel dans la machine virtuelle hôte de docker : ça met à dispo les logs de la MV en .log parsable par fail2ban et Crowdsec . Récupération des log de certaines app docker situées sur un NAS Synology.

Tout n’est pas encore rédigé dans le tuto mais la partie Crowdsec est ok de même que rsyslog.
J’ai un docker-compose.yaml et un compose.env fonctionnel (du moins chez moi
:pt1cable:
).
Je pense poster d'ici quelques jours le tuto ;)

Sinon, il faudrait qu'on arrête le hors sujet :) lol
 
  • J'adore
Réactions: Titux
Hello,

J'utilisais jusqu'à présent Keepass sur ma machine en local et ayant fait l'acquisition d'un NAS tout récemment (un UGREEN DXP2800), je comptais switcher sur BitwardenLite (j'ai cru comprendre que c'était +/- équivalent à Vaultwarden mais potentiellement mis à jours + régulièrement à présent) pour pouvoir synchroniser mes MDP sur tous mes appareils via le NAS.

J'ai quelques questions de débutant avant de me lancer sur ce tuto :
1) J'ai vu revenir BitwardenLite à plusieurs reprises dans les commentaires de l'article de FX sur les 10 conteneurs docker (https://www.cachem.fr/synology-10-docker-2026/). Y-a-t-il un intérêt à utiliser l'un plutot que l'autre (Vaultwarden) ?
2)Pour le moment mon NAS n'est pas paramétré pour un accès extérieur (je n'ai pas encore eu l'occasion de me pencher sur les sujets reverse proxy, Tailscale, ... et je n'ai pas de nom de domaine) et une synchronisation des MDP uniquement lorsque je suis chez moi sur le réseau local pourrait largement me convenir pour le moment. Est-il possible de configurer Vaultwarden (ou BitwardeLite) uniquement en local dans un 1er temps ? ou bien tous ces éléments sont-ils indispensables au bon fonctionnement de Bitwarden/Vaultwarden ?
3) Etant novice, j'utilise Dockhand pour déployer les quelques conteneurs Docker que j'utilise (donc pas de soucis pour faire l'analogie avec les méthodes décrites pour Portainer)
4) Je suis évidemment preneur de tout conseil sur le sujet ;)

Merci d'avance pour vos retours.


PS : J'ai posté ici mais comme ce n'est pas directement lié à une question sur le tuto pour le moment, ne pas hésiter à déplacer mon post si nécessaire