Bitwarden - Self-hosted password manager
-
Hi @nebulon ,
I made a few tests today since I remembered that there is a
dockerImage
value in CloudronManifest.json, but I am not quite sure how to use it.My current experiment is at https://github.com/fbartels/bitwarden_rs/tree/cloudron/cloudron. It uses a new Dockerfile that uses the multi stage Dockerfile as a base and uses a Cloudron Base Image for the last stage. But it seems he does not take my dockerImage. The only way he pulls in my image is by calling
cloudron install --image fbartels/bitwarden-cloudron
from the commandline.For everyone else reading this. This is up until now only a build, the app is still missing all integration pieces and won't work withing Cloudron (yet).
-
They just published their security audit (https://blog.bitwarden.com/bitwarden-completes-third-party-security-audit-c1cc81b6d33) which seems like as good a reason as any to bump this request back up.
-
Any news?
Or simmiliar app in development? -
@spectrely no, I had no further time to really look into this so far. Busy with other projects.
@spectrely with cloudron now on 18.04 do multi stage builds now work? You can try this with a
cloudron build
in the git clone'ed directory. -
@spectrely said in Bitwarden - Self-hosted password manager:
@fbartels Thanks for the quick reply. I'll play around and report back.
Did you try that out?
-
To answer my own question: no Cloudron still does not support multi stage builds:
08:07 $ docker build . Sending build context to Docker daemon 7.68kB Step 1/12 : FROM cloudron/base:1.0.0@sha256:147a648a068a2e746644746bbfb42eb7a50d682437cead3c67c933c546357617 sha256:147a648a068a2e746644746bbfb42eb7a50d682437cead3c67c933c546357617: Pulling from cloudron/base 124c757242f8: Pull complete 9d866f8bde2a: Pull complete fa3f2f277e67: Pull complete 398d32b153e8: Pull complete afde35469481: Pull complete 5fa763ad3e3d: Pull complete 6f382df2868f: Pull complete da8db3680a7d: Pull complete bbf6e101d755: Pull complete ba1148a00c9f: Pull complete 7b84d63a4591: Pull complete Digest: sha256:147a648a068a2e746644746bbfb42eb7a50d682437cead3c67c933c546357617 Status: Downloaded newer image for cloudron/base:1.0.0@sha256:147a648a068a2e746644746bbfb42eb7a50d682437cead3c67c933c546357617 ---> 534bd0efda10 Step 2/12 : ENV ROCKET_ENV "staging" ---> Running in 68b6aa46c8fe Removing intermediate container 68b6aa46c8fe ---> b5146c0012ce Step 3/12 : ENV ROCKET_PORT=80 ---> Running in 3ceb3ae20f44 Removing intermediate container 3ceb3ae20f44 ---> 20f1c76798d9 Step 4/12 : ENV ROCKET_WORKERS=10 ---> Running in fb4da112f345 Removing intermediate container fb4da112f345 ---> 4715e7e5db66 Step 5/12 : RUN mkdir -p /app/data ---> Running in 080caeccf4bc Removing intermediate container 080caeccf4bc ---> 3bc89f3dd8e3 Step 6/12 : VOLUME /app/data ---> Running in c14ec82d1d86 Removing intermediate container c14ec82d1d86 ---> 921426c4b462 Step 7/12 : EXPOSE 80 ---> Running in 6f8a51fa17c2 Removing intermediate container 6f8a51fa17c2 ---> 945b85a9d2c0 Step 8/12 : EXPOSE 3012 ---> Running in 57a9f4770437 Removing intermediate container 57a9f4770437 ---> 29bf7e9ddc35 Step 9/12 : COPY --from=mprasil/bitwarden:1.7.0 /web-vault /app/code/web-vault 1.7.0: Pulling from mprasil/bitwarden 6ae821421a7d: Pull complete 6b62744e37c4: Pull complete 6f7d0f488d72: Pull complete b1dac5a36400: Pull complete f5334a919416: Pull complete 86593ec71a37: Pull complete Digest: sha256:0d48e5b8f64d83a0d0931aba0fb559985a687b7417ceb49fb909051b0f397f47 Status: Downloaded newer image for mprasil/bitwarden:1.7.0 ---> 8362350b2ff1 Step 10/12 : COPY --from=mprasil/bitwarden:1.7.0 /bitwarden_rs /app/code/ ---> d6e0b6fc0c46 Step 11/12 : COPY --from=mprasil/bitwarden:1.7.0 /Rocket.toml /app/code/ ---> e835acd7031b Step 12/12 : CMD /app/code/bitwarden_rs ---> Running in 81f78757da52 Removing intermediate container 81f78757da52 ---> 89d5017a81f4 Successfully built 89d5017a81f4 ✔ ~/.../bitwarden_rs/cloudron [cloudron L|✔] 08:09 $ cloudron build Building com.github.bitwardenrs@0.1.0 Build scheduled with id bc08173c-2af9-4f3f-a759-19d60bb45cf8 Waiting for build to begin, this may take a bit... Step 1/12 : FROM cloudron/base:1.0.0@sha256:147a648a068a2e746644746bbfb42eb7a50d682437cead3c67c933c546357617 ---> 534bd0efda10 Step 2/12 : ENV ROCKET_ENV "staging" ---> Using cache ---> c5a9b7d6ac6f Step 3/12 : ENV ROCKET_PORT 80 ---> Using cache ---> 2d22bcf6dc7d Step 4/12 : ENV ROCKET_WORKERS 10 ---> Using cache ---> 2e5e855777d5 Step 5/12 : RUN mkdir -p /app/data ---> Using cache ---> 2688a8102e91 Step 6/12 : VOLUME /app/data ---> Using cache ---> 4ee6f1df5ccf Step 7/12 : EXPOSE 80 ---> Using cache ---> 5f451061f3e1 Step 8/12 : EXPOSE 3012 ---> Using cache ---> 8c5e8e7a13b4 Step 9/12 : COPY --from=mprasil/bitwarden:1.7.0 /web-vault /app/code/web-vault Unknown flag: from Build failed Build failed ERROR App could not be built due to errors above [ /usr/lib/node_modules/cloudron/src/helper.js:68:29 ]
While a standalone ``docker build .` succeeds doing it via ´cloudron build´ fails.
@iamthefij said in Bitwarden - Self-hosted password manager:
LDAP support is a Work in Progress right now.
I would say even the recently introduced admin panel is already a good step. This could be secured via http basic auth and only allowed for admins in Cloudron. The last point in the ldap sync topic was afair that this will be implemented as a standalone tool (which then will give the challenge on how to integrate both parts in the same image).
-
@fbartels The tool will likely be written as a static binary which can be downloaded and installed within the same container. Then it can be executed by Cloudron using the scheduler. Roughly the same way other periodic tasks are executed.
-
basic prototype now lives in https://git.cloudron.io/fbartels/bitwardenrs-app
cannot build it at the moment, though. since its stuck at
$ cloudron build Building com.github.bitwardenrs@0.1.0 Build scheduled with id 9fcf31f1-04f9-445e-b687-79b2f7d54659 Waiting for build to begin, this may take a bit...
@girish is the backend maybe hanging?
edit: by now the build has finished
-
Great that this is being worked on!
I installed the app but get the following errors:
Mar 23 10:36:17 box:shell addLogrotateConfig spawn: /usr/bin/sudo -S /home/yellowtent/box/src/scripts/configurelogrotate.sh add a3cda43e-541b-4edd-b8fe-c4cfb52752fb /tmp/a3cda43e-541b-4edd-b8fe-c4cfb52752fb.logrotate Mar 23 10:27:12 => Starting bitwarden_rs Mar 23 10:27:12 [2019-03-23 10:27:12][bitwarden_rs][ERROR] Error creating database directory Mar 23 10:27:16 => Starting bitwarden_rs Mar 23 10:27:16 [2019-03-23 10:27:16][bitwarden_rs][ERROR] Error creating database directory Mar 23 10:27:19 => Starting bitwarden_rs Mar 23 10:27:19 [2019-03-23 10:27:19][bitwarden_rs][ERROR] Error creating database directory Mar 23 10:27:22 => Starting bitwarden_rs Mar 23 10:27:22 [2019-03-23 10:27:22][bitwarden_rs][ERROR] Error creating database directory Mar 23 10:27:26 => Starting bitwarden_rs Mar 23 10:27:26 [2019-03-23 10:27:26][bitwarden_rs][ERROR] Error creating database directory Mar 23 10:27:30 => Starting bitwarden_rs
After restarting the app it's now
not responding
Triedsudo systemctl restart box
as well. -
Hi @fbartels
Build and install worked without problems, but i'm facing the same issue as @necrevistonnezr
Couln't really find something on the first view, but i'm not that familiar with containers. Would be great to see it running, thank you for your efforts you already made!
-
You're welcome
I hope this pr is going to be merged into bitwarden_rs soon: https://github.com/dani-garcia/bitwarden_rs/pull/396
It would make it a lot easier for the user management. Currently registration is open to the world until you set
ENV SIGNUPS_ALLOWED=false
, which only makes sense after you created a first account. After setting it you could work with invites, but the invitation model sucks (you can just invite when having an Organisation or you can do it in the admin panel, but you have to set another env variable to access it and you can't save stuff there).So currently not really usable for the normal user. As far as I understood, with the ldap integration accounts / invites will be synced for all ldap users, which is exactly what we want. I also hope the admin panel gets some love, as in my eyes the token system to log in there isn't really easy to handle. And there seems to be a problem saving the settings you set there, but that's probably a problem in the cloudron integration.
-
@gml yes, the ldap invite tool would be nice. I think the best for the moment would be to slap Apache Infront of bitwarden (would be needed anyways for the websocket part) and hide the admin panel behind ldap auth (only allow admin users from within cloudron). Then invites and open registration can be disabled and admins can manually create accounts as needed.
-
I've now spent a bit of time to get the admin page "properly" working. Registrations are now disabled in the app itself, but users that are in the cloudron admin group can login to /admin to create the required users.
Stuff like Websockets support (for folder notifications) is still missing, as well as automatic SMTP configuration but I would say the general app is "done".
Looking forward to feedback.