5edmscreen - Dungeons & Dragons DM screen in one single HTML page and JS glue.
Shairport Sync - AirPlay audio player. (I totally forgot this originally because it isn’t really the same as the others. The Raspberry Pi 3 sits close by and so I got a cord and plugged it into the stereo in my room and I’m running this in a container.)
On a Gateway SX2370-UR10P (Quad-core 2.5 GHz x86-64, 6144 MB RAM)
Jellyfin - media server similar to Netflix. (I previously just had Kodi pointed to a SMB share, Jellyfin rocks so hard.)
PaperMC - as light weight and low resource intensive as a Java-based Minecraft server can be.
I would love to learn how you did all this in Docker. I have a few Pis that started off as single-use projects, but now I really should put them in dockers and get a reverse proxy, but I don’t know how to do that part of it. The docker’s I roughly understand, and most of the deployment documentation is good. But reverse proxy part is confusing.
Hello @snorlax
I have uploaded docker-compose files for all the services.
You can find them here
For traefik, authelia and searx i have also included the config files which you can mount directly in the containers and you will be good to go. just need to change a few values which are indicated in config.
There is some extra work needed for nextcloud but the rest is good to go.
Apart from my nas I don’t host anything at home.
I have the advantage of working at a hosting company so I just spin up a vps as needed in one of the datacenters.
Mostly it’s just mail, git, nextcloud and a test install of grav.
Thanks for uploading this! my network is also set to 192.168.1.xxx. Do I leave it at 192.168.0.0 as you have? I’m not that familiar with subnetting and the like. Also, my Pihole is my DNS, but not my DHCP; so would I use the IP address of the Pihole in there? $ docker network create -d macvlan --subnet=192.168.1.242/24 --gateway=192.168.0.1 -o parent=eth0 home_net for instance?
You also have to change the IPs in docker-compose files for each service i.e Traefik to 192.168.1.60.
Rename the example.env file to ( .env ) in services folder and add the values, these will be used by different services when you bring them up.
docker-compose -f traefik2.yml up -d
You can either specify an --ip-range flag if you want a specific range for your containers.
In my case i bring all my containers with static ips i chose so there is no conflict. You can exclude the IPs for your running services (pihole / router ) etc
Thank you for this. Am I just making up a manual IP for Traefik in that scenario? I don’t have many devices on the network, so I could manually assign around the ones I do have set.
Might be a good idea to either use an ip outside of your dhcp pool or static mapping the ip.
That way you can be sure that the dhcp isn’t going to use that ip for something else, causing duplicate ip issues.
Just decided to update my update. I’m self-hosting less stuff currently.
Just wanted to check in and update. I killed off a bunch of containers and moved anything critical or with a non-SQLite database off of the Raspberry Pis.
On a Raspberry Pi 1 B+ (Single-core 700 MHz ARM1176JZF-S, 512 MB RAM)
Shairport Sync - Formerly a Pi-Hole box, this ancient computer is now siting on a shelf in a workshed with a Wi-Fi dongle and a USB DAC plugged in. It does nothing but run an AirPlay server and pass crystal clear lossless audio from my iOS device to an amp and speakers. I’ve thought about adding other network audio services or even a Bluetooth sink but it does what I need it to. (This guy has been demoted to boombox duty.)
On a Raspberry Pi 3 B (Quad-core 1.2 GHz ARM Cortex-A53, 1024 MB RAM)
It’s just sitting on a shelf collecting dust. I was going to use it for something similar to the Pi above but then I found an AppleTV, which does the same thing, at a thrift store for like $5.
On a Gateway SX2370-UR10P (Quad-core 2.5 GHz x86-64, 6144 MB RAM)
Jellyfin - media server similar to Netflix. Previous versions were a little crusty but now it’s been smooth sailing for a while. My siblings live in a different city and this little guy just keeps slinging media.
Forgejo - A soft fork of Gitea. git based collaborative version control which I use for backing up config files and docker-compose.yaml type stuff. I also mirror everyone’s dotfiles for fun.
On a custom AMD E1-2100 APU (Dual-core 1 GHz x86-64, 4096 MB RAM)
Matrix Synapse - Matrix reference homeserver. I don’t need to host an element instance because I use client apps on my computer and I’m not interested in running Jitsi. As soon as the Matrix People provide a way to migrate I’m going to replace this one with a Dendrite-based server.
a couple static websites
DokuWiki - A wiki. I’m using it to compile my D&D homebrews. It has a plugin system which enables me to make my content look the way I want it to and it stores the content in plain text files so I can recover and easily migrate to a different format if need be.
I use Caddy to reverse proxy everything. Caddy is designed to automatically negotiate your Let’s Encrypt certificates without any input from you.