configs | ||
homepage/src | ||
immich | ||
.env.example | ||
.gitignore | ||
compose.yml | ||
deploy.files.txt | ||
Makefile | ||
README.md |
Homelab server
This is a collection of services I run on my homelab server.
It's pretty lightweight (you need at least 2GB RAM) and easy to setup.
All you need is a linux server with Docker installed.
Make sure you followed instructions after installation to configure to run Docker as a non-root user.
Services
Traefik
A reverse proxy that is used to route incoming requests to the correct container by domain name and not by port.
It's configured to use Let's Encrypt to automatically generate SSL certificates and redirect all HTTP requests to HTTPS.
Ex: https://movies.example.com -> jellyfin container:8096
Ex: https://gitea.example.com -> gitea container:3000
Uptime Kuma
Uptime Kuma is a monitoring tool, that checks the status of your websites and APIs.
Transmission
Transmission is a BitTorrent client with a web interface.
It is a lightweight, works on the server in background and has zero configuration.
Jellyfin
Jellyfin is a media server for hosting and managing personal media libraries.
Think of movies, TV shows, home videos, music, and pictures.
Gitea
Gitea is a lightweight self-hosted Git service, similar to GitHub.
Immich
Google Photos self-hosted alternative.
Vaultwarden
Password Manager, Bitwarden-compatible server written in Rust.
Homepage
A simple homepage with links to all the services.
Setup
To start you need to create .env file by copying .env.example:
cp .env.example .env
and filling in the variables.
Then you can deploy the stack to your server:
make deploy
That's it! You can now access the services by going to the domain names you specified in the .env file.
If you want to add more services, just add them to the compose.yml
file and run make deploy
again.