All Projects → JulianRunnels → Bitwarden_Self_Host

JulianRunnels / Bitwarden_Self_Host

Licence: other
Automatically setup and host a Vaultwarden (unoffical Bitwarden) instance on a Raspberry Pi or other Linux Server

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Bitwarden Self Host

Lesspass
🔑 stateless open source password manager
Stars: ✭ 4,879 (+5508.05%)
Mutual labels:  password-manager, self-hosted
Shaark
Self-hosted platform to keep and share your content: web links, posts, passwords and pictures.
Stars: ✭ 258 (+196.55%)
Mutual labels:  password-manager, self-hosted
web
Cloverleaf is a free, open source app to replace your password manager without storing your passwords anywhere.
Stars: ✭ 33 (-62.07%)
Mutual labels:  password-manager, self-hosted
Passwordcockpit
Passwordcockpit is a simple, free, open source, self hosted, web based password manager for teams. It is made in PHP, Javascript, MySQL and it run on a docker service. It allows users with any kind of device to safely store, share and retrieve passwords, certificates, files and much more.
Stars: ✭ 34 (-60.92%)
Mutual labels:  password-manager, self-hosted
uptime-kuma
A fancy self-hosted monitoring tool
Stars: ✭ 27,425 (+31422.99%)
Mutual labels:  self-hosted
nanoblog
Open source microblog with buffering and Twitter crossposting
Stars: ✭ 23 (-73.56%)
Mutual labels:  self-hosted
jpass
🔐 Password manager application with strong encryption (AES-256). [Java/Swing]
Stars: ✭ 129 (+48.28%)
Mutual labels:  password-manager
keepass2-to-keepassx
KeePass2 to KeePassX password database convertor.
Stars: ✭ 21 (-75.86%)
Mutual labels:  password-manager
wombag
Wombag is the alternative, lightweight backend for your Wallabag apps. Wombag supports the Wallabag API.
Stars: ✭ 42 (-51.72%)
Mutual labels:  self-hosted
exatorrent
Easy to Use Torrent Client. Can be hosted in Cloud. Files can be streamed in Browser/Media Player.
Stars: ✭ 1,557 (+1689.66%)
Mutual labels:  self-hosted
SaorTech-cloud-services
A range of scripts to provision and configure open source cloud services.
Stars: ✭ 23 (-73.56%)
Mutual labels:  self-hosted
notesnook
A fully open source & end-to-end encrypted note taking alternative to Evernote.
Stars: ✭ 5,098 (+5759.77%)
Mutual labels:  self-hosted
azcc
A toy C compiler, developed at seccamp2020.
Stars: ✭ 19 (-78.16%)
Mutual labels:  self-hosted
RSS-to-Telegram-Bot
A Telegram RSS bot that cares about your reading experience
Stars: ✭ 482 (+454.02%)
Mutual labels:  self-hosted
openbsd-selfhosted
🐡 Shell script for self-hosting cloud, email, and git services
Stars: ✭ 41 (-52.87%)
Mutual labels:  self-hosted
finance
💰 Free open-source personal finance tracking web application.
Stars: ✭ 156 (+79.31%)
Mutual labels:  self-hosted
trusted-cgi
Lightweight runner for lambda functions/apps in CGI like mode
Stars: ✭ 150 (+72.41%)
Mutual labels:  self-hosted
foolang
A toy programming language.
Stars: ✭ 33 (-62.07%)
Mutual labels:  self-hosted
onionjuggler
Manage your Onion Services via CLI or TUI on Unix-like operating system with a POSIX compliant shell.
Stars: ✭ 31 (-64.37%)
Mutual labels:  self-hosted
pass-audit
A pass extension for auditing your password repository.
Stars: ✭ 71 (-18.39%)
Mutual labels:  password-manager

Vaultwarden Self Host

📢 Note: This project was known as Bitwarden_Self_Host and has been renamed to separate itself from the official Bitwarden server in the hopes of avoiding confusion and trademark/branding issues. Please see #23 for more explanation.


For more details please read blog here

This project is aimed at creating a private Vaultwarden instance on your local LAN for devices on your personal network to be able to access. The docker-compose files contains 3 containers, the bitwarden unoffical rust backend, an nginx reverse proxy for HTTPS, and a backup container. To faciliate the connection with Bitwarden's iOS apps via HTTPS, we are going to create our own private CA, so we can create trusted certificates, since self-signed certs won't work with the native app.

