My home server for experiments, self-hosting, and fun!
Go to file
2024-03-06 02:55:56 +08:00
configs feat: add Traefik, Uptime Kuma, Transmission, Jellyfin, Gitea, Home Assistant, and a simple homepage 2024-01-21 00:22:19 +08:00
homepage/src feat: add VaultWarden 2024-03-06 01:29:53 +08:00
immich feat: add Watchtower to automate other docker containers update 2024-03-06 02:55:56 +08:00
.env.example feat: add VaultWarden 2024-03-06 01:29:53 +08:00
.gitignore env: remove .idea folder 2024-01-21 00:32:26 +08:00
compose.yml feat: add Watchtower to automate other docker containers update 2024-03-06 02:55:56 +08:00
deploy.files.txt feat: add Immich - Google Photo self-hosted alternative 2024-01-28 14:26:01 +08:00
Makefile feat: add Immich - Google Photo self-hosted alternative 2024-01-28 14:26:01 +08:00
README.md feat: add Watchtower to automate other docker containers update 2024-03-06 02:55:56 +08:00

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.

Watchtower

Watchtower automates updating your docker containers to the latest version.

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.