I’m going to move away from lastpass because the user experience is pretty fucking shit. I was going to look at 1pass as I use it a lot at work and so know it. However I have heard a lot of praise for BitWarden and VaultWarden on here and so probably going to try them out first.

My questions are to those of you who self-host, firstly: why?

And how do you mitigate the risk of your internet going down at home and blocking your access while away?

BitWarden’s paid tier is only $10 a year which I’m happy to pay to support a decent service, but im curious about the benefits of the above. I already run syncthing on a pi so adding a password manager wouldn’t need any additional hardware.

120 points

Because when whatever company gets a data breach I don’t want my data in the list.

With bitwarden If your server goes down then all your devices still have a local copy of your database you just can’t add new passwords until the server is back up.

permalink
report
reply
7 points

This was also the most compelling reason for me to consider it.

I do think that balanced against the time and effort and risk of me fucking up outweighs this benefit. But I can totally see why for some that balance goes the other way.

permalink
report
parent
reply
6 points

I think the main thing for not messing it up is just make sure you keep it updated. Probably set up auto updates and auto backups.

permalink
report
parent
reply
4 points
*

More than any other piece of self-hosted software: backups are important if you’re going to host a password manager.

I have Borg automatically backing up most of the data on my server, but around once every 3 months or so, I take a backup of Vaultwardens data and put it on an external drive.

As long as you can keep up with that, or a similar process; there’s little concern to me about screwing things up. I’m constantly making tweaks and changes to my server setup, but, should I royally fuck up and say, corrupt all my data somehow: I’ve got a separate backup of the absolutely critical stuff and can easily rebuild.

But, even with the server destroyed and all backups lost, as long as you still have a device that’s previously logged into your password manager; you can unlock it and export the passwords to manually recover.

permalink
report
parent
reply
20 points
*

Pretty much this. Combined with how easy it is to install VaultWarden (docker ftw), it was a no brainer for me.

Also, my little home server is a WAY less juicy target for someone looking to steal and sell a bunch of passwords.

Been running it for probably about 2 years now. No ISP outages but a couple self-inflicted ones. Didn’t even notice the outages in the BitWarden app/extension.

permalink
report
parent
reply
3 points

1Password’s security model guards against this. Even if they are breached, your passwords cannot be decrypted.

You are more likely to screw up your own backups and hosting security than they are.

permalink
report
parent
reply
14 points
*

LastPass said the exact same thing. I won’t be a big target like they will though.

permalink
report
parent
reply
4 points

LastPass doesn’t have your password, so it can’t be stolen during a breach.

But 1Password goes a step further, also requiring a “secret key”, which also can’t be stolen.

https://support.1password.com/secret-key-security/

Even if an attacker manages to steal your encrypted data from 1Password and also guess your master password, they still can’t access your data without a secret key.

For that reason, your 1Password account is more likely to compromised through your own device, not their server. And if your own devices are thoroughly compromised, no password manager can save you— the attacker can potentially grab all you type and see all you see.

permalink
report
parent
reply
1 point

Ok, but this doesn’t explain why you would choose to self-host VaultWarden rather than using BitWarden.

permalink
report
parent
reply
16 points

I don’t, specifically because I don’t trust myself to host that. I know what people will say here, but I trust 1pass way more than I could do it myself.

1pass uses your password plus a secret key to generate your full “password”, meaning you need both to access your vault. The password you memorize, the key you keep safe somewhere (inside the vault is even good, since you probably have it open on another device should you need it). They publish their docs, and show how they encrypt your vaults. To them, your vaults are truly just random bytes they store in blob storage. They don’t store your key, they don’t store your password, they will not help you out if you lock yourself out. That’s the level of security I want for a password vault. If they ever get breached, which hey, it can happen, the most someone will get is a random blob of data, which then I’d go and probably generate a new password and reencrypt everything again anyway.

Vs me hosting myself, I’m sure the code is good - but I don’t trust myself to host that data. There’s too many points of failure. I could set up encryption wrong, I could expose a bad port, if someone gained access to my network I don’t trust that they wouldn’t find some way to access my vaults. It’s just too likely I have a bad config somewhere that would open everything up. Plus then it’s on me to upgrade immediately if there’s a zero day, something I’m more likely to miss.

I know, on the selfhosted community this is heresy, but this is the one thing I don’t self host, I leave it to true security researchers.

permalink
report
reply
8 points

Nah, I’m with you, except I use BitWarden.

