This template provides you with a stack to self-host various services. It is perfect to run on a small server, or in your home network, for example on a Raspberry Pi.
This stack uses traefik as the reverse proxy.
It takes care of TLS termination and routing to each service depending on the requested host.
The current expectation is that each service is available under its dedicated domain.
TLS certificates are requested using the Let's Encrypt certificate resolver. You can use either the TLS or DNS challenge. The DNS challenge is particularly useful if you want to use a wildcard domain, i.e., you have one wildcard certificate for all subdomains of a domain.
These are the available services that are currently supported by this template. They are all optional:
- Pi-hole: Network-wide ad blocking
- Nextcloud: Content collaboration platform, e.g., used for file hosting
- Valkey (a Redis fork) is used for memory caching
- Forgejo: Git hosting with collaborative features (like GitHub)
- changedetection.io: Website change detection and monitoring
- Umami: Privacy-focused web analytics
- WireGuard: Fast, modern, secure VPN tunnel
Some services require a database. A PostgreSQL database service is added if a service is chosen that requires one.
uvx copier copy https://github.com/mschoettle/self-hosted.git