Merge pull request 'feat(Vaultwarden): Add new service' (#46) from vaultwarden into main

## Détails
un serveur compatible Bitwarden mais écrit en Rust pour économiser des ressources système

## Pourquoi

Actuellement j'utilisais Nextcloud Password mais son évolution est lente et la comunnauté trop petite pour faire comfiance à son développement. Ainsi nous pourrons proposer se service à d'autres personnes.

Reviewed-on: https://git.weko.io/resilien/services/pulls/46
This commit is contained in:
Simon 2022-12-31 14:55:45 +01:00
commit ea59336efb
7 changed files with 129 additions and 0 deletions

View File

@ -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

46
vaultwarden/.env Normal file
View File

@ -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=

21
vaultwarden/README.md Normal file
View File

@ -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

View File

@ -0,0 +1,8 @@
---
version: "3.8"
services:
vaultwarden:
environment:
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_CONTAINER_NAME}:5432/${POSTGRES_DB}

View File

@ -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}

View File

@ -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}

View File

@ -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