Collection of self hosted services for my home server setup.
- Pre-requisites
- Getting Started
- Hardware
- Power Supply Dimensioning
- RAID
- Domain Name
- Port Mapping
- Operating System
- Services
- Secrets Management
- Observability
- Security notes
- Future enhancements
Here is a non-exhaustive list of tasks to perform prior deploying the stack:
- Purchase the server hardware (refer to the Hardware section more details)
- Purchase a domain (refer to the Domain Name section for more details)
- Build the server, optionally with RAID support (refer to the RAID section for more details)
- Configure port forwarding on your router (refer to the Port Mapping section for more details)
- Install the operating system of your choice on your server (refer to the Operating System section for more details)
Create the account below:
- AWS account (see AWS set up tutorial for more details)
I use the below AWS services:
- S3: perform regular off-site backups of my services to a dedicated bucket
- SES: send services-related emails to my users
- Export required environment variables:
export GITHUB_USERNAME=clement-deltel
export SERVER_ROOT='/opt'- Install dependencies and run installation script:
sudo apt update -y && sudo apt install -y curl
curl -fLSs https://raw.githubusercontent.com/${GITHUB_USERNAME}/home-server/refs/heads/main/docker/install.sh | bash-
After pulling and configuring the home-server, the script install ansible, and then run playbooks.
-
Ansible playbooks automatically install and configure the tools listed below:
- Packages Managers
- apt
- argon2
- htop: interactive process viewer.
- lm-sensors
- nvme-cli
- pwgen
- smartmontools
- vim
- wireguard
- homebrew: the missing package manager for Linux.
- btop: monitor of resources.
- lazydocker: lazier way to manage everything Docker.
- lazygit: simple terminal UI for git commands.
- lnav: log file navigator.
- tldr: tldr client written in Rust.
- apt
- Languages
- Python
- Security
- Orchestration
- Docker
- Infrastructure as Code (IaC)
- Terraform: safely and predictably create, change, and improve infrastructure.
- Cloud
- Packages Managers
-
Log in as the Docker user and edit the configuration files:
- ansible/vars/secrets.yml
- env/secrets.env
Here are some guidelines on how to fill those configuration files:
- use pwgen for most of the credentials:
pwgen -cns 30 1- -c: Include at least one capital letter in the password
- -n: Include at least one number in the password
- -s: Generate completely random passwords
- 30: password length
- 1: number of password generated
- specific use cases:
- secrets.yml
- aws_*: generate key pair for your AWS account.
- dyn_*: enable dynamic DNS on your domain name registrar and retrieve the credentials.
- open_weather_map_api_key: create an OpenWeather account and generate API credentials.
- secrets.env
- BYTESTASH_JWT_TOKEN: use jwt.io.
- BYTESTASH_JWT_SECRET: run
pwgen -Ans 512 1. - ENCLOSED_JWT_SECRET: run
pwgen -Ans 512 1. - ENCLOSED_USER_PASSWORD: use User Authentication Key Generator.
- NAVIDROME_SPOTIFY_CLIENT_*: create a Spotify account and generate API credentials.
- OPEN_WEBUI_OPENAI_API_KEY: create a Open AI account and generate API credentials.
- RUSTDESK_PRIVATE_KEY: run
openssl genpkey -algorithm Ed25519 -out private.key. - RUSTDESK_PUBLIC_KEY: run
openssl pkey -in private.key -pubout -out public.key. - VAULTWARDEN_PUSH_*: follow guidelines here.
- WG_EASY*_PASSWORD: follow guidelines here.
- cron.env
- Variables in this env file should have the same value as in secrets.env, they are required for proper backup cronjobs execution
- secrets.yml
- Run Docker user playbooks and apply Terraform configuration:
cd ${SERVER_HOME}
ansible-playbook --connection local --inventory "localhost," --tags docker ansible/docker.yml
terraform apply- Start services:
# Possible tags: up, restart, stop, down
ansible-playbook --connection local --inventory "localhost," --tags up docker.yml- After creating a Vaultwarden account, optionally move the secret files to the vault:
# bwload /path/to/file bw_item_name
bwc ${SERVER_HOME}/env/secrets.env home_sever_env
bwc ${SERVER_HOME}/ansible/vars/secrets.yml home_sever_yml
rm ${SERVER_HOME}/env/secrets.env
rm ${SERVER_HOME}/ansible/vars/secrets.ymlIf you want to test this setup, you need to have Docker installed and then you can run the commands below:
# Use option --progress=plain to see steps in more details
docker build --build-arg GITHUB_USERNAME --build-arg SERVER_ROOT --file docker/Dockerfile --tag home-server docker
docker run --interactive --name home-server --tty --rm home-serverThis section covers the detail of the hardware I chose to build my home server.
- CPU
- Brand: AMD
- Model: Ryzen 5 3600
- Cores: 6
- Threads: 12
- RAM Memory
- Brand: Corsair
- Model: Vengeance LPX Black
- Quantity: 16GB (2x8GB)
- Technology: DDR4 DRAM
- Frequency: 3200MHz
- CAS: C16
- GPU
- Brand: NVIDIA
- Model: GTX 980
- Video Memory: 4GB
- Storage
- Disk 0:
- Brand: Crucial
- Model: MX300
- Capacity: 1TB
- Type: M.2 SSD SATA III (would be nice to upgrade for a NVMe SSD)
- Size: 2280 (22mm x 80mm)
- Sequential Speed: reads/writes up to 530 / 510 MB/s
- Random Speed: reads/writes up to 92K / 83K
- Use Case: Operating System
- Disks 1&2:
- Brand: Seagate
- Model: IronWolf
- Capacity: 4TB
- Type: NAS Hard Drive HDD
- Size: 3.5 inches
- Speed: SATA 6Gb/s 5900 RPM
- Cache: 64MB
- Use Case: RAID
- Disk 0:
- Motherboard
- Brand: Asus
- Model: Prime B450M-A/CSM
- Chipset: B450
- CPU socket: AMD Ryzen 2 AM4
- Memory compatibility: DDR4
- Ports: HDMI, DVI, VGA, M.2, USB 3.1 Gen2
- Format: mATX
- Power Supply
- Brand: Corsair
- Model: RM 550x
- Power: 550W
- Rating: 80 Plus Gold
- Water Liquid Cooling
- Brand: Corsair
- Model: H105
- Size: 240mm
- Fans
- Brand: beQuiet!
- Model: Shadow Wings
- Quantity: 2, 3
- Size: 120mm, 140mm
- Case
- Brand: darkFlash
- Model: DLM21 White Mini Tower
- ATX Compatibility: Micro ATX, Mini ITX
Disks 1 and 2 are in RAID 1 for better fault tolerance and to avoid any data loss.
More information available at: Wikipedia - Standard RAID Levels.
Recommended registrars:
This section covers all the ports exposed to internet. Those are the ports that must be forwarded on the router to the server hosting all services.
- TCP
- 80: Traefik HTTP
- 443: Traefik HTTPS
- 1514: Wazuh
- 1515: Wazuh
- 9200: Wazuh Indexer
- 21115: ID Server - NAT type test
- 21116: ID Server - TCP hole punching
- 21117: Relay Server - Relay services
- 25565: Minecraft
- 55000: Wazuh API
- UDP
- 514: Wazuh
- 21116: ID Server - ID registration and heartbeat
- 25565: Minecraft
- 51820: Wireguard
- Name: Ubuntu
- Version: 22.04 LTS (Jammy Jellyfish)
- LTS standard security maintenance: until April 2027
- Expanded security maintenance: until April 2032
- Legacy support: until April 2034
This section covers all the supported services of the stack. It categorizes the services and provides the URL to access them (if any), URL that depends on the root domain name.
- Reverse Proxy
- Traefik - cloud native application proxy. Deployed on
https://traefik.${DOMAIN}/dashboard. (Source Code)Go
- Traefik - cloud native application proxy. Deployed on
- DNS
- Ad-blocker
- Pi-hole - a black hole for Internet advertisements. Deployed on
https://pihole.${DOMAIN}. (Source Code)ShellPython
- Pi-hole - a black hole for Internet advertisements. Deployed on
- Recursive DNS
- Ad-blocker
- Dashboard
- Homarr - modern and easy to use dashboard. Deployed on
https://home.${DOMAIN}. (Source Code)TypeScript - Homer - very simple static homepage for your server. Deployed on
https://dashboard.${DOMAIN}. (Source Code)VueJavaScript
- Homarr - modern and easy to use dashboard. Deployed on
- Home Automation
- Home Assistant - home automation that puts local control and privacy first. Deployed on
https://ha.${DOMAIN}. (Source Code)Python - UpSnap - simple wake on lan web app. Deployed on
https://wol.${DOMAIN}. (Source Code)SvelteGo
- Home Assistant - home automation that puts local control and privacy first. Deployed on
- Remote Access
- VPN
- Wireguard -
vpn.${DOMAIN} - Wireguard Easy - easiest way to run WireGuard VPN + Web-based Admin UI. Deployed on
vpn.${DOMAIN}. (Source Code)TypeScriptVue
- Wireguard -
- Clientless Remote Desktop Gateway (SSH, RDP...)
- Apache Guacamole - clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. Deployed on
https://guacamole.${DOMAIN}. (Source Code)C
- Apache Guacamole - clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. Deployed on
- Remote Control Server
- RustDesk - remote desktop application designed for self-hosting, as an alternative to TeamViewer. Deployed on
rustdesk.${DOMAIN}. (Source Code)Rust
- RustDesk - remote desktop application designed for self-hosting, as an alternative to TeamViewer. Deployed on
- VPN
- Monitoring
- changedetection.io - web page change detection, website watcher, restock monitor and notification service. Deployed on
https://detection.${DOMAIN}. (Source Code)Python - Dozzle - realtime log viewer for docker containers. (Source Code)
GoVueTypeScript - Grafana - open and composable observability and data visualization platform. Deployed on
https://grafana.${DOMAIN}. (Source Code)TypeScriptGo - ntfy - send push notifications to your phone or desktop using PUT/POST. Deployed on
https://notiifications.${DOMAIN}. (Source Code)GoJavaScript - Scrutiny - hard drive S.M.A.R.T monitoring, historical trends & real world failure thresholds. Deployed on
https://scrutiny.${DOMAIN}. (Source Code)Go
- changedetection.io - web page change detection, website watcher, restock monitor and notification service. Deployed on
- Backup
- Kopia - cross-platform backup tool with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication. CLI and GUI included. Deployed on
https://backups.${DOMAIN}. (Source Code)Go
- Kopia - cross-platform backup tool with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication. CLI and GUI included. Deployed on
- Security
- Authentik - authentication glue you need. Deployed on
https://auth.${DOMAIN}. (Source Code)PythonTypeScript - CrowdSec - open-source and participative security solution offering crowdsourced protection against malicious IPs and access to the most advanced real-world CTI. (Source Code)
GoShell - Enclosed - Minimalistic web app designed for sending private and secure notes. Deployed on
https://notes.${DOMAIN}. (Source Code)TypeScript - Gluetun - VPN client in a thin Docker container for multiple VPN providers, and using OpenVPN or Wireguard, DNS over TLS, with a few proxy servers built-in. (Source Code)
Go - Wazuh - open source security platform, unified XDR and SIEM protection for endpoints and cloud workloads. Deployed on
https://wazuh.${DOMAIN}. (Source Code)CC++Python
- Authentik - authentication glue you need. Deployed on
- Search
- SearXNG - free internet metasearch engine which aggregates results from various search services and databases, users are neither tracked nor profiled. (Source Code)
Python
- SearXNG - free internet metasearch engine which aggregates results from various search services and databases, users are neither tracked nor profiled. (Source Code)
- Media Storage
- Bookmarks
- Karakeep - bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search. Deployed on
https://bookmarks.${DOMAIN}. (Source Code)TypeScript - Linkace - archive to collect links of your favorite websites. Deployed on
https://linkace.${DOMAIN}. (Source Code)PHPBlade
- Karakeep - bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search. Deployed on
- Books
- Kavita - fast, feature rich, cross platform reading server. Deployed on
https://books.${DOMAIN}. (Source Code)C#TypeScript - Librum - manage your own online library and access it from any device anytime, anywhere. No web-interface, need to install the desktop app as well. (Source Code)
C++QML
- Kavita - fast, feature rich, cross platform reading server. Deployed on
- Documents
- NextCloud - a safe home for all your data. Deployed on
https://nextcloud.${DOMAIN}. (Source Code)PHPJavaScript - Paperless - document management system: scan, index and archive all your documents. Deployed on
https://docs.${DOMAIN}. (Source Code)PythonTypeScript
- NextCloud - a safe home for all your data. Deployed on
- Music
- Navidrome - personal streaming service. Deployed on
https://music.${DOMAIN}. (Source Code)GoJavaScript
- Navidrome - personal streaming service. Deployed on
- News
- FreshRSS - news aggregator. (Source Code)
PHP
- FreshRSS - news aggregator. (Source Code)
- Pictures
- Immich - high performance self-hosted photo and video management solution. Deployed on
https://pictures.${DOMAIN}. (Source Code)TypeScriptDartSvelte - Meme Search - meme search engine and finder. Deployed on
https://memes.${DOMAIN}. (Source Code)RubyPython - Photoprism - photos app for the decentralized web. Deployed on
https://photoprism.${DOMAIN}. (Source Code)GoJavaScript - Pinry - tiling image board system for people who want to save, tag, and share images, videos and webpages in an easy to skim through format. Deployed on
https://golden-book.${DOMAIN}. (Source Code)Python
- Immich - high performance self-hosted photo and video management solution. Deployed on
- Videos
- Jellyfin - free software media system. Deployed on
https://videos.${DOMAIN}. (Source Code)C#
- Jellyfin - free software media system. Deployed on
- Bookmarks
- Media Tools
- ConvertX - online file converter. Supports 1000+ formats. (Source Code)
TypeScript - Docuseal - open source DocuSign alternative. Deployed on
https://doc.${DOMAIN}. (Source Code)RubyVueJavaScript - Gokapi - lightweight Firefox Send alternative without public upload.
https://share.${DOMAIN}. (Source Code)GoJavaScript - iSponsorBlockTV - SponsorBlock client for all YouTube TV clients. (Source Code)
Python - Stirling-PDF - allows you to perform various operations on PDF files. Deployed on
https://pdf.${DOMAIN}. (Source Code)JavaJavaScript
- ConvertX - online file converter. Supports 1000+ formats. (Source Code)
- Management
- Code
- ByteStash - a code snippet storage solution written in React & node.js. Deployed on
https://snippets.${DOMAIN}. (Source Code)TypeScript - Forgejo - Beyond coding, we forge. Deployed on
https://forgejo.${DOMAIN}. (Source Code)Go - Gitea Mirror - auto-syncs GitHub repos to your self-hosted Gitea/Forgejo, with a sleek Web UI and easy Docker deployment. Deployed on
https://code-mirror.${DOMAIN}. (Source Code)TypeScript - Gitlab
Ruby- Instance:
https://gitlab.${DOMAIN} - Registry:
https://registry.gitlab.${DOMAIN}
- Instance:
- IT-Tools - collection of handy online tools for developers, with great UX. Deployed on
https://it-tools.${DOMAIN}. (Source Code)VueTypeScript - Wakapi - minimalist, self-hosted WakaTime-compatible backend for coding statistics. Deployed on
https://wakapi.${DOMAIN}. (Source Code)Go
- ByteStash - a code snippet storage solution written in React & node.js. Deployed on
- Passwords
- Vaultwarden - unofficial Bitwarden compatible server, formerly known as bitwarden_rs. (Source Code)
Rust- Administration dashboard:
https://vault.${DOMAIN}/admin - Instance:
https://vault.${DOMAIN}
- Administration dashboard:
- Vaultwarden - unofficial Bitwarden compatible server, formerly known as bitwarden_rs. (Source Code)
- Personal Knowledge Management System (PKMS)
- Affine - knowledge base that brings planning, sorting, creating all together. Privacy first and open-source. Deployed on
https://affine.${DOMAIN}. (Source Code)TypeScript - Mathesar - spreadsheet-like interface that lets users of all technical skill levels view, edit, query, and collaborate on Postgres data directly. Deployed on
https://mathesar.${DOMAIN}. (Source Code)SvelteTypeScriptPython - Memos - note-taking service, your thoughts, your data, your control — no tracking, no ads, no subscription fees. Deployed on
https://memos.${DOMAIN}. (Source Code)GoTypeScript - Siyuan - privacy-first, self-hosted, fully open source personal knowledge management software. Deployed on
https://siyuan.${DOMAIN}. (Source Code)TypeScriptGo
- Affine - knowledge base that brings planning, sorting, creating all together. Privacy first and open-source. Deployed on
- Code
- Artificial Intelligence
- LiteLLM - Python SDK, proxy server (LLM gateway) to call 100+ LLM APIs in OpenAI format. Deployed on
https://llm.${DOMAIN}. (Source Code)Python - Ollama - get up and running with Llama 3.3, DeepSeek-R1, Phi-4, Gemma 3, and other large language models. (Source Code)
Go - Open WebUI - user-friendly AI Interface (supports Ollama, OpenAI API, ...). Deployed on
https://ai.${DOMAIN}. (Source Code)JavaScriptSveltePython
- LiteLLM - Python SDK, proxy server (LLM gateway) to call 100+ LLM APIs in OpenAI format. Deployed on
- Automation
- n8n - workflow automation platform with native AI capabilities, combine visual building with custom code, self-host or cloud, 400+ integrations. (Source Code)
TypeScript
- n8n - workflow automation platform with native AI capabilities, combine visual building with custom code, self-host or cloud, 400+ integrations. (Source Code)
- Development & Projects
- Directus backend for all your projects, turn your DB into a headless CMS, admin panels, or apps with a custom UI, instant APIs, auth & more. Deployed on
https://directus.${DOMAIN}. (Source Code)TypeScript
- Directus backend for all your projects, turn your DB into a headless CMS, admin panels, or apps with a custom UI, instant APIs, auth & more. Deployed on
- Finances
- Actual - local-first personal finance app. Deployed on
https://finances.${DOMAIN}. (Source Code)TypeScript - Wallos - open-source personal subscription tracker. Deployed on
https://wallos.${DOMAIN}. (Source Code)PHPJavaScript
- Actual - local-first personal finance app. Deployed on
- Inventory
- Grocy - groceries & household management solution for your home. Deployed on
https://grocy.${DOMAIN}. (Source Code)BladeTypeScriptPHP - HortusFox - collaborative plant management platform. Deployed on
https://plants.${DOMAIN}. (Source Code) - Homebox - inventory and organization system built for the home user. Deployed on
https://homebox.${DOMAIN}. (Source Code)GoVueTypeScript - Mealie - recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in Vue for a pleasant user experience for the whole family. Deployed on
https://recipes.${DOMAIN}. (Source Code)PythonVueTypeScript - Wishlist - wishlist application that you can share with your friends and family. Deployed on
https://wish.${DOMAIN}. (Source Code)SvelteTypeScript
- Grocy - groceries & household management solution for your home. Deployed on
- Travel
- AdventureLog - travel tracker and trip planner. Deployed on
https://travel.${DOMAIN}. (Source Code)SveltePython - Dawarich - alternative to Google location history (Google Maps timeline). Deployed on
https://maps.${DOMAIN}. (Source Code)RubyJavaScript - Jetlog - personal flight tracker and viewer. Deployed on
https://fly.${DOMAIN}. (Source Code)TypeScriptPython
- AdventureLog - travel tracker and trip planner. Deployed on
- Surveys
- Limesurvey - alternative to SurveyMonkey, Typeform, Qualtrics, and Google Forms, making it simple to create online surveys and forms with unmatched flexibility. Deployed on
https://survey.${DOMAIN}. (Source Code)JavaScriptPHP
- Limesurvey - alternative to SurveyMonkey, Typeform, Qualtrics, and Google Forms, making it simple to create online surveys and forms with unmatched flexibility. Deployed on
- Games
- Minecraft Server - Minecraft Server for Java Edition that automatically downloads selected version at startup. Deployed on
<ip-address>:25565. (Source Code)Shell - Romm - beautiful, powerful, self-hosted rom manager and player. Deployed on
https://romm.${DOMAIN}. (Source Code)PythonVue
- Minecraft Server - Minecraft Server for Java Edition that automatically downloads selected version at startup. Deployed on
This section covers all the tools and logic implemented to have maximum visibility on what is happening on the server at any given time.
List of tools being used to collect metrics on this stack:
- Docker health checks
- Telegraf data collector
- Prometheus data collector
Note: it is necessary to create manually the UDP database named traefik in InfluxDB.
Health checks:
Services with built-in health checks:
- Guacamole Daemon (guacd)
- Vaultwarden
Other:
- InfluxDB
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:8086/ping"]
interval: 20s
timeout: 15s
retries: 3
start_period: 60s
start_interval: 5s- Jellyfin
healthcheck:
test: ["CMD-SHELL", "curl -i http://localhost:8096/health"]
interval: 20s
timeout: 15s
retries: 3
start_period: 60s
start_interval: 10s- MariaDB
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h localhost -u <user> -p<password>"]
interval: 20s
timeout: 15s
retries: 3
start_period: 60s
start_interval: 5s- Ntfy
healthcheck:
test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:80/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"]
interval: 20s
timeout: 15s
retries: 3
start_period: 60s
start_interval: 5s- Paperless
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:8000"]
interval: 20s
timeout: 15s
retries: 3
start_period: 60s
start_interval: 5s- Postgres
healthcheck:
test: ["CMD-SHELL", "pg_isready -U <user>"]
interval: 20s
timeout: 15s
retries: 3
start_period: 60s
start_interval: 5s- Redis
healthcheck:
test: ["CMD-SHELL", "redis-cli --raw INCR PING"]
interval: 20s
timeout: 15s
retries: 3
start_period: 60s
start_interval: 5sRun the below command to test your configuration:
telegraf --config /etc/telegraf/telegraf.conf --testTelegraf plugins being used:
- Default
- Additionally enabled
List of docker compose configuration blocks to specify the amount of logs being collected based on the type of service:
- Main service:
logging:
driver: json-file
options:
max-file: 5
max-size: 10m- Database (MariaDB, PostgreSQL...):
logging:
driver: json-file
options:
max-file: 2
max-size: 5m- Cache (Redis):
logging:
driver: json-file
options:
max-file: 2
max-size: 2m- Other:
logging:
driver: json-file
options:
max-file: 2
max-size: 2mList of tools being used to visualize metrics on this stack:
- Grafana
- iOs app
Since I am an iPhone user, this section covers the list of steps on iOS only.
- Install the Glimpse 2 app from the App Store.
- Wrap your Grafana instance website on your iOS screen via Widgets.
Here is a list of tools that could be interesting and further enhance the stack:
- Artificial Intelligence
- firecrawl - web data API for AI - Turn entire websites into LLM-ready markdown or structured data. (Source Code)
TypeScriptPython
- firecrawl - web data API for AI - Turn entire websites into LLM-ready markdown or structured data. (Source Code)
- Backup
- Backrest - Backrest is a web UI and orchestrator for restic backup. (Source Code)
GoTypeScript - Borg - deduplicating archiver with compression and authenticated encryption. (Source Code)
Python - Zerobyte - backup automation for self-hosting, built on top of restic. (Source Code)
TypeScript
- Backrest - Backrest is a web UI and orchestrator for restic backup. (Source Code)
- Containers
- Any Sync Docker Compose - docker-compose for testing any-sync. (Source Code)
ShellPython - CAdvisor - analyzes resource usage and performance characteristics of running containers. (Source Code)
Go - Dockge - docker compose.yaml stack-oriented manager. (Source Code)
TypeScript - Komodo - tool to build and deploy software on many servers. (Source Code)
RustTypeScript - Portainer - making Docker and Kubernetes management easy. (Source Code)
TypeScriptGo
- Any Sync Docker Compose - docker-compose for testing any-sync. (Source Code)
- Dashboard
- Astroluma - dashboard designed to help you manage multiple aspects of your daily tasks and services. (Source Code)
JavaScript - Dashy - personal dashboard built for you. Includes status-checking, widgets, themes, icon packs, a UI editor and tons more. (Source Code)
VueJavaScript - Glance - dashboard that puts all your feeds in one place. (Source Code)
GoJavaScript - Heimdall - application dashboard and launcher. (Source Code)
PHP - Organizr - HTPC/Homelab Services Organizer - Written in PHP. (Source Code)
PHPJavaScript - Trala - simple, modern, and dynamic dashboard for your Traefik services. (Source Code)
Go
- Astroluma - dashboard designed to help you manage multiple aspects of your daily tasks and services. (Source Code)
- DNS
- Blocky - fast and lightweight DNS proxy as ad-blocker for local network with many features. (Source Code)
Go
- Blocky - fast and lightweight DNS proxy as ad-blocker for local network with many features. (Source Code)
- Finances
- Actual AI - categorize transactions in Actual Budget using AI. (Source Code)
TypeScript - Cents per Point - track credit card point redemptions and calculate Cents Per Point (CPP) values to optimize your rewards strategy. (Source Code)
JavaScript - DollarDollar - expense splitting. (Source Code)
JavaScriptPython - Firefly III - personal finances manager. (Source Code)
PHPJavaScript - Ghostfolio - wealth management software. (Source Code)
TypeScript - Investbrain - investment tracker that consolidates and monitors market performance across your different brokerages. (Source Code)
PHP - Invoice Ninja - invoice, quote, project and time-tracking app. (Source Code)
PHP - Maybe - OS for your personal finances. (Source Code)
Ruby - Monetr - budgeting application focused on planning for recurring expenses. (Source Code)
GoTypeScript - OpenBB - financial data platform for analysts, quants and AI agents. (Source Code)
Python - Subscription Manager - keep track of your subscriptions and manage your expenses. (Source Code)
JavaScriptPython - Wapy.dev - track, manage and optimize your recurring expenses in one powerful and human readable dashboard. (Source Code)
JavaScript
- Actual AI - categorize transactions in Actual Budget using AI. (Source Code)
- Fitness
- Endurain - fitness tracking service designed to give users full control over their data and hosting environment. (Source Code)
Python
- Endurain - fitness tracking service designed to give users full control over their data and hosting environment. (Source Code)
- Games
- Factorio - headless server in a Docker container. (Source Code)
ShellPythonC - GameVault - self-hosted gaming platform for drm-free games. (Source Code)
TypeScript - Lodestone - server hosting tool for Minecraft and other multiplayer games. (Source Code)
RustTypeScript - Paper - high performance Minecraft server that aims to fix gameplay and mechanics inconsistencies. (Source Code)
Java - Satisfactory - containerized version of the Satisfactory dedicated server. (Source Code)
ShellGo - Sunshine - game stream host for Moonlight. (Source Code)
C++ - Valheim - Valheim server manager. (Source Code)
Shell - Wolf - stream virtual desktops and games running in Docker. (Source Code)
C++
- Factorio - headless server in a Docker container. (Source Code)
- Health
- Fasten Health - personal/family electronic medical record aggregator, designed to integrate with 100,000's of insurances/hospitals/clinics. (Source Code)
GoTypeScript - OpenEMR - electronic health records and medical practice management solution. (Source Code)
PHP
- Fasten Health - personal/family electronic medical record aggregator, designed to integrate with 100,000's of insurances/hospitals/clinics. (Source Code)
- Home Automation
- Wakezilla - simple Wake-on-LAN & reverse proxy toolkit — wake, route, and control your machines from anywhere. (Source Code)
Rust - Wol - Wake-On-LAN tool that works via CLI and web interface. (Source Code)
Go
- Wakezilla - simple Wake-on-LAN & reverse proxy toolkit — wake, route, and control your machines from anywhere. (Source Code)
- Inventory
- Bar Assistant - home bar management. (Source Code)
PHP - Lubelogger - vehicle maintenance and fuel mileage tracker. (Source Code)
JavaScriptC# - VoucherVault - store and manage vouchers, coupons, loyalty and gift cards digitally. (Source Code)
Python - Warracker - web application to manage product warranties, track expiration dates, and store related documents. (Source Code)
JavaScriptPython
- Bar Assistant - home bar management. (Source Code)
- Location & Travel
- Scratch Map - scratch-off style map to track your travels. (Source Code)
JavaScript - Statistics for Strava - statistics generated using Strava data. (Source Code)
PHP - VFD - flight price tracking script. (Source Code)
Python - Wanderer - trail database, save your adventures. (Source Code)
SvelteGoTypeScript
- Scratch Map - scratch-off style map to track your travels. (Source Code)
- Mail
- docker-mailserver - production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container. (Source Code)
Shell - Maddy - composable all-in-one mail server. (Source Code)
Go - OpenArchiver - platform for legally compliant email archiving. (Source Code)
TypeScriptSvelte - Piler - email archiving application. (Source Code)
PHP - simple-login - simple login back-end and web app. (Source Code)
PythonJavaScript
- docker-mailserver - production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container. (Source Code)
- Maintenance
- olivetin - safe and simple access to predefined shell commands from a web interface. (Source Code)
GoJavaScript
- olivetin - safe and simple access to predefined shell commands from a web interface. (Source Code)
- Management
- Ads
- Plausible - simple, open source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics. (Source Code)
Elixir - Umami - modern, privacy-focused alternative to Google Analytics. (Source Code)
TypeScript
- Plausible - simple, open source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics. (Source Code)
- Code
- Bugsink - error tracking. (Source Code)
Python - Cyber Chef - web app for encryption, encoding, compression and data analysis. (Source Code)
JavaScript - Gitea - all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD. (Source Code)
Go - Networking Toolbox - . (Source Code)
SvelteTypeScript - OpenGist - pastebin powered by Git, open-source alternative to Github Gist. (Source Code)
GoTypeScript - PyPI Server - minimal PyPI server for uploading & downloading packages with pip. Source code here.
Python - Sentry - feature-complete and packaged up for low-volume deployments and proofs-of-concept. (Source Code)
ShellPython - woodpecker - simple, yet powerful CI/CD engine with great extensibility. (Source Code)
Go - Ziit - swiss army knife of code time tracking. (Source Code)
TypeScriptVue
- Bugsink - error tracking. (Source Code)
- Passwords
- AliasVault - end-to-end encrypted password manager with a built-in alias generator and email server. (Source Code)
C#TypeScript
- AliasVault - end-to-end encrypted password manager with a built-in alias generator and email server. (Source Code)
- Ads
- Media
- Management
- Bazarr - manage and download subtitles based on your requirements. (Source Code)
Python - Cleanuparr - tool for automating the cleanup of unwanted or blocked files in Sonarr, Radarr, and supported download clients like qBittorrent. (Source Code)
C# - DeepSubX - uses the DeepL API to translate subtitles for TV shows and movies in your library. (Source Code)
TypeScriptJavaScript - Lidarr - looks and smells like Sonarr but made for music. (Source Code)
C#JavaScript - Lidify - music discovery tool that provides recommendations based on selected Lidarr artists, using Spotify or LastFM. (Source Code)
PythonJavaScript - MeTube - YouTube downloader (web UI for youtube-dl / yt-dlp). (Source Code)
TypeScriptPython - Profilarr - configuration management platform for Radarr/Sonarr. (Source Code)
TypeScriptSvelte - Prowlarr - . (Source Code)
C#JavaScript - qui - qBittorrent web UI: manage multiple instances, automate torrent workflows, and cross-seed across trackers. (Source Code)
GoTypeScript - Radarr - movie organizer/manager for usenet and torrent users. (Source Code)
C#TypeScript - Seerr - media request and discovery manager for Jellyfin, Plex, and Emby. (Source Code)
- Slskd - modern client-server application for the Soulseek file sharing network. (Source Code)
C# - Sonarr - smart PVR for newsgroup and bittorrent users. (Source Code)
C#TypeScript - Soularr - script that connects Lidarr with Soulseek. (Source Code)
Python - Spotizerr - spotify music downloader with a lossless twist, based on the deezspot library. (Source Code)
PythonTypeScript - Syncthing - open source continuous file synchronization. (Source Code)
Go - Tdarr - distributed transcode automation using FFmpeg/HandBrake + audio/video library analytics + video health checking. (Source Code)
Makefile - Tubifarry - Lidarr plugin that enhances your music library by fetching music from YouTube, integrating with Slskd for Soulseek access, automating Spotify playlist imports, converting files, and retrieving soundtracks from Radarr and Sonarr. (Source Code)
C# - yt-dlp - feature-rich command-line audio/video downloader. (Source Code)
Python
- Bazarr - manage and download subtitles based on your requirements. (Source Code)
- Storage
- Audiobooks
- Audiobookshelf - audiobook and podcast server. (Source Code)
JavaScriptVue
- Audiobookshelf - audiobook and podcast server. (Source Code)
- Bookmarks
- Linkwarden - collaborative bookmark manager to collect, organize, and preserve webpages, articles, and documents. (Source Code)
TypeScript
- Linkwarden - collaborative bookmark manager to collect, organize, and preserve webpages, articles, and documents. (Source Code)
- Documents
- myDrive - node.js and mongoDB Google Drive clone. (Source Code)
TypeScript - OxiCloud - ultra-fast, secure & lightweight self-hosted cloud storage — your files, photos, calendars & contacts, all in one place. (Source Code)
RustJavaScript - Paperless AI - automated document analyzer for paperless-ngx using OpenAI API, Ollama, Deepseek-r1, Azure and all OpenAI API compatible services to automatically analyze and tag your documents. (Source Code)
JavaScript - Papra - minimalistic document archiving platform. (Source Code)
TypeScript - Seafile - beyond file syncing and sharing, a new way to organize your files with extensible file properties and flexible views. (Source Code)
CPython
- myDrive - node.js and mongoDB Google Drive clone. (Source Code)
- Photos
- Photoview - photo gallery for personal servers. (Source Code)
TypeScriptGo - WeddingShare - place for guests to view and drop pictures of the big day. (Source Code)
JavaScriptC#
- Photoview - photo gallery for personal servers. (Source Code)
- Music
- Ampache - web based audio/video streaming application and file manager allowing you to access your music & videos from anywhere, using almost any internet enabled device. (Source Code)
PHP - Finamp (Jellyfin music client for mobile)
- Koel - a personal music streaming server that works. (Source Code)
PHPTypeScript
- Ampache - web based audio/video streaming application and file manager allowing you to access your music & videos from anywhere, using almost any internet enabled device. (Source Code)
- News
- Miniflux - minimalist and opinionated feed reader. (Source Code)
Go
- Miniflux - minimalist and opinionated feed reader. (Source Code)
- Videos
- BitPlay - stream video torrents in your web browser with ease. (Source Code)
Go - Kodi - open source home theater/media center software and entertainment hub for digital media. (Source Code)
C++ - Plex - Plex Media Server Docker repo, for all your PMS docker needs. (Source Code)
- Streamystats - statistics service for Jellyfin, providing analytics and data visualization. (Source Code)
TypeScript
- BitPlay - stream video torrents in your web browser with ease. (Source Code)
- Web
- ArchiveBox - web archiving that takes URLs/browser history/bookmarks/Pocket/Pinboard/etc. (Source Code)
Python
- ArchiveBox - web archiving that takes URLs/browser history/bookmarks/Pocket/Pinboard/etc. (Source Code)
- Audiobooks
- Tools
- BentoPDF - privacy first PDF toolkit. (Source Code)
JavaScriptFluentTypeScript - Cobalt - best way to save what you love. (Source Code)
SvelteJavaScriptTypeScript - Invidious - alternative front-end to YouTube. (Source Code)
Crystal - Mazanoke - local image optimizer that runs in your browser. (Source Code)
JavaScript - OmniTools - collection of powerful web-based tools for everyday tasks. (Source Code)
TypeScript - SmartTube - browse media content with your own rules on Android TV.
Java - Vert - next-generation file converter. (Source Code)
SvelteTypeScript - WithoutBG - image background removal toolkit. (Source Code)
PythonJavaScript
- BentoPDF - privacy first PDF toolkit. (Source Code)
- Management
- Monitoring
- Beszel - lightweight server monitoring hub with historical data, docker stats, and alerts. (Source Code)
Go - Cluster-iPerf - Run iperf in client or server mode on kubernetes and ECS. (Source Code)
- Domain Monitor - monitor WHOIS records for specified domains. (Source Code)
Go - Gatus - automated developer-oriented status page with alerting and incident support. (Source Code)
Go - Healthchecks - cron job and background task monitoring service. (Source Code)
Python - Keep - open-source AIOps and alert management platform. (Source Code)
PythonTypeScript - LibreSpeed - speed test for HTML5 and more. (Source Code)
PHPJavaScript - NetAlertX - network intruder and presence detector, scans for devices connected to your network and alerts you if new and unknown devices are found. (Source Code)
JavaScriptPythonPHP - Scanopy - clean network diagrams. (Source Code)
RustSvelte - Signoz - observability platform native to OpenTelemetry with logs, traces and metrics in a single application. (Source Code)
TypeScriptGo - Uptime Kuma - fancy monitoring tool. (Source Code)
JavaScriptVue - WatchYourLAN - lightweight network IP scanner, can be used to notify about new hosts and monitor host online/offline history. (Source Code)
TypeScriptGo
- Beszel - lightweight server monitoring hub with historical data, docker stats, and alerts. (Source Code)
- PKMS
- Anytype - the everything app for those who celebrate trust & autonomy. (Source Code)
TypeScript - ApiTable - API-oriented low-code platform for building collaborative apps and better than all other Airtable open-source alternatives. (Source Code)
TypeScriptJava - BookStack - platform to create documentation/wiki content. (Source Code)
PHPTypeScript - Excalidraw - virtual whiteboard for sketching hand-drawn like diagrams. (Source Code)
TypeScript - Grist - modern relational spreadsheet. (Source Code)
TypeScriptPython - Joplin - privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS. (Source Code)
TypeScriptJavaScript - Memos - knowledge management and note-taking platform designed for privacy-conscious users and organizations. (Source Code)
GoTypeScript - NocoDB - open source Airtable alternative. (Source Code)
TypeScriptVue - Teable - next gen Airtable alternative, no-code Postgres. (Source Code)
TypeScript - TypeMill - flat-file CMS based on Markdown and designed for informational websites like documentation, manuals, and handbooks. (Source Code)
JavaScriptPHP
- Anytype - the everything app for those who celebrate trust & autonomy. (Source Code)
- Project Management
- kaneo - open source project management. (Source Code)
TypeScript - Rustical - calendar server aiming to be simple, fast and passwordless. (Source Code)
Rust - Worklenz - all in one project management tool for efficient teams. (Source Code)
TypeScriptJavaScript
- kaneo - open source project management. (Source Code)
- Proxy
- Pangolin - tunneled mesh reverse proxy server with identity and access control and dashboard UI. (Source Code)
TypeScript - Traefik Log Dashboard - real-time dashboard for analyzing Traefik logs with IP geolocation, status code analysis, and service metrics. (Source Code)
TypeScriptGo
- Pangolin - tunneled mesh reverse proxy server with identity and access control and dashboard UI. (Source Code)
- Remote
- Defguard - zero-trust access management with true WireGuard® 2FA/MFA. (Source Code)
RustTypeScript - Shadow SOCKS
- Termix - Termix is a web-based server management platform with SSH terminal, tunneling, and file editing capabilities. (Source Code)
TypeScript - TunnelMole:
- Defguard - zero-trust access management with true WireGuard® 2FA/MFA. (Source Code)
- Search
- DumbWhoIs - dumb whois. (Source Code)
JavaScript - Whoogle - ad-free, privacy-respecting metasearch engine. (Source Code)
Python
- DumbWhoIs - dumb whois. (Source Code)
- Security
- Authelia - single sign-on multi-factor portal for web apps, now OpenID certified. (Source Code)
GoTypeScript - Certwarden - centralized ACME client. (Source Code)
- Cloudflared - cloudflare tunnel client. (Source Code)
Go - fail2ban-ui - web interface for operating Fail2Ban across one or more Linux hosts. (Source Code)
GoJavaScript - GlitchTip - Sentry API compatible error tracking platform. (Source Code)
Python - Keycloak - identity and access management for modern applications and services. (Source Code)
Java - Krawl - cloud native web deception server and anti-crawler that creates fake web applications with low-hanging vulnerabilities and realistic, randomly generated decoy data. (Source Code)
PythonJavaScript - Maltrail - malicious traffic detection system. (Source Code)
PythonJavaScript - Patterns: OWASP CRS and Bad Bot Detection for Web Servers - Automated OWASP CRS and Bad Bot Detection for Nginx, Apache, Traefik and HaProxy. (Source Code)
Python - Tinyauth - simplest way to protect your apps with a login screen. (Source Code)
GoTypeScript - Web-Check - all-in-one OSINT tool for analyzing any website. (Source Code)
TypeScriptJavaScript - Zitadel - identity infrastructure, simplified for you. (Source Code)
GoTypScript
- Authelia - single sign-on multi-factor portal for web apps, now OpenID certified. (Source Code)
- Social
- bridge-manager - tool for running self-hosted bridges with the Beeper Matrix server. (Source Code)
Go
- bridge-manager - tool for running self-hosted bridges with the Beeper Matrix server. (Source Code)
- Software Development
- ChartDB - . (Source Code)
TypeScript - Code Server - VS Code in the browser. (Source Code)
TypeScriptShell - Coolify - self-hostable PaaS alternative to Vercel, Heroku & Netlify. (Source Code)
PHPBlade - DevPush - like Vercel, but open source and for all languages. (Source Code)
Python
- ChartDB - . (Source Code)
- Storage
- Garage - S3-compatible distributed object storage service. (Source Code)
Rust - RustFS - high-performance distributed object storage for MinIO alternative. (Source Code)
Rust
- Garage - S3-compatible distributed object storage service. (Source Code)
- Surveys
- Formbricks - open source Qualtrics alternative. (Source Code)
TypeScript
- Formbricks - open source Qualtrics alternative. (Source Code)
- Trello alternative - Find a kanban board
- Focalboard - (Source Code)
- Kan - open source Trello alternative. (Source Code)
TypeScript - Kanboard - Kanban project management software. (Source Code)
PHP - Leantime - goals focused project management system for non-project managers. (Source Code)
PHPJavaScript - Taiga - (Source Code)
Shell - Vikunja - to-do app to organize your life. (Source Code)
GoVueTypeScript - Wekan - open-source kanban. (Source Code)
JavaScript
- Wishlist
- Christmas Community - Christmas lists for families. (Source Code)
- Other
- Aeterna - lightweight dead man's switch. (Source Code)
JavaScriptGo - Monica - Personal CRM. Remember everything about your friends, family and business relationships. (Source Code)
PHP - Puter - The Internet Computer, free, open-source, and self-hostable. (Source Code)
JavaScript
- Aeterna - lightweight dead man's switch. (Source Code)