Windows Offline Deployment | Bitwarden Help Center (2024)

Self-hostingInstall & Deploy Guides

This article will walk you through the procedure to install and deploy Bitwarden to your own Windows server in an offline or air-gapped environment. Please review Bitwarden software release support documentation.

warning

Manual installations should be conducted by advanced users only. Only proceed if you are very familiar with Docker technologies and desire more control over your Bitwarden installation.

Manual installations lack the ability to automatically update certain dependencies of the Bitwarden installation. As you upgrade from one version of Bitwarden to the next you will be responsible for changes to required environment variables, changes to nginx default.conf, changes to docker-compose.yml, and so on.

We will try to highlight these in the release notes on GitHub. You can also monitor changes to the dependency templates used by the Bitwarden installation script on GitHub.

Requirements

Minimum

Recommended

Processor

x64, 1.4GHz

x64, 2GHz Dual Core

Memory

6GB RAM

8+ GB RAM

Storage

76GB

90GB

Docker Version

Engine 26+ and Composeª

Engine 26+ and Composeª

ª - Docker Compose can be installed via Docker Desktop, which includes Engine and Compose. Install Docker Desktop for Engine and Compose.

During this setup, you must uncheck the Use WSL2 instead of Hyper-V (recommended) option.

Additionally, ensure the following requirements are met:

  • Using a machine with internet access, you have downloaded the latest docker-stub.zip file from the Bitwarden Server repository's releases page and transferred this file to your server.

  • An offline SMTP server is setup and active in your environment.

  • (Optional) OpenSSL Windows binaries are installed and ready to use on your server. You may use a self-signed certificate instead of OpenSSL if you wish.

Nested virtualization

Running Bitwarden on a Windows Server requires use of nested virtualization. Please check your Hypervisor's documentation to find out if nested virtualization is supported and how to enable it.

tip

If you are running Windows Server as an Azure VM, we recommend a Standard D2s v3 Virtual Machine running Windows Server 2022, which meets all system requirements including support for nested virtualization. You will also need to select Security Type: Standard rather than the default Trusted launch virtual machines.

Installation procedure

Configure your domain

By default, Bitwarden will be served through ports 80 (http) and 443 (https) on the host machine. Open these ports so that Bitwarden can be accessed from within and/or outside the network. You may opt to choose different ports during installation.

tip

If you are using Windows Firewall, Docker Desktop for Windows will not automatically add an exception for itself in Windows Firewall. Add exceptions for TCP ports 80 and 443 (or chosen alternative ports) to prevent related errors.

We recommend configuring a domain name with DNS records that point to your host machine (for example, bitwarden.example.com), especially if you are serving Bitwarden over the internet.

Create Bitwarden local user & directory

Open PowerShell and create a Bitwarden local user by running the following command:

Bash

PS C:\> $Password = Read-Host -AsSecureString

After running the above command, enter the desired password in the text input dialog. After specifying a password, run the following command:

As the newly created user, create a Bitwarden folder under C:\:

Bash

PS C:\> mkdir Bitwarden

Once you install Docker Desktop, navigate to SettingsResourcesFile Sharing and add the created directory (C:\Bitwarden) to the Resources list. Select Apply & Restart to apply your changes.

We recommend logging in as the newly created user before completing all subsequent procedures in this document.

Configure your machine

To configure your machine with the assets required for your Bitwarden server:

tip

