Statefile Manual

Name

Vaultwarden - Self-hosted password manager compatible with Bitwarden written in Rust

Tags

cargo, password-manager, security

Synopsis

nanocl state apply -s nr.next-hat.com/v0.17/vaultwarden -- [--help] ARGUMENTS

nanocl state rm -s nr.next-hat.com/v0.17/vaultwarden -- [--help] ARGUMENTS

Description

Vaultwarden (formerly Bitwarden_RS) is a lightweight, self-hosted password manager compatible with Bitwarden. It is written in Rust and designed to be easy to deploy and manage. It supports a wide range of features including two-factor authentication, password sharing, and more. It is a great alternative to the official Bitwarden server for those who want to self-host their password manager.

Arguments

--name String

Cargo name Default: vaultwarden

--namespace String

Namespace to deploy the cargo in Default: global

--data-path String

Host path to store vaultwarden data Default: /opt/containers/vaultwarden

--network String

Nanocl network to connect the container to Default: All

--domain String (required)

--secret-cert String (required)

Nanocl secret name containing the SSL certificate and key

Content

ApiVersion: v0.17
Args:
  - Name: name
    Kind: String
    Default: vaultwarden
    Description: Cargo name
  - Name: namespace
    Kind: String
    Default: global
    Description: Namespace to deploy the cargo in
  - Name: data-path
    Kind: String
    Default: /opt/containers/vaultwarden
    Description: Host path to store vaultwarden data
  - Name: network
    Kind: String
    Default: All
    Description: Nanocl network to connect the container to
  - Name: domain
    Kind: String
    Required: true
  - Name: secret-cert
    Kind: String
    Required: true
    Description: Nanocl secret name containing the SSL certificate and key
Namespace: ${{ Args.namespace }}
Cargoes:
  - Name: ${{ Args.name }}
    ImagePullPolicy: Always
    Container:
      Image: ghcr.io/dani-garcia/vaultwarden:latest-alpine
      Env:
        - DOMAIN=https://${{ Args.domain }}
      HostConfig:
        Binds:
          - ${{ Args.data-path }}:/data
Resources:
  - Name: http.vaultwarden
    Kind: ncproxy.io/rule
    Data:
      Rules:
        - Domain: ${{ Args.domain }}
          Network: ${{ Args.network }}
          Ssl: ${{ Args.secret-cert }}
          Locations:
            - Path: /
              Target:
                Key: ${{ Args.name }}.global.c
                Port: 80