From 747d158f583ea04fc834f3030b23e47086d79431 Mon Sep 17 00:00:00 2001 From: Simon C Date: Sat, 31 Dec 2022 14:35:36 +0100 Subject: [PATCH] feat(Vaultwarden): Add new service --- README.md | 1 + vaultwarden/.env | 46 +++++++++++++++++++++++++ vaultwarden/README.md | 21 +++++++++++ vaultwarden/docker-compose.postgres.yml | 8 +++++ vaultwarden/docker-compose.smtp.yml | 15 ++++++++ vaultwarden/docker-compose.traefik.yml | 15 ++++++++ vaultwarden/docker-compose.yml | 23 +++++++++++++ 7 files changed, 129 insertions(+) create mode 100644 vaultwarden/.env create mode 100644 vaultwarden/README.md create mode 100644 vaultwarden/docker-compose.postgres.yml create mode 100644 vaultwarden/docker-compose.smtp.yml create mode 100644 vaultwarden/docker-compose.traefik.yml create mode 100644 vaultwarden/docker-compose.yml diff --git a/README.md b/README.md index f3dcd8f..065f41f 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ Vous trouverez dans ce dépôt l'ensemble des services Open Source que RésiLien - [Mobilizon](./mobilizon): Permet l'organisation d'évènements et de gestion de groupes - [Nextcloud](./nextcloud) : Site d'hébergement de fichiers et une plateforme de collaboration - [Plausible](./plausible) : Plausible est une plateforme d'analyse Web légère et open source +- [Vaultwarden](./vaultwarden) : Gestionnaire de mot de passe compatible avec Bitwarden - [Vikunja](./vikunja) : L'application pour organiser sa vie ### Pour les devs / ops diff --git a/vaultwarden/.env b/vaultwarden/.env new file mode 100644 index 0000000..0c01add --- /dev/null +++ b/vaultwarden/.env @@ -0,0 +1,46 @@ +######## +# DOCKER + +SERVICES_DIR=".." +COMPOSE_FILE=${SERVICES_DIR}/vaultwarden/docker-compose.yml +#COMPOSE_PROJECT_NAME= + +## APP + +#VAULTWARDEN_IMAGE= +#VAULTWARDEN_VOLUME_NAME= +VAULTWARDEN_DOMAIN=vaultwarden.local + +#VAULTWARDEN_LOG_LEVEL= +#VAULTWARDEN_SIGNUPS_ALLOWED=false +VAULTWARDEN_ADMIN_TOKEN="mytoken" +#VAULTWARDEN_INVITATION_ORG_NAME="RésiLien" + +########## +# POSTGRES + +#POSTGRES_IMAGE= +#POSTGRES_CONTAINER_NAME= +#POSTGRES_DB= +#POSTGRES_USER= +#POSTGRES_PASSWORD= +#POSTGRES_VOLUME_NAME= + +###### +# SMTP + +#VAULTWARDEN_SMTP_HOST= +#VAULTWARDEN_SMTP_FROM= +#VAULTWARDEN_SMTP_FROM_NAME= +#VAULTWARDEN_SMTP_SECURITY= +#VAULTWARDEN_SMTP_PORT= +#VAULTWARDEN_SMTP_USERNAME= +#VAULTWARDEN_SMTP_PASSWORD= +#VAULTWARDEN_SMTP_AUTH_MECHANISM= + +######### +# TRAEFIK + +#TRAEFIK_NETWORK_NAME= +#TRAEFIK_ROUTER_NAME= +#TRAEFIK_ENTRYPOINTS= diff --git a/vaultwarden/README.md b/vaultwarden/README.md new file mode 100644 index 0000000..b799a9d --- /dev/null +++ b/vaultwarden/README.md @@ -0,0 +1,21 @@ +# Vaultwarden + +> Gestionnaire de mot de passe compatible avec Bitwarden mais écrit en Rust pour être plus sobre en ressource système. + +## Configuration + +Toutes les variables de configuration du service sont disponibles à [cette adresse](https://github.com/dani-garcia/vaultwarden/blob/main/.env.template). + +## Clients + +[Les clients de Bitwarden](https://bitwarden.com/#download) sont compatibles avec le serveur. + +## Liens + +- [Documentation][documentation] +- [Code source][source] +- [Docker Hub][dockerhub] + +[source]: https://github.com/dani-garcia/vaultwarden +[documentation]: https://github.com/dani-garcia/vaultwarden/wiki +[dockerhub]: https://hub.docker.com/r/vaultwarden/server \ No newline at end of file diff --git a/vaultwarden/docker-compose.postgres.yml b/vaultwarden/docker-compose.postgres.yml new file mode 100644 index 0000000..49fc448 --- /dev/null +++ b/vaultwarden/docker-compose.postgres.yml @@ -0,0 +1,8 @@ +--- + +version: "3.8" + +services: + vaultwarden: + environment: + DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_CONTAINER_NAME}:5432/${POSTGRES_DB} \ No newline at end of file diff --git a/vaultwarden/docker-compose.smtp.yml b/vaultwarden/docker-compose.smtp.yml new file mode 100644 index 0000000..21ca579 --- /dev/null +++ b/vaultwarden/docker-compose.smtp.yml @@ -0,0 +1,15 @@ +--- + +version: "3.8" + +services: + vaultwarden: + environment: + SMTP_HOST: ${VAULTWARDEN_SMTP_HOST:?err} + SMTP_FROM: ${VAULTWARDEN_SMTP_FROM:?err} + SMTP_FROM_NAME: ${VAULTWARDEN_SMTP_FROM_NAME:?err} + SMTP_SECURITY: ${VAULTWARDEN_SMTP_SECURITY:?err} + SMTP_PORT: ${VAULTWARDEN_SMTP_PORT:?err} + SMTP_USERNAME: ${VAULTWARDEN_SMTP_USERNAME:?err} + SMTP_PASSWORD: ${VAULTWARDEN_SMTP_PASSWORD:?err} + SMTP_AUTH_MECHANISM: ${VAULTWARDEN_SMTP_AUTH_MECHANISM:?err} diff --git a/vaultwarden/docker-compose.traefik.yml b/vaultwarden/docker-compose.traefik.yml new file mode 100644 index 0000000..e191542 --- /dev/null +++ b/vaultwarden/docker-compose.traefik.yml @@ -0,0 +1,15 @@ +--- + +version: "3.8" + +networks: + default: + name: ${TRAEFIK_NETWORK_NAME:-traefik} + +services: + vaultwarden: + labels: + - traefik.enable=true + - traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik} + - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vaultwarden}.rule=Host(`${VAULTWARDEN_DOMAIN:?err}`) + - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vaultwarden}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web} \ No newline at end of file diff --git a/vaultwarden/docker-compose.yml b/vaultwarden/docker-compose.yml new file mode 100644 index 0000000..59cbb88 --- /dev/null +++ b/vaultwarden/docker-compose.yml @@ -0,0 +1,23 @@ +--- + +version: "3.8" + +volumes: + vaultwarden: + name: ${VAULTWARDEN_VOLUME_NAME:-vaultwarden} + +services: + vaultwarden: + image: ${VAULTWARDEN_CONTAINER_NAME:-vaultwarden/server:1.27.0-alpine} + container_name: vaultwarden + restart: always + depends_on: + - postgres + environment: + ADMIN_TOKEN: ${VAULTWARDEN_ADMIN_TOKEN:?err} + DOMAIN: https://${VAULTWARDEN_DOMAIN:?err} + INVITATION_ORG_NAME: ${VAULTWARDEN_INVITATION_ORG_NAME:-Vaultwarden} + LOG_LEVEL: ${VAULTWARDEN_LOG_LEVEL:-Info} + SIGNUPS_ALLOWED: ${VAULTWARDEN_SIGNUPS_ALLOWED:-true} + volumes: + - vaultwarden:/data