Giter Club home page Giter Club logo

vaultwarden_heroku's Introduction

THIS PROJECT WAS RENAMED FROM BITWARDEN_RS_HEROKU TO VAULTWARDEN_HEROKU TO MATCH UPSTREAM PROJECT NAME

Vaultwarden on Heroku for Free!

Deploy Vaultwarden in Heroku for free via Github

GitHub Workflow Status (branch) GitHub Workflow Status (branch)

CodeFactor

Features

  • Build and deploy cutomized Vaultwarden image from source to Heroku via Github actions
  • Add global Duo Security enablement for replica deployment as needed
  • Maintanable updates with Git Hash for future updates
  • Easily extendable for future tweaks

Usage

Usage is simple, fast, and user friendly!

Deployment

  1. Create a fork of this project
  2. Edit the .github/workflows/deploy.yml to enable/disable Duo and/or modify the checkout hash of Vaultwarden upstream.
  3. Go to your forked repo Settings > Secrets and add secrets for:
  • HEROKU_API_KEY (yoru Heroku API key - can be found in Account Setings -> APi Keys)
  • HEROKU_APP_NAME (the name of the Heroku application, this must be unqiue across Heroku and will fail if it is not) [Value alphanumerical]
  • HEROKU_VERIFIED (required regardless, if you have added a credit card on, your account will be verified to use built in addons, if not please see "NON VERIFIED ACCOUNTS" section) [Value 0/1]
  1. Go to the Actions tab, select the BitwardenRSOnHerokuAIO_Deploy job and wait!
  2. Github Actions will run the job and begin deploying the app. This will take around 15 minutes.
  3. Congrats, you now having a fully functional Vaultwarden instance in Heroku!

Update

Updating is simple and can be done one of two ways:

  • Running the workflow manually via Github Actions
  • Making a commit to the main branch, forcing a Github Actions workflow to initiate

Either one of these will force the Github Actions workflow to run and update the app. If you need to modify to enable/disable settings, you should re run it as well.

Non Verified Heroku Accounts

Non-verified Heroku accounts cannot use the built in Heroku addons, regardless if they are free or not. This just requires you to do a few more steps and use an outside resources. I have not personally vetted this service, but FreeMySQLHosting has free plans comparable to the JawsDB addon and should be sufficient for usage. It is suggested that regardless of whatever route you take, you take regular constructed backups of your Bitwarden Vault for safety.

Another service that @mizzunet has found working is freedb.tech. He has indicated successfuly results and they do not currently cap MySQL connections.

Signup via the website above and navigate to the home page, select your home region for database ("Select where you would like you database located.") and then create database. It will list the server hostname and relevant details. The password will be emailed to you. You will need to add a new Github repository secret for "OFFSITE_HEROKU_DB" in the format of mysql://USERNAME:PASSWORD@SERVER_HOSTNAME:SERVER_PORT/DATABASE_NAME. If this field is not filled out properly, you will encounter issues and may be troublesome to debug. Verified users of Heroku benefit from having easier settup without issues. Additionally, you will need to modify HEROKU_VERIFIED to 0 in order to trigger the offsite DB env var.

Why this was started

In this issues request, someone had inquired if it was possible to install Vaultwarden in Heroku. Unfortunately the dev team had not done this before and someone had tried but was unsccessful (due to port binding issues).

As my Bitwarden instance is a critical part of my daily workflow and part of acceptance from users in my group whom I need to share passwords with, high availability services are also an important part. I run a replica of Bitwarden on a cheap cloud server where I also take backups as well to S3, but seeing Heroku have a generous free tier, I was inclined to try this out!

Notes to consider

Your Bitwarden instance will go to sleep after 30 minutes of no activity. This should not be too bad of an issue due to the fact that you can maintain a local copy. However if you are adding, you may wish to have a cron job which polls your instance to keep it avaliable (read: Pingdom set to 15 minute intervals or any website status checker).

The JawsDB instance comes with 5MB of storage space. I found this sufficient enough for my own personal backups even with 700+ entries, two orgs, and 4 members. You may find if you are attaching content, that you might exceed this but I suggest attach files in base64 encoded content to preserve portability.

vaultwarden_heroku's People

Contributors

acmcmc avatar alecjy avatar bryanjhv avatar davidjameshowell avatar duhd1993 avatar iineva avatar k265 avatar kibeb avatar vaayne avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

