This repo contains the information of the application layer built on top of my personal Home Server
.
My server is a Synology 420+, for that reason the docker volumes are pointing to /volumes1
.
The only configuration you should change to make it work on your environment is the local route for example, /volumes1/Documents:/srv
change it for C:\users\{user}\Documents:/srv
or the similar in Linux /home/testuser/Documents:/srv
On the server you can find:
For the administration of the containers I use Portainer, because it is easier for me to manage the containers from there rather than manually modifiying the server using ssh.
I have installed it natively in the synology Nas, but you can find the configuration in the docker-compose.old.yaml
file.
Originally I used a web client, but I find it easier to access using the explorer with \\{server-name}
As I have a synology device I do also use synology drive.
the content in the docker-compose.multimedia.yaml
file
Plex is a global streaming media service and a client–server media player platform.
Which will allow me to stream content from the server into any Plex client (like the one in the Smart TV, Phones, etc).
You can access using the browser on http://localhost:32400
; I have it installed it natively on the synology nas.
Along with Plex
, a few other apps are included on the compose file:
- Sonarr to manage TvShows.
http://localhost:8989
- Radarr to manage Movies.
http://localhost:7878
- prowlarr to manage Torrent trackers.
http://localhost:9696
- Transmission Torrent client.
http://localhost:9091
- Overseer Content manager for media library.
http://localhost:5055
- Bazaar subtitle manager.
http://localhost:6767
- Lidarr to manage music.
http://localhost:8686
file docker-compose.crossstack.yaml
Right now I am using heimdall but in this post there are explanations for 3 of them.
file docker-compose.books.yaml
.
- Readarr to manage books.
http://localhost:8787
- Calibre is an e-book manager. It can view, convert, edit and catalog e-books in all of the major e-book formats. Along with calibre-web for a nicer experience (user
admin
passwordadmin123
) note:calibre
andcalibre-web
are in the legacy file as I had no time to migrate it yet. They can be configured along withReadarr
so synch the books automatically.
File docker-compose.router.yaml
; Note: this apps are configured on my test environment, but i do not use them in the Synology nas yet, some configuration might be wrong or incomplete.
I added them into a router
file because from an arquitectural point of view they make sense at an entry point level.
- Pihole
- tailscale, to safe connect to my server using a VPN from outside my own home. Note: i have this one installed natively in the Synology.
- Nginx reverse proxy.
To have an easier life and avoid remembering the ports, I configured an NGINX reverse proxy.
All this information is configured under the file default.conf
on the repo is located under config/nginx/default.conf
, but you can locate it anywhere you want. Just remember to point the volume correctly:
volumes:
- D:\Server-config\nginx\default.conf:/etc/nginx/conf.d/default.conf:ro
This will allow to use differnt endpoints for different purposes:
netdata.server.home
-> netdatafiles.server.home
-> filebrowsershows.server.home
-> sonarrmovies.server.home
-> radarprowlarr.server.home
-> prowlarrbooks.server.home
-> readarrtorrent.server.home
-> transmissionplex.server.home
-> plexcalibre.server.home
-> calibrecalibreweb.server.home
-> calibre
Note: for this to work you have to modfiy your hosts
file in EACH MACHINE you want to use them with {ip} subdomain.domain
like for example (replace 127.0.0.1
for your server IP):
127.0.0.1 server.home
127.0.0.1 files.server.home
127.0.0.1 movies.server.home
127.0.0.1 tv.server.home
127.0.0.1 prowlarr.server.home
127.0.0.1 books.server.home
127.0.0.1 torrent.server.home
127.0.0.1 netdata.server.home
127.0.0.1 plex.server.home
127.0.0.1 calibre.server.home
127.0.0.1 calibreweb.server.home
Note: you can configure piHole to deal with the DNS configuration inside your local network, instead of modifying the hosts
file in each machine.