this post was submitted on 14 Oct 2023
25 points (77.8% liked)

Selfhosted

40183 readers
547 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

Im looking for free entry-level materials about self hosting and network architecture in general. I know that some professors put presentations for free on their websites. im looking for: e-books,lectures,tutorials,videos.

Thanks in advance. -kapx132

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 3 points 1 year ago (4 children)

my first goal is to learn how networks work, and then once i learn the basics i want to host my own matrix server.

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago)

how networks work

http://tcpipguide.com/free/index.htm and lookup terms/protocols on wikipedia as you go.

But as others said, I think you would learn faster if you pick a specific project and try to implement it from scratch. A matrix server is a nice project, but it will have you dig into matrix-specific configuration which is not particularly relevant if you're just trying to learn system administration and networking.

I would start with a more "basic" project and ensure you got the fundamentals right, and document or automate (shell scripts, ansible..) all steps:

  • install a virtualization platform (hypervisor)
  • create a VM and install Debian inside it, using LVM for disk management, and a static IP address
  • practice with creating/restoring snapshots, add/remove hardware and resources (vCPUs, RAM, disk storage) from the VM
  • set up an SSH server and client using SSH keys
  • setup a firewall with some basic rules (e.g. only accept SSH connections from a specific IP address and DROP all other SSH connections, forward all HTTPS connections to another IP address...)
  • setup monitoring with a few basic rules (alert if the SSH server is down, alert if disk space or free memory is low...)
  • automate security updates
  • ....

Then you can work your way up to more complex services, lookup security hardening measures on your existing setup (as always, document or automate all steps). To give you some ideas, you can find ansible roles I wrote for these tasks here. The common role implements most of what I listed above. The monitoring role implements the monitoring part. There are a few other roles for middleware/infrastructure services (web server/reverse proxy, DNS server, database services, VPN...) and a few more for applications (matrix+element, gitea, jellyfin, mumble...). Start at tasks/main.yml for each role, follow the import_tasks statements from there, and read at least the name: for each task to get a good overview of what needs to be done, and implement it yourself from a shell in the first time. If you break your setup, restore the initial VM snapshot and start again (at this point you've automated or documented everything, so it should not take more than a few minutes, right?) .

Each of these tasks will require you to research available software and decide for yourself which is best for your requirements (which hypervisor? which firewall frontend? which monitoring solution? etc)

[–] [email protected] 5 points 1 year ago (1 children)

I suggest you reverse that order. If first you learn how to host your own matrix server, you'll have a better idea of what part of "how networks work" you wan to learn.

Or maybe you decide you want a full graduation course on how network works so you can learn all of the basics. But either way, that first half is a large endeavor.

[–] [email protected] 5 points 1 year ago

Agreed, networking knowledge can be pretty ephemeral if you don’t have a way to put it into practice and solidify that knowledge in your brain.

My suggestion would be to learn basic Linux and get a server up. Then learn firewall on that server and then how to configure and use a vpn on it - as a client AND a server. Then move on to switching and finally basic routing. At that point you’ll have enough general knowledge to know what you want to do next.

[–] [email protected] 2 points 1 year ago

You can take a look at MIT courseware if there is something for you

[–] [email protected] 0 points 1 year ago (2 children)
[–] [email protected] 7 points 1 year ago

they just want to enslave humanity by trapping it in a realistic simulation and harvesting their body heat for energy production.

You know... the usual.

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)