Various Docker Compose examples of selfhosted FOSS and proprietary projects.
Go to file
LRVT 434983b5b6
Update traefik.yml
add quic http3
2024-05-23 22:28:53 +02:00
.github Update validator.yml 2024-03-13 21:46:09 +01:00
0_skeleton Update docker-compose.yml 2024-01-10 12:10:56 +01:00
docs Update index.html 2024-03-13 21:45:12 +01:00
examples Update traefik.yml 2024-05-23 22:28:53 +02:00
README.md add openvpn-as 2024-05-18 00:11:23 +02:00

Awesome Docker Compose Examples

Various Docker Compose examples of selfhosted FOSS and proprietary projects.



Buy Me A Coffee

Requirements

  • Docker Compose

🎓 Usage

  • Volume bind mounts are assumed to be located at /mnt/docker-volumes/<container-name>/. You can adjust the path via the global env variable DOCKER_VOLUME_STORAGE to your liking though. The compose examples will fall back to /mnt/docker-volumes/<container-name>/ if the env variable is not set on your Docker server.
  • Volume permissions (UID:GUID) must be set correctly by yourself. Usually 1000:1000 - otherwise read the notes!
  • Docker networks are not pre-defined. Adjust to your preference and network/proxy setup.
  • Example config files are usually provided but not yet located in the correct volume bind mount paths. Adjust!
  • Example credentials should always be adjusted due to security reasons. May put them in a separate .env file or platform for secrets management.

Otherwise, it should be a matter of:

git clone https://github.com/Haxxnet/Compose-Examples && cd Compose-Examples
cd <container-of-interest>

# read the notes, comments and adjust compose + volumes + configs
docker compose up

Tip

You can find an online web version of this GitHub repository here.

Caution

The samples are intended for local development environments such as project setups, tinkering with software stacks, etc. These samples may be deployed in production environments or exposed to the Internet but please adhere to general hardening and security guidelines. Adjust all default credentials, use a separate .env file or platform for secret management, implement a backup process and have a tested disaster recovery plan. Use a reverse proxy to stream-line your web service exposure and provide an encrypted HTTPS communication channel with trusted SSL certificates.

🐳 Project List

Table of Contents (ToC)

Personal Dashboards

^ back to top ^

Dashboards for accessing information and applications.

  • Homepage - A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.
  • Homer - A dead simple static homepage to expose your server services, with an easy yaml configuration and connectivity check.
  • Dashy - Feature-rich homepage for your homelab, with easy YAML configuration.
  • Homarr - A sleek, modern dashboard that puts all of your apps and services at your fingertips.
  • Flame - Flame is self-hosted startpage for your server. Easily manage your apps and bookmarks with built-in editors.
  • Heimdall - Heimdall is an elegant solution to organise all your web applications.

Password Managers

^ back to top ^

A password manager allows users to store, generate, and manage their passwords for local applications and online services.

  • Vaultwarden - Lightweight Bitwarden server API implementation written in Rust. Unlocks paid Bitwarden features such as 2FA.
  • Bitwarden Unified - Official Bitwarden deployment option (beta) targeting selfhosters by providing a resource-efficient, single Docker image with multiple database support.
  • Passbolt CE - Passbolt CE open source password manager for teams based on GPG.

Proxy

^ back to top ^

A proxy is a server application that acts as an intermediary between a client requesting a resource and the server providing that resource.

  • Traefik - Traefik is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It supports several backends (Docker, Swarm, Mesos/Marathon, …) to manage its configuration automatically and dynamically.
  • Nginx Proxy Manager - Nginx Proxy Manager is an easy way to accomplish reverse proxying hosts with SSL termination.
  • Caddy - The Caddy web server is an extensible, cross-platform, open-source web server written in Go. Caddy obtains and renews TLS certificates for your sites automatically.
  • oauth2-proxy - A reverse proxy that provides authentication with Google, Azure, OpenID Connect and many more identity providers.

