TLDR: want to get rid of casaos from my home server and learn everything on my own from the beginning, am I crazy for wanting to wipe everything and reinstall the entire system?

Hi all! A few weeks ago I got a mini-pc (Beelink S12pro), a secondary internal sata ssd (thanks to those who helped me with the choice), and I slowly set up my server with quite a few services (the *arrs, jellyfin, immich, navidrome, gotify, uptime-kuma etc.) using casaos as overlay for everything (with Debian 12 as base and tailscale to access it outside my home). I like casaos interface, and it really helped me a lot in smoothing the process of approaching docker and managing a personal server.

However, I am starting to feel a bit restricted by casaos: almost immediately I was bypassing the 1-button install and customize the container to my liking, also if I need to change something deeper I always need to check if casaos has its own way of handling things. Plus, I don’t really like the frequent connections to the app store (and I couldn’t figure out how to change the interval), or the fact that everything casaos does is done as root, which also forced me to run some containers as root user. My server isn’t exposed to the internet so I can be less worried, but I would like to know more about permissions and stuff without being forced to just run everything as root.

Removing casaos is apparently quite easy with an uninstall script, you can also keep your containers intact, however it will leave behind a lot of the dependencies installed and modification made through the install script, apparently.

I don’t think these modifications will not be useful to me, but I would like to have a system when I know what I did, what is opened/installed/activated and what is not, and by just uninstalling casaos I will not have that. Note that I am also not against UIs, I think I will install dockge for easier managment of containers, but I would like the process to be learn->setup->use ui, and not the other way around.

Am I crazy for thinking about reinstalling the entire system and start from scratch? I have backups of everything: container data folders, compose files, various media. TBH, in one week of use there are not many things that are absolutely vital, moreover, most of the media are in the secondary drive which will be left untouched. Worst case scenario, I can also avoid restoring backups (except for the arrs which were the more time-consuming to set up).

In my mind these are the pros and cons

Pros: install stuff as needed and learn what does what, without having a script automagically doing that for me, probably gaining a deeper dive into docker/compose. No overlay, no mandatory root things, possibly less maintenance?

Cons: having to set things up again (system users, ssh access, tailscale, automount usb drives, mount points for the sata drive), possibly some container stuff will not just work by re-importing from a backup?