If you have , complete the following as the Bitwarden user.

  1. Create a new directory in C:\Bitwarden named bwdata and extract docker-stub.zip to it.

    Once unzipped, the bwdata directory will match what the docker-compose.yml file's volume mapping expects. You may, if you wish, change the location of these mappings on the host machine.

  2. In bwdata\env\global.override.env, edit the following environment variables:

    • globalSettings__baseServiceUri__vault=: Enter the domain of your Bitwarden instance.

    • globalSettings__sqlServer__ConnectionString=: Replace the RANDOM_DATABASE_PASSWORD with a secure password for use in a later step.

    • globalSettings__identityServer__certificatePassword=: Set a secure certificate password for use in a later step.

    • globalSettings__internalIdentityKey=: Replace RANDOM_IDENTITY_KEY with a random alphanumeric string.

    • globalSettings__oidcIdentityClientKey=: Replace RANDOM_IDENTITY_KEY with a random alphanumeric string.

    • globalSettings__duo__aKey=: Replace RANDOM_DUO_AKEY with a random alphanumeric string.

    • globalSettings__installation__id=: Enter an installation id retrieved from https://bitwarden.com/host.

    • globalSettings__installation__key=: Enter an installation key retrieved from https://bitwarden.com/host.

    • globalSettings__pushRelayBaseUri=: This variable should be blank. See Configure Push Relay for more information.

      tip

      At this time, consider also setting values for all globalSettings__mail__smtp__ variables and for adminSettings__admins. Doing so will configure the SMTP mail server used to send invitations to new organization members and provision access to the System Administrator Portal.

      Learn more about environment variables.

  3. Generate a identity.pfx certificate for the identity container. You can do using OpenSSL or using any tool to generate a self-signed certificate. If you're using OpenSSL, run the following commands:

    Bash

    openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout identity.key -out identity.crt -subj "/CN=Bitwarden IdentityServer" -days 10950

    and

    Bash

    openssl pkcs12 -export -out ./identity/identity.pfx -inkey identity.key -in identity.crt -passout pass:IDENTITY_CERT_PASSWORD

    In the above command, replace IDENTITY_CERT_PASSWORD with the certificate password created and used in Step 2.

  4. Move identity.pfx to the mapped volume directory (by default, .\bwdata\identity).

  5. Copy identity.pfx to the .\bwdata\ssl directory.

  6. Create a subdirectory in .\bwdata\ssl named for your domain.

  7. Provider a trusted SSL certificate and private key in the newly created .\bwdata\ssl\bitwarden.example.com subdirectory.

    note

    This directory is mapped to the NGINX container at \etc\ssl. If you can't provide a trusted SSL certificate, front the installation with a proxy that provides an HTTPS endpoint to Bitwarden client applications.

  8. In .\bwdata\nginx\default.conf:

    1. Replace all instances of bitwarden.example.com with your domain, including in the Content-Security-Policy header.

    2. Set the ssl_certificate and ssl_certificate_key variables to the paths of the certificate and private key provided in Step 6.

    3. Take one of the following actions, depending on your certificate setup:

      • If using a trusted SSL certificate, set the ssl_trusted_certificate variable to the path to your certificate.

      • If using a self-signed certificate, comment out the ssl_trusted_certificate variables.

  9. In .\bwdata\env\mssql.override.env, replace RANDOM_DATABASE_PASSWORD with the password created in Step 2.

  10. In .\bwdata\web\app-id.json, replace bitwarden.example.com with your domain.

Download & transfer images

To get docker images for use on your offline machine:

  1. From an internet-connected machine, download all bitwarden/xxx:latest docker images, as listed in the docker-compose.yml file in docker-stub.zip.

  2. Save each image to a .img file, for example:

    Bash

    docker image save -o mssql.img bitwarden/mssql:version

  3. Transfer all .img files to your offline machine.

  4. On your offline machine, load each .img file to create your local docker images, for example:

    Bash

    docker image load -i mssql.img

Start your server

Start your Bitwarden server with the following command:

Bash

docker compose -f ./docker/docker-compose.yml up -d

Verify that all containers are running correctly:

Bash

docker ps

Windows Offline Deployment | Bitwarden Help Center (1)

Congratulations! Bitwarden is now up and running at https://your.domain.com. Visit the web vault in your browser to confirm that it's working.

You may now register a new account and log in. You will need to have configured SMTP environment variables (see Environment Variables) in order to verify the email for your new account.