PLEASE NOTE THAT THIS SETUP USES Vaultwarden WHICH IS AN UNOFFICAL COMMUNITY CREATED BACKEND. IT IS REGULARLY UPDATED AND HAS SEVERAL ADVANTAGES INCLUDING ABILITY TO RUN ON RASPBERRY PI, A MUCH LOWER OVERALL RESOURCE FOOTPRINT, AND FULL BITWARDEN FUNCTIONALITY, INCLUDING PREMIUM FEATURES

To install

Note: to install on a Raspberry Pi, you will need up update the tags for the containers in docker-compose.yml with the values in the comments of that page

  1. git clone https://github.com/JulianRunnels/Vaultwarden_Self_Host.git
  2. cd Vaultwarden_Self_Host
  3. chmod +x ./setup.sh

From here there are three different installation paths, depending on your existing setup and needs

  • No docker/docker-compose installed, want to create a full private CA and client certificate:
    • sudo ./setup.sh - This will install docker and docker-compose and has option to guide you through creating the needed CA and certs
  • Docker/docker-compose installed, want to create a full private CA and client certificate:
    • sudo ./create_ssl.sh - This will just create the needed SSL certificates
  • Don't want to install docker or create certs, just spin up containers:
    • sudo docker-compose pull && sudo docker-compose up -d - This will just spin up the containers, you will need to supply your own cert in ./data/ssl/certs

Once you have all the setup done, you will need to download the personal CA created, which should be called myCA.crt and install it as a trusted root in each client you want to connect to the bitwarden instance. The good news is that once you install this CA, any further personal certs you make with the CA will be automatically trusted and validated, without having to load new certs in.

To download, I recommend just using scp or any other file transfer: scp myCA.crt user@external:~

To revoke and recreate SSL certificates when expired

  1. Identify the serial number of the cert in use. Can view the cert in web server or just look and see what file exists in /data/ssl/newcerts (default is 1000)
  2. renew_cert.sh 1000 will automatically revoke and replace the existin bitwarden.crt certificate using the existing root CA. You will not need to add a new root CA to devices.
  • Each time the certificate is renewed, the serial number will increase by 1, so the 2nd time the command renew_cert.sh 1001 will need to be run instead.
  1. Restart sudo docker-compose down && sudo docker-compose up -d --build

Note for iOS installation

After you transfer the cert over to iOS, to have it work with native Bitwarden app, you will need to enable full trust. To do this:

  • Make sure the certificate is installed
  • Go to Settings -> General -> About -> Certificate Trust Settings or just search for Trusted Certificates
  • Click the switch next to the certificate you installed to switch it to full trust

Once you have the CA installed where you want it, spin up the containers:

  • sudo docker-compose pull && sudo docker-compose up -d

You should now be able to access your instance at https://hostname

Accessing outside of your personal LAN

While having an internal password vault is all good, being able to access accounts while outside the house is equally important.

For my access I have a Raspberry Pi running PiHole, Unbound, and more importantly PiVPN, which allows me to create a split tunnel VPN to send all local LAN request and DNS request back to my home network. This means that for things like my phone and external devices, as long as I have this VPN up, I can access my vault, just like normal.

A good guide to setup PiVPN is here: https://www.smarthomeblog.net/raspberry-pi-vpn/ Once you have PiPVN, or any OpenVPN based solution set up you can enable a split tunnel, so that only DNS traffic and local based traffic is sent back to you home network rather than routing everything through it:

  • sudo vim /etc/openvpn/server.conf
  • Add the following lines
    • push "route 192.168.1.0 255.255.255.0" (Change the 192 value to your personal private ip range)
  • Comment out #push "redirect-gateway def1"

Obviously this does put a little bit of a barrier in the way of using Bitwarden, but it is a small tradeoff to have full and complete control over your passwords and other important data. Of course, its very easy to adapt this repo to create a full publicly accessible instance, simply by adding port forwarding in your router, or running it in the cloud. Personally, I would stay away from both of those options, as they defeat the whole purpose of setting up this instance to have a private vault.

Backups

A backup file will be created at /opt/Bitwarden-Backup/backup.sqlite3 with root permissions. Personally I use rclone to sync a folder with OneDrive, then copy that backup into the OneDrive folder daily, but however you want to move that backup folder out works.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].