And it can get really low effort too.
I do very little maintenance as I just don't have time at the moment. Everything just runs.
I love paperless, immich and meanie as my top apps, with nginx proxy manager dealing with the proxying.
And it can get really low effort too.
I do very little maintenance as I just don't have time at the moment. Everything just runs.
I love paperless, immich and meanie as my top apps, with nginx proxy manager dealing with the proxying.
Docker is hurting my progress. I just can't seem to wrap my head around it. Is there a Docker for Dummies?
Is there a specific part that you’re having trouble with? Is it more how it works under the hood, or more about using it to spin up containers? I can try to answer any questions and post some how tos for you.
I think I just need a general overview. Something about the concept isn't clicking for me, and it makes it hard for me to learn how to use it when I fundamentally don't get it. Is there a really good "Introduction to Docker and the tools people use with it" that I haven't found?
Say you install with apt, and the app needs a dependency that breaks your setup. You use docker to utilize your os, but containerize dependencies. You can also better organize which containers use your computer's network, and which use a virtual network where you can redirect an incoming port to avoid conflicts.
Containers are like VMs, but for an application instead of a whole OS, though you can put multiple apps in one container. Good for if they need to share files.
For a more visual approach, look into Portainer. It gives you an admin page you can open in your browser to manage docker containers.
I actually have Portainer set up and running, and I even spun up a few simple containers in it. Unfortunately I did so by following a guide to complete a specific task. I completed the task successfully, but now I have a Portainer install that I don't understand in the slightest, and don't know how to update it or any of the containers in it, or really do anything that wasn't covered in the guide I followed (which I now cannot find). I found a YouTube video that tries to explain Portainer, but I don't know the terminology of Docker enough to understand what they are saying, and I haven't found a Docker video simple enough to bring me up to speed.
The easiest way to think about docker is to consider it a type of virtual machine, like something you'd use VirtualBox for.
So let's say you run Windows, but want to try out Linux. You'd could install Ubuntu in a VirtualBox VM, and then install software that works on Ubuntu in that VM, and it's separate from Windows.
Docker is similar to this in that a docker container for a piece off software often includes an entire operating system within it, complete with all of the correct versions of drivers that the software needs to function. This is all in a sandbox/container that does not really interact with the host operating system.
As to why this is convenient: Let's say that you have a computer running Ubuntu natively/bare metal. It has a certain version of python installed that you need to run the applications you use. But there's some new software you want to try that uses a later version of python that will break your other apps if you upgrade.
The developer of that software you want to try makes a docker version available. There's a docker-compose.yml file that specifies things like the port the application will be available on, the time zone your computer is in, the location of the docker files on dockerhub, etc. You can modify this file if you like, and when you are done, you type docker compose up -d
in the terminal (in the same directory as the docker-compose.yml file).
Docker will then read the compose file, download the required files from the repository, extract them, set up the network and the web server and configure everything else specified in the compose file. Then you open a browser, type in the address of the machine the compose file is on, followed by the port number in the compose file (ex: http://192.168.1.100:5000), and boom, there's your software.
You can use the new software with the newer version of python at the same time as the old stuff installed directly on your machine.
You can leave it running all the time, or bring it down by typing docker compose down
. Need to upgrade to a new version? Bring the container down, type docker compose pull
, which tells docker to pull the latest version from the repository, then docker compose up -d
to bring the updated version back up again.
Portainer is just a GUI that runs docker commands "under the hood".
If you want to host things and be accessible from outside your home then I'd start with getting a domain and static IP, point the DNS at your IP, make sure your DNS provider is supported by Let's Encrypt DNS authentication.
Then setup nginx as a reverse proxy and get Let's Encrypt setup with auto renewal. That way you can have secure https connections to your home.
Then install docker compose, fire up a service and configure nginx to proxy to it
I usually cut down on domain/DNS cost by using a free dynamic DNS service called duckdns. It works super well, provides Let's Encrypt support and sub-sub-domains. (for example your could have https://git.$username.duckdns.org
)
I've found as a IT noob that Caddy 2
provides as much "batteries inside" and "boiler-plate free" to support me, because I have no Idea what I'm doing. So I just let caddy handle my encryption and reverse proxy to my actual server.
I'm an embedded software dev, who only discovers ethernet protocols on a surface level, because we hadn't need it yet in previous projects, so I'm a bit lost on how to do cloud stuff. So having all these great tools for free for me to try out and connect from outside to my media servers and stuff is awesome!
Saw this post on “All”. Last I checked (sometime in 2019), self-hosting was a fairly involved process.
Has the process simplified enough for a complete beginner like me to begin self-hosting services on, say, a raspberry pi?
If yes, can you please point me to a good resource/wiki?
Actually, I would argue the simplest way to self host today is TrueCharts.
The problem is when it breaks, you are SOL because you didn't build it yourself so you got no clue how it works
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:
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
No spam posting.
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.
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
No trolling.
Resources:
Any issues on the community? Report it using the report flag.
Questions? DM the mods!