Next Steps:

  • If you are planning to self-host a Bitwarden organization, see self-host an organization to get started.

  • For additional information see self hosting FAQs.

Update your server

Updating a self-hosted server that has been installed and deployed manually is different from the standard update procedure. To update your manually-installed server:

  1. Download the latest docker-stub.zip archive from the releases pages on GitHub.

  2. Unzip the new docker-stub.zip archive and compare its contents with what's currently in your bwdata directory, copying anything new to the pre-existing files in bwdata.
    Do not overwrite your pre-existing bwdata directory with the contents of the newer docker-stub.zip archive, as this would overwrite any custom configuration work you've done.

  3. Download the latest container images and transfer them to your offline machine as documented above.

  4. Run the following command to restart your server with your updated configuration and the latest containers:

    Bash

    docker compose -f ./docker/docker-compose.yml down && docker compose -f ./docker/docker-compose.yml up -d

Make a suggestion to this page

Windows Offline Deployment | Bitwarden Help Center (2024)

FAQs

Can I use Bitwarden without internet? ›

Most functions of Bitwarden are accessible in offline mode, however you won't be able to make edits to or add vault items, attachments, or sends or import new vault items.

Is there a portable version of Bitwarden? ›

A: Yes! The Bitwarden desktop app is available for Windows as a portable .exe that can be downloaded here. The portable app is well suited to always-offline environments or scenarios where automatic updating of the app is not desired. The portable app will not update itself.

How much does it cost to self host Bitwarden? ›

Self-hosting Bitwarden is free, however some features must be unlocked in your self-hosted instance with a registered license file.

Can I use Bitwarden without an account? ›

