# Homelab

Home server infrastructure, wants, needs, and documentation

# Services

#### Host

The following services have been installed on the host server:

- Docker
- [Mosh](https://mosh.org/)
- Samba
- [Tailscale](https://tailscale.com/)

#### Docker

The following services are managed through docker:

- [Baby Buddy](https://github.com/babybuddy/babybuddy)
- [Bazarr](https://www.bazarr.media/)
- [BookStack](https://www.bookstackapp.com/)
- [Caddy](https://caddyserver.com/)
- [Calibre](https://calibre-ebook.com/)
- [Code Server](https://github.com/coder/code-server)
- [Dashdot](https://github.com/MauriceNino/dashdot)
- [EmulatorJS](https://docs.linuxserver.io/images/docker-emulatorjs/#docker-compose-recommended-click-here-for-more-info)
- [Flaresolverr](https://github.com/FlareSolverr/FlareSolverr)
- [Glances](https://github.com/nicolargo/glances/tree/master)
- [Gluetun](https://github.com/qdm12/gluetun)
- [Homarr](https://homarr.dev/)
- [Kavita](https://www.kavitareader.com/)
- [MeTube](https://github.com/alexta69/metube)
- [Microbin](https://microbin.eu/)
- [Miniflux](https://github.com/miniflux/v2)
- [MongoDB](https://hub.docker.com/_/mongo)
- [Overseerr](https://overseerr.dev/)
- [Plex](https://www.plex.tv/)
- [Prowlarr](https://prowlarr.com/)
- [qBittorrent](https://www.qbittorrent.org/)
- [Radarr](https://radarr.video/)
- [Readarr](https://readarr.com/)
- [Scrutiny](https://github.com/AnalogJ/scrutiny)
- [Sonarr](https://sonarr.tv/)
- [Uptime Kuma](https://github.com/louislam/uptime-kuma)
- [Watchtower](https://github.com/containrrr/watchtower)

#### Game Servers

The following game servers are managed through docker:

- 7 Days to Die
- Insurgency: Sandstorm
- Valheim

#### Data Backup

Application data is backed up onto an external storage medium every week.

A simple bash script is included in the homelab repository that targets specific services, their app and db data.

# Networking

#### Docker

The docker network setup is very basic for the most part, most containers use their own default docker network, with some exceptions.

##### Services

<table id="bkmrk-container-network%28s%29" style="border-collapse:collapse;width:100%;height:178.8px;"><colgroup><col style="width:33.3333%;"></col><col style="width:33.3333%;"></col><col style="width:33.3333%;"></col></colgroup><thead><tr style="height:29.8px;"><td style="height:29.8px;">Container  
</td><td style="height:29.8px;">Network(s)  
</td><td style="height:29.8px;">Host port(s)  
</td></tr></thead><tbody><tr><td>babybuddy  
</td><td>babybuddy\_network  
</td><td>8000  
</td></tr><tr style="height:29.8px;"><td style="height:29.8px;">bazarr  
</td><td style="height:29.8px;">qbittorrent\_network (external)  
</td><td style="height:29.8px;">6767  
</td></tr><tr style="height:29.8px;"><td style="height:29.8px;">bookstack  
</td><td style="height:29.8px;">bookstack\_network  
</td><td style="height:29.8px;">6875  
</td></tr><tr style="height:29.8px;"><td style="height:29.8px;">caddy  
</td><td style="height:29.8px;">bookstack\_network, dashdot\_network, homarr\_network, microbin\_network, qbittorrent\_network, uptimekuma\_network (all external)  
</td><td style="height:29.8px;">80, 443, 2019  
</td></tr><tr><td>calibre</td><td>default</td><td>7000,7001</td></tr><tr><td>code-server</td><td>default</td><td>8443</td></tr><tr style="height:29.8px;"><td style="height:29.8px;">dashdot  
</td><td style="height:29.8px;">dashdot\_network  
</td><td style="height:29.8px;">3001  
</td></tr><tr><td>emulatorjs  
</td><td>default  
</td><td>4000,4001  
</td></tr><tr style="height:29.8px;"><td style="height:29.8px;">flaresolverr</td><td style="height:29.8px;">flaresolverr\_network</td><td style="height:29.8px;">8191  
</td></tr><tr><td>glances  
</td><td>default  
</td><td>61208, 61209  
</td></tr><tr><td>homarr  
</td><td>homarr\_network  
</td><td>7575  
</td></tr><tr><td>kavita</td><td>default</td><td>5000</td></tr><tr><td>metube  
</td><td>default  
</td><td>8082  
</td></tr><tr><td>microbin  
</td><td>microbin\_network  
</td><td>9999  
</td></tr><tr><td>miniflux  
</td><td>default  
</td><td>9080  
</td></tr><tr><td>mongodb  
</td><td>mongodb\_network  
</td><td>27017  
</td></tr><tr><td>nodechatserver  
</td><td>default  
</td><td>6000  
</td></tr><tr><td>overseerr  
</td><td>qbittorrent\_network (external)  
</td><td>5055  
</td></tr><tr><td>plex  
</td><td>host  
</td><td>32400  
</td></tr><tr><td>prowlarr  
</td><td>qbittorrent\_network (external)  
</td><td>9696  
</td></tr><tr><td>qbittorrent  
</td><td>qbittorrent\_network</td><td>6881, 8080   
</td></tr><tr><td>radarr  
</td><td>qbittorrent\_network (external)</td><td>7878  
</td></tr><tr><td>readarr</td><td>qbittorrent\_network (external)</td><td>8787</td></tr><tr><td>scrutiny  
</td><td>default  
</td><td>9090  
</td></tr><tr><td>sonarr  
</td><td>qbittorrent\_network (external)</td><td>8989  
</td></tr><tr><td>uptimekuma  
</td><td>uptimekuma\_network  
</td><td>3002  
</td></tr></tbody></table>

##### Game Servers

<table id="bkmrk-container-network%28s%29-1" style="border-collapse:collapse;width:100%;"><colgroup><col style="width:33.3333%;"></col><col style="width:33.3333%;"></col><col style="width:33.3333%;"></col></colgroup><thead><tr><td>Container  
</td><td>Network(s)  
</td><td>Host port(s)  
</td></tr></thead><tbody><tr><td>7daystodie  
</td><td>default  
</td><td>8081, 8082, 26900, 26900, 26901, 26902  
</td></tr><tr><td>insurgency  
</td><td>default  
</td><td>27001, 27002, 27003  
</td></tr><tr><td>valheim  
</td><td>default  
</td><td>2456, 2457, 2458, 9001  
</td></tr></tbody></table>

#### Reverse Proxy

Caddy is used as a reverse proxy to a number of services.

<table id="bkmrk-service-host-babybud" style="border-collapse:collapse;width:100%;height:171.4px;"><colgroup><col style="width:50%;"></col><col style="width:50%;"></col></colgroup><thead><tr style="height:29.8px;"><td style="height:29.8px;">Service  
</td><td style="height:29.8px;">Host  
</td></tr></thead><tbody><tr style="height:35.4px;"><td style="height:35.4px;">babybuddy  
</td><td style="height:35.4px;">[https://babybuddy.homelab.jordanchappell.com](https://babybuddy.homelab.jordanchappell.com)  
</td></tr><tr style="height:35.4px;"><td style="height:35.4px;">bookstack  
</td><td style="height:35.4px;">[https://bookstack.homelab.jordanchappell.com](https://bookstack.homelab.jordanchappell.com)   
</td></tr><tr style="height:35.4px;"><td style="height:35.4px;">dashdot  
</td><td style="height:35.4px;">[https://usage.homelab.jordanchappell.com](https://usage.homelab.jordanchappell.com)   
</td></tr><tr style="height:35.4px;"><td style="height:35.4px;">homarr  
</td><td style="height:35.4px;">[https://dashbord.homelab.jordanchappell.com](https://dashbord.homelab.jordanchappell.com)   
</td></tr><tr><td>kavita</td><td>[https://books.homelab.jordanchappell.com](https://books.homelab.jordanchappell.com)</td></tr><tr><td>microbin  
</td><td>[https://microbin.homelab.jordanchappell.com](https://microbin.homelab.jordanchappell.com)   
</td></tr><tr><td>overseerr  
</td><td>[https://media.homelab.jordanchappell.com](https://media.homelab.jordanchappell.com)   
</td></tr><tr><td>qbittorrent  
</td><td>[https://torrent.homelab.jordanchappell.com](https://torrent.homelab.jordanchappell.com)   
</td></tr><tr><td>radarr  
</td><td>[https://movies.homelab.jordanchappell.com](https://movies.homelab.jordanchappell.com)   
</td></tr><tr><td>sonarr  
</td><td>[https://tv.homelab.jordanchappell.com](https://tv.homelab.jordanchappell.com)   
</td></tr><tr><td>uptimekuma  
</td><td>[https://uptime.homelab.jordanchappell.com](https://uptime.homelab.jordanchappell.com)   
</td></tr></tbody></table>