There are somethings either worth paying someone else to host, or where you trust a 3rd party more than you’re own setup. I realize other users may feel different, but ultimately it’s a judgement call

BW has been a pretty great opensource company, and it’s worth my $10/yr for premium.

permalink
report
parent
reply
4 points

Wow, Bitwarden has made leaps and bounds on catching up to 1password on dev tools and enterprise features the last few years. I’m going to need to re-evaluate/consider moving over.

permalink
report
parent
reply
3 points
*
Deleted by creator
permalink
report
parent
reply
0 points

Another great point, if I lose my Linux isos, sucks but I’ll redownload. If I lose my family videos, sucks but I’ll log into my backups and resync. If I lose my credentials I’m fucked. Plain fucked. I can’t decrypt my backups, can’t log into services, it’s done.

permalink
report
parent
reply
1 point

Thats why ones password DB should also be saved encrypted one one or two external drives.

permalink
report
parent
reply
1 point
*

As a side note, if you work somewhere that uses 1password, you can usually get your personal subscription comped as an individual. Only need to pay for it if you leave your company or they drop 1password.

I dont know that I’ll stay on 1password forever, but on the scale of things I’m most concerned about self-hosting vs using a reasonably private SaaS, 1password is nowhere near the top of my list to ditch. Otherwise, its a solid recommendation for non-self hosters who want to make some progress.

permalink
report
parent
reply
1 point

if you work somewhere that uses 1password, you can usually get your personal subscription comped as an individual

Same with Keeper as far as I know (which is what we use at work).

I prefer security software to be open-source though, which is why I love Bitwarden. Even if you don’t self-host it, there’s still value in it being open-source.

permalink
report
parent
reply
60 points

I use KeePassXC and use syncthing to sync the database to each devise I own. This way I always have the newest version if the database everywhere and don’t need to worry about Internet access at all.

permalink
report
reply

This is what recommend as well. The various KeePasses all to pretty good jobs of merging databases, in case of sync conflicts, and you can utterly ignore whether you’re online or not. Plus, there’s a really fantastic tool, written by a veritable genius of a developer, that lets you use a KeePass DB as a secret service on your desktop.

permalink
report
parent
reply
5 points

You delicious bastard! Thanks for the rook tip.

permalink
report
parent
reply
3 points

But keepassxc already provides a secret service ootb?

permalink
report
parent
reply

KeePassXC can’t be run in headless mode, and the GUI is tightly coupled to the app. You have to have all of X installed, and have a display running, to run it.

Here’s the runtime dependencies of KeePassXC:

linux-vdso.so.1
libQt5Svg.so.5
libqrencode.so.4
libQt5Concurrent.so.5
libpcsclite.so.1
libargon2.so.1
libQt5Network.so.5
libQt5Widgets.so.5
libbotan-3.so.5
libz.so.1
libminizip.so.1
libQt5DBus.so.5
libusb-1.0.so.0
libQt5X11Extras.so.5
libQt5Gui.so.5
libQt5Core.so.5
libX11.so.6
libstdc++.so.6
libm.so.6
libgcc_s.so.1
libc.so.6
/lib64/ld-linux-x86-64.so.2
libgssapi_krb5.so.2
libproxy.so.1
libssl.so.3
libcrypto.so.3
libbz2.so.1.0
liblzma.so.5
libsqlite3.so.0
libdbus-1.so.3
libudev.so.1
libGL.so.1
libpng16.so.16
libharfbuzz.so.0
libmd4c.so.0
libsystemd.so.0
libdouble-conversion.so.3
libicui18n.so.75
libicuuc.so.75
libpcre2-16.so.0
libzstd.so.1
libglib-2.0.so.0
libxcb.so.1
libkrb5.so.3
libk5crypto.so.3
libcom_err.so.2
libkrb5support.so.0
libkeyutils.so.1
libresolv.so.2
libpxbackend-1.0.so
libgobject-2.0.so.0
libcap.so.2
libGLdispatch.so.0
libGLX.so.0
libfreetype.so.6
libgraphite2.so.3
libicudata.so.75
libpcre2-8.so.0
libXau.so.6
libXdmcp.so.6
libcurl.so.4
libgio-2.0.so.0
libduktape.so.207
libffi.so.8
libbrotlidec.so.1
libnghttp3.so.9
libnghttp2.so.14
libidn2.so.0
libssh2.so.1
libpsl.so.5
libgmodule-2.0.so.0
libmount.so.1
libbrotlicommon.so.1
libunistring.so.5
libblkid.so.1