vaultwarden_heroku's Issues

Getting resets

I have deployed this on Heroku. Signed up and logged in. But the thing is it just sign outs itselft after some time and asking for logging in. But it says wrong password.
So I created another account with account with same email(I shouldn't be able to create with the same, unless there's no account, means it gets resets). And the sign out happens again. It's getting reset I guess.

I'm not sure what kind of logs can I provide you.
Here's the link anyway: https://bwarden.herokuapp.com
BTW, you've telegram account?

How to update?

How to update to latest version of vaultbitwarden. Current version if my deployment is 2.18.1. It's not latest, is it?

Question regarding sleep

Sorry havn't installed yet, but.

Wouldn't the now "verified" 1000 dyno hours be enough for a month of usage (744 hours max) ?

Or are you starting multiple dynos..

It just seems like your readme says different.

Question on Duo

What's special about Duo? Any disadvantages on setting 1 for Duo value?

Error at Line 61: unknown instruction docker/amd64/dockerfile

Just came across this repo, and thought I'd give the steps a try for myself.
I've never used Docker before, in any major capacity, and have familiarity with Heroku, but not when it comes to pushing Docker images.

I tried running the shell script, and get an error at ln 61 (and subsequently ln 64). The error is the subject of this error. Seems like it can't parse the dockerfile from the bitwarden_rs dir?

Any steps on how to proceed here?
Thanks

How to restore backups from Autobus?

Hi I'm trying to walk through the backup-restore process of this project -- just in case.

I'm able to locate and download the .sql backups from Autobus, however I'm having difficulty restoring it back to the JawDB. I have tried using HeidiSQL with 'connecting to DB, load backup file, run' steps but it keeps jump out error of 'Access denied (at least of ) the SUPER, SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privileges for this operation'.

Big hugs if anybody could kindly instruct a step-by-step to a code-dumb ๐Ÿฅ‡

autobus deployment error

I'm getting this error when running the action to create a new app. Any advice on how to resolve this?

image

Confusion about instructions

Hi. I'm not a programmer, and I have no idea this means:
"Edit the .github/workflows/deploy.yml to enable/disable Duo and/or modify the checkout hash of Vaultwarden upstream."

Is it possible for the instructions to be modified/clarified/explained?
Specifically what Duo is, and what "checkout hash of vaultwarden upstream" means.

Replace sed calls with env variable

I was checking out your project, and it's awesome!
Thanks in advance for that, Heroku helps a lot hosting it.

Now, I've got a suggestion from the official repository after suggesting part of your code:

https://github.com/davidjameshowell/bitwarden_rs_heroku/blob/819e8829a0ffb3143405fa2258823afcb2bddc16/bitwarden_rs_heroku.sh#L67-L71

If you check out dani-garcia/vaultwarden#861 (comment), it says it'd be easier to just heroku config:set _ENABLE_DUO=true, given configuration keys are mapped to env variables.

What do you think? Is it something that would make your script simpler?

How to correctly migrate from Heroku to Railway without losing data?

Railway has a template for Vaultwarden for easy deployment. I want to migrate my Heroku Vaultwarden to Railway without losing any data (users, organisations, passwords, domain configuration, etc.). Can anyone provide the steps on how to transfer the data between the two instances? I don't want to mess it up as it contains a lot of useful data.

Using postgre instead of Jaws

Heroku postgres has about 1gb limit so can this be used with postgres.

Also regarding stmp mail, can you add the process for that in readme.

Update cycle

Helo David!

Thank you for your work, it works as needed. But I can see that there are a lot of improvements in the main repository, the latest release was 1.23.1 Dec 14, 2021 https://github.com/dani-garcia/vaultwarden/releases/tag/1.23.1

and your repository was updated 5 months ago.

Can you update your repo with the latest code? Becaue I'm interested to use some of the features from that.

What would be your ideal release cycle for this? Maybe a regular cycle could help us to keep systems safe.

Thank you

SMTP / email setup?

Hi there, great project.

No emails seem to send via smtp. I can't see logs for them either.

How do I configure the SMTP server for this project?

I_REALLY_WANT_VOLATILE_STORAGE

I guess not many people have updated in recent months. Upstream added a check for persistent volume. We need to set this environment variable to bypass it.
I_REALLY_WANT_VOLATILE_STORAGE=true

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.