52 lines
1.8 KiB
Django/Jinja
52 lines
1.8 KiB
Django/Jinja
---
|
|
|
|
services:
|
|
vaultwarden:
|
|
image: vaultwarden/server:1.35.2
|
|
environment:
|
|
DOMAIN: "https://{{ vaultwarden.url }}"
|
|
ADMIN_TOKEN: "{{ vaultwarden_admin_token_hash.stdout | replace('$', '$$') }}"
|
|
|
|
{% if vaultwarden.oidc.issuer | length >= 1 -%}
|
|
SSO_ENABLED: "true"
|
|
SSO_PKCE: "true"
|
|
SSO_AUTHORITY: "{{ vaultwarden.oidc.issuer }}"
|
|
SSO_CLIENT_ID: "{{ vaultwarden.oidc.client_id }}"
|
|
SSO_CLIENT_SECRET: "{{ vaultwarden.oidc.client_secret }}"
|
|
|
|
{% endif -%}
|
|
|
|
{% if vaultwarden.mail.host | length >= 1 -%}
|
|
SMTP_HOST: "{{ vaultwarden.mail.host }}"
|
|
SMTP_FROM: "{{ vaultwarden.mail.user }}"
|
|
SMTP_FROM_NAME: "{{ vaultwarden.org_name }}"
|
|
SMTP_SECURITY: "starttls"
|
|
SMTP_PORT: "587"
|
|
SMTP_USERNAME: "{{ vaultwarden.mail.user }}"
|
|
SMTP_PASSWORD: "{{ vaultwarden.mail.password }}"
|
|
{% endif -%}
|
|
IP_HEADER: "X-Forwarded-For"
|
|
volumes:
|
|
- ./data/vaultwarden:/data
|
|
networks:
|
|
- proxy
|
|
restart: unless-stopped
|
|
labels:
|
|
traefik.enable: true
|
|
traefik.http.routers.vaultwarden.rule: "Host(`{{ vaultwarden.url }}`)"
|
|
traefik.http.routers.vaultwarden.tls: true
|
|
traefik.http.routers.vaultwarden.priority: 100
|
|
traefik.http.routers.vaultwarden.tls.certResolver: hetzner
|
|
traefik.http.services.vaultwarden-https.loadbalancer.server.port: 80
|
|
|
|
traefik.http.routers.vaultwarden-admin.rule: "Host(`{{ vaultwarden.url }}`) && PathPrefix(`/admin`)"
|
|
traefik.http.routers.vaultwarden-admin.middlewares: secure-only@file
|
|
traefik.http.routers.vaultwarden-admin.priority: 200
|
|
traefik.http.routers.vaultwarden-admin.tls: true
|
|
traefik.http.routers.vaultwarden-admin.service: vaultwarden-https
|
|
|
|
networks:
|
|
proxy:
|
|
name: traefik_exposed
|
|
external: true
|