https://github.com/allisson/raspnode
Simple HomeLab setup for Raspberry Pi (4 or 5).
https://github.com/allisson/raspnode
homelab homelab-setup raspberry-pi tailscale
Last synced: about 2 months ago
JSON representation
Simple HomeLab setup for Raspberry Pi (4 or 5).
- Host: GitHub
- URL: https://github.com/allisson/raspnode
- Owner: allisson
- License: mit
- Created: 2025-07-10T00:00:46.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-07-14T22:52:05.000Z (12 months ago)
- Last Synced: 2025-07-15T00:45:26.717Z (12 months ago)
- Topics: homelab, homelab-setup, raspberry-pi, tailscale
- Language: Python
- Homepage:
- Size: 17.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Raspnode
The configuration I use on my Raspberry Pi 4 (8GB), which is my HomeLab.
# About
I don't plan to significantly change this project. The goal is to keep it simple as a starting point, so people can set up their HomeLab using a Raspberry Pi (model 4 or 5) with basic services and secure access through Tailscale.
Therefore, I will keep this repository read-only. Please do not open issues or submit pull requests, but feel free to fork or clone it. It is licensed under the MIT license.
# Requirements
- Raspberry Pi OS Lite 64-bit.
- Docker https://docs.docker.com/engine/install/debian/ (don't forget to add the user to the docker group https://docs.docker.com/engine/install/linux-postinstall/).
- Tailscale authkey with the reuse option enabled https://login.tailscale.com/admin/settings/keys.
- Tailscale with the "HTTPS Certificates" enabled https://login.tailscale.com/admin/dns.
# Services
- Vaultwarden: https://github.com/dani-garcia/vaultwarden.
- Portainer: https://github.com/portainer/portainer.
- Beszel: https://github.com/henrygd/beszel.
- Blocky: https://github.com/0xERR0R/blocky.
- Bitcoin Core: https://github.com/willcl-ark/bitcoin-core-docker.
- N8N: https://github.com/n8n-io/n8n.
- Duplicati: https://github.com/duplicati/duplicati.
# How to use
## Create the app-data directory
```bash
make create-app-data
```
## Copy the env.sample to .env and edit the values
```bash
cp env.sample .env
# vim .env or nano .env
```
The BESZEL_AGENT_KEY variable must be changed after the Beszel service is started.
This is necessary because we need to get the public key that is generated at the first start.
## Start the containers
```bash
docker compose up -d
```
## Open the Beszel service to get the value for the BESZEL_AGENT_KEY variable
If you have not changed the value of the BESZEL_HOSTNAME variable, the address should be https://beszel.your-tailnet-name.ts.net.
Create the administrator account, and after logging in, click on "Add New System" and copy the value of the "Public Key" field in the BESZEL_AGENT_KEY variable in the .env file.
Now, stop and restart the services to load the new values from the .env file.
```bash
docker compose stop
docker compose up -d
```
Now go back to the Beszel website and click "Add New System" again, filling in the "Name" as "raspnode" and the "Host / IP" as "/beszel_socket/beszel.sock".
## Fix Beszel memory stats in Docker
Follow these instructions https://akashrajpurohit.com/blog/resolving-missing-memory-stats-in-docker-stats-on-raspberry-pi/.
## Change the default password of bitcoin core rpc
The default user and password to access the Bitcoin Core RPC are "bitcoin."
If you want to change these credentials, generate a new credential and change the value of rpcauth in the file ./app-config/bitcoin-knots/bitcoin.conf.
```bash
python ./app-config/bitcoin-core/rpcaut.py username password
String to be appended to bitcoin.conf:
rpcauth=username:e87b62cd0e9c2066238f876f4e2c6a6a$72a7c7ef9aa3d39aada4b7a8f8f00f4775c5147deec27d62ff17d88ac2b8c043
Your password:
password
```
Now, stop and restart the services to load the new values from the .env file.
```bash
docker compose stop
docker compose up -d
```
## Enjoy your HomeLab
- Vaultwarden: https://vaultwarden.your-tailnet-name.ts.net
- Portainer: https://portainer.your-tailnet-name.ts.net
- Beszel: https://beszel.your-tailnet-name.ts.net.
- Blocky: The port 53 UDP/TCP is open to serve DNS requests on your local network, the config is located on ./app-config/blocky/config.yml.
- Bitcoin Core: The ports 8332/8333/28332/28333 are open on bitcoin.your-tailnet-name.ts.net.
- N8N: https://n8n.your-tailnet-name.ts.net.
- Duplicati: https://duplicati.your-tailnet-name.ts.net.