mirror of
				https://github.com/mr-vercetti/homeserver.git
				synced 2025-11-04 07:05:46 +01:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
			e1c25b02d3
			...
			37d1b55a5d
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					37d1b55a5d | ||
| 
						 | 
					627b23466f | ||
| 
						 | 
					7f249f593b | 
							
								
								
									
										31
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								README.md
									
									
									
									
									
								
							@@ -1,39 +1,43 @@
 | 
			
		||||
# mr-vercetti/homeserver
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
This is my home server project that I started because I value the privacy of my data, I don't like paying subscriptions and because self-hosting is really fucking cool.
 | 
			
		||||
This is my home server project that I started because I value the privacy of my data, I don't like paying subscriptions and because self-hosting is really cool.
 | 
			
		||||
 | 
			
		||||
## Core services
 | 
			
		||||
All services are deployed using Docker compose and are run as a non-root user.
 | 
			
		||||
## Services
 | 
			
		||||
All services are deployed using Docker Compose stacks.
 | 
			
		||||
 | 
			
		||||
### Maintenance
 | 
			
		||||
* [ddclient](https://github.com/linuxserver/docker-ddclient) - DDNS
 | 
			
		||||
* [SWAG](https://github.com/linuxserver/docker-swag) - reverse proxy with SSL certbot and fail2ban
 | 
			
		||||
* [watchtower](https://github.com/containrrr/watchtower) - notifications about docker image updates
 | 
			
		||||
* [Duplicati](https://github.com/linuxserver/docker-duplicati) - cool backup
 | 
			
		||||
  software
 | 
			
		||||
* [Backrest](https://github.com/garethgeorge/backrest) - backup solution, restic frontend
 | 
			
		||||
* [Uptime Kuma](https://github.com/louislam/uptime-kuma) - fancy uptime monitoring tool
 | 
			
		||||
* [Scrutiny](https://github.com/AnalogJ/scrutiny) - S.M.A.R.T monitoring
 | 
			
		||||
* [Beszel](https://github.com/henrygd/beszel) - monitoring dashboard
 | 
			
		||||
* [Dozzle](https://github.com/amir20/dozzle) - Docker logs viewer
 | 
			
		||||
* [gluetun](https://github.com/qdm12/gluetun) - VPN client
 | 
			
		||||
 | 
			
		||||
### Media
 | 
			
		||||
* [Jellyfin](https://github.com/linuxserver/docker-jellyfin) - media server
 | 
			
		||||
* [Jellyseer](https://github.com/fallenbagel/jellyseerr) - media request manager
 | 
			
		||||
* [Radarr](https://github.com/linuxserver/docker-radarr) - movie collection manager
 | 
			
		||||
* [Sonarr](https://github.com/linuxserver/docker-sonarr) - TV show collection manager
 | 
			
		||||
* [Bazarr](https://github.com/linuxserver/docker-bazarr) - subtitle manager
 | 
			
		||||
* [qbittorrentvpn](https://github.com/binhex/arch-qbittorrentvpn) - qbittorrent with VPN and
 | 
			
		||||
  Privoxy + [VueTorrent](https://github.com/VueTorrent/VueTorrent) - cute WebUI
 | 
			
		||||
* [qBittorrent](https://github.com/linuxserver/docker-qbittorrent) - qBittorrent + [VueTorrent](https://github.com/VueTorrent/VueTorrent) - cute WebUI
 | 
			
		||||
for qBittorrent
 | 
			
		||||
* [YoutubeDL](https://github.com/Tzahi12345/YoutubeDL-Material) - Youtube media downloader
 | 
			
		||||
* [YoutubeDL](https://github.com/Tzahi12345/YoutubeDL-Material) - YouTube media downloader
 | 
			
		||||
* [Prowlarr](https://github.com/Prowlarr/Prowlarr) - indexer
 | 
			
		||||
* [Lidarr](https://github.com/Lidarr/Lidarr) - music library manager
 | 
			
		||||
* [miniDLNA](https://github.com/vladgh/docker_base_images/tree/main/minidlna) - DLNA server
 | 
			
		||||
* [slskd](https://github.com/slskd/slskd) - soulseek client
 | 
			
		||||
* [Calibre](https://github.com/crocodilestick/Calibre-Web-Automated) - ebook
 | 
			
		||||
  manager
 | 
			
		||||
* [Calibre-downloader](https://github.com/calibrain/calibre-web-automated-book-downloader) - ebook downloader
 | 
			
		||||
 | 
			
		||||
### Personal cloud
 | 
			
		||||
* [Nextcloud](https://github.com/linuxserver/docker-nextcloud) - filesync/cloud solution
 | 
			
		||||
  * [Redis](https://github.com/docker-library/redis) - cache service
 | 
			
		||||
  * [MariaDB](https://github.com/linuxserver/docker-mariadb) - database
 | 
			
		||||
* [Collabora](https://github.com/CollaboraOnline/online) - office suite
 | 
			
		||||
* [Ghostfolio](https://github.com/ghostfolio/ghostfolio) - wealth mgmt app
 | 
			
		||||
 | 
			
		||||
### Software development
 | 
			
		||||
* [Gitea](https://github.com/go-gitea/gitea) - git web service
 | 
			
		||||
@@ -44,10 +48,9 @@ for qBittorrent
 | 
			
		||||
* [Wireguard](https://github.com/linuxserver/docker-wireguard) - VPN server
 | 
			
		||||
* [Homer](https://github.com/bastienwirtz/homer) - simple dashboard to keep services on hand
 | 
			
		||||
* [mr.vercetti.cc](https://git.vercetti.cc/mr-vercetti/mr.vercetti.cc) - my personal blog
 | 
			
		||||
* [widmo.cc](https://git.vercetti.cc/mr-vercetti/widmo.cc) - my film photo
 | 
			
		||||
  project
 | 
			
		||||
* [listmonk](https://github.com/knadh/listmonk) - mail sending/newsletter service
 | 
			
		||||
 | 
			
		||||
## Storage solution
 | 
			
		||||
I went with [MergerFS](https://github.com/trapexit/mergerfs) and [SnapRAID](https://github.com/amadvance/snapraid), which allows me a great deal of flexibility and still keeps my data safe. Array is synchronized and scrubbed automatically via [snapraid-runner](https://github.com/Chronial/snapraid-runner) running from crontab.
 | 
			
		||||
 | 
			
		||||
## Setup
 | 
			
		||||
To be completed.
 | 
			
		||||
I went with [MergerFS](https://github.com/trapexit/mergerfs) and [SnapRAID](https://github.com/amadvance/snapraid), which allows me a great deal of flexibility and still keeps my data safe. Array is synchronized and scrubbed automatically using [snapraid-runner](https://github.com/Chronial/snapraid-runner) running from crontab.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								crontab
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								crontab
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
			
		||||
# SnapRAID
 | 
			
		||||
30 4 * * 0 python3 /opt/snapraid-runner/snapraid-runner.py --conf /etc/snapraid-runner.conf --ignore-deletethreshold
 | 
			
		||||
30 4 * * * python3 /opt/snapraid-runner/snapraid-runner.py --conf /etc/snapraid-runner.conf --ignore-deletethreshold
 | 
			
		||||
# LG TV renew dev mode (https://github.com/webosbrew/dev-manager-desktop)
 | 
			
		||||
0 * * * * /etc/tv-renew-devmode.sh >> /var/log/tv-renew-devmode.log 2>&1
 | 
			
		||||
# DNS issues fix with Torguard
 | 
			
		||||
0 5 * * * /apps/homeserver/docker/torguard-fix.sh
 | 
			
		||||
0 1 * * * /apps/homeserver/docker/torguard-fix.sh
 | 
			
		||||
 
 | 
			
		||||
@@ -182,21 +182,55 @@ services:
 | 
			
		||||
      restart: unless-stopped
 | 
			
		||||
 | 
			
		||||
   slskd:
 | 
			
		||||
    image: slskd/slskd
 | 
			
		||||
    container_name: slskd
 | 
			
		||||
    user: ${PUID}:${PGID}
 | 
			
		||||
    environment:
 | 
			
		||||
      - TZ=${TIMEZONE}
 | 
			
		||||
      - SLSKD_REMOTE_FILE_MANAGEMENT=true
 | 
			
		||||
      - SLSKD_SLSK_USERNAME=${SLSKD_SLSK_USERNAME}
 | 
			
		||||
      - SLSKD_SLSK_PASSWORD=${SLSKD_SLSK_PASSWORD}
 | 
			
		||||
      - SLSKD_SHARED_DIR=/app/downloads
 | 
			
		||||
    network_mode: "container:gluetun"
 | 
			
		||||
    volumes:
 | 
			
		||||
      - ${APPS_DIR}/slskd:/app/data
 | 
			
		||||
      - ${DATA_DIR}/downloads/slskd/incomplete:/app/incomplete
 | 
			
		||||
      - ${DATA_DIR}/media/music:/app/downloads
 | 
			
		||||
    restart: unless-stopped
 | 
			
		||||
      image: slskd/slskd
 | 
			
		||||
      container_name: slskd
 | 
			
		||||
      user: ${PUID}:${PGID}
 | 
			
		||||
      environment:
 | 
			
		||||
        - TZ=${TIMEZONE}
 | 
			
		||||
        - SLSKD_REMOTE_FILE_MANAGEMENT=true
 | 
			
		||||
        - SLSKD_SLSK_USERNAME=${SLSKD_SLSK_USERNAME}
 | 
			
		||||
        - SLSKD_SLSK_PASSWORD=${SLSKD_SLSK_PASSWORD}
 | 
			
		||||
        - SLSKD_SHARED_DIR=/app/downloads
 | 
			
		||||
      network_mode: "container:gluetun"
 | 
			
		||||
      volumes:
 | 
			
		||||
        - ${APPS_DIR}/slskd:/app/data
 | 
			
		||||
        - ${DATA_DIR}/downloads/slskd/incomplete:/app/incomplete
 | 
			
		||||
        - ${DATA_DIR}/media/music:/app/downloads
 | 
			
		||||
      restart: unless-stopped
 | 
			
		||||
 | 
			
		||||
   calibre:
 | 
			
		||||
      image: crocodilestick/calibre-web-automated
 | 
			
		||||
      container_name: calibre
 | 
			
		||||
      environment:
 | 
			
		||||
        - PUID=${PUID}
 | 
			
		||||
        - PGID=${PGID}
 | 
			
		||||
        - TZ=${TIMEZONE}
 | 
			
		||||
      volumes:
 | 
			
		||||
        - ${APPS_DIR}/calibre:/config
 | 
			
		||||
        - ${DATA_DIR}/calibre/ingest:/cwa-book-ingest
 | 
			
		||||
        - ${DATA_DIR}/calibre/library:/calibre-library
 | 
			
		||||
      networks:
 | 
			
		||||
        - media
 | 
			
		||||
      ports:
 | 
			
		||||
        - 8083:8083
 | 
			
		||||
      restart: unless-stopped
 | 
			
		||||
 | 
			
		||||
   calibre-downloader:
 | 
			
		||||
      image: ghcr.io/calibrain/calibre-web-automated-book-downloader
 | 
			
		||||
      container_name: calibre-downloader
 | 
			
		||||
      environment:
 | 
			
		||||
        - FLASK_PORT=8084
 | 
			
		||||
        - FLASK_DEBUG=false
 | 
			
		||||
        - CLOUDFLARE_PROXY_URL=http://flaresolverr:8191
 | 
			
		||||
        - INGEST_DIR=/cwa-book-ingest
 | 
			
		||||
        - BOOK_LANGUAGE=pl
 | 
			
		||||
      volumes:
 | 
			
		||||
        - ${DATA_DIR}/calibre/ingest:/cwa-book-ingest
 | 
			
		||||
      networks:
 | 
			
		||||
        - media
 | 
			
		||||
      ports:
 | 
			
		||||
        - 8084:8084
 | 
			
		||||
      restart: unless-stopped
 | 
			
		||||
 | 
			
		||||
networks:
 | 
			
		||||
   proxy:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user