Identity Management - Single Sign-On (SSO) & LDAP

^ back to top ^

Single sign-on (SSO) is an authentication scheme that allows a user to log in with a single ID to any of several related, yet independent, software systems.

  • Authelia - Authelia is an open-source authentication and authorization server providing two-factor authentication and single sign-on (SSO) for your applications via a web portal. It acts as a companion for reverse proxies by allowing, denying, or redirecting requests. Recommended to combine with Traefik.
  • Authentik - Authentik is an open-source Identity Provider focused on flexibility and versatility.
  • Keycloak - Keycloak is an open-source Identity and Access Management (IAM) solution for modern applications and services.
  • lldap - lldap is a lightweight authentication server that provides an opinionated, simplified LDAP interface for authentication. It integrates with many backends, from KeyCloak to Authelia to Nextcloud and more.

Large Language Models & AI

^ back to top ^

A Large Language Model (LLM) is a language model notable for its ability to achieve general-purpose language generation and other natural language processing tasks such as classification. LLMs can be used for text generation, a form of generative AI, by taking an input text and repeatedly predicting the next token or word.

  • Ollama + Open WebUI - Get up and running with Llama 3, Mistral, Gemma, and other large language models using Ollama. Using an interactive, user-friendly WebUI via Open WebUI (formerly known as Ollama WebUI).
  • Serge - A web interface for chatting with Alpaca through llama.cpp. Fully dockerized, with an easy to use API.

Virtual Private Network (VPN) & Remote Access

^ back to top ^

A VPN is a mechanism for creating a secure connection between a computing device and a computer network, or between two networks, using an insecure communication medium such as the public Internet.

  • wg-easy - The easiest way to install & manage WireGuard on any Linux host. All-in-one deployment of a WireGuard VPN network service + web management UI.
  • WireGuard - WireGuard by Linuxserver.io is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography.
  • IPSec VPN Server - Docker image to run an IPsec VPN server, with IPsec/L2TP, Cisco IPsec and IKEv2.
  • OpenVPN-AS - OpenVPN Access Server delivers an enterprise VPN solution for businesses of all sizes, providing a securely encrypted connection to private networks over unsecured public internet.
  • Firezone - Self-hosted secure remote access gateway that supports the WireGuard protocol. It offers a Web GUI, 1-line install script, multi-factor auth (MFA), and SSO.
  • Netbird - Quickly connect your computers, servers, cloud instances, and IoT devices into a secure private network. No configuration required.
  • Headscale - An open source, self-hosted implementation of the Tailscale control server.
  • Guacamole - Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, SSH and RDP.

Domain Name Service (DNS)

^ back to top ^

DNS servers and management tools with advertisement blocking funtionality, primarily aimed at home or small networks.

  • AdGuard Home - AdGuard Home is a network-wide software for blocking ads and tracking.
  • AdGuard Home Sync - Synchronize AdGuardHome config to replica instances.
  • Technitium DNS - An open source authoritative as well as recursive DNS server that can be used for self hosting a DNS server for privacy & security.
  • Pihole - Pi-hole is a Linux network-level advertisement and Internet tracker blocking application which acts as a DNS sinkhole and optionally a DHCP server, intended for use on a private network.
  • Cloudflare DDNS - Dynamic DNS (DDNS) is a service that keeps the DNS updated with a web property's correct IP address, even if that IP address is constantly being updated.

Software Development - Project Management, DevOps

^ back to top ^

Tools and software for software project management.

  • JetBrains YouTrack - YouTrack is a proprietary, commercial browser-based bug tracker, issue tracking system and project management software developed by JetBrains.
  • Leantime - Leantime is an open source project management system for small teams and startups written in PHP, Javascript using MySQL.
  • Gitea - Community managed fork of Gogs, lightweight code hosting solution.
  • Drone - Drone is a continuous delivery system built on container technology. Drone uses a simple YAML build file, to define and execute build pipelines inside Docker containers.
  • Gitlab Community - Self Hosted Git repository management, code reviews, issue tracking, activity feeds and wikis.
  • Code-Server - VS Code in the browser, hosted on a remote server.
  • Onedev - Self-hosted Git Server with CI/CD and Kanban.

