Or maybe a two click solution? :)
You could go through the following route:
- purchase something like a small Synology NAS and learn how to set up the networking/firewall bits
- buy/repurpose a used desktop/laptop, install something like yunohost/unraid
- buy parts for your own server, put it together, use the same own server but install proxmox, setup VMs/containers
- use the same own server but install debian, play around with docker/docker-compose/ansible
If you don’t have the means to get new hardware, you can use hyper-v or virtualbox for free on Windows or virtualbox/virt-manager on Linux on existing hardware.
Simple project to start with: install pihole and configure it as your DNS adblocking filter at home
- install iphole on a VM/PC/raspberry pi that is connected to your home LAN
- configure your PC or router to use the pihole host as DNS server
- test various websites you know that have ads before and after using pihole
While doing things like these, keep notes what you do by day, using those notes, put together your own howto manuals. Do not be afraid to fail, sleep over it and try again, don’t be afraid to ask specific questions here or on other forums, IRC.
What about renting a server and running it there?
So you "self"host elsewhere?
Self hosting what?
In general
- Install docker
- Copy and paste docker run commands from the getting started guide
- Learn from mistakes
Okay. I keep reading about docker. What’s the difference between a docker and just installing an app on rented server space?
Does each dock (?) have its own server? (Apache or nginx or whatever?)
Does each dock host a whole site, or do you have a dock for your database and a dock for your web app?
What’s the difference between a docker and just installing an app on rented server space?
Functionally? Not much. But people who selfhost typically want everything on computers they own. Whether it’s for learning purposes, or to not have their stuff on “someone else’s computer” selfhosting usually means you’re running software on computers you own, almost always within your own house.
Does each dock (?) have its own server? (Apache or nginx or whatever?)
Each docker image usually has a web server built in. The philosophy of docker is that it contains everything needed to run the app. Even a small linux OS (LibELEC or Alpine are favorites for docker images). So while you’re not managing the web server in a docker image each docker image will have its own web server if web access is needed
Does each dock host a whole site, or do you have a dock for your database and a dock for your web app?
Docker the program is what runs all the docker images on a computer. Each docker image is built as per the software’s developer. Some docker images will have a web app and a database combined into a single image, while others will expect a separate database server running independent of the image (It won’t care if the database server is a docker image or not; just that it has access)
Docker is basically a virtual machine image you write your software in. Then when you run the software you don’t need to worry about compatibility or having the right dependencies installed, it’s all included in the docker image.
Think of Docker as being Nintendo cartridges that you can take to any friends house, plug them in, and play. Servers can run more than one Docker container.
The approach greatly simplifies writing code and having it work on your server, reduces errors, and adds a layer of security.