Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/veerendra2/raspberrypi-homeserver
A collection of applications and tools to make awesome Raspberry Pi homerserver
https://github.com/veerendra2/raspberrypi-homeserver
ansible docker docker-compose docker-swarm docker-swarm-service filebrowser grafana homeserver jellyfin nextcloud pihole portainer prometheus qbittorrent raspberry-pi swarm traefik ufw-firewall vaultwarden wiregaurd
Last synced: 3 months ago
JSON representation
A collection of applications and tools to make awesome Raspberry Pi homerserver
- Host: GitHub
- URL: https://github.com/veerendra2/raspberrypi-homeserver
- Owner: veerendra2
- License: apache-2.0
- Archived: true
- Created: 2022-09-16T10:14:16.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-08T19:32:59.000Z (about 1 year ago)
- Last Synced: 2024-09-22T19:32:32.343Z (3 months ago)
- Topics: ansible, docker, docker-compose, docker-swarm, docker-swarm-service, filebrowser, grafana, homeserver, jellyfin, nextcloud, pihole, portainer, prometheus, qbittorrent, raspberry-pi, swarm, traefik, ufw-firewall, vaultwarden, wiregaurd
- Language: Shell
- Homepage: https://veerendra2.github.io/posts/home-server-setup/
- Size: 1.51 MB
- Stars: 67
- Watchers: 5
- Forks: 5
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![GitHub](https://img.shields.io/github/license/veerendra2/raspberrypi-homeserver)
![GitHub Repo stars](https://img.shields.io/github/stars/veerendra2/raspberrypi-homeserver?style=plastic)
![GitHub forks](https://img.shields.io/github/forks/veerendra2/raspberrypi-homeserver?style=plastic)
![GitHub issues](https://img.shields.io/github/issues/veerendra2/raspberrypi-homeserver?style=plastic)
![GitHub release (release name instead of tag name)](https://img.shields.io/github/v/release/veerendra2/raspberrypi-homeserver?include_prereleases&style=plastic)
# Raspberry Pi Homeserver
A collection of self-host docker swarm stacks
PiHole
Grafana
Prometheus
Portainer
Homer
ufw
Filebrowser
Jellyfin
Nextcloud
Traefik
Wireguard
qBittorrent
Radarr
Sonarr
Jackett
SearXNG
Vaultwarden
rest-server
(Restic)
IT-Tools
Docker Swarm## Table of Contents
* [Features](https://github.com/veerendra2/raspberrypi-homeserver#features)
* [My Raspberry Pi Config](https://github.com/veerendra2/raspberrypi-homeserver#my-Raspberry-pi-config)
* [Architecture Diagram](https://github.com/veerendra2/raspberrypi-homeserver#architecture-diagram)
* [Getting Started](https://github.com/veerendra2/raspberrypi-homeserver#getting-started)
* [Related Blogs](https://github.com/veerendra2/raspberrypi-homeserver#related-blogs)
* [GitBook Docs](https://dust6765.gitbook.io/raspberrypi-home-server/)
* [Project Roadmap](https://github.com/veerendra2/raspberrypi-homeserver/projects)
* [Youtube Video](https://www.youtube.com/watch?v=lb4s4roM6zY)## Features
* Automated with Ansible
* All services are deployable on docker swarm
* Traefik reverse proxy
* Grafana dashboards to view
* System metrics
* Internet speed everyone hour
* Uptime with blackbox exporter
* Docker container metrics
* Homer dashboard to view all services
* Uncomplicated firewall
* qBittorrent with Wireguard proxy and kill switch with `healthcheck`## My Raspberry Pi Config
Model
Raspberry Pi 4 Model B Rev 1.4CPU
BCM2835 (4) @ 1.800GHzMemory
8 GBOS
Ubuntu 22.04.2 LTS aarch64Case
Geekworm NASPi Gemini 2.5 V2.0 Dual 2.5 Inch SATA HDD/SSDDisks
- 1 TB Crucial SSD
- 1 TB Western Digital HDDDocker Swarm Nodes
1 (Single node docker swarm cluster)### Dashboard
![image](https://user-images.githubusercontent.com/8393701/229379261-2bed7cf0-6117-4edd-b391-a31969915c40.png)## Architecture Diagram
![Architecture](https://user-images.githubusercontent.com/8393701/235324714-75620112-a89b-4d10-ab9d-2e44de75d36b.jpg)## Getting Started
> Refer [Gitbook Docs](https://dust6765.gitbook.io/raspberrypi-home-server/) for more details and how to deploy manuallyAnsible automation works well, if all services are intended to deploy on single box. Since I have only one machine, don't have to worry about the docker volumes, all of my docker volumes stored on single SSD mounted to host.
* Follow prerequisite [manual steps](https://dust6765.gitbook.io/raspberrypi-home-server/settings/manual-steps) to prepare Pi
* Browse [vars.yml](./vars.yml) to configuration```bash
$ git clone https://github.com/veerendra2/raspberrypi-homeserver.git
$ cd raspberrypi-homeserver
# review vars.yml and inventory.yml and run
$ ansible-playbook main.yml
```
### NOTE
* This setup is created to deploy all services on single node docker swarm cluster. If you want to use this setup on multi node swarm cluster, there are some additional tweaks required like
* Change placement
```yaml
...
deploy:
replicas: 1
placement:
constraints: [node.role == manager]
...
```
* Currently I'm using duckdns sub-domain (Refer example -> [services/traefik/docker-stack.yml#32](./services/traefik/docker-stack.yml#32)). Refer my [blog post](https://veerendra2.medium.com/traefik-https-config-with-duckdns-for-local-homeserver-c55db9971683) to get more info.
* Update docker volume mount paths.## Related Blogs
* [Portainer vs Yacht](https://veerendra2.medium.com/portainer-vs-yacht-316405b9e867)
* [Pi-hole with DHCP Relay in Docker](https://veerendra2.medium.com/pi-hole-with-dhcp-relay-in-docker-cef397922e5a)
* [Wireguard VPN and BitTorrent on Docker Swarm (Part 1)](https://veerendra2.medium.com/wireguard-vpn-and-bittorrent-on-docker-swarm-part-1-1100b4115cc0)
* [Wireguard VPN and BitTorrent on Docker Swarm (Part 2)](https://veerendra2.medium.com/wireguard-vpn-and-bittorrent-on-docker-swarm-part-2-b92a251ba873)
* [Traefik HTTPS Config with DuckDNS for Local Homeserver](https://veerendra2.medium.com/traefik-https-config-with-duckdns-for-local-homeserver-c55db9971683)
* [How to Deploy rest-server(Restic) on Docker Swarm Behind Traefik Reverse Proxy](https://dev.to/veerendra2/how-to-deploy-rest-serverrestic-on-docker-swarm-behind-traefik-reverse-proxy-4a8h)