So, I recently wanted to try out OpenSUSE MicroOS. I've always been a big OpenSuSE fan, ever since I bought the box at Best Buy and installed it on my PC. For a few years now, they've had MicroOS up and running and I've only heard good things about it, and I wanted to see if I could make it into a home server like you would with Debian/TrueNAS/Proxmox etc or some such.
I use a lot of containers, and MicroOS is good at that. I rather like Podman, and MicroOS has great support for it! I also like declaring things, like you would in Guix or NixOS, so I use Podman Quadlets.
Hearing about MicroOS's great features, besides Podman support, such as BTRFS everywhere, auto-upgrading and rollback stuff, makes me definitely feel it's worth it to try!
So, without further ado, lets begin:
INSTALLATION
Alright, for the easiest method, you want to just go on the OpenSUSE MIcroOS download page and get the offline install image.
Let the install proceed as normal, making sure to select your home network wifi or ethernet adapter to gain networking, of course. Then, select MicroOS Container host for the role. Be sure t o set up a root password as well. If you want to login via ssh with root, make sure you have a secondary drive you can get the ssh-key from and insert it during this stage. Hit install and lets get this show on the road!
AFTER INSTALL
After installing, you should be looking at the screen to login to if you've hooked up the home server PC to a screen. Or, depending on how you set everything up in the previous step, you could just login via ssh. Anyways, login as root and type the password you gave it during install.
Now, check your ip address on the network with "ip a" on the console and note it down for ease of use.
Next, create a user with(With home directory) "useradd -m $USER", replacing $USER with whatever you want. Then do "passwd $USER" to give that user a password. Note down the username and password somewhere secure.
Now we can start doing things!
Exit out of the root account by typing "exit" at the console. Now go onto another PC and stash your home server wherever because remote access is a nice thing imho.
Login to your new user account with ssh $USER@Your_Home-server_IP_Address. Great, you're in remotely!
Alright, now say you wanna access your PC from anywhere easily, and I mean anywhere, well, we're going to use Tailscale for that.
I also want to install nano so we don't have to use vi and Samba, so I can drag and drop files from inside the house.
So to do all that, we run this "sudo transactional-update pkg in tailscale nano samba". You'll be asked for the root password, I hope you noted that down!
After it installs everything, now we need to reboot into the new snapshot. Yup, that's how it does things! If you made a mistake, no worries, you can reboot into a previous snapshot or remove the newly created one.
After rebooting, we need to setup Samba. Alter the file /etc/samba/smb.conf to do so. I will provide a sample Samba config later!
Also, we need to setup Tailscale. Get a Tailscale account first, it's very easy to do so. Then, connect the PC you're using first, then the home server PC.
Back to Samba one moment, but after you alter/create the smb.conf file, be sure to make a directory to serve the files. I usually do /var/smb/public_share, then do "sudo chown -R $USER:$USER /var/smb/public_share" and "sudo chmod -R 777 /var/smb/public_share" to make it easy to share on my own network. You might have other security considerations, so take those into account! Then do "sudo systemctl enable smb nmb --now" to enable and start the Samba daemons/processes.
Now we gotta create some Podman Quadlets! Lets go with Nextcloud! Nextcloud is great stuff.
First, on either the home PC or home server PC, create a file named "nextcloud.container". Then, put in the following:
[Container]
ContainerName=nextcloud
Image=lscr.io/linuxserver/nextcloud:latest
Environment=PUID=1000
Environment=PGID=1000
Environment=TZ=$YOURTIMEZONE
PublishPort=443:443
Volume=/var/containers/nextcloud/nextcloud_config:/config:z
Volume=/var/containers/nextcloud/nextcloud_data/:/data:z  
[Install]
WantedBy=default.target  
Save the file and get that file onto the home server PC. Before you start up Nextcloud, you need to create the bind directories tho!
So, just type the following on the home server PC "sudo mkdir -p /var/containers/nextcloud/nextcloud_config" And then type "sudo mkdir -p /var/containers/nextcloud/nextcloud_data".
Find the nextcloud.container file and do the following: "sudo cp nextcloud.container /etc/containers/systemd". Finally, type this: "sudo systemctl start nextcloud.service" Assuming all has gone well, you start the Nextcloud setup service at either the Tailscale IP of your home server PC or the internal router IP.
Phew!
That's all for today. Hope you enjoyed this howto!