Automation and Monitoring

^ back to top ^

Automation software designed to reduce human intervention in processes.

  • n8n - Free and source-available fair-code licensed workflow automation tool. Easily automate tasks across different services.
  • Home Assistant - Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.
  • Portainer - Portainer is a lightweight management UI which allows you to easily manage your different Docker environments (Docker hosts or Swarm clusters).
  • Dockge - A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager.
  • Uptimekuma - Uptime Kuma is an easy-to-use self-hosted monitoring tool.
  • Changedetection - Self-hosted tool for staying up-to-date with web-site content changes.
  • Grafana+Loki+Promtail+InfluxDB+Telegraf - Grafana is the open source analytics & monitoring solution for every database. Combined with other open-source tools like Loki, Promtail, InfluxDB and Telegraf, monitoring data can be aggregated, normalized, filtered, parsed and finally visualized within a web dashboard.
  • Speedtest-Tracker - Continuously track your internet speed.
  • Openspeedtest - A free and open-source HTML5 network performance estimation tool written in vanilla JavaScript and only uses built-in web APIs like XHR, HTML, CSS, JS and SVG.
  • Goaccess - Real-time web log analyzer and interactive viewer that visualizes various logs of popular reverse proxies such as Nginx, Nginx Proxy Manager and Traefik.
  • WatchYourLAN - Lightweight network IP scanner with web GUI.
  • Watchtower - A container-based solution for automating Docker container base image updates.
  • Unify Network Application - The Unifi-network-application software is a powerful, enterprise wireless software engine ideal for high-density client deployments requiring low latency and high uptime performance.
  • UpSnap - A simple wake on lan app written with SvelteKit, Go, PocketBase and nmap.

Recipe Management

^ back to top ^

Software and tools for managing recipes.

  • Tandoor - Django application to manage, tag and search recipes using either built-in models or external storage providers hosting PDFs, Images or other files.
  • Mealie - Material design inspired recipe manager with category and tag management, shopping-lists, meal-planner, and site customizations. Mealie is focused on simple user interactions to keep the whole family using the app.

Photo and Video Galleries

^ back to top ^

A gallery is software that helps the user publish or share photos, pictures, videos or other digital media.

  • Immich - Self-hosted photo and video backup solution directly from your mobile phone. Alternative to Google Photos.
  • Photoprism - Personal photo management powered by Go and Google TensorFlow. Browse, organize, and share your personal photo collection, using the latest technologies to automatically tag and find pictures.
  • Stash - Stash is a self-hosted webapp written in Go which organizes and serves your porn.
  • LibrePhotos - A self-hosted open source photo management service, with face recognition, geolocation, and more.
  • Chevereto - Ultimate image sharing software. Create your very own personal image hosting website in just minutes.

Audio and Video Management

^ back to top ^

