Suggested goals while learning to use a VPS?
I don't know how much technical experience everyone here has with hosting/servers/Linux/etc., but I do get the impression that it's notably more than me. Of course, many of you seem to work in a field where that expertise is either necessary or useful, so that makes sense! While I have a minor amount of familiarity with some of the systems and commands, quite a bit has changed in the 25+ years since my high school CS classes where we programmed things in Pascal on computers that probably hadn't seen updates since the late 80s or at best early 90s, so a lot of what I know (knew?) is either out of date, too rusty to be remembered properly, or lost to the early stages of memory failure sands of time. (Or perhaps useless in real-world application, as I have vague memory of programming a basic calculator in sparc assembly language?)
For myself, while half of the adventure of a VPS is actually getting something functional out of it, the other half is learning new techniques and understanding how they work. For example, in setting up a service for a remote file storage system, I've tried a few different options like nextcloud, resilio, and syncthing, and in attempting to understand backups and encryption, I've been dabbling with borg, kopia, and restic (none of which do I have properly functioning yet, lol). In the process, I've had to learn or relearn concepts like what many of the base directories are used for, how to chmod/chown files to fix permission errors, moving/copying deleting files, editing config files with nano, how to schedule with cron, using pubkeys instead of passwords, etc. All of which are certainly basic skills, but it's much easier to learn basic skills when there is a clear objective, as opposed to just aimlessly reading about random commands that I may or may not ever need.
So, with the goal of improving understanding of Linux and/or servers in general, what tasks/goals could I work on with my server? Suggestions appreciated!
Comments
You seem to be a "learning by doing" kind of guy just like me, so my suggestion is to simply just dive right in.
Pick out a bunch of projects at https://github.com/awesome-selfhosted/awesome-selfhosted and start installing. I'm pretty sure some of the more advanced self hosted stuff will force you to do some troubleshooting and digging around trying to figure out how things work and in my experience, that is when you really learn.
That's definitely how I've been doing it. Honestly my main issue is that I just can't decide what to try and install!
The minimum to get a task done. KISS philosophy. Bin the bloat.
(My SocksAreComfortable 'cos they're hand knitted to an exact fit - thanks missus. )
It wisnae me! A big boy done it and ran away.
NVMe2G for life! until death (the end is nigh)
Appreciate the tip! I do sometimes find myself uninstalling things later that I either rarely use or never actually ended up using. I'm hoping that one of the backup solutions I'm trying ends up working as they all seem to be well-regarded.
Knitted socks are definitely underrated. Especially if you live in a cold area! And they last so much longer than store-bought socks, too.
The important thing is after you make the backups try and restore them on a blank VPS somewhere. You'll find the things you didn't realize you needed in a DR situation - encryption key files, repo passwords, etc.... That's where it bites you in the butt.
For sure, always a good thing to test! I...haven't quite gotten the whole backup thing sorted yet, and am confused by a few points in the repository logistics, but I will be testing the restoration process afterwards.
play with container:
play with monitoring:
make a dashboard of it
install logstash+elasticsearch+kibana on one system, heartbeats/metricbeats on other
play with VCS:
you have too many VPS now? good. LES need more people like you
if-you-re-that-bored:
Fuck this 24/7 internet spew of trivia and celebrity bullshit.
I recommand you reading this book to systematicly learn linux:
https://linuxcommand.org/tlcl.php
Wow, that's a great list! Thanks @Encoders, I have seen some of that stuff around but definitely not used all of it.
And I appreciate the book recommendation @iaecm ...555 pages may be a bit much for my plate right now, but I think it would serve as a nice reference in one place. Saw the chapter on scripts and it looked pretty useful, as that's one thing what I'm learning with to get the backups working.
https://books.goalkicker.com/
thinner book
Fuck this 24/7 internet spew of trivia and celebrity bullshit.
This is actually very good advice, playing with monitoring will give you insight into what everything does and how.
For host/device monitoring, use Icinga/Nagios/Naemon or whatever.
For performance metrics use node exporter or telegraf or something similar, or build your own.
Feed everything into a influxdb or prometheus and then use Grafana or Kibana to build beautiful dashboards.
Seemingly stupid little projects like getting the bandwidth of your home router or accesspoint and visualize it in Grafana is actually not a bad way to learn about stuff like timeseries databases and snmp queries.
Hi @SocksAreComfortable ,
I have great fun running Yunohost on my homeserver and VPS's. It is a user friendly self-hosting platform based on Debian. It is simple enough that (some of) my children's classmates in primary school could administer their own server (on Pi's connected to their home router) without gaping security issues.
There is a helpful diagnosis screen that checks whether (reverse) DNS, ports and other basic settings are set correctly, and gives pointers when they are not.
Whichever you choose, good luck and have fun!
As rcy026 said playing around with selfhosted apps is probably one of the best ways to learn it, when you feel comfortable try and make your project or play around with virtulization, proxmox etc.