Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. App Wishlist
  3. Bitwarden - Self-hosted password manager

Bitwarden - Self-hosted password manager

Scheduled Pinned Locked Moved Solved App Wishlist
218 Posts 20 Posters 123.3k Views 29 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • iamthefijI iamthefij

      @will Yes, you can use LDAP if you use the version I published.

      https://git.cloudron.io/iamthefij/bitwardenrs-app

      Updated to the latest version. I haven't updated to the latest versions of Bitwarden just yet though. I'll give that a go now.

      Edit: It looks like Bitwarden_rs was updated to use a newer base image for building it's binaries. That means that when the binary used in the MySQL image is built, it's compiled against a newer version of libmariadb. It doesn't look like the Cloudron base image has been updated in a year, so I'm unable to just bump the version in the single-stage Dockerfile in my repo. However, I also have a multi-stage Dockerfile that will compile Bitwarden_rs from source against whatever version of libmariadb that is present. This should work but takes more time to build so I'm letting that run right now. I'll update when it's done. Edit: It's done!

      Related, but kind off topic: Can we get an update to the Cloudron base? How will those be handled in an ongoing basis since apps are pinned (as they should be) to a particular base? I imagine there have been security updates in the last year.

      W Offline
      W Offline
      will
      wrote on last edited by
      #183

      @iamthefij How do I build the new image that ties in LDAP? (Note: I'm not a dev, just a security monkey/sysadmin. Even getting it installed like I did was a learning experience!)

      iamthefijI 1 Reply Last reply
      0
      • girishG Offline
        girishG Offline
        girish
        Staff
        wrote on last edited by girish
        #184

        @jimcavoli Now with 5.x out, I think it's time to bring out a new base image. Still working on the blog post and newsletter, so after that.

        @will Bitwarden server never sees any user password and all encryption is done client side (please see https://github.com/dani-garcia/bitwarden_rs/pull/677#issuecomment-545081380 and the full thread). For this reason, one can only implement a system where LDAP users can be automatically added into the bitwarden db and then sent an email invite. @iamthefij has automated the LDAP sync and invitation flow for Cloudron LDAP. Note that, the users have to use the invitation to sign up and setup a master password (which is totally independent of Cloudron password).

        In short, you can just add/invite users manually into bitwarden if you don't have that many users. There is no real LDAP sign in.

        W 1 Reply Last reply
        3
        • W will

          @iamthefij How do I build the new image that ties in LDAP? (Note: I'm not a dev, just a security monkey/sysadmin. Even getting it installed like I did was a learning experience!)

          iamthefijI Offline
          iamthefijI Offline
          iamthefij
          App Dev
          wrote on last edited by
          #185

          @will the Readme should contain the details you need. It also includes an explanation on how the LDAP integration functions (as @girish said, it's not like most apps due to the client side encryption model used in Bitwarden).

          If you're familiar with building a Cloudron app, you should be able to build as normal. The compiling of the binary is handled within the Dockerfile itself by leveraging multi-stage bulds.

          W 1 Reply Last reply
          0
          • iamthefijI iamthefij

            @will the Readme should contain the details you need. It also includes an explanation on how the LDAP integration functions (as @girish said, it's not like most apps due to the client side encryption model used in Bitwarden).

            If you're familiar with building a Cloudron app, you should be able to build as normal. The compiling of the binary is handled within the Dockerfile itself by leveraging multi-stage bulds.

            W Offline
            W Offline
            will
            wrote on last edited by
            #186

            @iamthefij Just tried to build using the same steps I used for the fbartels version and got this error:

            Sending build context to Docker daemon 138.8kB
            Step 1/31 : FROM "bitwardenrs/server-mysql:1.13.1" as bitwarden
            1.13.1: Pulling from bitwardenrs/server-mysql
            8ec398bc0356: Pull complete
            e4a2de8034fa: Pull complete
            fd9088357d3d: Pull complete
            8801aa831b23: Pull complete
            dd84a9fe1d76: Pull complete
            d47afa82b986: Pull complete
            5d95e292b0e0: Pull complete
            Digest: sha256:8d95d8f636c4bb4dc70ee6c3b1a9e32a63d19bc634c2ea3d1b6a8907b59945c9
            Status: Downloaded newer image for bitwardenrs/server-mysql:1.13.1
            ---> adaef5949bab
            Step 2/31 : FROM "vividboarder/bitwarden_rs_ldap:alpine" as bitwarden_ldap
            alpine: Pulling from vividboarder/bitwarden_rs_ldap
            c9b1b535fdd9: Pull complete
            08dbcf01e393: Pull complete
            8e8b8ccc4315: Pull complete
            Digest: sha256:4578c4cdfe93b52cf5d9406d2bf6cf63ed073fceec7e11ea1ede33fbebbb755d
            Status: Downloaded newer image for vividboarder/bitwarden_rs_ldap:alpine
            ---> 630a6d6f04a7
            Step 3/31 : FROM cloudron/base:1.0.0@sha256:147a648a068a2e746644746bbfb42eb7a50d682437cead3c67c933c546357617
            ---> 534bd0efda10
            Step 4/31 : RUN apt-get update && apt-get install -y --no-install-recommends libmariadbclient-dev && rm -fr /va
            r/lib/apt/lists/*
            ---> Running in 3f31137a8125
            Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
            Get:2 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
            Get:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
            Get:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
            Get:5 http://archive.ubuntu.com/ubuntu bionic/universe Sources [11.5 MB]
            Get:6 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages [1344 kB]
            Get:7 http://archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages [13.5 kB]
            Get:8 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [11.3 MB]
            Get:9 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [186 kB]
            Reading package lists...
            E: Release file for http://security.ubuntu.com/ubuntu/dists/bionic-security/InRelease is not valid yet (invalid for ano
            ther 8h 46min 35s). Updates for this repository will not be applied.
            E: Release file for http://archive.ubuntu.com/ubuntu/dists/bionic-updates/InRelease is not valid yet (invalid for anoth
            er 8h 47min 33s). Updates for this repository will not be applied.
            E: Release file for http://archive.ubuntu.com/ubuntu/dists/bionic-backports/InRelease is not valid yet (invalid for ano
            ther 8h 48min 53s). Updates for this repository will not be applied.
            The command '/bin/sh -c apt-get update && apt-get install -y --no-install-recommends libmariadbclient-dev && rm
            -fr /var/lib/apt/lists/*' returned a non-zero code: 100
            child_process.js:669
            throw err;
            ^

            Error: Command failed: docker build -t willrimmer/bitwarden_rs:20200325-101241-841579f4c -f Dockerfile /mnt/c/Users/w
            ill/Cloud/Code/Git/bitwardenrs-app
            at checkExecSyncError (child_process.js:630:11)
            at execSync (child_process.js:666:15)
            at buildLocal (/usr/local/lib/node_modules/cloudron/src/build-actions.js:180:5)
            at Command.build (/usr/local/lib/node_modules/cloudron/src/build-actions.js:325:9)
            at Command.listener (/usr/local/lib/node_modules/cloudron/node_modules/commander/index.js:370:29)
            at Command.emit (events.js:311:20)
            at Command.parseArgs (/usr/local/lib/node_modules/cloudron/node_modules/commander/index.js:892:12)
            at Command.parse (/usr/local/lib/node_modules/cloudron/node_modules/commander/index.js:642:21)
            at Object.<anonymous> (/usr/local/lib/node_modules/cloudron/bin/cloudron:245:9)
            at Module._compile (internal/modules/cjs/loader.js:1158:30) {
            status: 100,
            signal: null,
            output: [ null, null, null ],
            pid: 3496,
            stdout: null,
            stderr: null

            Checking the readme now

            iamthefijI 1 Reply Last reply
            0
            • girishG girish

              @jimcavoli Now with 5.x out, I think it's time to bring out a new base image. Still working on the blog post and newsletter, so after that.

              @will Bitwarden server never sees any user password and all encryption is done client side (please see https://github.com/dani-garcia/bitwarden_rs/pull/677#issuecomment-545081380 and the full thread). For this reason, one can only implement a system where LDAP users can be automatically added into the bitwarden db and then sent an email invite. @iamthefij has automated the LDAP sync and invitation flow for Cloudron LDAP. Note that, the users have to use the invitation to sign up and setup a master password (which is totally independent of Cloudron password).

              In short, you can just add/invite users manually into bitwarden if you don't have that many users. There is no real LDAP sign in.

              W Offline
              W Offline
              will
              wrote on last edited by
              #187

              @girish Got it, makes sense.

              1 Reply Last reply
              0
              • W will

                @iamthefij Just tried to build using the same steps I used for the fbartels version and got this error:

                Sending build context to Docker daemon 138.8kB
                Step 1/31 : FROM "bitwardenrs/server-mysql:1.13.1" as bitwarden
                1.13.1: Pulling from bitwardenrs/server-mysql
                8ec398bc0356: Pull complete
                e4a2de8034fa: Pull complete
                fd9088357d3d: Pull complete
                8801aa831b23: Pull complete
                dd84a9fe1d76: Pull complete
                d47afa82b986: Pull complete
                5d95e292b0e0: Pull complete
                Digest: sha256:8d95d8f636c4bb4dc70ee6c3b1a9e32a63d19bc634c2ea3d1b6a8907b59945c9
                Status: Downloaded newer image for bitwardenrs/server-mysql:1.13.1
                ---> adaef5949bab
                Step 2/31 : FROM "vividboarder/bitwarden_rs_ldap:alpine" as bitwarden_ldap
                alpine: Pulling from vividboarder/bitwarden_rs_ldap
                c9b1b535fdd9: Pull complete
                08dbcf01e393: Pull complete
                8e8b8ccc4315: Pull complete
                Digest: sha256:4578c4cdfe93b52cf5d9406d2bf6cf63ed073fceec7e11ea1ede33fbebbb755d
                Status: Downloaded newer image for vividboarder/bitwarden_rs_ldap:alpine
                ---> 630a6d6f04a7
                Step 3/31 : FROM cloudron/base:1.0.0@sha256:147a648a068a2e746644746bbfb42eb7a50d682437cead3c67c933c546357617
                ---> 534bd0efda10
                Step 4/31 : RUN apt-get update && apt-get install -y --no-install-recommends libmariadbclient-dev && rm -fr /va
                r/lib/apt/lists/*
                ---> Running in 3f31137a8125
                Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
                Get:2 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
                Get:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
                Get:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
                Get:5 http://archive.ubuntu.com/ubuntu bionic/universe Sources [11.5 MB]
                Get:6 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages [1344 kB]
                Get:7 http://archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages [13.5 kB]
                Get:8 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [11.3 MB]
                Get:9 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [186 kB]
                Reading package lists...
                E: Release file for http://security.ubuntu.com/ubuntu/dists/bionic-security/InRelease is not valid yet (invalid for ano
                ther 8h 46min 35s). Updates for this repository will not be applied.
                E: Release file for http://archive.ubuntu.com/ubuntu/dists/bionic-updates/InRelease is not valid yet (invalid for anoth
                er 8h 47min 33s). Updates for this repository will not be applied.
                E: Release file for http://archive.ubuntu.com/ubuntu/dists/bionic-backports/InRelease is not valid yet (invalid for ano
                ther 8h 48min 53s). Updates for this repository will not be applied.
                The command '/bin/sh -c apt-get update && apt-get install -y --no-install-recommends libmariadbclient-dev && rm
                -fr /var/lib/apt/lists/*' returned a non-zero code: 100
                child_process.js:669
                throw err;
                ^

                Error: Command failed: docker build -t willrimmer/bitwarden_rs:20200325-101241-841579f4c -f Dockerfile /mnt/c/Users/w
                ill/Cloud/Code/Git/bitwardenrs-app
                at checkExecSyncError (child_process.js:630:11)
                at execSync (child_process.js:666:15)
                at buildLocal (/usr/local/lib/node_modules/cloudron/src/build-actions.js:180:5)
                at Command.build (/usr/local/lib/node_modules/cloudron/src/build-actions.js:325:9)
                at Command.listener (/usr/local/lib/node_modules/cloudron/node_modules/commander/index.js:370:29)
                at Command.emit (events.js:311:20)
                at Command.parseArgs (/usr/local/lib/node_modules/cloudron/node_modules/commander/index.js:892:12)
                at Command.parse (/usr/local/lib/node_modules/cloudron/node_modules/commander/index.js:642:21)
                at Object.<anonymous> (/usr/local/lib/node_modules/cloudron/bin/cloudron:245:9)
                at Module._compile (internal/modules/cjs/loader.js:1158:30) {
                status: 100,
                signal: null,
                output: [ null, null, null ],
                pid: 3496,
                stdout: null,
                stderr: null

                Checking the readme now

                iamthefijI Offline
                iamthefijI Offline
                iamthefij
                App Dev
                wrote on last edited by
                #188

                @will Strange. It looks like you're getting some validation issue from bionic-* for some reason. Possibly the clocks are off. Maybe try again? That's not specific to this project.

                It looks like you could reproduce with an new Dockerfile below, or just rebuild the existing one as caching should be in place now.

                FROM cloudron/base:1.0.0@sha256:147a648a068a2e746644746bbfb42eb7a50d682437cead3c67c933c546357617
                RUN apt-get update
                

                Does it work now? If not, check your system clock and timezone.

                W 1 Reply Last reply
                0
                • iamthefijI iamthefij

                  @will Strange. It looks like you're getting some validation issue from bionic-* for some reason. Possibly the clocks are off. Maybe try again? That's not specific to this project.

                  It looks like you could reproduce with an new Dockerfile below, or just rebuild the existing one as caching should be in place now.

                  FROM cloudron/base:1.0.0@sha256:147a648a068a2e746644746bbfb42eb7a50d682437cead3c67c933c546357617
                  RUN apt-get update
                  

                  Does it work now? If not, check your system clock and timezone.

                  W Offline
                  W Offline
                  will
                  wrote on last edited by
                  #189

                  @iamthefij Ooooh I'm running this from a Fedora WSL 2 VM, does the Cloudron build have Ubuntu dependencies?

                  1 Reply Last reply
                  0
                  • W Offline
                    W Offline
                    will
                    wrote on last edited by will
                    #190

                    Interesting note:
                    I was using Ubuntu on Windows Subsystem for Linux last night. I performed the following steps:
                    01 Installing the App
                    $ sudo docker login
                    $ sudo cloudron login my.example.com
                    $ git clone https://git.cloudron.io/fbartels/bitwardenrs-app
                    $ cd bitwardenrs-app
                    $ sudo cloudron build
                    Enter repository (e.g registry/username/com.github.bitwardenrs): docker-hub-username/docker-hub-public-repo
                    $ sudo cloudron install
                    Location: bitwarden.example.com

                    After that the apps worked in Cloudron, worked great!

                    Today I uninstalled the app, and ran through the same steps on a Fedora WSL box, the app deploys, but it seems to not be serving anything. I checked the logs and found this:
                    AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.18.0.13. Set the 'ServerName' directive globally to suppress this message
                    Everything else looks good with the startup of the container. Thoughts?

                    If Fedora isn't a supported dev enviroment, I'll swap back over to Ubuntu. Thanks guys!

                    EDIT: It was DNS propagation with this issue! It's always DNS....

                    1 Reply Last reply
                    1
                    • W Offline
                      W Offline
                      will
                      wrote on last edited by
                      #191

                      Devs,
                      What's keeping bitwarden out of the store? Been running the fbartels version all day with no issues that were not my own fault.
                      As seemless as any other app that doesn't tie in with Cloudron SSO/LDAP.

                      iamthefijI 1 Reply Last reply
                      3
                      • girishG Offline
                        girishG Offline
                        girish
                        Staff
                        wrote on last edited by
                        #192

                        @will Mostly, we are just super short on time 😕 To release an app, we need to test the package, write docs, write tests, make sure updates work, make sure we understand packaging, all so that we can support it. Cloudron customers also ask us many app related questions so we have to be in a position to (reasonably) answer them.

                        Of course, we can just publish the app and skip all the above. I understand there is a need to "just publish" and we have a great bunch of early adopters here who will put up with all the above. I just spoke to @nebulon about this, we will get unstable package for bitwarden shortly without any of the above.

                        1 Reply Last reply
                        4
                        • W will

                          Devs,
                          What's keeping bitwarden out of the store? Been running the fbartels version all day with no issues that were not my own fault.
                          As seemless as any other app that doesn't tie in with Cloudron SSO/LDAP.

                          iamthefijI Offline
                          iamthefijI Offline
                          iamthefij
                          App Dev
                          wrote on last edited by
                          #193

                          @will just a note, I don't believe fbartels version supports a using a dump for backing up the database. This means that if the backup is taken while the db is in a transaction, it could be corrupted.

                          Bitwarden_rs now supports an admin API for making sqlite backups, but does not have any cron embedded. Similar to the way the LDAP sync tool works, an additional script could be added to periodically make dumps of the sqlite database so that it can be properly backed up.

                          Instead, the version I have is using MySQL, which leverages the native Cloudron backup and restore functionality.

                          That and the LDAP invite service are the real differences between the two forks. If you do not wish to use automated LDAP invites on my fork, you can select to opt out when installing. This is covered in the readme.

                          W 1 Reply Last reply
                          3
                          • iamthefijI iamthefij

                            @will just a note, I don't believe fbartels version supports a using a dump for backing up the database. This means that if the backup is taken while the db is in a transaction, it could be corrupted.

                            Bitwarden_rs now supports an admin API for making sqlite backups, but does not have any cron embedded. Similar to the way the LDAP sync tool works, an additional script could be added to periodically make dumps of the sqlite database so that it can be properly backed up.

                            Instead, the version I have is using MySQL, which leverages the native Cloudron backup and restore functionality.

                            That and the LDAP invite service are the real differences between the two forks. If you do not wish to use automated LDAP invites on my fork, you can select to opt out when installing. This is covered in the readme.

                            W Offline
                            W Offline
                            will
                            wrote on last edited by
                            #194

                            @iamthefij I just havent been able to get yours going using the steps I posted above

                            iamthefijI 1 Reply Last reply
                            0
                            • W will

                              @iamthefij I just havent been able to get yours going using the steps I posted above

                              iamthefijI Offline
                              iamthefijI Offline
                              iamthefij
                              App Dev
                              wrote on last edited by
                              #195

                              @will Which thing is failing? Building still works for me, even if I clear my cache. Make sure you do a git pull though. It looks like your build command is using the single build Dockerfile rather than the multi-phase one.

                              W 1 Reply Last reply
                              1
                              • iamthefijI iamthefij

                                @will Which thing is failing? Building still works for me, even if I clear my cache. Make sure you do a git pull though. It looks like your build command is using the single build Dockerfile rather than the multi-phase one.

                                W Offline
                                W Offline
                                will
                                wrote on last edited by
                                #196

                                @iamthefij How do I use the multi stage dockerfile?

                                1 Reply Last reply
                                0
                                • girishG Offline
                                  girishG Offline
                                  girish
                                  Staff
                                  wrote on last edited by
                                  #197

                                  It seems people are struggling to build. @iamthefij if you have your docker image public, you can just put it here. People can then install it as:

                                  cloudron install --image <image> # run this in the repo directory
                                  

                                  No need to build!

                                  iamthefijI 1 Reply Last reply
                                  1
                                  • girishG girish

                                    It seems people are struggling to build. @iamthefij if you have your docker image public, you can just put it here. People can then install it as:

                                    cloudron install --image <image> # run this in the repo directory
                                    

                                    No need to build!

                                    iamthefijI Offline
                                    iamthefijI Offline
                                    iamthefij
                                    App Dev
                                    wrote on last edited by
                                    #198

                                    @girish good idea. Here's my build: https://hub.docker.com/r/iamthefij/cloudron-app-bitwarden

                                    @will The multi-stage build should be default if you've pulled the latest. Dockerfile should be a symblink to the multi-stage one.

                                    1 Reply Last reply
                                    0
                                    • girishG Offline
                                      girishG Offline
                                      girish
                                      Staff
                                      wrote on last edited by girish
                                      #199

                                      thanks @iamthefij

                                      For those looking to install this:

                                      $ git clone ssh://git@git.cloudron.io:6000/iamthefij/bitwardenrs-app.git
                                      $ cd bitwardenrs-app
                                      $ cloudron install --image iamthefij/cloudron-app-bitwarden:0.3.0
                                      

                                      Aaaannd it's running:

                                      testing.png

                                      After installing, both my users got an invite to join bitwarden. Very cool.

                                      jdaviescoatesJ yusfY W 3 Replies Last reply
                                      2
                                      • girishG girish

                                        thanks @iamthefij

                                        For those looking to install this:

                                        $ git clone ssh://git@git.cloudron.io:6000/iamthefij/bitwardenrs-app.git
                                        $ cd bitwardenrs-app
                                        $ cloudron install --image iamthefij/cloudron-app-bitwarden:0.3.0
                                        

                                        Aaaannd it's running:

                                        testing.png

                                        After installing, both my users got an invite to join bitwarden. Very cool.

                                        jdaviescoatesJ Offline
                                        jdaviescoatesJ Offline
                                        jdaviescoates
                                        wrote on last edited by
                                        #200

                                        @girish any reason not to have this in the app store as unstable? I'm assuming the only thing keeping for being officially released are tests need to be written etc?

                                        I use Cloudron with Gandi & Hetzner

                                        1 Reply Last reply
                                        1
                                        • girishG girish

                                          thanks @iamthefij

                                          For those looking to install this:

                                          $ git clone ssh://git@git.cloudron.io:6000/iamthefij/bitwardenrs-app.git
                                          $ cd bitwardenrs-app
                                          $ cloudron install --image iamthefij/cloudron-app-bitwarden:0.3.0
                                          

                                          Aaaannd it's running:

                                          testing.png

                                          After installing, both my users got an invite to join bitwarden. Very cool.

                                          yusfY Offline
                                          yusfY Offline
                                          yusf
                                          wrote on last edited by
                                          #201

                                          @girish said in Bitwarden - Self-hosted password manager:

                                          After installing, both my users got an invite to join bitwarden

                                          Like, automatically?

                                          1 Reply Last reply
                                          1
                                          • girishG Offline
                                            girishG Offline
                                            girish
                                            Staff
                                            wrote on last edited by
                                            #202

                                            @jdaviescoates Yes, tests plus making sure we can actually maintain it in the long run (for example, if everything is pinned properly in the docker file, things like that). Usually, @nebulon and also do a round of manual testing and put some basic docs before putting it in unstable.

                                            @yusf yes, both users got the invite automatically.

                                            jdaviescoatesJ 1 Reply Last reply
                                            1
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes


                                              • Login

                                              • Don't have an account? Register

                                              • Login or register to search.
                                              • First post
                                                Last post
                                              0
                                              • Categories
                                              • Recent
                                              • Tags
                                              • Popular
                                              • Bookmarks
                                              • Search