Does the selfhosted community have some advices or opinion on this? Maybe there are also easier ways I am missing, being kind of new to all this. Thanks in advance for any answer!

  • CommanderShepard@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    5 hours ago

    Try Proxmox or some other supervisor. Also learn about cloud images and cloud-init. It’ll take seconds to spin up a new machine from scratch. And you can experiment as much as you want and break stuff. You can even create an isolated network withing Proxmox itself with Onpnense and nested Proxmox to mess around with networking.

    I don’t touch my home prod when I want to test some new service.

  • agile_squirrel@lemmy.ml
    link
    fedilink
    English
    arrow-up
    7
    ·
    13 hours ago

    I had a similar journey and recommend it. I started with Open Media Vault with docker containers configured via a GUI, then to Debian + docker compose, then to Debian deployed with Ansible + docker compose, and now I’m with NixOS + podman compose. The first jump to Debian was the most intimidating for me learning CLI commands for the first time and not having defaults chosen for me, but it was liberating to finally learn the actual tools and not just learn a GUI abstraction for tools.

  • klangcola@reddthat.com
    link
    fedilink
    English
    arrow-up
    10
    ·
    22 hours ago

    I would like to have a system when I know what I did, what is opened/installed/activated and what is not

    You sound like you need to to look in to Nix and NixOS. The TLDR is that everything is declared in a configuration file(s), which you can and should back up in git. The config files tell you exactly what you did , and the config file comments together with git commit history tell you why.

    The whole system is built from this configuration file. Rollback is trivially easy, either by rebooting and selecting an older build during the boot manager, or reverting to an older git commit and rebuilding (no reboot required, so usually faster)

    Now fair warning, Nix (and NixOS) is a big topic, very different from normal way of thinking about software distribution and OS. Nix is not for everyone.

    You should also at the very least have a git repo for docker-compose files for your services. Again, that will declaratively tell you what you did and why.

    Also, if NixOS is too extreme, you should also look in to declarative management tools like Ansible etc

    • klangcola@reddthat.com
      link
      fedilink
      English
      arrow-up
      4
      ·
      22 hours ago

      Reading your post again, you should start by moving your docker management from CasaOS to vanilla docker-compose files, and keep them in a git repo.

      I still think you definitely should look in to NixOS and what it can offer, cause it seems like that is where your mindset is going.

      But NixOS is a drastic change, you should start by just converting your individual services one by one from CasaOS management to docker-compose files. One compose file for all services is possible, but I would recommend one compose file for each service. Later you can move from Debian to NixOS while using the same docker-compose files.

      • InnerScientist@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        5 hours ago

        I recommend switching to NixOS only after you have a basic but broad understanding of Linux, many things in NixOS are more complicated than in “normal” Linux, which is needed to archive what it does, but is overwhelming for someone who doesn’t know the what and why and where that using Linux brings.

        A picture showing the NixOS learning curve/cliff

        • klangcola@reddthat.com
          link
          fedilink
          English
          arrow-up
          2
          ·
          5 hours ago

          Lol, I’m just over a week in to learning NixOS and this feels so true 😂

          I feel like I’m just starting on the incline, luckily I don’t have any sturdy rope on hand 😂

  • catloaf@lemm.ee
    link
    fedilink
    English
    arrow-up
    29
    arrow-down
    1
    ·
    1 day ago

    If you have backups and don’t mind the downtime until you have it up again, go for it.

    You have tested restoring those backups, though, right?

    • whysofurious@sopuli.xyzOP
      link
      fedilink
      English
      arrow-up
      10
      ·
      edit-2
      1 day ago

      Thanks for the answer : downtime isn’t a problem since I am the only one using the server for now, and I still have leftovers from a previous setup (stremio, local music) for the days I will be without the server.

      You are absolutely right, I haven’t checked the backups yet, but I will make sure to do it. I was thinking to wipe radarr or sonarr, reinstall the container and restore from their manual backups, to see if everything works. For Immich is probably safer to start from scratch, I don’t have that many photos backed-up anyway and I heard it might not always work.

      • AtariDump@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        21 hours ago

        Test restoring backups?

        Import the backups into another separate system and ensure that the data loads successfully. For additional verification, make sure the data is correct.

  • MXX53@programming.dev
    link
    fedilink
    English
    arrow-up
    23
    ·
    1 day ago

    I don’t think you’re crazy. Sometimes when my shit gets bloated and I start getting confused about how things go together, I wipe everything and start fresh to refresh myself and organize better.

    • N0x0n@lemmy.ml
      link
      fedilink
      English
      arrow-up
      7
      ·
      edit-2
      1 day ago

      Back in the day, that’s what I did ALOT on Windows. Specially because of piracy and my younger me having no idea what he was doing XD !

      Still happens on Linux with EndeavourOS but not for the same reasons ! There are millions times more ways to break stuff on Linux but I always learn Something new during the process.

      Story time:

      Learned the other day that some config files are loaded in a specific order and depending what display manager is installed. That was kinda eye opening to understand cause my system didn’t load .profile when .bash_profile was present and I didn’t understood why ! Thanks Archwiki !

    • whysofurious@sopuli.xyzOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 day ago

      This is exactly how I feel! Everything works but I feel there is a lot that was "“forced’” on me that I don’t use, and conversely a lot that is going on 24/7 and I don’t really know how it works.

      • MXX53@programming.dev
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 day ago

        I did the same thing when I started self hosting. I followed some guides that recommended all these tools. The more I learned, the more I realized I hardly used some of the stuff but when I disabled them it broke the stuff I did use. That’s when I took the time to wipe my system and build from the ground up, but this time actually understand what I was doing and not just blindly following guides.

        Good luck!

      • cecilkorik@lemmy.ca
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 day ago

        Back in the old days, a lot of people went through the “Linux From Scratch” process to literally build up the OS from absolute scratch. No distro, no packages, no precompiled kernel, nothing but the raw ingredients. It is a good way to really understand the fundamentals not just of Linux but of the whole computing paradigm our systems are built on. It is not as hard as it probably sounds, but it’s an investment. It takes some time and you need to put your brain in gear to actually learn.

  • shiiiiiiiiiiiiiiiiit@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 day ago

    Absolutely. I had a similar journey. I started with Yunohost and DietPi. Then plain Raspbian, then plain Debian. Each time nuking and starting from scratch. You learn quickly when you’ve got to retrace the same steps again on a fresh install after messing something up.

    Eventually, I tried and stuck with Proxmox (running a Debian VM) and Proxmox Backup Server. With that, you have your regular backups, and if you mess up, you simply revert to a previous backup version.

    Others will recommend Ansible - I haven’t got that far yet.

    • shiiiiiiiiiiiiiiiiit@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      22 hours ago

      Replying to myself to add…

      This was all while installing this and that dependency and troubleshooting it. Docker was a complication I didn’t want to learn yet.

      And then tinytinyrss moved to docker only which forced my hand. I can say installing Docker and Portainer (as someone who prefers a GUI more than command line) has made self hosting so much easier for me, and hugely reduces the need to think about dependencies.

      • Vendetta9076@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        1
        ·
        18 hours ago

        I’d recc dockge over portainer personally. Ive had weird nonsense happen with portainer where a stack fails through portainer but not dockge/bare metal

  • JubilantJaguar@lemmy.world
    link
    fedilink
    English
    arrow-up
    13
    arrow-down
    1
    ·
    1 day ago

    I would like to have a system when I know what I did, what is opened/installed/activated and what is not

    Story of my life after 20 years on Linux. Maybe we could call it “modification anxiety”.

    I believe this is the case for an immutable OS.

    • voklen@programming.dev
      link
      fedilink
      English
      arrow-up
      3
      ·
      9 hours ago

      100%. This is exactly why I switched my home server over to NixOS and would struggle to go back. I used to reinstall all the time but now there really isn’t any need to, since I can just look at my configuration.nix file and know everything that’s installed, running and configured on my system. Whereas using any other distro I’m like WHAT ON EARTH IS RUNNING ON HERE?

    • whysofurious@sopuli.xyzOP
      link
      fedilink
      English
      arrow-up
      2
      arrow-down
      1
      ·
      1 day ago

      Nice to know I am not alone! And I only recently started with linux, so I guess it’s not really something that goes away with time 😂

      I need to take a look at an immutable OS sooner or later, although I feel I would be annoyed for not being able to modify stuff for my liking (probably I will never be satisfied in any case)

      • JubilantJaguar@lemmy.world
        link
        fedilink
        English
        arrow-up
        11
        arrow-down
        1
        ·
        1 day ago

        Immutable distros like NixOS don’t stop you from tweaking stuff, they just record every tweak centrally, so that you can undo them and do rollbacks.

        Others can confirm that I’ve got that right. Haven’t tried it but the idea sounds great.

        • Hominine@lemmy.world
          link
          fedilink
          English
          arrow-up
          5
          arrow-down
          1
          ·
          edit-2
          1 day ago

          I’ve used NixOS on my laptop as a learning experience for the past year and find your summary solid. Rollbacks = 🍰.
          My bugbear has been the Nix language itself. It’s functional, (a first for me,) and with the documentation lacking, I’ve been thrown for more than a few loops. That said, I have indeed learned quite a bit as a result. Still a ways to go, but here’s to the journey!

      • Justin@lemmy.jlh.name
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 day ago

        definitely try out NixOS, it actually let’s you modify more things than any other Linux distro, even Arch.

        Want to compile a custom kernel? Just modify the kernel setting to use custom compile options, and it’ll compile a custom kernel for you and install it when you run a system update.

    • whysofurious@sopuli.xyzOP
      link
      fedilink
      English
      arrow-up
      5
      ·
      edit-2
      1 day ago

      Thanks for the suggestion! Yes I was grabbing everything that casaos didn’t have from linuxserver.io, and read some of their stuff too, but I will be sure to check also dockerrun :) Downtime isn’t a problem since I am the only one using the server for now, and I still have leftovers from a previous setup (stremio, local music)

  • bambootstrap@lemmy.ca
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 day ago

    Absolutely you should go for it. I’ve redone my set up multiple times over the years on the same hardware. Sometimes on purpose, sometimes because I accidentally nuked it, and sometimes because I wanted to get rid of cruft.

    There was a time when I didn’t even know what Docker was and just relied on Portainer, for example. Or mergerfs instead of ZFS. Yeah, you end up redoing a lot of grunt work but that’s how you learn.

  • NeatoBuilds@lemmy.today
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 day ago

    When i first started self hosting i went through several reinstalls of unraid until I finally got my method down and had a better understanding of what I was doing.

    I recently did the same thing with arch on my laptop. The past like two weeks I reinstalled arch like 6 times until I knew what I wanted and how to do it from my notes, I went from arch with plasma to i3wm and now to hyprland so now I can do a minimal install to hyprland and get everything up and going to the point I felt confident enough to do the same to my main home desktop

    • Justin@lemmy.jlh.name
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 day ago

      Unraid is definitely one of the more frustrating distros when it comes to dialing your settings in right. And its technically an immutable OS lol

  • suicidaleggroll@lemm.ee
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 day ago

    The nice thing about docker is all you need to do is backup your compose file, .env file, and mapped volumes, and you can easily restore on any other system. I don’t know much about CasaOS, but presumably you have the ability to stop your containers and access the filesystem to copy their config and mapped volumes elsewhere? If so this should be pretty easy. You might have some networking stuff to work out, but I suspect the rest should go smoothly and IMO would be a good move.

    When self-hosting, the more you know about how things actually work, the easier it is to fix when something is acting up, and the easier it is to make known good backups and restore them.

    • whysofurious@sopuli.xyzOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 day ago

      Thank you for the answer :)

      I don’t know much about CasaOS, but presumably you have the ability to stop your containers and access the filesystem to copy their config and mapped volumes elsewhere?

      Yes absolutely, they provide a nice filebrowser which can also be mounted as a samba share (which they setup during install), in case one doesn’t want to use the terminal for everything.

      As far as networking, from what I could see the only real change casaos was doing was mapping its dashboard to port 80, but not much more. Is there anything more I should be aware in general?

      When self-hosting, the more you know about how things actually work, the easier it is to fix when something is acting up, and the easier it is to make known good backups and restore them.

      Exactly, I feel I am at the point where I got my hands dirty enough that I can dive deeper into knowing things, not necessarily immediately, but step-by-step.

      • suicidaleggroll@lemm.ee
        link
        fedilink
        English
        arrow-up
        1
        ·
        24 hours ago

        As far as networking, from what I could see the only real change casaos was doing was mapping its dashboard to port 80, but not much more. Is there anything more I should be aware in general?

        It depends on how you have things set up. If you’re just doing normal docker compose networking with port forwards then there shouldn’t be much to change, but if you’re doing anything more advanced like macvlan then you might have to set up taps on the host to be able to communicate with the container (not sure if CasaOS handles that automatically).

  • poVoq@slrpnk.net
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 day ago

    Wait for the next hardware upgrade and then set up a new system while keeing the old system running in parallel.

    • whysofurious@sopuli.xyzOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 day ago

      Unfortunately I am not going to be able to afford a new hardware upgrade for a while, but otherwise yes that would have been the safest solution :)

    • whysofurious@sopuli.xyzOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 day ago

      Nice to know that someone did the same move, and happy that it went well :) did you have anything specific to remove from the CasaOS compose files? (I know they fill it with a lot of stuff useful for their categorization)

      • Dust0741@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        22 hours ago

        Not really. I also didn’t have much data in them, so I opted to start from scratch. I’d recomend searching for “service docker” to find how to run that thing in dockers compose. Then I make a folder for each thing. In my home directory, I make a new folder. Say fileBrowser. Then inside that I make docker-compose.yml and put the compose from the internet (if you find a docker run, you can convert it to compose via sites like composerizer). Then for config volumes I like to specify ./ so it goes to the current folder. I.e. ./filebrowserconfig/settings.json:/settings.json so that inside the fileBrowser folder we’re already in, it has a folder called filebrowserconfig and a file called settings.json. (note that docker tries to make folders, not files. So if the json file doesn’t already exist, it’ll make a folder named settings.json lol)

  • neidu3@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    1
    ·
    edit-2
    1 day ago

    Any system beyond a vanilla install will need some tweaks to fit your use case(s). And these tweaks often end up as a stack of glass boxes over time, unless meticulously planned and purpose built from the beginning.

    As long as it’s manageable and secure, don’t let “perfect” be the enemy of “operational”.

    Wanting to rebuild from scratch is pretty common. The question is whether you need to and should. You have to weigh cost and work hours up against any benefits to figure out the answer.