I don’t know why it links to a systemd library. Here are the runtime dependencies of rook:

linux-vdso.so.1
libresolv.so.2
libc.so.6
/lib64/ld-linux-x86-64.so.2

Don’t get me wrong: KeePassXC is one of my favorite programs. But don’t leave it running all the time, and it can’t be run on headless systems.

permalink
report
parent
reply
2 points

This is the answer.

I use syncthing to sync between devices.

permalink
report
parent
reply
5 points
*

don’t need to worry about Internet access at all.

For what it’s worth, Bitwarden caches the database for offline use, so it works fine without internet access too. When you get internet access again, it’ll sync with the server.

permalink
report
parent
reply
2 points
*

this is what I do as well, along with file staging so if I corrupt it by accident I don’t lose the entire DB

Currently I have it on my server as grab only, and then normal access on my clients with staging

permalink
report
parent
reply
1 point

Agreed with using keepass. If you’re one person accessing your passwords, there’s no reason you need a service running all the time to access your password db. It’s just an encrypted file that needs to be synced across devices.

However, if you make frequent use of secure password sharing features of lastpass/bitwarden/etc, then that’s another story. Trying to orchestrate that using separate files would be a headache. Use a service (even if self-hosted).

permalink
report
parent
reply
5 points

I self host Bitwarden and it’s free to self host. You only have to pay for a license if you need multiple users or want to use their cloud services, I believe. My instance is 100% self hosted and completely isolated from the internet, and it works fine.

I self host it because I self host everything, but for credential managers I would never trust any 3rd party closed source utility or cloud service. Before I used a password manager I tracked them all manually with a text file and a TrueCrypt volume. I think giving unrelated credentials to 3rd parties is asking for trouble - they definitely don’t care as much about them as you do!

If you’re going to self host any credential manager, make sure you have an appropriate backup strategy, and make sure you have at least one client synced regularly so that you can still access passwords if the server itself dies for some reason.

permalink
report
reply
2 points

Thanks that’s a helpful reply

permalink
report
parent
reply
3 points
*

You only have to pay for a license if you need multiple users or want to use their cloud services, I believe.

AFAIK you can have multiple users for free when self-hosting, and the features are essentially the same as the free hosted version. You need to pay if you want to get the premium features or share passwords across multiple users using an organization. Essentially the pricing is the same as the hosted version.

I’d recommend Vaultwarden for a small-scale self-hosted solution. It’s not Bitwarden, but it’s fully API-compatible so you can use all the Bitwarden clients and browser extensions. Self-hosted Bitwarden is quite a bit heavier than Vaultwarden since it’s designed for large-scale usage (like for an entire company of tens of thousands of people)

permalink
report
parent
reply
35 points

vaultwarden syncs your passwords locally so even if your server is down the passwords remain available on your device. And it is a wonderful password manager, you can share passwords with your family, have TOTPs, passkeys.

permalink
report
reply
9 points

Fully agreed.

Accessing Vaultwarden through a VPN gives me peace of mind that it can’t be attacked.

Another great thing about Bitwarden is that it’s possible to export locally cached passwords to (encrypted) json/csv. This makes recovery possible even if all backups were gone.

permalink
report
parent
reply
1 point
*

Accessing Vaultwarden through a VPN

Hmm maybe I should move mine to my VPN. Currently I have it publicly accessible so I can access it from systems where I can’t run other VPNs for security reasons (work systems). I use a physical token with FIDO2 (Yubikey) for two factor authentication though, so I’m not too worried about unauthorized access.

permalink
report
parent
reply
2 points

Vaultwarden is one of the few services I’d actually trust to be secure, so I wouldn’t worry if you update timely to new versions.

permalink
report
parent
reply
1 point

A VPN? you still need a reverse proxy/domain to use it don’t you?

permalink
report
parent
reply
4 points

You can forward a Wireguard port, exposing it to the internet.

permalink
report
parent
reply
4 points

Yes, Bitwarden browser plugins require TLS, so I use DNS challenge to get a cert without an open port 80/443.

The domain points to a local IP, so I can’t access it without the VPN.

Having everything behind a reverse proxy makes it much easier to know which services are open, and I only need to open port 80/443 on my servers firewall.

permalink
report
parent
reply

Selfhosted

!selfhosted@lemmy.world

Create post

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.

Rules:

  1. Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it’s not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

Community stats

  • 4.7K

    Monthly active users

  • 3.5K

    Posts

  • 75K

    Comments