Hello, I made this repository for setting up a raspberry server using a ClusterHat, UPS and, Docker Swarm. I am by no means confident in what I write, I'm currently in the process of learning it as well. However, if any of it is able to someone then that makes me happy. Hopefully I will be useful to maintain this and keep it up to date.
This home sever will provide the following features:
- Discord Bot hosting
- DNS server
- Docker Swarm Management
- IoT
- Smart Home Automation (TBD)
- Minecraft Server
- Webhosting
- Virtual Machines
- VPN
Before you begin, make sure you do the following first:
Collect the necessary hardware:
- 1x Raspberry Pi 4B 8gb
- 4x Raspberry Pi 0
- 1x ClusterHat board
- 1x Raspberry Pi UPS V5 UPS Plus
- 1x 3D printed Case
- 2x Acrylic Sheets
- 1x Fan
- 5x microSD
- 2x 18650 batteries
- 1x OLED screen
Download the necessary OS from the ClusterHat website.In this tutorial, I used the CBRIDGE version of the OS and not the CNAT. This is due to having my server connected directly to my router which is required for the CBRIDGE image to work. Allowing the Pi Zeros to get IP addresses from the DHCP server.
Use an imager such as Pi Imager to download the OS's onto the microSD cards.
the .stl file for the case can be found here.
This section will take you through
What is docker? docker is a online service that uses containers to allow quick and simple deployment of software on a metaphorical port, in this case, the server. What is a container? A container is a standardized box that has everything necessary to run the programs within the container. Imagine how containers can easily stack on top and next to one another on a freight ships. Each container looks exactly the same of the outside but the inside could be anything.
Now that I have given a brief overview of Docker and containers. Now we can talk about Docker Swarm. This is when we have multiple computers running the same containers or we can specify a container to run specifically on one node.
Give me a ⭐️ if this project helped you!
Made with 💜 by me 👋