I think of myself as technically inclined. I have installed Linux multiple times and have basic command line knowledge, and I’ve programmed in many languages, with the most experience making a static website game using HTML/CSS/JS.
Additionally, I own the superspruce.org domain (my registrar is Dynadot), but I don’t really know how to wield the power of owning a domain. I also have some spare computers to be used for hosting, a 2009 laptop running Lubuntu and a 3900X+32GB RAM desktop other running KDE Neon, but I’m also open to experimenting with cloud hosting too (I know, sacrilege here).
However, I don’t know much about the TCP/IP protocol or other networking protocols. I’m happy to learn, but the curve would need to start gently.
I would want to try hosting my websites, and also a personal non-federated Lemmy instance to serve as a archivable forum for my games. Even if it’s not very useful, it’s great experience.
Some things, or points, to consider.
- Do you want whatever you’re hosting to be internet accessible? Or local network only? As it being able to access from anywhere
- If its something you want to be able to use full time, youll eventually want a dedicated machine. I have an *arr stack etc, which I share with a private group. Eventually downtime was an actual consideration and interrupted my normal usage of my main machine. I picked up a secondhand elitedesk mini Pc for £150 and its doing really well.
- Potentially make use of tools like Zerotier for private networking (others hopefully will chime in with alternatives, but I have had good success with zerotier.
- How do you want to host it, and are you willing to learn? Get a bit of knowledge on docker or podman but this is hardmode as most examples will be docker specific. Using containers will make things simpler. The most complicated part IMO is networking but even then its more docker networking stuff than general TCP/IP - (like you mentioned in your post)
- OS - you mentioned using Linux? I personally use Ubuntu just out of defaulting to what i’ve previously used. But Im currently using Manjaro on my non host PC, which I am liking
- Keep things secure - the more you expose to the internet, the more risk. Keep exposure as small as possible, use letsencrypt or alternatives for anything you want to access over the internet etc
good luck have fun!
- I want it to be internet accessible. A friend taught me how to use nginx for the local network, although I’ve forgotten that now.
- My previously mentioned computers are computers I don’t use that much, especially the old laptop. My main computer is a 2021 ROG Strix G15 Advantage Edition. I won’t be hosting from that.
- Private networking is just hosting over a LAN, right?
- Does Docker work well on old hardware and is Docker easy to learn?
- I have the most knowledge on Ubuntu based distros. I don’t think Manjaro, a bleeding edge rolling distro, is good for hosting.
- How do I use let’s encrypt or something to boost my security?
Not who you’re replying to but here are some answers:
- For internet accessibility there will be things to consider. Do you want non-techy friends or family on it? If so you may need to port forward or use a vps. Some ISPs don’t allow port forwarding, but there are a million solutions to this. Otherwise you can use a VPN to connect to your network and have access to your server that way.
- Old laptops are great for hosting. They are typically more power efficient than desktops, although the expansion options aren’t great if you don’t like jank.
- Not sure.
- Yes and kinda. It is super light unless you’re running it on really old stuff. It is easy once you learn. I recommend docker compose to keep everything in a single config file. You can use watchtower to keep things automatically updated.
- I like Debian. I too use a rolling distro on my desktop, and some people do like rolling distros for servers. The idea of stable release distros like Debian are that they are consistant and you don’t have to worry about updates breaking things. The idea of rolling distros on a server is that you will only ever have to deal with small updates rather than giant ones that may break everything (like between Debian versions). I would not recommend manjaro on a server, or at all really. They have a habit of holding back packages for no real reason and causing dependancie issues. If you like rolling I would try Tumbleweed or Arch with Archinstall. There is also Endeavor OS which is basically easier Arch.
- Letsencrypt is for https certificates. You can use self signed certificates, meaning they are made by your computer rather than letsencrypt’s servers, but you will get warnings in your browser and app interfaces for your services may not work. They are just as secure for personal use. Don’t do http on the internet. That is bad. You know the VPN ads that say hackers can steal all your bank passwords if you don’t buy their VPN, well that is not true because your bank uses https. If you access your services through http over the internet, someone will get your password eventually. Do whatever you want on home network though.
Maybe I should just cloud host, as it costs the same as a VPN. But then again, a VPN will also protect my privacy. Do I need to use let’s encrypt if I use a VPN or cloud host if I want to be secure?
Short answer VPN no, cloud yes. That is, if the VPN server is on your network and you are not simply forwarding ports to an external VPN. If your choices are VPN vs cloud, I would recommend cloud as it is satisfying to be able to type in a URL and go to your site instead of having to go through VPN weirdness. If you keep sensitive data on your server then a VPN is definitely better (again, the local kind). I personally just forward 80 and 443 and use nginx to control what domains everything is on.