What OS should I use for self-hosting that doesn't require extensive terminal knowledge?
I am trying to use my old laptops for self-hosting. One has a 6th gen Intel Core i3 (4GB ram), the other has an 11th gen Intel Core i5 (8GB ram). I have previously tried both ubuntu server and desktop but couldn't get it to work well. For the former I found it difficult to remote ssh and the latter I had difficulty installing Docker containers. (I'm not very good with the command line)
I would like to find an OS that is easier to setup with less of a neccesity for the command line (I would still like to learn how to use it though, I don't want to get rid of it entirely!). I've heard of CasaOS, is that a good option? It seems quite easy to use. What about other alternatives?
If you’re afraid of the terminal, you won’t get far in self hosting. You should learn to use the terminal. It’s not as scary as people make it sound.
You mentioned having issues with SSH into your old server. You can install a desktop environment if it makes things easier for you, but you should still learn how to be proficient in the terminal. Proxmox might help. It lets you create and manage VMs through a web interface. It can be annoying if you’re not super familiar with networking though.
The command line is an exceptionally useful tool, you may want to spend a little time getting familiar with it and common command line tools that would probably make self hosting almost anything easier.
It's like wanting to learn to play guitar but not learning how to restring and tune it, sure it's not necessary but you're going to be overly dependent on others to do something you could learn for yourself with a little time and patience, and it will probably broaden your perspective on what you can do once you do get familiar with how to pipe commands together and combine basic tools into something more sophisticated and complex.
Generally, Linux Servers are best administered from a command line. At least in the beginning to set everything up. In turn they are faster on lower hardware as they dont even have a graphical desktop at all so need less resources.
You could of course install a windows server OS. They can be fully administered through Remote Desktop and a GUI.
I am very much a Windows user and my journey went like this:
Raspberry Pi with OMV -> SSH on OMV -> Mostly Terminal on OMV -> Docker + Portainer to deploy containers -> Transition to docker-compose -> Setup my own VM with Debian completely in the CLI (excluding the first setup of the VM)
I use Linux (primarily Debian because of Raspberry as I don't like what I hear about Ubuntu) primarily for VMs and servers and Windows as the client OS
Keep in mind the reason why people generally dont run desktop environments on a server is because unessential software uses more resources and increases the chance of a system crash. I would highly reccomend learning how to use a terminal and installing fish (shell) is a great place to start.
For what it's worth given the age of this thread and disagreement going on in it, I would recommend Unraid.
Easy for a beginner, with enough to take you up to intermediate level: a web GUI for pretty much all the required terminal commands. It's been around for years, is not going away, but instead getting updated. Works on any old eBay hardware and most of all, the community there are very supportive of beginners. There's also lots of YouTube tutorials.
It ticks all the boxes for easy self hosting. It's just not for Linux protocol purists.
EDIT: I'm learning a lot from this thread, and it's interesting to see how tolerant people are for self hosting. I would add in my vote for Unraid: it allows me to be dynamic with the time I have for self hosting. I'm sometimes extremely busy and don't have the time to keep my self hosting updated, so the web GUI is essential for basic maintenance. Then there are times when I do want to waste an afternoon trying something in terminal and learning more, and that's when Unraid again comes to the rescue. I couldn't self host with 100% terminal, and neither would I want to with 100% GUI. The best self hosting platform is one that can mix them up efficiently and effectively. I am keen to try some others mentioned here, as some look quite interesting. However NAS is a massive element of what I need for my homelab, so Unraid will stay for now.
I can recommend you Debian, since it's the "default" for many servers and has a lot of documentation and an extremely big userbase.
For web interfaces, I can recommend you, as you already mentioned, CasaOS and Cockpit.
I used CasaOS in the beginning and liked it, but nowadays, I mostly use Cockpit, where I have the feeling that it integrates the host system more, and allows me to do most of my maintenance (updating, etc.) quite easily.
CasaOS is more aesthetic imo, and allows you to install docker containers graphically, which is better for beginners.
I personally do my docker stuff mostly via CLI (docker compose file) nowadays, because I find it more straightforward, but the configuration CasaOS offers is easier to understand and has nice defaults
I guess you could install cockpit (via Terminal, sorry, but it's pretty straightforward and there are good guides). After that, you could use the cockpit web interface to deploy docker/podman containers. It's a bit clunky sometimes, but it does the job purely in UI.
You can also manage updates, backups, etc via cockpit if you install the required modules.
As base, I'd use any stable Linux distro that's reccomended for server use.
I believe all of these are actually just running Debian as the actual OS underneath, but they give you a webui that makes deploying apps easier.
Of these three, I like the look of Cosmos the most. Seems to be security focused and comes with a reverse proxy and a built in SSO solutions. That’s something that’s usually a pain in the ass to set up yourself.
There’s technically that stupid ass LTT OS but I’m purposely leaving that one out.
YUNOHost iso is basically just Debian, but the one-click-install for various self-hosted things is it's primary purpose. All done through web interface.
I personally use Debian. For your case, you can install lightweight desktop environments such as XFCE.
Honestly from my point of view after reading your post, you don't have a terminal or operating system issue, it feels like you are new to self-hosting and don't know how to start configuring from scratch.
Ideally you want to look for documentations or keep asking for online help. For example, with installing docker, you would want to refer to this: https://docs.docker.com/engine/install/. Welcome to system admin life, where you spend more time reading/understanding than configuring.
Personally, you can even use AI Chatbot to help you with stuff, just be specific on the system you are on, the goal you are trying to achieve and the problem you are tring to solve.
Which brings me to answer your next point about CasaOS: It exists so that you can skip most of the 'system admin life' step. It skips almost all the setup you would have needed to do on a fresh machine, and just leaves configurations. The downside is usually it eats up more resources than a self-configured install since it comes with redundant features you are unlikely to use.
TLDR; Pre-configured OS such as CasaOS is a solid choice if you just want to set it up and be done with it. If you are here to really learn about system admin stuff, then pick any of the Linux Operating system (Debian-derivatives recommended) with a lightweight DE.
don't go with server variants of the OS. they are intended for boxes that work without display and keyboard, which you have. instead, install any normal distro you're familiar with. it's infinitely easier to fix something with the full GUI at your disposal.
this is just your first install, you will iterate, and through that process you'll get better and leaner, in terms of underlying OS. think of it as training wheels on a bike, you'll pull them off eventually.
wired connection only, leave wireless turned off, and assign it a static IP address.
don't do containerS, do one container first. figure out where you're gonna store the compose files, where it will store data, how you will back that data up, etc. then add another. does it fit into your setup? do you need to modify something? rinse. repeat.
casaOS, aside from it's murky background (some chinese startup or sumsuch, forgot?) doesn't provide that path forward nor allows you to learn something, too much hand holding.
I would recommend trying out Cockpit (Github) and Portainer (Github).
Cockpit gives you a WebUI for Linux and Portainer gives you a WebUI for Docker.
Personally I usually run Debian Stable for servers, but choice of distro matters little if you run stuff as Docker containers.
i tried CasaOS for a quick minute. its decent and just has the basics like setting up any disks and then has an app store. its really just a front end for docker and you can manually input the details of any docker containers that arent in the store
ive mostly been running docker stuff on my Synology nas. cant think of the model number now, 218+ i think, but any of the "plus" models will let you run docker. its very similar to Casa, no messing around with command line stuff. ive been self hosting for 10 years now and never touched the command line so i dont know what people are on about here saying you will have trouble
dietpi is another thing ive used on a few devices, mainly small SBCs and raspberry pi's, but i think they might have a version that you can install on anything.
its basically just debian, and it has a sort of a wizard that helps set up various things like set up disks and install apps. its headless though so no GUI unless you install one, and the wizard is run from the terminal but youre not having to type any commands at least
YUNOhost is designed for this. You can do almost everything graphically via the webadmin. Mine has been running for a couple of years and I'm very happy with it. I have email, XMPP (both of which were installed out of the box), a website, file sharing and a few other things. There are a tonne of apps available, including Fediverse instances, Nextcloud. It's a very cool thing to have available for making self-hosting more accessible.
The learning curve might be a little high in some regards, but you may want to try NixOS. There are quite a few services ready to enable and customize for self-hosting, and the design makes updating packages fairly simple.
To be clear, NixOS is not a "simple" solution, but it does work well for self hosting.
You can install some Linux distro and then install a docker management web UI like coolify. Requires little terminal knowledge. Though you should learn the terminal.
If you are mostly hosting files, open media vault has minimal command line, and it's mostly administered through a web admin. It's still fairly complex however, and I definitely recommend reading the manual thoroughly and sticking with easy tasks at first. https://www.openmediavault.org/
FWIW I've been using Ubuntu desktop with CasaOS for a couple of months now to host Nextcloud, Jellfin, Immich and a few other bits and bobs with absolutely no issues at all so far!
Me either so I take a lot of notes about commands and command sequences. Also, I find that Grok is pretty decent at explaining commands. AI is a wonderful tool, but you also need to do your due diligence in ascertaining whether AI has given you the correct information. I would not copy/paste random commands into a production server, but rather I have a small test server for that kind of stuff. Once I have the command, tested, and understand the command, I can then use that in a production environment.
In as much as I love a good WUI, you will have to learn some cli, it's just inevitable, especially in a headless environment. It may seem daunting at first because there are literally thousands of commands and command sequences. I honestly doubt if even the geekiest nerds on the planet know all by heart. For each command sequence, there are probably hundreds of ways to compose the same command. I would admonish you to download Notepad ++ and start keeping notes on the commands you use. Later on, the fun part is looking back on your notes to see all the commands you now know and what they do.
Core utilities (like ls, cd, cat, etc.) from projects like GNU Coreutils provide around 100-200 commands.
Additional tools from packages (e.g., grep, awk, sed) and system utilities (e.g., systemctl, iptables) can add hundreds more.
On a system with many packages installed, running compgen -c | sort -u | wc -l in a Bash shell might show 2,000–10,000+ unique commands, depending on the setup.