🐳 vaultwarden

Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs

Docker Ready 9 Services Ports: 1080 65,127 stars
1. Pull Image docker pull library/playwright_oidc_vaultwarden_prebuilt
2. 1-Click Launch Command docker run -d -p 1080:1080 --name vaultwarden playwright_oidc_vaultwarden_prebuilt
3. Compose Deployment docker compose up -d
playwright/docker-compose.yml
Download .yml
services:
  VaultwardenPrebuild:
    profiles: ["playwright", "vaultwarden"]
    container_name: playwright_oidc_vaultwarden_prebuilt
    image: playwright_oidc_vaultwarden_prebuilt
    build:
      context: ..
      dockerfile: Dockerfile
    entrypoint: /bin/bash
    restart: "no"

  Vaultwarden:
    profiles: ["playwright", "vaultwarden"]
    container_name: playwright_oidc_vaultwarden-${ENV:-dev}
    image: playwright_oidc_vaultwarden-${ENV:-dev}
    network_mode: "host"
    build:
      context: compose/warden
      dockerfile: Dockerfile
      args:
        REPO_URL: ${PW_VW_REPO_URL:-}
        COMMIT_HASH: ${PW_VW_COMMIT_HASH:-}
    env_file: ${DC_ENV_FILE:-.env}
    environment:
      - ADMIN_TOKEN
      - DATABASE_URL
      - CLIENT_SUPPRESS_ONBOARDING
      - EMAIL_2FA_AUTO_FALLBACK
      - I_REALLY_WANT_VOLATILE_STORAGE
      - LOG_LEVEL
      - LOGIN_RATELIMIT_MAX_BURST
      - SMTP_HOST
      - SMTP_FROM
      - SMTP_DEBUG
      - SSO_AUTH_ONLY_NOT_SESSION
      - SSO_DEBUG_TOKENS
      - SSO_ENABLED
      - SSO_FRONTEND
      - SSO_ONLY
      - SSO_SCOPES
    restart: "no"
    depends_on:
      - VaultwardenPrebuild

  Playwright:
    profiles: ["playwright"]
    container_name: playwright_oidc_playwright
    image: playwright_oidc_playwright
    network_mode: "host"
    build:
      context: .
      dockerfile: compose/playwright/Dockerfile
    environment:
      - PW_WV_REPO_URL
      - PW_WV_COMMIT_HASH
    restart: "no"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ..:/project

  Mariadb:
    profiles: ["playwright"]
    container_name: playwright_mariadb
    image: mariadb:11.2.4
    env_file: test.env
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      start_period: 10s
      interval: 10s
    ports:
      - ${MARIADB_PORT}:3306

  Mysql:
    profiles: ["playwright"]
    container_name: playwright_mysql
    image: mysql:9.7.0
    env_file: test.env
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
      start_period: 10s
      interval: 10s
    ports:
      - ${MYSQL_PORT}:3306

  Postgres:
    profiles: ["playwright"]
    container_name: playwright_postgres
    image: postgres:18.4
    env_file: test.env
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
      start_period: 20s
      interval: 30s
    ports:
      - ${POSTGRES_PORT}:5432

  Maildev:
    profiles: ["vaultwarden", "maildev"]
    container_name: maildev
    image: timshel/maildev:3.2.19
    ports:
      - ${SMTP_PORT}:1025
      - 1080:1080

  Keycloak:
    profiles: ["keycloak", "vaultwarden"]
    container_name: keycloak-${ENV:-dev}
    image: quay.io/keycloak/keycloak:26.6.2
    network_mode: "host"
    command:
      - start-dev
    env_file: ${DC_ENV_FILE:-.env}

  KeycloakSetup:
    profiles: ["keycloak", "vaultwarden"]
    container_name: keycloakSetup-${ENV:-dev}
    image: keycloak_setup-${ENV:-dev}
    network_mode: "host"
    build:
      context: compose/keycloak
      dockerfile: Dockerfile
      args:
        KEYCLOAK_VERSION: 26.6.2
    depends_on:
      - Keycloak
    restart: "no"
    env_file: ${DC_ENV_FILE:-.env}