Software to manage audio and video material.

  • Arr-Suite - Docker stack consisting of Prowlarr, Sonarr, Radarr, Lidarr, Readarr, Flaresolverr, Qbittorrent and Emby.
  • Raveberry - A multi-user music server with a focus on participation.
  • Deemix - deemix is a barebone deezer downloader library built from the ashes of Deezloader Remix.
  • Forte - forte is a self-hosted music platform. You can either connect to a forte server or create your own server for your friends & family. However, it is also very convenient to use forte on your local machine as a stand-alone music player. Supports group streaming sessions.
  • MeTube - Web GUI for youtube-dl (using the yt-dlp fork) with playlist support. Allows you to download videos and audio only from YouTube and dozens of other sites.
  • Transmission - Transmission is a fast, easy, and free BitTorrent client.
  • FlareSolverr - FlareSolverr is a proxy server to bypass Cloudflare and DDoS-GUARD protection.
  • Plex - Plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices.
  • Jellyfin - Jellyfin is the volunteer-built media solution that puts you in control of your media. Stream to any device from your own server, with no strings attached.
  • Jackett - Jackett translates queries from apps (Sonarr, Radarr, SickRage, CouchPotato, Mylar3, Lidarr, DuckieTV, qBittorrent, Nefarious etc.) into tracker-site-specific http queries, parses the html or json response, and then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps.
  • Lidarr - Lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new albums from your favorite artists and will interface with clients and indexers to grab, sort, and rename them.
  • Prowlarr - Prowlarr is an indexer manager/proxy built on the popular *arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports management of both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Lidarr, Mylar3, Radarr, Readarr, and Sonarr offering complete management of your indexers with no per app Indexer setup required (we do it all).
  • Radarr - Radarr is a movie collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new movies and will interface with clients and indexers to grab, sort, and rename them. It can also be configured to automatically upgrade the quality of existing files in the library when a better quality format becomes available.
  • Sonarr - Sonarr is a PVR for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.
  • Ombi - Ombi is a tool that enables users to manage requests for movies and TV shows on their Plex server. It provides an easy-to-use interface for users to request new content, leave notes and report issues. Ombi also offers notification and newsletter features, making it easier for server owners to manage user requests and share new content updates.

Archiving and Digital Preservation (DP)

^ back to top ^

Digital archiving and preservation software.

  • Archivebox - ArchiveBox is a powerful, self-hosted internet archiving solution to collect, save, and view websites offline.
  • Shiori - Simple bookmark manager and website archiver built with Go.

Document Management

^ back to top ^

A document management system (DMS) is a system used to receive, track, manage and store documents and reduce paper.

  • Paperless NGX - A community-supported supercharged version of paperless: scan, index and archive all your physical documents.
  • Papermerge - Free and open source document management system with OCR designed for scanned documents, digital archives, pdf, tiff, jpeg.
  • DocuSeal - Create, fill, and sign digital documents (alternative to DocuSign).

Pastebins

^ back to top ^

A pastebin is a type of online content-hosting service used for sharing and storing code and text.

  • PrivateBin - PrivateBin is a minimalist, opensource online pastebin/discussion board where the server has zero knowledge of hosted data.
  • Hemmelig - Keep your sensitive information out of chat logs, emails, and more with encrypted secrets. Free encrypted secret sharing for everyone!

File Transfer & Synchronization

^ back to top ^

  • ownCloud OCIS - ownCloud Infinite Scale (oCIS) is the new file sync & share platform written in Golang that will be the foundation of your data management platform.
  • ownCloud - ownCloud is an open-source file sync, share and content collaboration software that lets teams work on data easily from anywhere, on any device.
  • Nextcloud - Access and share your files, calendars, contacts, mail and more from any device, on your terms.
  • Seafile - File hosting and sharing solution primary for teams and organizations.
  • SFTPGo - Fully featured and highly configurable SFTP server with optional HTTP/S, FTP/S and WebDAV support - S3, Google Cloud Storage, Azure Blob.
  • Filebrowser - filebrowser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit your files.
  • FileRun - FileRun is a self-hosted File Sync and Share web-based application. It is a full featured web based file manager with an easy to use user interface.
  • Gokapi - Lightweight selfhosted Firefox Send alternative without public upload. AWS S3 supported.
  • Projectsend - ProjectSend is a free, open source software that lets you share files with your clients, focused on ease of use and privacy. It supports clients groups, system users roles, statistics, multiple languages, detailed logs and much more!
  • Pwndrop - pwndrop is a self-deployable file hosting service for sending out red teaming payloads or securely sharing your private files over HTTP and WebDAV.
  • Droppy (deprecated) - droppy is a self-hosted file storage server with a web interface and capabilities to edit files and view media directly in the browser. It is particularly well-suited to be run on low-end hardware like the Raspberry Pi.
  • PairDrop - PairDrop is a sublime alternative to AirDrop that works on all platforms. Send images, documents or text via peer to peer connection to devices in the same local network/Wi-Fi or to paired devices.
  • MinIO - MinIO is an object storage server, compatible with Amazon S3 cloud storage service, mainly used for storing unstructured data (such as photos, videos, log files, etc.).
  • Transfer.sh - Easy and fast file sharing from the command-line.
  • Transfer.zip - Transfer files securely and E2E encrypted (AES-256 GCM) between browsers using WebRTC Peer2peer.
  • Send - Simple, private file sharing with encryption. A fork of Mozilla's Firefox Send.
  • Syncthing - Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers.

