this post was submitted on 28 Sep 2023
80 points (98.8% liked)

Selfhosted

39435 readers
6 users here now

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!

founded 2 years ago
MODERATORS
 

Objective: Secure & private password management, prevent anyone from stealing your passwords.

Option 1: Store Keepass PW file in personal cloud service like OneDrive/GoogleDrive/etc , download file, use KeepassXC to Open

Option 2: Use ProtonPass or similar solution like Bitwarden

Option 3: Host a solution like Vaultwarden

Which would do you choose? Are there more options ? Assume strong masterpassword and strong technical skills

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 6 points 1 year ago* (last edited 1 year ago) (1 children)

Option 3: Vaultwarden + Wireguard.

I don't have to worry about attacks from the internet. And a single wireguard connection on my phone sometimes doesn't even appear on the battery stats.

Edit: Browser addons need valid ssl certificates, which I get by dns challenge.

[–] [email protected] 1 points 1 year ago (2 children)

could you expand a bit on your edit? so bitwarden extensions need a valid ssl certificate for the domain where the server is hosted? how do you get that for (i assume) a local domain? thank you for your time!

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)

DNS-01 challenge allows for domain ownership verification without open ports and instead looks for a txt record. Using a tool like lego[1] with the respective dns provider's API automatically creates and deletes the txt record after generating a certificate.

Because ownership is verified by dns txt entry, the (sub-)domain doesn't have to point to a publicly routable host. This allows for using any IP, so I'm using a local ip only available through wireguard or my local network (E.g. bitwarden.example.com points to 192.168.1.123).

The disadvantage is that the provider has to be supported and you have to store an API key for your domain on the server.

[1] https://github.com/go-acme/lego

[–] [email protected] 1 points 1 year ago (1 children)

that's genius. i have never even considered that you could use a (sub)domain with a local ip like that to get a certificate from a trusted ca. i ma not sure i understand the neccessity for api access to your dns service. is the txt record for LE different every time you have to pass a challenge? otherwise i imagine you could just set and forget the record.

thank you for the explanation, well appreciated!

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

Yes it's awesome. I never even considered that it's possible to add not publicly routable IP's to public DNS server, until I recently read a post about dns-01 challenge.

I believe the txt record is different every time.

[–] [email protected] 2 points 1 year ago (1 children)

Not the one who wrote initially, but i have the same setup (mostly).
I went with a self signed certificate. So the server is running with a certificate i have signed with my own certification authority certificate (ca-cert) .
That means I have to install the ca-cert on all devices to get vaultwarden to accept it.

The alternative is a let's encrypt cerrtificate, which are free, but you need to open port 80 (and another one if I remember correctly) for it to work (at least every 3 months)

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago) (1 children)

If you own a domain name you can use the DNS-01 challenge instead of hosting a web server to serve the challenge response.

With DNS-01 it will add a TXT record to your DNS zones and check if the record exists to verify that you own the domain and then issue the certificate.

Depending on which tool you use, they usually support DuckDNS and some other free DDNS providers. If you have your domain on a registrar, chances are that it's also supported.

[–] [email protected] 2 points 1 year ago

Yep that would be a good alternative...I don't have an official domain for it, so I went the self-signed way

Which enables me to provide tls/https for all my local services. And it was a fun experience to learn