Bitwarden - Self-hosted password manager



  • https://bitwarden.com
    Self-hosted password manager.

    Already has a beta Docker deploy: https://help.bitwarden.com/article/install-on-premise/



  • tgxn @tgxn commented 4 months ago
    It appears this uses MSSQL and .NET for deployment which can be rather resource-intensive within cloudron. (I don't believe any other apps are using this approach to store data)
    .NET Core 2.x SDK
    SQL Server 2016 or 2017 (2017 for cross-platform)
    (from https://github.com/bitwarden/core)

    Owner Some people on a HN thread mentioned that despite being .net, it runs on linux and mysql.

    Joel McCracken @joelmccracken commented 3 months ago
    https://github.com/joelmccracken/bitwarden-ruby/commit/5edc4a6e48924139f4cb9f75c723f2c7680f24fd
    there is a bitwarden-ruby which has a much smaller footprint (should be easier to port) this is my fork of it, and linked is a commit where i have started the porting work. bitwarden-ruby is running on the cloudron docker image.



  • There is now an API compatible rewrite available, which does not depend on MS SQL server: https://www.reddit.com/r/selfhosted/comments/8usixz/let_me_introduce_you_to_bitwarden_rs_selfhosted/



  • Hi @nebulon ,

    the Dockerfile in the git repo of bitwarden_rs makes use of multi stage building. is that already supported in cloudron build? If so then is should be trivial to adapt the last stage of the build process.

    Edit: to answer myself. Cloudron currently does not seem to support multi stage docker builds.



  • Has anyone made progress on this app?



  • I would love to see this app on Cloudron. It would immediately become my new password manager.



  • Bitwarden now has live-sync

    Live sync will instantly push changes from one Bitwarden app to all others that you may be using within a matter of seconds.

    https://blog.bitwarden.com/live-sync-bitwarden-apps-fb7a54569fea?gi=2a2ca195c303



  • 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?



  • @fbartels How is the project going?



  • @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.



  • @fbartels Thanks for the quick reply. I'll play around and report back.



  • @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?



  • LDAP support is a Work in Progress right now.

    The plan is not to have it leverage LDAP for auth, but to auto invite users from LDAP so that new user registration doesn't have to be enabled.



  • 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.



  • Is there chance Bitwarden is going to be included in cloudron soon ?
    I would like to start using it.



  • Docker has recently been updated on the cloudron buildserver, which means multi stage builds and COPY --from now works within Dockerfiles.

    I have a longer train ride on friday, maybe I can now make something happen with Bitwarden_rs.


Log in to reply