What do you host at home?

I’m self hosting for either family or myself

On a Raspberry Pi 1 B+ (Single-core 700 MHz ARM1176JZF-S, 512 MB RAM)

  • Pi-Hole - network wide advertisement blocker. (I forgot this originally because it is one of the few services I host not running in a container.)

On a Raspberry Pi 3 B (Quad-core 1.2 GHz ARM Cortex-A53, 1024 MB RAM)

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.
  • Caddy - reverse proxy https server

On a custom AMD E1-2100 APU (Dual-core 1 GHz x86-64, 4096 MB RAM)

I use Caddy to reverse proxy everything and plan on having a Matrix and Element server up and running this weekend.

I also want to self host a federated microblogging service but am not sure which one to use.

Edited for clarity.

2 Likes

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.

Hello @PatPlusLinux
I have not tried caddy as reverse proxy yet , I am curious about your setup can you share your config for caddy.
Thanks

Sure. Let me summarize my Caddyfile.

subdomain.domain.tld {
reverse_proxy hostname:port
}

I’m sorry if this isn’t the type of information you’re looking for. My use case is narrow.

I’m running it fresh from the docker.

docker run --name caddy -v /srv/caddy/config:/config -v /srv/caddy/data:/data -v /srv/caddy/caddyfiles/Caddyfile:/etc/caddy/Caddyfile -p 443:443 -p 80:80 -d caddy

Thank you for sharing.
I assumed you had configured caddy to acquire the certs from letsencrypt :slight_smile:

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.

It does that automatically from what I can tell. Browsing each sub domain has the little lock icon which shows a valid let’s encrypt cert.

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?

If you network is set to 192.168.1.xxx then you have to define something like this

docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 home_net

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

docker network create -d macvlan --subnet=192.168.1.0/24 --ip-range=192.168.1.30/25 --gateway=192.168.1.1 -o parent=eth0 home_net

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.

You are welcome.
Yes you can chose any IP from your network, just don’t use the ones which are already assigned to your existing devices.

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 have a DS218+ with bitwarden_rs, nextcloud & plex
Mirrored 4tb ironwolf drives

bitwarden_rs is a game changer and, until someone can prove otherwise, is the best way to self-host the service.

1 Like

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)

  • Caddy - reverse proxy https server
  • 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.

Revised 9/15/2020
Revised again 01/29/2023

3 Likes

Got at least 2 things to check out now! Really appreciate the descriptions.

Always good to see old Pis kickin’ around. Personally not a fan of losing the no wifi/bluetooth option.