However, you will still need to register an account before you can do any testing, and you should be aware that the Bitwarden apps only run in off-line mode if the device is disconnected from the internet when you launch the app, and that while in off-line mode, the app is read-only (i.e., you will not be able to add ...

What is the drawback of Bitwarden? ›

Yet, Bitwarden's auto-filling feature is not the best solution a password manager can offer. There's no one-click filling option, as you have to access everything through the browser extension. Additionally, desktop apps aren't as convenient as web applications as they don't offer as many features.

What are the risks of using Bitwarden? ›

Thus, the main risk to your vault is an attack against the local device on which you are using Bitwarden, for example, by malware.

Has Bitwarden been breached? ›

Bitwarden costs less, has never had a security breach, and provides a simpler customer support experience.

What's better than Bitwarden? ›

Top Bitwarden and 1Password Alternatives

These password managers include NordPass, Norton Password Manager and Dashlane. Norton Password Manager is rated as our top overall password manager as well as our best free password manager option.

What company owns Bitwarden? ›

Bitwarden, Inc. is incorporated in the State of Delaware in the United States of America, registrar #7654941, 8bit Solutions LLC is wholly owned by Bitwarden, Inc.

Will Bitwarden remain free? ›

We believe everyone should have access to password security tools. The core features of the Bitwarden Password Manager are 100% free, including unlimited storage of logins, notes, cards, and identities, access to Bitwarden on any device, a secure password generator, and more. Signup for free.

Is Bitwarden better than 1Password? ›

Our bottom line: 1Password has the edge on form-filling and 2FA, while Bitwarden comes out ahead with pricing, plans, and security. Otherwise, these password managers tie, making them comparable across the board. Learn how we evaluated 1Password vs.

Is Bitwarden better than LastPass? ›

When it comes to password security, Bitwarden clearly surpasses LastPass in getting the job done. Ultimately, Bitwarden is best for those seeking the most advanced security features and the lowest-cost option for password management.

What are the limitations of Bitwarden? ›

A few specialized features are “limited”. For example, Premium subscribers can choose 5 different 2FA methods for their Bitwarden account, but Free users can only choose 3 different methods. Or when using Bitwarden's secure “Send” function, Premium users can send files, but Free users can only send text.

Is Bitwarden safer than Google passwords? ›

It offers more on its free tier than most competitors do, and its premium plan is reasonably priced. Secondly, Bitwarden offers end-to-end encryption, which means that no one but you can see your actual data. This is not the case with Chrome's browser password manager, which is not as secure.

Which is better, KeePass or Bitwarden? ›

However, it's essential to note that Bitwarden offers more seamless cross-platform syncing compared to KeePass. That's because KeePass is only available on mobile devices via third-party ports. If you prioritize easy access to your passwords on multiple devices, Bitwarden is a better choice.

Does Bitwarden cache locally? ›

Bitwarden does store a local cache of your encrypted vault data, so it is possible to access your passwords if you lose connection to the servers (or if you intentionally disconnect from the servers by disabling the internet connection of your device); however, in off-line mode, the vault is strictly read-only — you ...

Does Bitwarden store data locally? ›

This articles describes where Bitwarden stores your vault data and administrative data. Bitwarden always encrypts and/or hashes your data on your local device before anything is sent to cloud servers for storage. Bitwarden servers are only used for storing encrypted data. For more information, see Encryption.

References

Top Articles
Civil War movie review & film summary (2024) | Roger Ebert
Login To Your Profile - Reyes
Katie Pavlich Bikini Photos
Gamevault Agent
Toyota Campers For Sale Craigslist
FFXIV Immortal Flames Hunting Log Guide
CKS is only available in the UK | NICE
Unlocking the Enigmatic Tonicamille: A Journey from Small Town to Social Media Stardom
Overzicht reviews voor 2Cheap.nl
Globe Position Fault Litter Robot
World Cup Soccer Wiki
Robert Malone é o inventor da vacina mRNA e está certo sobre vacinação de crianças #boato
How To Cut Eelgrass Grounded
Pac Man Deviantart
Alexander Funeral Home Gallatin Obituaries
Craigslist In Flagstaff
Shasta County Most Wanted 2022
Energy Healing Conference Utah
Testberichte zu E-Bikes & Fahrrädern von PROPHETE.
Aaa Saugus Ma Appointment
Geometry Review Quiz 5 Answer Key
Walgreens Alma School And Dynamite
Bible Gateway passage: Revelation 3 - New Living Translation
Yisd Home Access Center
Home
Shadbase Get Out Of Jail
Gina Wilson Angle Addition Postulate
Celina Powell Lil Meech Video: A Controversial Encounter Shakes Social Media - Video Reddit Trend
Walmart Pharmacy Near Me Open
Dmv In Anoka
A Christmas Horse - Alison Senxation
Ou Football Brainiacs
Access a Shared Resource | Computing for Arts + Sciences
Pixel Combat Unblocked
Cvs Sport Physicals
Mercedes W204 Belt Diagram
Rogold Extension
'Conan Exiles' 3.0 Guide: How To Unlock Spells And Sorcery
Teenbeautyfitness
Weekly Math Review Q4 3
Facebook Marketplace Marrero La
Nobodyhome.tv Reddit
Topos De Bolos Engraçados
Gregory (Five Nights at Freddy's)
Grand Valley State University Library Hours
Holzer Athena Portal
Hampton In And Suites Near Me
Stoughton Commuter Rail Schedule
Bedbathandbeyond Flemington Nj
Free Carnival-themed Google Slides & PowerPoint templates
Otter Bustr
Selly Medaline
Latest Posts
Article information

Author: Margart Wisoky

Last Updated:

Views: 6080

Rating: 4.8 / 5 (58 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Margart Wisoky

Birthday: 1993-05-13

Address: 2113 Abernathy Knoll, New Tamerafurt, CT 66893-2169

Phone: +25815234346805

Job: Central Developer

Hobby: Machining, Pottery, Rafting, Cosplaying, Jogging, Taekwondo, Scouting

Introduction: My name is Margart Wisoky, I am a gorgeous, shiny, successful, beautiful, adventurous, excited, pleasant person who loves writing and wants to share my knowledge and understanding with you.