Skip to content

clement-deltel/home-server

Repository files navigation

Home Server

Collection of self hosted services for my home server setup.

Table of Contents

Pre-requisites

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:

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

Getting Started

  1. Export required environment variables:
export GITHUB_USERNAME=clement-deltel
export SERVER_ROOT='/opt'
  1. 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
  1. After pulling and configuring the home-server, the script install ansible, and then run playbooks.

  2. Ansible playbooks automatically install and configure the tools listed below:

  3. 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
  1. Run Docker user playbooks and apply Terraform configuration:
cd ${SERVER_HOME}
ansible-playbook --connection local --inventory "localhost," --tags docker ansible/docker.yml
terraform apply
  1. Start services:
# Possible tags: up, restart, stop, down
ansible-playbook --connection local --inventory "localhost," --tags up docker.yml
  1. 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.yml

If 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-server

Hardware

This 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
  • 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

RAID

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.

Domain Name

Recommended registrars:

Port Mapping

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

Operating System

  • 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

Services

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
  • DNS
    • Ad-blocker
      • Pi-hole - a black hole for Internet advertisements. Deployed on https://pihole.${DOMAIN}. (Source Code) Shell Python
    • Recursive DNS
  • 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) Vue JavaScript
  • 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) Svelte Go
  • Remote Access
    • VPN
    • 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
    • Remote Control Server
      • RustDesk - remote desktop application designed for self-hosting, as an alternative to TeamViewer. Deployed on rustdesk.${DOMAIN}. (Source Code) Rust
  • 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) Go Vue TypeScript
    • Grafana - open and composable observability and data visualization platform. Deployed on https://grafana.${DOMAIN}. (Source Code) TypeScript Go
    • ntfy - send push notifications to your phone or desktop using PUT/POST. Deployed on https://notiifications.${DOMAIN}. (Source Code) Go JavaScript
    • Scrutiny - hard drive S.M.A.R.T monitoring, historical trends & real world failure thresholds. Deployed on https://scrutiny.${DOMAIN}. (Source Code) Go
  • 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
  • Security
    • Authentik - authentication glue you need. Deployed on https://auth.${DOMAIN}. (Source Code) Python TypeScript
    • CrowdSec - open-source and participative security solution offering crowdsourced protection against malicious IPs and access to the most advanced real-world CTI. (Source Code) Go Shell
    • 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) C C++ Python
  • Search
    • SearXNG - free internet metasearch engine which aggregates results from various search services and databases, users are neither tracked nor profiled. (Source Code) Python
  • 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) PHP Blade
    • 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
    • Documents
      • NextCloud - a safe home for all your data. Deployed on https://nextcloud.${DOMAIN}. (Source Code) PHP JavaScript
      • Paperless - document management system: scan, index and archive all your documents. Deployed on https://docs.${DOMAIN}. (Source Code) Python TypeScript
    • Music
      • Navidrome - personal streaming service. Deployed on https://music.${DOMAIN}. (Source Code) Go JavaScript
    • News
    • Pictures
      • Immich - high performance self-hosted photo and video management solution. Deployed on https://pictures.${DOMAIN}. (Source Code) TypeScript Dart Svelte
      • Meme Search - meme search engine and finder. Deployed on https://memes.${DOMAIN}. (Source Code) Ruby Python
      • Photoprism - photos app for the decentralized web. Deployed on https://photoprism.${DOMAIN}. (Source Code) Go JavaScript
      • 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
    • Videos
      • Jellyfin - free software media system. Deployed on https://videos.${DOMAIN}. (Source Code) C#
  • Media Tools
    • ConvertX - online file converter. Supports 1000+ formats. (Source Code) TypeScript
    • Docuseal - open source DocuSign alternative. Deployed on https://doc.${DOMAIN}. (Source Code) Ruby Vue JavaScript
    • Gokapi - lightweight Firefox Send alternative without public upload. https://share.${DOMAIN}. (Source Code) Go JavaScript
    • 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) Java JavaScript
  • 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}
      • IT-Tools - collection of handy online tools for developers, with great UX. Deployed on https://it-tools.${DOMAIN}. (Source Code) Vue TypeScript
      • Wakapi - minimalist, self-hosted WakaTime-compatible backend for coding statistics. Deployed on https://wakapi.${DOMAIN}. (Source Code) Go
    • Passwords
      • Vaultwarden - unofficial Bitwarden compatible server, formerly known as bitwarden_rs. (Source Code) Rust
        • Administration dashboard: https://vault.${DOMAIN}/admin
        • Instance: https://vault.${DOMAIN}
    • 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) Svelte TypeScript Python
      • Memos - note-taking service, your thoughts, your data, your control — no tracking, no ads, no subscription fees. Deployed on https://memos.${DOMAIN}. (Source Code) Go TypeScript
      • Siyuan - privacy-first, self-hosted, fully open source personal knowledge management software. Deployed on https://siyuan.${DOMAIN}. (Source Code) TypeScript Go
  • 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) JavaScript Svelte Python
  • Automation
    • n8n - workflow automation platform with native AI capabilities, combine visual building with custom code, self-host or cloud, 400+ integrations. (Source Code) TypeScript
  • 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
  • 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) PHP JavaScript
  • Inventory
    • Grocy - groceries & household management solution for your home. Deployed on https://grocy.${DOMAIN}. (Source Code) Blade TypeScript PHP
    • 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) Go Vue TypeScript
    • 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) Python Vue TypeScript
    • Wishlist - wishlist application that you can share with your friends and family. Deployed on https://wish.${DOMAIN}. (Source Code) Svelte TypeScript
  • Travel
    • AdventureLog - travel tracker and trip planner. Deployed on https://travel.${DOMAIN}. (Source Code) Svelte Python
    • Dawarich - alternative to Google location history (Google Maps timeline). Deployed on https://maps.${DOMAIN}. (Source Code) Ruby JavaScript
    • Jetlog - personal flight tracker and viewer. Deployed on https://fly.${DOMAIN}. (Source Code) TypeScript Python
  • 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) JavaScript PHP
  • 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) Python Vue

Secrets Management

Observability

This section covers all the tools and logic implemented to have maximum visibility on what is happening on the server at any given time.

Metrics

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.

Docker

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: 5s

Telegraf

Run the below command to test your configuration:

telegraf --config /etc/telegraf/telegraf.conf --test

Telegraf plugins being used:

Prometheus

Logs

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: 2m

Visualization

List of tools being used to visualize metrics on this stack:

  • Grafana
  • iOs app

Grafana

Monitor your server from your phone

Since I am an iPhone user, this section covers the list of steps on iOS only.

  1. Install the Glimpse 2 app from the App Store.
  2. Wrap your Grafana instance website on your iOS screen via Widgets.

Security notes

Future enhancements

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) TypeScript Python
  • Backup
    • Backrest - Backrest is a web UI and orchestrator for restic backup. (Source Code) Go TypeScript
    • 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
  • Containers
  • 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) Vue JavaScript
    • Glance - dashboard that puts all your feeds in one place. (Source Code) Go JavaScript
    • Heimdall - application dashboard and launcher. (Source Code) PHP
    • Organizr - HTPC/Homelab Services Organizer - Written in PHP. (Source Code) PHP JavaScript
    • Trala - simple, modern, and dynamic dashboard for your Traefik services. (Source Code) Go
  • DNS
    • Blocky - fast and lightweight DNS proxy as ad-blocker for local network with many features. (Source Code) Go
  • Finances
  • Fitness
    • Endurain - fitness tracking service designed to give users full control over their data and hosting environment. (Source Code) Python
  • Games
  • Health
    • Fasten Health - personal/family electronic medical record aggregator, designed to integrate with 100,000's of insurances/hospitals/clinics. (Source Code) Go TypeScript
    • OpenEMR - electronic health records and medical practice management solution. (Source Code) PHP
  • 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
  • Inventory
  • Location & Travel
  • Mail
  • Maintenance
    • olivetin - safe and simple access to predefined shell commands from a web interface. (Source Code) Go JavaScript
  • 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
    • Code
    • Passwords
      • AliasVault - end-to-end encrypted password manager with a built-in alias generator and email server. (Source Code) C# TypeScript
  • 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) TypeScript JavaScript
      • 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) Python JavaScript
      • MeTube - YouTube downloader (web UI for youtube-dl / yt-dlp). (Source Code) TypeScript Python
      • Profilarr - configuration management platform for Radarr/Sonarr. (Source Code) TypeScript Svelte
      • Prowlarr - . (Source Code) C# JavaScript
      • qui - qBittorrent web UI: manage multiple instances, automate torrent workflows, and cross-seed across trackers. (Source Code) Go TypeScript
      • 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) Python TypeScript
      • 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
    • Storage
      • Audiobooks
      • Bookmarks
        • Linkwarden - collaborative bookmark manager to collect, organize, and preserve webpages, articles, and documents. (Source Code) TypeScript
      • 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) Rust JavaScript
        • 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) C Python
      • Photos
      • Music
      • News
      • 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
      • Web
        • ArchiveBox - web archiving that takes URLs/browser history/bookmarks/Pocket/Pinboard/etc. (Source Code) Python
    • Tools
  • 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) Python TypeScript
    • LibreSpeed - speed test for HTML5 and more. (Source Code) PHP JavaScript
    • 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) JavaScript Python PHP
    • Scanopy - clean network diagrams. (Source Code) Rust Svelte
    • Signoz - observability platform native to OpenTelemetry with logs, traces and metrics in a single application. (Source Code) TypeScript Go
    • Uptime Kuma - fancy monitoring tool. (Source Code) JavaScript Vue
    • WatchYourLAN - lightweight network IP scanner, can be used to notify about new hosts and monitor host online/offline history. (Source Code) TypeScript Go
  • 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) TypeScript Java
    • BookStack - platform to create documentation/wiki content. (Source Code) PHP TypeScript
    • Excalidraw - virtual whiteboard for sketching hand-drawn like diagrams. (Source Code) TypeScript
    • Grist - modern relational spreadsheet. (Source Code) TypeScript Python
    • Joplin - privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS. (Source Code) TypeScript JavaScript
    • Memos - knowledge management and note-taking platform designed for privacy-conscious users and organizations. (Source Code) Go TypeScript
    • NocoDB - open source Airtable alternative. (Source Code) TypeScript Vue
    • 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) JavaScript PHP
  • Project Management
  • 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) TypeScript Go
  • Remote
  • Search
  • Security
  • Social
  • Software Development
  • Storage
    • Garage - S3-compatible distributed object storage service. (Source Code) Rust
    • RustFS - high-performance distributed object storage for MinIO alternative. (Source Code) Rust
  • Surveys
  • Trello alternative - Find a kanban board
  • Wishlist
  • Other
    • Aeterna - lightweight dead man's switch. (Source Code) JavaScript Go
    • 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

About

Collection of self hosted services for my home server setup.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors