Compare commits

..

6 Commits

Author SHA1 Message Date
2389c0eb00 feat: add MongoDB service to README for documentation completeness 2025-12-12 17:42:45 -05:00
4d0a0ce05d feat: add MongoDB and Mongo Express services to docker-compose configuration 2025-12-12 17:38:26 -05:00
635e6db7d8 docs: update README to improve container descriptions and add new services 2025-12-12 17:18:58 -05:00
120bd43cbc chore: update docker-compose configuration for open-webui service 2025-12-12 17:07:53 -05:00
23e5987799 feat: update ollama service configuration for NVIDIA support and environment variables
Only way I could mount my p100 gpu to ollama in docker container. Still had to install extra stuff on debian that was for ubuntu. Didn't feel right, did it anyways. Worked.
2025-12-12 17:07:09 -05:00
4b50114591 chore: update docker-compose configuration for Node-RED service 2025-12-12 17:05:47 -05:00
5 changed files with 226 additions and 136 deletions

View File

@@ -3,14 +3,16 @@
Welcome to my home server development repository! Over the past 4-5 years, Ive tested a wide variety of Docker containers for self-hosting and automation. This repo collects the containers Ive found most useful, though some may be missing or not actively maintained. My goal is to organize each container into its own folder with a `docker-compose.yml` for easy setup and backup. Some configurations contain private information and will be refined before public release. Welcome to my home server development repository! Over the past 4-5 years, Ive tested a wide variety of Docker containers for self-hosting and automation. This repo collects the containers Ive found most useful, though some may be missing or not actively maintained. My goal is to organize each container into its own folder with a `docker-compose.yml` for easy setup and backup. Some configurations contain private information and will be refined before public release.
Below is a list of containers Ive tested and recommend for various home server tasks.
- [adguard](./docker-compose/adguard) - [adguard](./docker-compose/adguard)
*Network-wide ad blocker and privacy protection.* *Network-wide ad blocker and privacy protection.*
- [airdcpp](./docker-compose/airdcpp)
*Advanced Direct Connect client.*
- [amule](./docker-compose/amule) - [amule](./docker-compose/amule)
*Peer-to-peer file sharing client for the eDonkey network.* *Peer-to-peer file sharing client for the eDonkey network.*
- [apprise](./docker-compose/apprise) - [apprise](./docker-compose/apprise)
*Unified notification service for multiple platforms.* *Unified notification service for multiple platforms.*
- [aria2](./docker-compose/aria2)
*Lightweight multi-protocol & multi-source command-line download utility.*
- [audiobookshelf](./docker-compose/audiobookshelf) - [audiobookshelf](./docker-compose/audiobookshelf)
*Self-hosted audiobook server and web player.* *Self-hosted audiobook server and web player.*
- [authelia](./docker-compose/authelia) - [authelia](./docker-compose/authelia)
@@ -19,14 +21,18 @@ Below is a list of containers Ive tested and recommend for various home serve
*Subtitle management for Radarr and Sonarr.* *Subtitle management for Radarr and Sonarr.*
- [beets](./docker-compose/beets) - [beets](./docker-compose/beets)
*Music library organizer and tagger.* *Music library organizer and tagger.*
- [btcpayserver](./docker-compose/btcpayserver)
*Self-hosted Bitcoin payment processor.*
- [calibre](./docker-compose/calibre) - [calibre](./docker-compose/calibre)
*E-book management software.* *E-book management software.*
- [calibre-web](./docker-compose/calibre-web) - [calibre-web](./docker-compose/calibre-web)
*Web-based interface for Calibre e-book library.* *Web-based interface for Calibre e-book library.*
- [chd-converter](./docker-compose/chd-converter) - [chd-converter](./docker-compose/chd-converter)
*Tool for converting playstation disk images to CHD format.* *Tool for converting PlayStation disk images to CHD format.*
- [code-server](./docker-compose/code-server) - [code-server](./docker-compose/code-server)
*VS Code running on a remote server accessible through the browser.* *VS Code running on a remote server accessible through the browser.*
- [dashy](./docker-compose/dashy)
*Self-hosted dashboard app for organizing links and services.*
- [ddclient](./docker-compose/ddclient) - [ddclient](./docker-compose/ddclient)
*Dynamic DNS update client.* *Dynamic DNS update client.*
- [deemix](./docker-compose/deemix) - [deemix](./docker-compose/deemix)
@@ -41,12 +47,22 @@ Below is a list of containers Ive tested and recommend for various home serve
*Distributed search and analytics engine.* *Distributed search and analytics engine.*
- [filebrowser](./docker-compose/filebrowser) - [filebrowser](./docker-compose/filebrowser)
*Web-based file manager for your server.* *Web-based file manager for your server.*
- [filedrop](./docker-compose/filedrop)
*Simple file sharing app.*
- [filegator](./docker-compose/filegator)
*Web-based file manager.*
- [flaresolverr](./docker-compose/flaresolverr) - [flaresolverr](./docker-compose/flaresolverr)
*Proxy server to bypass Cloudflare protection.* *Proxy server to bypass Cloudflare protection.*
- [foundryvtt](./docker-compose/foundryvtt)
*Virtual Tabletop for RPGs.*
- [freshrss](./docker-compose/freshrss)
*Self-hosted RSS feed aggregator.*
- [gamevault](./docker-compose/gamevault) - [gamevault](./docker-compose/gamevault)
*Game library manager.* *Game library manager.*
- [gameyfin](./docker-compose/gameyfin) - [gameyfin](./docker-compose/gameyfin)
*Game streaming server.* *Game streaming server.*
- [ghostfolio](./docker-compose/ghostfolio)
*Personal finance management.*
- [gitea](./docker-compose/gitea) - [gitea](./docker-compose/gitea)
*Self-hosted Git service.* *Self-hosted Git service.*
- [glances](./docker-compose/glances) - [glances](./docker-compose/glances)
@@ -71,6 +87,10 @@ Below is a list of containers Ive tested and recommend for various home serve
*HomeKit support for non-Apple devices.* *HomeKit support for non-Apple devices.*
- [immich](./docker-compose/immich) - [immich](./docker-compose/immich)
*Self-hosted photo and video backup solution.* *Self-hosted photo and video backup solution.*
- [iptv-org-epg](./docker-compose/iptv-org-epg)
*EPG for IPTV.*
- [it-tools](./docker-compose/it-tools)
*Handy web-based tools for developers.*
- [jackett](./docker-compose/jackett) - [jackett](./docker-compose/jackett)
*API support for torrent indexers.* *API support for torrent indexers.*
- [jdownloader](./docker-compose/jdownloader) - [jdownloader](./docker-compose/jdownloader)
@@ -81,8 +101,12 @@ Below is a list of containers Ive tested and recommend for various home serve
*Note-taking and to-do application.* *Note-taking and to-do application.*
- [jupyter](./docker-compose/jupyter) - [jupyter](./docker-compose/jupyter)
*Interactive notebooks for code and data.* *Interactive notebooks for code and data.*
- [karakeep](./docker-compose/karakeep)
*Self-hosted note-taking app.*
- [kometa](./docker-compose/kometa) - [kometa](./docker-compose/kometa)
*Media library metadata manager.* *Media library metadata manager.*
- [lancommander](./docker-compose/lancommander)
*LAN party management tool.*
- [lazylibrarian](./docker-compose/lazylibrarian) - [lazylibrarian](./docker-compose/lazylibrarian)
*Book download and management tool.* *Book download and management tool.*
- [libation](./docker-compose/libation) - [libation](./docker-compose/libation)
@@ -95,8 +119,6 @@ Below is a list of containers Ive tested and recommend for various home serve
*General purpose mail server.* *General purpose mail server.*
- [mariadb](./docker-compose/mariadb) - [mariadb](./docker-compose/mariadb)
*Open-source relational database.* *Open-source relational database.*
- [mastadon](./docker-compose/mastadon)
*Decentralized social network server.*
- [mastodon](./docker-compose/mastodon) - [mastodon](./docker-compose/mastodon)
*Decentralized social network server.* *Decentralized social network server.*
- [mealie](./docker-compose/mealie) - [mealie](./docker-compose/mealie)
@@ -105,6 +127,8 @@ Below is a list of containers Ive tested and recommend for various home serve
*Open-source media content management system.* *Open-source media content management system.*
- [minecraft-paper_itzg](./docker-compose/minecraft-paper_itzg) - [minecraft-paper_itzg](./docker-compose/minecraft-paper_itzg)
*Minecraft Paper server by itzg.* *Minecraft Paper server by itzg.*
- [mixpost](./docker-compose/mixpost)
*Social media scheduling platform.*
- [mkvtoolnix](./docker-compose/mkvtoolnix) - [mkvtoolnix](./docker-compose/mkvtoolnix)
*Tools for working with Matroska media files.* *Tools for working with Matroska media files.*
- [mongodb](./docker-compose/mongodb) - [mongodb](./docker-compose/mongodb)
@@ -121,6 +145,8 @@ Below is a list of containers Ive tested and recommend for various home serve
*Network boot server for OS installations.* *Network boot server for OS installations.*
- [nginxproxymanager](./docker-compose/nginxproxymanager) - [nginxproxymanager](./docker-compose/nginxproxymanager)
*Web proxy management with a GUI.* *Web proxy management with a GUI.*
- [nicotineplus](./docker-compose/nicotineplus)
*Soulseek client. Download music, tv, movies, ebooks, and more.*
- [node-red](./docker-compose/node-red) - [node-red](./docker-compose/node-red)
*Flow-based programming for IoT.* *Flow-based programming for IoT.*
- [nostr-relay](./docker-compose/nostr-relay) - [nostr-relay](./docker-compose/nostr-relay)
@@ -129,10 +155,16 @@ Below is a list of containers Ive tested and recommend for various home serve
*Notification integration for media servers.* *Notification integration for media servers.*
- [nzbget](./docker-compose/nzbget) - [nzbget](./docker-compose/nzbget)
*Usenet downloader.* *Usenet downloader.*
- [ollama](./docker-compose/ollama)
*Run large language models locally.*
- [ombi](./docker-compose/ombi) - [ombi](./docker-compose/ombi)
*Media request management for Plex/Emby/Jellyfin.* *Media request management for Plex/Emby/Jellyfin.*
- [omni-tools](./docker-compose/omni-tools)
*Collection of useful tools.*
- [open-assistant](./docker-compose/open-assistant) - [open-assistant](./docker-compose/open-assistant)
*Open-source AI assistant.* *Open-source AI assistant.*
- [open-webui](./docker-compose/open-webui)
*Web UI for LLMs.*
- [openbooks](./docker-compose/openbooks) - [openbooks](./docker-compose/openbooks)
*Book search and download tool.* *Book search and download tool.*
- [organizr](./docker-compose/organizr) - [organizr](./docker-compose/organizr)
@@ -153,14 +185,14 @@ Below is a list of containers Ive tested and recommend for various home serve
*Plex Media Server Docker image.* *Plex Media Server Docker image.*
- [podgrab](./docker-compose/podgrab) - [podgrab](./docker-compose/podgrab)
*Podcast downloader and manager.* *Podcast downloader and manager.*
- [portainer](./docker-compose/portainer)
*Docker management GUI.*
- [portainer-be](./docker-compose/portainer-be) - [portainer-be](./docker-compose/portainer-be)
*Portainer backend service.* *Portainer backend service.*
- [portainer-ce](./docker-compose/portainer-ce) - [portainer-ce](./docker-compose/portainer-ce)
*Portainer Community Edition.* *Portainer Community Edition.*
- [postgres_data](./docker-compose/postgres_data) - [postgres](./docker-compose/postgres)
*PostgreSQL database data container.* *PostgreSQL database.*
- [postiz](./docker-compose/postiz)
*Post management tool.*
- [prometheus](./docker-compose/prometheus) - [prometheus](./docker-compose/prometheus)
*Monitoring and alerting toolkit.* *Monitoring and alerting toolkit.*
- [prowlarr](./docker-compose/prowlarr) - [prowlarr](./docker-compose/prowlarr)
@@ -173,18 +205,22 @@ Below is a list of containers Ive tested and recommend for various home serve
*Webmail client.* *Webmail client.*
- [readarr](./docker-compose/readarr) - [readarr](./docker-compose/readarr)
*Book collection manager for Usenet and torrents.* *Book collection manager for Usenet and torrents.*
- [readarr-audio](./docker-compose/readarr-audio)
*Audio book collection manager.*
- [recyclarr](./docker-compose/recyclarr) - [recyclarr](./docker-compose/recyclarr)
*Syncs trash/recycle settings for media managers.* *Syncs trash/recycle settings for media managers.*
- [requestrr](./docker-compose/requestrr)
*Discord bot for media requests.*
- [romm](./docker-compose/romm) - [romm](./docker-compose/romm)
*Retro game manager.* *Retro game manager.*
- [romvault](./docker-compose/romvault) - [romvault](./docker-compose/romvault)
*ROM management and auditing tool.* *ROM management and auditing tool.*
- [sabnzbd](./docker-compose/sabnzbd) - [sabnzbd](./docker-compose/sabnzbd)
*Usenet binary downloader.* *Usenet binary downloader.*
- [searxng](./docker-compose/searxng)
*Privacy-respecting metasearch engine.*
- [shoutrrr](./docker-compose/shoutrrr) - [shoutrrr](./docker-compose/shoutrrr)
*Notification library for various services.* *Notification library for various services.*
- [sociaboard](./docker-compose/sociaboard)
*Social media management platform.*
- [sonarr](./docker-compose/sonarr) - [sonarr](./docker-compose/sonarr)
*TV series collection manager for Usenet and torrents.* *TV series collection manager for Usenet and torrents.*
- [soulseek](./docker-compose/soulseek) - [soulseek](./docker-compose/soulseek)
@@ -215,12 +251,12 @@ Below is a list of containers Ive tested and recommend for various home serve
*TV streaming server for DVB, ATSC, IPTV.* *TV streaming server for DVB, ATSC, IPTV.*
- [unpackerr](./docker-compose/unpackerr) - [unpackerr](./docker-compose/unpackerr)
*Automated extraction of archives for media managers.* *Automated extraction of archives for media managers.*
- [vocechat](./docker-compose/vocechat)
*Self-hosted chat platform.*
- [vscodium](./docker-compose/vscodium) - [vscodium](./docker-compose/vscodium)
*Open-source build of VS Code.* *Open-source build of VS Code.*
- [watchtower](./docker-compose/watchtower) - [watchtower](./docker-compose/watchtower)
*Automatic update for Docker containers.* *Automatic update for Docker containers.*
- [web-dev-compose.yml](./docker-compose/web-dev-compose.yml)
*Web development Docker Compose setup.*
- [webgrabplus](./docker-compose/webgrabplus) - [webgrabplus](./docker-compose/webgrabplus)
*EPG (Electronic Program Guide) grabber.* *EPG (Electronic Program Guide) grabber.*
- [wg-easy](./docker-compose/wg-easy) - [wg-easy](./docker-compose/wg-easy)

View File

@@ -0,0 +1,44 @@
# Use root/example as user/password credentials
version: '3.1'
services:
mongo-db:
image: mongo
container_name: mongo-db
restart: always
environment:
UID: 1000
GID: 1006
MONGO_INITDB_ROOT_USERNAME: yourusername
MONGO_INITDB_ROOT_PASSWORD: ChangeMe123!
volumes:
- /docker-containers/mongodb/db:/data/db
- /docker-containers/mongodb/configdb:/data/configdb
- /docker-containers/mongodb/backup:/data/sickbackup
stdin_open: true
tty: true
networks:
homelab: # Specifying the network to join, simple way
aliases:
- mongo # how to add multiple aliases
- mongo-db
- mongodb
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: yourusername
ME_CONFIG_MONGODB_ADMINPASSWORD: ChangeMe123!
ME_CONFIG_MONGODB_URL: mongodb://yourusername:ChangeMe123!@mongo:27017/
ME_CONFIG_BASICAUTH_USERNAME: yourusername
ME_CONFIG_BASICAUTH_PASSWORD: ChangeMe123
networks:
- homelab # Specifying the network to join, simple way
networks: # I don't know why but you have to specify the network 2x. In service, and in this tag area..
# some-network:
homelab: # Sub-section, any network name or 'default' to edit default one created
# name: homelab # Networks can also be given a custom name, not needed if existing
external: true # This option causes compose to join the above network instead of making a _default one

View File

@@ -9,18 +9,21 @@ version: "3.7"
services: services:
node-red: node-red:
image: nodered/node-red:latest image: nodered/node-red:latest
container_name: node-red
#image: nodered/node-red:2.2.3-12@sha256:051cdb78937b7396d5be102e575b3b47322bfa48efad5aeb0d86d0a3bef22d22 // armv7 version works for raspberry pi, apparently isn't very good at seeing whether 32 or 64 bit #image: nodered/node-red:2.2.3-12@sha256:051cdb78937b7396d5be102e575b3b47322bfa48efad5aeb0d86d0a3bef22d22 // armv7 version works for raspberry pi, apparently isn't very good at seeing whether 32 or 64 bit
environment: environment:
- TZ=America/New_York - TZ=America/New_York
- NODE_RED_CREDENTIAL_SECRET=YourEncryptedString
ports: ports:
- "1880:1880" - "1880:1880"
networks:
- node-red-net
volumes: volumes:
- /docker-containers/node-red:/data - /docker-containers/node-red/data:/data
networks:
homelab:
aliases:
- nodered
networks: # I don't know why but you have to specify the network 2x. In service, and in this tag area..
homelab:
name: homelab # Networks can also be given a custom name
external: true # This option causes compose to join the above network instead of making a _default one
volumes:
node-red-data:
networks:
node-red-net:

View File

@@ -6,13 +6,20 @@ services:
volumes: volumes:
- /docker-containers/ollama/code:/code - /docker-containers/ollama/code:/code
- /docker-containers/ollama/data:/root/.ollama - /docker-containers/ollama/data:/root/.ollama
# - /usr/local/cuda:/usr/local/cuda:ro # <-- mount CUDA runtime from host maybe
container_name: ollama container_name: ollama
pull_policy: always
tty: true tty: true
restart: always restart: always
environment: environment:
- OLLAMA_KEEP_ALIVE=24h - OLLAMA_KEEP_ALIVE=24h
- OLLAMA_HOST=0.0.0.0 - OLLAMA_HOST=0.0.0.0
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
# devices:
# - /dev/nvidia0:/dev/nvidia0
# - /dev/nvidiactl:/dev/nvidiactl
# - /dev/nvidia-uvm:/dev/nvidia-uvm
runtime: nvidia
networks: networks:
- homelab - homelab

View File

@@ -1,7 +1,7 @@
version: "3.8" version: "3.8"
services: services:
open-webui: open-webui:
image: ghcr.io/open-webui/open-webui:v0.6.36 image: ghcr.io/open-webui/open-webui:latest
container_name: open-webui container_name: open-webui
restart: unless-stopped restart: unless-stopped
@@ -12,7 +12,7 @@ services:
- MODEL_SERVER_URL=http://ollama:11434 - MODEL_SERVER_URL=http://ollama:11434
- PROVIDER=ollama,openai - PROVIDER=ollama,openai
- OPENAI_API_KEY=YourAPIKEY - OPENAI_API_KEY=YourAPIKEY
# This variable is required to be set, otherwise you may experience Websocket issues, doesn't fix my issues tho # With below set, and turning off basic auth in nginx, I was able to get reverse proxy working
- CORS_ALLOW_ORIGIN=https://open-webui.example.com;https://example.com;http://open-webui;http://open-webui:8080;https://open-webui:8080;http://192.168.1.239;http://192.168.1.239:3030;http://localhost:3030;http://192.168.1.1:80;http://192.168.1.1:443 - CORS_ALLOW_ORIGIN=https://open-webui.example.com;https://example.com;http://open-webui;http://open-webui:8080;https://open-webui:8080;http://192.168.1.239;http://192.168.1.239:3030;http://localhost:3030;http://192.168.1.1:80;http://192.168.1.1:443
- WEBUI_URL=https://open-webui.example.com;https://example.com;http://open-webui;http://open-webui:8080;https://open-webui:8080;http://192.168.1.239;http://192.168.1.239:3030;http://localhost:3030;http://192.168.1.1:80;http://192.168.1.1:443 - WEBUI_URL=https://open-webui.example.com;https://example.com;http://open-webui;http://open-webui:8080;https://open-webui:8080;http://192.168.1.239;http://192.168.1.239:3030;http://localhost:3030;http://192.168.1.1:80;http://192.168.1.1:443
@@ -36,7 +36,7 @@ services:
- open-wui - open-wui
openwebui_net: openwebui_net:
aliases: aliases:
- openwebui_internal - openwebui_internal # to connect to redis network, and not redis connect to homelab anymore (multi redis)
depends_on: depends_on:
- redis-valkey-webui - redis-valkey-webui