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.

    Thanked by (1)SocksAreComfortable
  • @rcy026 said:
    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!

  • edited March 2023

    @SocksAreComfortable said: 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. :D )

    Thanked by (1)SocksAreComfortable

    It wisnae me! A big boy done it and ran away.
    NVMe2G for life! until death (the end is nigh)

  • @AlwaysSkint said:
    The minimum to get a task done. ;) KISS philosophy. Bin the bloat. :)

    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.

    @AlwaysSkint said:
    (My SocksAreComfortable 'cos they're hand knitted to an exact fit - thanks missus. :D )

    Knitted socks are definitely underrated. Especially if you live in a cold area! And they last so much longer than store-bought socks, too.

    Thanked by (1)AlwaysSkint
  • @SocksAreComfortable said: 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.

    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.

  • @skorous said:
    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:

    • do the same like whatever you do, but now use docker
    • like above, docker + swarm using other VPS
    • like above but with no docker swarm, now use k8s
    • once you get bored now back to deploy your container but using terraform

    play with monitoring:

    • install grafana + prometheus on one of them
    • put node exporter somewhere else (very good use for the Idle™ LES VPS)
    • make a dashboard of it

    • install logstash+elasticsearch+kibana on one system, heartbeats/metricbeats on other

    • make a dashboard in kibana from them

    play with VCS:

    • install gitea on one of them
    • install droneCI on another, or just whatever CI engine
    • put your fancy dockerfile in git, make the CI build image automatically
    • done? make your git also automatically deploy them too using terraform
    • make consul store your terraform state file, now you have Infrastructure as Code (IaC) running

    you have too many VPS now? good. LES need more people like you

    • automate 'em using ansible
    • or automate 'em using saltstack

    if-you-re-that-bored:

    • learn openstack
    • get it done, post job application in LES
    • ...???
    • protif

    Fuck this 24/7 internet spew of trivia and celebrity bullshit.

  • iaecmiaecm OG
    edited March 2023

    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.

  • Fuck this 24/7 internet spew of trivia and celebrity bullshit.

  • @Encoders said:
    play with monitoring:

    • install grafana + prometheus on one of them
    • put node exporter somewhere else (very good use for the Idle™ LES VPS)
    • make a dashboard of it

    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.

  • wankelwankel OG
    edited March 2023

    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!

  • @rcy026 said:
    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.

    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.

Sign In or Register to comment.