Backups

^ back to top ^

Backup software.

  • Duplicati - Duplicati is a backup client that securely stores encrypted, incremental, compressed remote backups of local files on cloud storage services and remote file servers.
  • Duplicacy - A lock-free deduplication cloud backup tool.

Note-taking & Editors

^ back to top ^

Note taking editors.

  • Excalidraw - Excalidraw is a virtual collaborative whiteboard tool that lets you easily sketch diagrams that have a hand-drawn feel to them.
  • HedgeDoc - HedgeDoc lets you create real-time collaborative markdown notes.
  • Overleaf - Overleaf is a collaborative cloud-based LaTeX editor used for writing, editing and publishing scientific documents.
  • Obsidian-Gitsync-Perlite - Continuously sync Obsidian markdown notes from GitHub and publish it for the webs.
  • Obsidian-Remote - This docker image allows you to run obsidian in docker as a container and access it via your web browser.
  • Memos - An open-source, self-hosted memo hub with knowledge management and social networking.

URL Shorteners

^ back to top ^

  • YOURLS - The de-facto standard self hosted URL shortener in PHP.

Blogging Platforms and Homepages

^ back to top ^

A blog is a discussion or informational website consisting of discrete, diary-style text entries (posts).

  • Ghost - Ghost is a free and open source blogging platform written in JavaScript and distributed under the MIT License, designed to simplify the process of online publishing for individual bloggers as well as online publications.
  • WordPress - WordPress is a free and open-source content management system written in hypertext preprocessor language and paired with a MySQL or MariaDB database with supported HTTPS.
  • Nginx + PHP - Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. Combined with PHP, a general-purpose scripting language geared toward web development, server-side functions can be implemented for the webs.

Communication - Social Networks, Forums and Video Conferencing

^ back to top ^

Social Networking and Forum software.

  • Rocket.Chat - Rocket.Chat is an open-source fully customizable communications platform developed in JavaScript for organizations with high standards of data protection.
  • Mattermost - Mattermost is an open source platform for secure collaboration across the entire software development lifecycle.
  • Answer - An open-source knowledge-based community software. You can use it quickly to build Q&A community for your products, customers, teams, and more.
  • Mirotalk P2P - Simple, Secure, Fast Real-Time Video Conferences Up to 4k and 60fps, compatible with all browsers and platforms.
  • Reactive-Resume - A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever.

E-commerce

^ back to top ^

E-commerce software.

  • EverShop - EverShop is a GraphQL Based and React ecommerce platform with essential commerce features. Built with React, modular and fully customizable.

Analytics

^ back to top ^

Analytics is the systematic computational analysis of data or statistics. It is used for the discovery, interpretation, and communication of meaningful patterns in data.

  • Matomo - Matomo is the leading Free/Libre open analytics platform.
  • Plausible - Simple, open-source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics.

Security & Privacy

^ back to top ^

