For years I’ve been running my Nextcloud on bare metal. Now I finally decided to switch it to docker. I looked into Nextcloud All-In-One and it seems easy to deploy but it lacks configuration options like multiple domain names and putting it behind a traefik reverse proxy is kind of a pain to set up.

You can check out my solution on GitHub. I decided on a docker compose setup with nginx, php-fpm and redis(redis is now replaced by KeyDB) in separate containers. Obviously it’s for experts but it’s a lot more configurable. than AIO. It’s also just as easy to migrate to as with any bare metal setup and just as configurable.Yes it’s still a pain to set up, but better than the bare metal version lol

What do you guys think about putting the different components (webserver, php, redis, etc.) in separate containers like this, as compared to all in one? Feedback is greatly appreciated!

  • redcalcium@lemmy.institute
    link
    fedilink
    English
    arrow-up
    16
    ·
    edit-2
    9 months ago

    People usually come here looking for advice on how to replace their dockerized nextcloud setup with a bare-metal setup. Now you came along presenting a solution to do the reverse! Bravo!

    What do you guys think about putting the different components (webserver, php, redis, etc.) in separate containers like this, as compared to all in one?

    I actually has a similar setup, but with nextcloud apache container instead of php-fpm, and in rke2 instead of docker compose.

    • flor0OP
      link
      fedilink
      English
      arrow-up
      2
      ·
      9 months ago

      Thanks for the kind words! Could you link me to the apache container you use? I would like to replace nginx since it’s not officially supported but still need to do some research on apache

      • redcalcium@lemmy.institute
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        9 months ago

        I’m currently using nextcloud:26-apache from here because some nextcloud apps I use is not compatible with v27 and v28 yet. The apache version is actually less hassle to use because nextcloud can generate .htaccess configuration dynamically by itself, unlike php-fpm version where you have to maintain your own nginx configuration. The php-fpm version is supposedly faster and scale better though, but chance that you won’t see that benefits unless your server handles a large amount of traffics.

      • ilmagico@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        9 months ago

        Well, since we want to be technical … Docker is not bare metal. Linux apps are not bare metal. Arduino is bare metal.

        • atzanteol
          link
          fedilink
          English
          arrow-up
          1
          ·
          9 months ago

          No. The phrase means that you’re not running in a virtual machine.

          • ilmagico@lemmy.world
            link
            fedilink
            English
            arrow-up
            3
            ·
            9 months ago

            That’s only the meaning you’re used to, and that’s my point. It depends on the context. I can assure you that, in the context of microcontrollers, for example, “bare metal” means running without an OS.

            • atzanteol
              link
              fedilink
              English
              arrow-up
              1
              ·
              9 months ago

              Either way its pretty stupid to use it in reference to containers.

              • ilmagico@lemmy.world
                link
                fedilink
                English
                arrow-up
                2
                ·
                9 months ago

                My point is, since its meaning depends on the context, I don’t see the issue for it to mean, in the context of containers, “outside of a container”. Just like in the case of VMs, or OS vs No OS, it means there’s one fewer layer between the app and the hardware, whether that’s a VM, Container runtime, or the OS.

                I’m pretty sure everybody, including you, understood its meaning in this context, it didn’t really cause any misunderstanding.

                • atzanteol
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  9 months ago

                  No, it’s confusing. Because some people do use VMs. So it makes it far less clear about what a person’s setup is.

                  An application running in a container runs exactly the same as a non-container application. It uses the same kernel. And it all runs directly on the CPU. There is no metal/non-metal distinction to make. People just say it because it “sounds cool”. And there are a lot of people in this community who don’t understand what containers are. So it further muddies the water

      • redcalcium@lemmy.institute
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        9 months ago

        Aye. Docker on linux doesn’t involve any virtualization layer. What should the direct the installation setup be called? Custom setup?

        • atzanteol
          link
          fedilink
          English
          arrow-up
          2
          ·
          9 months ago

          Just non-container if you need to distinguish?