Software that helps to increase security and privacy.

  • Nessus - Nessus is a proprietary vulnerability scanner developed by Tenable, Inc.
  • Greenbone - Greenbone is the world's most trusted provider of open source vulnerability management.
  • SonarQube - SonarQube is an open-source platform developed by SonarSource for continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs and code smells on 29 programming languages.
  • Fail2ban - Fail2ban is an intrusion prevention software framework. Written in the Python programming language, it is designed to prevent against brute-force attacks.
  • Tor-Browser - Running a Tor browser instance on any headless server.
  • Firefox - Firefox by linuxserver.io allows you to run the popular Firefox web broser on a remote server.
  • Bibliogram (deprecated) - Bibliogram is a private front-end frontend to Instagram, similar to Invidous.
  • Nitter - Nitter is an alternative front-end to Twitter, and was inspired by Invidious.
  • Unify Network Application - The Unifi-network-application software is a powerful, enterprise wireless software engine ideal for high-density client deployments requiring low latency and high uptime performance.

Wikis & Knowledge Base

^ back to top ^

A wiki is a publication collaboratively edited and managed by its own audience directly using a web browser.

  • Bookstack - BookStack is a free and open-source wiki software aimed for a simple, self-hosted, and easy-to-use platform.
  • Wiki.js - Wiki.js is an open source project that has been made possible due to the generous contributions by community backers.
  • Answer - An open-source knowledge-based community software. You can use it quickly to build Q&A community for your products, customers, teams, and more.
  • Obsidian-Remote - This docker image allows you to run obsidian in docker as a container and access it via your web browser.
  • Obsidian-Gitsync-Perlite - Continuously sync Obsidian markdown notes from GitHub and publish it for the webs.
  • Memos - An open-source, self-hosted memo hub with knowledge management and social networking.
  • HedgeDoc - HedgeDoc lets you create real-time collaborative markdown notes.

Money, Budgeting & Management

^ back to top ^

Money management and budgeting software.

  • TRSync - Django web frontend for pytr to download all Trade Republic depot data.
  • Money-Balancer - A simple application for managing debt with your friends!
  • Firefly III - A self-hosted manager for your personal finances.

Genealogy

^ back to top ^

Genealogy software used to record, organize, and publish genealogical data.

  • webtrees - webtrees is the web's leading online collaborative genealogy application. It allows you to view and edit your genealogy on your selfhosted website.
  • Gramps-Web - Gramps Web is a web app for collaborative genealogy. It is based on and interoperable with Gramps, the leading open source genealogy desktop application.

Asset Management

^ back to top ^

Asset management is a systematic approach to the governance and realization of all value for which a group or entity is responsible.

  • Domainmod - DomainMOD is an open source application used to manage your domains and other internet assets in a central location.
  • Snipe-IT - Snipe-IT is a free, open source IT asset management system written in PHP.

Request Bins

^ back to top ^

A request bin service allows one to collect and inspect HTTP requests. It may be used to create mock API endpoints or troubleshoot HTTP requests. Also used by security professionals to verify security vulnerabilities like Server Side Request Forgery (SSRF) and others.

  • RequestBin - RequestBin gives you a unique URL that collects HTTP requests for debugging and development purposes.
  • Webhook.site - Easily test HTTP webhooks with this handy tool that displays requests instantly.
  • Request-Baskets - HTTP requests collector to test webhooks, notifications, REST clients and more.
  • Mockbin - Mock, Test & Track HTTP Requests and Response for Microservices.

Games and Control Servers

^ back to top ^

Multiplayer game servers, browser games and utilities for managing game servers.

  • cs2-dedicated-server - CS2 Dedicated Server Docker Image with an RCON web-based control panel.
  • posio - A multiplayer geography game using Websockets.
  • Monkeytype - The most customizable typing website with a minimalistic design and a ton of features. Test yourself in various modes, track your progress and improve your speed.

Miscellaneous

^ back to top ^

Software that does not fit in another section.

  • Network-Multitool - Multi-arch multitool for container network troubleshooting.
  • IT-Tools - Collection of handy online tools for developers, with great UX.

🌟 Star History

Star History Chart

🧑‍🤝‍🧑 Join the Community!

Many thanks to all contributors that help maintaining and improving this repo: