{
  "actual-budget": {
    "category": "Finance",
    "version": 1,
    "name": "Actual Budget",
    "port": 5006,
    "description": "Actual Budget is a privacy-focused personal finance and budgeting app with local-first data sync.",
    "website": "https://actualbudget.org",
    "dockerImage": "docker.io/actualbudget/actual-server:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "actual-budget-data": "/data"
    },
    "dockerEnvironment": {}
  },
  "adminer": {
    "category": "Database",
    "version": 1,
    "name": "Adminer",
    "port": 8080,
    "description": "Adminer is a compact web interface for managing SQL databases.",
    "website": "https://www.adminer.org",
    "dockerImage": "docker.io/adminer:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {},
    "dockerEnvironment": {}
  },
  "audiobookshelf": {
    "category": "Media",
    "version": 1,
    "name": "Audiobookshelf",
    "port": 80,
    "description": "Audiobookshelf is a self-hosted server for audiobooks and podcasts with progress syncing.",
    "website": "https://www.audiobookshelf.org",
    "dockerImage": "ghcr.io/advplyr/audiobookshelf:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "audiobookshelf-config:/config",
      "audiobookshelf-metadata:/metadata",
      "$REQUIRED:/audiobooks",
      "$REQUIRED:/podcasts"
    ],
    "dockerEnvironment": {
      "TZ": "$TIMEZONE"
    }
  },
  "bazarr": {
    "category": "Media",
    "version": 1,
    "name": "Bazarr",
    "port": 6767,
    "description": "Bazarr manages and downloads subtitles for Sonarr and Radarr libraries.",
    "website": "https://www.bazarr.media",
    "dockerImage": "docker.io/linuxserver/bazarr:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "bazarr-config:/config",
      "$REQUIRED:/movies",
      "$REQUIRED:/tv"
    ],
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "beszel": {
    "category": "Monitoring",
    "version": 1,
    "name": "Beszel",
    "port": 8090,
    "description": "Beszel is a lightweight server monitoring hub with historical metrics and alerts.",
    "website": "https://beszel.dev",
    "dockerImage": "docker.io/henrygd/beszel:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "beszel-data": "/beszel_data"
    },
    "dockerEnvironment": {}
  },
  "calibre-web": {
    "category": "Media",
    "version": 1,
    "name": "Calibre-Web",
    "port": 8083,
    "description": "Calibre-Web provides a clean browser interface for browsing, reading, and downloading ebooks.",
    "website": "https://github.com/janeczku/calibre-web",
    "dockerImage": "docker.io/linuxserver/calibre-web:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "calibre-web-config:/config",
      "$REQUIRED:/books"
    ],
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "changedetection": {
    "category": "Automation",
    "version": 1,
    "name": "changedetection.io",
    "port": 5000,
    "description": "changedetection.io watches web pages and notifies you when their content changes.",
    "website": "https://changedetection.io",
    "dockerImage": "docker.io/dgtlmoon/changedetection.io:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "changedetection-data": "/datastore"
    },
    "dockerEnvironment": {
      "TZ": "$TIMEZONE"
    }
  },
  "couchdb": {
    "category": "Database",
    "version": 1,
    "name": "Apache CouchDB",
    "port": 5984,
    "description": "Apache CouchDB is a document database with an HTTP API and a built-in administration interface.",
    "website": "https://couchdb.apache.org",
    "dockerImage": "docker.io/couchdb:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "couchdb-data": "/opt/couchdb/data"
    },
    "dockerEnvironment": {
      "COUCHDB_USER": "$REQUIRED",
      "COUCHDB_PASSWORD": "$REQUIRED"
    }
  },
  "dashy": {
    "category": "Dashboard",
    "version": 1,
    "name": "Dashy",
    "port": 8080,
    "description": "Dashy is a highly customizable dashboard for organizing self-hosted services and links.",
    "website": "https://dashy.to",
    "dockerImage": "docker.io/lissy93/dashy:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "dashy-config": "/app/user-data"
    },
    "dockerEnvironment": {
      "NODE_ENV": "production"
    }
  },
  "diagrams-net": {
    "category": "Productivity",
    "version": 1,
    "name": "diagrams.net",
    "port": 8080,
    "description": "diagrams.net is a browser-based diagramming tool for flowcharts, architecture, and technical drawings.",
    "website": "https://www.diagrams.net",
    "dockerImage": "docker.io/jgraph/drawio:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {},
    "dockerEnvironment": {}
  },
  "directus": {
    "category": "Development",
    "version": 1,
    "name": "Directus",
    "port": 8055,
    "description": "Directus turns a SQL database into a real-time API and no-code data management app.",
    "website": "https://directus.io",
    "dockerImage": "docker.io/directus/directus:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "directus-database": "/directus/database",
      "directus-uploads": "/directus/uploads",
      "directus-extensions": "/directus/extensions"
    },
    "dockerEnvironment": {
      "SECRET": "$REQUIRED",
      "DB_CLIENT": "sqlite3",
      "DB_FILENAME": "/directus/database/data.db"
    }
  },
  "excalidraw": {
    "category": "Productivity",
    "version": 1,
    "name": "Excalidraw",
    "port": 80,
    "description": "Excalidraw is a collaborative whiteboard for sketching diagrams with a hand-drawn look.",
    "website": "https://excalidraw.com",
    "dockerImage": "docker.io/excalidraw/excalidraw:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {},
    "dockerEnvironment": {}
  },
  "filebrowser": {
    "category": "Storage",
    "version": 1,
    "name": "File Browser",
    "port": 80,
    "description": "File Browser provides a web file manager for uploading, organizing, editing, and sharing files.",
    "website": "https://filebrowser.org",
    "dockerImage": "docker.io/filebrowser/filebrowser:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "filebrowser-data:/database",
      "$REQUIRED:/srv"
    ],
    "dockerEnvironment": {}
  },
  "forgejo": {
    "category": "Development",
    "version": 1,
    "name": "Forgejo",
    "port": 3000,
    "description": "Forgejo is a lightweight, community-driven Git hosting service with issues, pull requests, and packages.",
    "website": "https://forgejo.org",
    "dockerImage": "codeberg.org/forgejo/forgejo:16",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "forgejo-data": "/data"
    },
    "dockerEnvironment": {
      "USER_UID": "1000",
      "USER_GID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "freshrss": {
    "category": "Productivity",
    "version": 1,
    "name": "FreshRSS",
    "port": 80,
    "description": "FreshRSS is a fast, extensible feed reader for following websites and podcasts.",
    "website": "https://freshrss.org",
    "dockerImage": "docker.io/freshrss/freshrss:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "freshrss-data": "/var/www/FreshRSS/data",
      "freshrss-extensions": "/var/www/FreshRSS/extensions"
    },
    "dockerEnvironment": {
      "TZ": "$TIMEZONE",
      "CRON_MIN": "3,33"
    }
  },
  "gitea": {
    "category": "Development",
    "version": 1,
    "name": "Gitea",
    "port": 3000,
    "description": "Gitea is a compact, self-hosted Git service with code review, issues, actions, and packages.",
    "website": "https://about.gitea.com",
    "dockerImage": "docker.io/gitea/gitea:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "gitea-data": "/data"
    },
    "dockerEnvironment": {
      "USER_UID": "1000",
      "USER_GID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "gotify": {
    "category": "Communication",
    "version": 1,
    "name": "Gotify",
    "port": 80,
    "description": "Gotify is a simple server for sending and receiving real-time push notifications.",
    "website": "https://gotify.net",
    "dockerImage": "docker.io/gotify/server:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "gotify-data": "/app/data"
    },
    "dockerEnvironment": {
      "TZ": "$TIMEZONE"
    }
  },
  "grafana": {
    "category": "Monitoring",
    "version": 1,
    "name": "Grafana",
    "port": 3000,
    "description": "Grafana provides dashboards and visualizations for metrics, logs, traces, and other observability data.",
    "website": "https://grafana.com",
    "dockerImage": "docker.io/grafana/grafana:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "grafana-storage": "/var/lib/grafana"
    },
    "dockerEnvironment": {}
  },
  "home-assistant": {
    "category": "Smart Home",
    "version": 1,
    "name": "Home Assistant",
    "port": 8123,
    "description": "Home Assistant is an open-source home automation platform focused on local control and privacy.",
    "website": "https://www.home-assistant.io",
    "dockerImage": "docker.io/homeassistant/home-assistant:stable",
    "dockerPorts": [],
    "dockerNetworkMode": "host",
    "dockerVolumes": {
      "home-assistant-config": "/config",
      "/run/dbus": "/run/dbus:ro"
    },
    "dockerEnvironment": {
      "TZ": "$TIMEZONE"
    },
    "dockerPrivileged": true
  },
  "homey-shs": {
    "category": "Smart Home",
    "version": 1,
    "name": "Homey Self-Hosted Server",
    "port": 4859,
    "description": "Homey Self-Hosted Server allows you to control all your smart home devices locally without relying on the cloud.",
    "website": "https://homey.app",
    "dockerImage": "ghcr.io/athombv/homey-shs:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "host",
    "dockerVolumes": [
      "$REQUIRED:/homey/user"
    ],
    "dockerEnvironment": {},
    "dockerPrivileged": true
  },
  "influxdb": {
    "category": "Database",
    "version": 1,
    "name": "InfluxDB",
    "port": 8086,
    "description": "InfluxDB is a time-series database for metrics, events, and real-time analytics.",
    "website": "https://www.influxdata.com",
    "dockerImage": "docker.io/influxdb:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "influxdb-data": "/var/lib/influxdb2",
      "influxdb-config": "/etc/influxdb2"
    },
    "dockerEnvironment": {}
  },
  "it-tools": {
    "category": "Utilities",
    "version": 1,
    "name": "IT-Tools",
    "port": 80,
    "description": "IT-Tools collects useful developer and system-administrator utilities in one browser app.",
    "website": "https://it-tools.tech",
    "dockerImage": "docker.io/corentinth/it-tools:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {},
    "dockerEnvironment": {}
  },
  "jackett": {
    "category": "Media",
    "version": 1,
    "name": "Jackett",
    "port": 9117,
    "description": "Jackett translates tracker queries into a consistent indexer API for media applications.",
    "website": "https://github.com/Jackett/Jackett",
    "dockerImage": "docker.io/linuxserver/jackett:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "jackett-config:/config",
      "$REQUIRED:/downloads"
    ],
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "jellyfin": {
    "category": "Media",
    "version": 1,
    "name": "Jellyfin",
    "port": 8096,
    "description": "Jellyfin is a free media server for organizing and streaming movies, shows, music, and photos.",
    "website": "https://jellyfin.org",
    "dockerImage": "docker.io/jellyfin/jellyfin:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "jellyfin-config:/config",
      "jellyfin-cache:/cache",
      "$REQUIRED:/media"
    ],
    "dockerEnvironment": {
      "TZ": "$TIMEZONE"
    }
  },
  "jellyseerr": {
    "category": "Media",
    "version": 1,
    "name": "Jellyseerr",
    "port": 5055,
    "description": "Jellyseerr manages media requests and integrates with Jellyfin, Sonarr, and Radarr.",
    "website": "https://docs.jellyseerr.dev",
    "dockerImage": "ghcr.io/fallenbagel/jellyseerr:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "jellyseerr-config": "/app/config"
    },
    "dockerEnvironment": {
      "LOG_LEVEL": "info",
      "TZ": "$TIMEZONE"
    }
  },
  "jenkins": {
    "category": "Development",
    "version": 1,
    "name": "Jenkins",
    "port": 8080,
    "description": "Jenkins is an extensible automation server for building, testing, and deploying software.",
    "website": "https://www.jenkins.io",
    "dockerImage": "docker.io/jenkins/jenkins:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "jenkins-home": "/var/jenkins_home"
    },
    "dockerEnvironment": {}
  },
  "kavita": {
    "category": "Media",
    "version": 1,
    "name": "Kavita",
    "port": 5000,
    "description": "Kavita is a fast, cross-platform reading server for comics, manga, and ebooks.",
    "website": "https://www.kavitareader.com",
    "dockerImage": "docker.io/jvmilazz0/kavita:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "kavita-config:/kavita/config",
      "$REQUIRED:/books"
    ],
    "dockerEnvironment": {
      "TZ": "$TIMEZONE"
    }
  },
  "komga": {
    "category": "Media",
    "version": 1,
    "name": "Komga",
    "port": 25600,
    "description": "Komga is a media server for comics, manga, magazines, and ebooks.",
    "website": "https://komga.org",
    "dockerImage": "docker.io/gotson/komga:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "komga-config:/config",
      "$REQUIRED:/data"
    ],
    "dockerEnvironment": {
      "TZ": "$TIMEZONE"
    }
  },
  "librespeed": {
    "category": "Monitoring",
    "version": 1,
    "name": "LibreSpeed",
    "port": 80,
    "description": "LibreSpeed is a lightweight, self-hosted browser speed test with no external dependencies.",
    "website": "https://github.com/librespeed/speedtest",
    "dockerImage": "docker.io/linuxserver/librespeed:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "librespeed-config": "/config"
    },
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE",
      "MODE": "standalone",
      "TELEMETRY": "false",
      "ENABLE_ID_OBFUSCATION": "true",
      "REDACT_IP_ADDRESSES": "false"
    }
  },
  "lidarr": {
    "category": "Media",
    "version": 1,
    "name": "Lidarr",
    "port": 8686,
    "description": "Lidarr is a music collection manager for Usenet and BitTorrent users.",
    "website": "https://lidarr.audio",
    "dockerImage": "docker.io/linuxserver/lidarr:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "lidarr-config:/config",
      "$REQUIRED:/music",
      "$REQUIRED:/downloads"
    ],
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "mealie": {
    "category": "Productivity",
    "version": 1,
    "name": "Mealie",
    "port": 9000,
    "description": "Mealie is a recipe manager and meal planner with shopping lists and recipe imports.",
    "website": "https://mealie.io",
    "dockerImage": "ghcr.io/mealie-recipes/mealie:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "mealie-data": "/app/data"
    },
    "dockerEnvironment": {
      "ALLOW_SIGNUP": "false",
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "memos": {
    "category": "Productivity",
    "version": 1,
    "name": "Memos",
    "port": 5230,
    "description": "Memos is a lightweight, privacy-first note-taking service for quickly capturing ideas.",
    "website": "https://www.usememos.com",
    "dockerImage": "ghcr.io/usememos/memos:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "memos-data": "/var/opt/memos"
    },
    "dockerEnvironment": {}
  },
  "mongodb": {
    "category": "Database",
    "version": 1,
    "name": "MongoDB",
    "port": 27017,
    "description": "MongoDB is a document-oriented database for flexible, JSON-like application data.",
    "website": "https://www.mongodb.com",
    "dockerImage": "docker.io/mongo:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "mongodb-data": "/data/db"
    },
    "dockerEnvironment": {}
  },
  "n8n": {
    "category": "Automation",
    "version": 1,
    "name": "n8n",
    "port": 5678,
    "description": "n8n is a workflow automation platform for connecting apps, APIs, and services.",
    "website": "https://n8n.io",
    "dockerImage": "docker.io/n8nio/n8n:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "n8n-data": "/home/node/.n8n"
    },
    "dockerEnvironment": {
      "TZ": "$TIMEZONE",
      "GENERIC_TIMEZONE": "$TIMEZONE",
      "N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS": "true"
    }
  },
  "navidrome": {
    "category": "Media",
    "version": 1,
    "name": "Navidrome",
    "port": 4533,
    "description": "Navidrome is a lightweight music server compatible with Subsonic clients.",
    "website": "https://www.navidrome.org",
    "dockerImage": "docker.io/deluan/navidrome:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "navidrome-data:/data",
      "$REQUIRED:/music:ro"
    ],
    "dockerEnvironment": {
      "ND_SCANSCHEDULE": "1h",
      "ND_LOGLEVEL": "info",
      "ND_SESSIONTIMEOUT": "24h"
    }
  },
  "nextcloud": {
    "category": "Storage",
    "version": 1,
    "name": "Nextcloud",
    "port": 80,
    "description": "Nextcloud provides private file sync, sharing, calendars, contacts, and collaboration.",
    "website": "https://nextcloud.com",
    "dockerImage": "docker.io/nextcloud:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "nextcloud-data": "/var/www/html"
    },
    "dockerEnvironment": {}
  },
  "nocodb": {
    "category": "Development",
    "version": 1,
    "name": "NocoDB",
    "port": 8080,
    "description": "NocoDB is an open-source no-code platform for building collaborative database applications.",
    "website": "https://nocodb.com",
    "dockerImage": "docker.io/nocodb/nocodb:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "nocodb-data": "/usr/app/data"
    },
    "dockerEnvironment": {}
  },
  "node-red": {
    "category": "Automation",
    "version": 1,
    "name": "Node-RED",
    "port": 1880,
    "description": "Node-RED is a flow-based development tool for connecting hardware devices, APIs, and online services.",
    "website": "https://nodered.org",
    "dockerImage": "docker.io/nodered/node-red:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "node-red-data": "/data"
    },
    "dockerEnvironment": {
      "TZ": "$TIMEZONE"
    }
  },
  "nzbget": {
    "category": "Downloads",
    "version": 1,
    "name": "NZBGet",
    "port": 6789,
    "description": "NZBGet is an efficient Usenet downloader with a responsive web interface.",
    "website": "https://nzbget.com",
    "dockerImage": "docker.io/linuxserver/nzbget:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "nzbget-config:/config",
      "$REQUIRED:/downloads"
    ],
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "ollama": {
    "category": "AI",
    "version": 1,
    "name": "Ollama",
    "port": 11434,
    "description": "Ollama runs open language and vision models locally through a simple API.",
    "website": "https://ollama.com",
    "dockerImage": "docker.io/ollama/ollama:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "ollama-data": "/root/.ollama"
    },
    "dockerEnvironment": {}
  },
  "open-webui": {
    "category": "AI",
    "version": 1,
    "name": "Open WebUI",
    "port": 8080,
    "description": "Open WebUI is a feature-rich, self-hosted interface for Ollama and OpenAI-compatible model APIs.",
    "website": "https://openwebui.com",
    "dockerImage": "ghcr.io/open-webui/open-webui:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "open-webui-data": "/app/backend/data"
    },
    "dockerEnvironment": {
      "OLLAMA_BASE_URL": "http://ollama:11434"
    }
  },
  "pairdrop": {
    "category": "Utilities",
    "version": 1,
    "name": "PairDrop",
    "port": 3000,
    "description": "PairDrop transfers files securely between nearby devices through a browser.",
    "website": "https://pairdrop.net",
    "dockerImage": "docker.io/linuxserver/pairdrop:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "pairdrop-config": "/config"
    },
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE",
      "RATE_LIMIT": "false",
      "WS_FALLBACK": "false"
    }
  },
  "photoprism": {
    "category": "Media",
    "version": 1,
    "name": "PhotoPrism",
    "port": 2342,
    "description": "PhotoPrism is an AI-powered photo app for browsing, organizing, and sharing personal collections.",
    "website": "https://www.photoprism.app",
    "dockerImage": "docker.io/photoprism/photoprism:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "photoprism-storage:/photoprism/storage",
      "$REQUIRED:/photoprism/originals",
      "$REQUIRED:/photoprism/import"
    ],
    "dockerEnvironment": {
      "PHOTOPRISM_AUTH_MODE": "password",
      "PHOTOPRISM_ADMIN_PASSWORD": "$REQUIRED",
      "PHOTOPRISM_SITE_CAPTION": "Photos",
      "PHOTOPRISM_DISABLE_TLS": "true",
      "PHOTOPRISM_DATABASE_DRIVER": "sqlite",
      "TZ": "$TIMEZONE"
    }
  },
  "pi-hole": {
    "category": "Internet",
    "version": 1,
    "name": "Pi-hole",
    "port": 80,
    "description": "Pi-hole is a network-wide ad blocker that acts as a DNS sinkhole.",
    "website": "https://pi-hole.net",
    "dockerImage": "docker.io/pihole/pihole:latest",
    "dockerPorts": [
      {
        "host": 53,
        "container": 53,
        "protocol": "tcp"
      },
      {
        "host": 53,
        "container": 53,
        "protocol": "udp"
      }
    ],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {},
    "dockerEnvironment": {
      "TZ": "$TIMEZONE"
    }
  },
  "pinchflat": {
    "category": "Downloads",
    "version": 1,
    "name": "Pinchflat",
    "port": 8945,
    "description": "Pinchflat automatically downloads and organizes YouTube content using yt-dlp.",
    "website": "https://github.com/kieraneglin/pinchflat",
    "dockerImage": "ghcr.io/kieraneglin/pinchflat:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "pinchflat-config:/config",
      "$REQUIRED:/downloads"
    ],
    "dockerEnvironment": {
      "TZ": "$TIMEZONE"
    }
  },
  "plex": {
    "category": "Media",
    "version": 1,
    "name": "Plex Media Server",
    "port": 32400,
    "description": "Plex organizes video, music, and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices.",
    "website": "https://plex.tv",
    "dockerImage": "docker.io/plexinc/pms-docker:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "plex-config:/config",
      "plex-transcode:/transcode",
      "$REQUIRED:/data"
    ],
    "dockerEnvironment": {
      "TZ": "$TIMEZONE"
    }
  },
  "privatebin": {
    "category": "Utilities",
    "version": 1,
    "name": "PrivateBin",
    "port": 8080,
    "description": "PrivateBin is a minimalist encrypted paste service where the server cannot read stored content.",
    "website": "https://privatebin.info",
    "dockerImage": "docker.io/privatebin/nginx-fpm-alpine:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "privatebin-data": "/srv/data"
    },
    "dockerEnvironment": {}
  },
  "prometheus": {
    "category": "Monitoring",
    "version": 1,
    "name": "Prometheus",
    "port": 9090,
    "description": "Prometheus collects time-series metrics and provides a powerful query language and alerting model.",
    "website": "https://prometheus.io",
    "dockerImage": "docker.io/prom/prometheus:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "prometheus-data": "/prometheus"
    },
    "dockerEnvironment": {}
  },
  "prowlarr": {
    "category": "Media",
    "version": 1,
    "name": "Prowlarr",
    "port": 9696,
    "description": "Prowlarr manages indexers and synchronizes them with Sonarr, Radarr, Lidarr, and Readarr.",
    "website": "https://prowlarr.com",
    "dockerImage": "docker.io/linuxserver/prowlarr:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "prowlarr-config": "/config"
    },
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "qbittorrent": {
    "category": "Downloads",
    "version": 1,
    "name": "qBittorrent",
    "port": 8080,
    "description": "qBittorrent is a lightweight BitTorrent client with a full-featured web interface.",
    "website": "https://www.qbittorrent.org",
    "dockerImage": "docker.io/linuxserver/qbittorrent:latest",
    "dockerPorts": [
      {
        "host": 6881,
        "container": 6881,
        "protocol": "tcp"
      },
      {
        "host": 6881,
        "container": 6881,
        "protocol": "udp"
      }
    ],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "qbittorrent-config:/config",
      "$REQUIRED:/downloads"
    ],
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE",
      "WEBUI_PORT": "8080",
      "TORRENTING_PORT": "6881"
    }
  },
  "radarr": {
    "category": "Media",
    "version": 1,
    "name": "Radarr",
    "port": 7878,
    "description": "Radarr is a movie collection manager for Usenet and BitTorrent users.",
    "website": "https://radarr.video",
    "dockerImage": "docker.io/linuxserver/radarr:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "radarr-config:/config",
      "$REQUIRED:/movies",
      "$REQUIRED:/downloads"
    ],
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "readarr": {
    "category": "Media",
    "version": 1,
    "name": "Readarr",
    "port": 8787,
    "description": "Readarr is an ebook and audiobook collection manager for Usenet and BitTorrent users.",
    "website": "https://readarr.com",
    "dockerImage": "docker.io/linuxserver/readarr:develop",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "readarr-config:/config",
      "$REQUIRED:/books",
      "$REQUIRED:/downloads"
    ],
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "redis": {
    "category": "Database",
    "version": 1,
    "name": "Redis",
    "port": 6379,
    "description": "Redis is an in-memory data store used for caching, queues, streaming, and fast application state.",
    "website": "https://redis.io",
    "dockerImage": "docker.io/redis:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "redis-data": "/data"
    },
    "dockerEnvironment": {}
  },
  "sabnzbd": {
    "category": "Downloads",
    "version": 1,
    "name": "SABnzbd",
    "port": 8080,
    "description": "SABnzbd automates downloading, verifying, repairing, extracting, and filing Usenet downloads.",
    "website": "https://sabnzbd.org",
    "dockerImage": "docker.io/linuxserver/sabnzbd:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "sabnzbd-config:/config",
      "$REQUIRED:/downloads",
      "$REQUIRED:/incomplete-downloads"
    ],
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "scrypted": {
    "category": "Smart Home",
    "version": 1,
    "name": "Scrypted",
    "port": 11080,
    "description": "Scrypted is a high-performance home video integration platform and NVR for cameras and smart-home ecosystems.",
    "website": "https://www.scrypted.app",
    "dockerImage": "docker.io/koush/scrypted:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "host",
    "dockerVolumes": {
      "scrypted-volume": "/server/volume"
    },
    "dockerEnvironment": {
      "TZ": "$TIMEZONE"
    },
    "dockerPrivileged": true
  },
  "searxng": {
    "category": "Internet",
    "version": 1,
    "name": "SearXNG",
    "port": 8080,
    "description": "SearXNG is a privacy-respecting metasearch engine that aggregates results from many search services.",
    "website": "https://docs.searxng.org",
    "dockerImage": "docker.io/searxng/searxng:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "searxng-config": "/etc/searxng"
    },
    "dockerEnvironment": {}
  },
  "shiori": {
    "category": "Productivity",
    "version": 1,
    "name": "Shiori",
    "port": 8080,
    "description": "Shiori is a simple bookmark manager with readable-page archiving and full-text search.",
    "website": "https://github.com/go-shiori/shiori",
    "dockerImage": "ghcr.io/go-shiori/shiori:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "shiori-data": "/srv/shiori"
    },
    "dockerEnvironment": {}
  },
  "sonarr": {
    "category": "Media",
    "version": 1,
    "name": "Sonarr",
    "port": 8989,
    "description": "Sonarr is a TV series collection manager for Usenet and BitTorrent users.",
    "website": "https://sonarr.tv",
    "dockerImage": "docker.io/linuxserver/sonarr:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "sonarr-config:/config",
      "$REQUIRED:/tv",
      "$REQUIRED:/downloads"
    ],
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "stirling-pdf": {
    "category": "Utilities",
    "version": 1,
    "name": "Stirling PDF",
    "port": 8080,
    "description": "Stirling PDF is a locally hosted toolbox for converting, editing, signing, and organizing PDF files.",
    "website": "https://www.stirlingpdf.com",
    "dockerImage": "docker.io/stirlingtools/stirling-pdf:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "stirling-data": "/usr/share/tessdata",
      "stirling-config": "/configs",
      "stirling-logs": "/logs"
    },
    "dockerEnvironment": {
      "SECURITY_ENABLELOGIN": "true",
      "SYSTEM_DEFAULTLOCALE": "en-GB"
    }
  },
  "syncthing": {
    "category": "Storage",
    "version": 1,
    "name": "Syncthing",
    "port": 8384,
    "description": "Syncthing continuously synchronizes files directly between your devices without a central cloud.",
    "website": "https://syncthing.net",
    "dockerImage": "docker.io/syncthing/syncthing:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "syncthing-config:/var/syncthing/config",
      "$REQUIRED:/var/syncthing/data"
    ],
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000"
    }
  },
  "tautulli": {
    "category": "Media",
    "version": 1,
    "name": "Tautulli",
    "port": 8181,
    "description": "Tautulli monitors Plex activity and provides viewing history, statistics, and notifications.",
    "website": "https://tautulli.com",
    "dockerImage": "docker.io/linuxserver/tautulli:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "tautulli-config": "/config"
    },
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "timescaledb": {
    "category": "Database",
    "version": 1,
    "name": "TimescaleDB",
    "port": 5432,
    "description": "TimescaleDB is a PostgreSQL extension optimized for time-series data and demanding analytical workloads.",
    "website": "https://www.timescale.com",
    "dockerImage": "docker.io/timescale/timescaledb:latest-pg17",
    "dockerPorts": [
      {
        "host": 5432,
        "container": 5432,
        "protocol": "tcp"
      }
    ],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "timescaledb-data": "/var/lib/postgresql/data"
    },
    "dockerEnvironment": {
      "POSTGRES_PASSWORD": "$REQUIRED"
    }
  },
  "transmission": {
    "category": "Downloads",
    "version": 1,
    "name": "Transmission",
    "port": 9091,
    "description": "Transmission is a fast, easy-to-use BitTorrent client with a clean web interface.",
    "website": "https://transmissionbt.com",
    "dockerImage": "docker.io/linuxserver/transmission:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": [
      "transmission-config:/config",
      "$REQUIRED:/downloads",
      "$REQUIRED:/watch"
    ],
    "dockerEnvironment": {
      "PUID": "1000",
      "PGID": "1000",
      "TZ": "$TIMEZONE"
    }
  },
  "trilium": {
    "category": "Productivity",
    "version": 1,
    "name": "TriliumNext Notes",
    "port": 8080,
    "description": "TriliumNext Notes is a hierarchical knowledge base with rich notes, scripting, and strong linking.",
    "website": "https://triliumnext.github.io/Docs/",
    "dockerImage": "docker.io/triliumnext/notes:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "trilium-data": "/home/node/trilium-data"
    },
    "dockerEnvironment": {
      "TZ": "$TIMEZONE"
    }
  },
  "uptime-kuma": {
    "category": "Monitoring",
    "version": 1,
    "name": "Uptime Kuma",
    "port": 3001,
    "description": "Uptime Kuma is a polished monitoring dashboard for websites, APIs, ports, and containers.",
    "website": "https://uptime.kuma.pet",
    "dockerImage": "docker.io/louislam/uptime-kuma:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "uptime-kuma-data": "/app/data"
    },
    "dockerEnvironment": {}
  },
  "vaultwarden": {
    "category": "Security",
    "version": 1,
    "name": "Vaultwarden",
    "port": 80,
    "description": "Vaultwarden is a resource-efficient, Bitwarden-compatible password manager server.",
    "website": "https://github.com/dani-garcia/vaultwarden",
    "dockerImage": "docker.io/vaultwarden/server:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "vaultwarden-data": "/data"
    },
    "dockerEnvironment": {
      "SIGNUPS_ALLOWED": "false",
      "WEBSOCKET_ENABLED": "true"
    }
  },
  "verdaccio": {
    "category": "Development",
    "version": 1,
    "name": "Verdaccio",
    "port": 4873,
    "description": "Verdaccio is a lightweight private npm proxy registry for JavaScript packages.",
    "website": "https://verdaccio.org",
    "dockerImage": "docker.io/verdaccio/verdaccio:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "verdaccio-storage": "/verdaccio/storage",
      "verdaccio-config": "/verdaccio/conf"
    },
    "dockerEnvironment": {}
  },
  "victoria-metrics": {
    "category": "Monitoring",
    "version": 1,
    "name": "VictoriaMetrics",
    "port": 8428,
    "description": "VictoriaMetrics is a fast, cost-effective time-series database and monitoring solution.",
    "website": "https://victoriametrics.com",
    "dockerImage": "docker.io/victoriametrics/victoria-metrics:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "victoria-metrics-data": "/victoria-metrics-data"
    },
    "dockerEnvironment": {}
  },
  "wg-easy": {
    "category": "Internet",
    "version": 1,
    "name": "wg-easy",
    "port": 51821,
    "description": "wg-easy provides a simple web interface for managing a WireGuard VPN server.",
    "website": "https://wg-easy.github.io/wg-easy/",
    "dockerImage": "ghcr.io/wg-easy/wg-easy:latest",
    "dockerPorts": [
      {
        "host": 51820,
        "container": 51820,
        "protocol": "udp"
      }
    ],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "wg-easy-data": "/etc/wireguard",
      "/lib/modules": "/lib/modules:ro"
    },
    "dockerEnvironment": {
      "INSECURE": "true"
    },
    "dockerCapabilities": [
      "NET_ADMIN",
      "SYS_MODULE"
    ]
  },
  "zigbee2mqtt": {
    "category": "Smart Home",
    "version": 1,
    "name": "Zigbee2MQTT",
    "port": 8080,
    "description": "Zigbee2MQTT bridges Zigbee devices to MQTT without requiring a proprietary gateway.",
    "website": "https://www.zigbee2mqtt.io",
    "dockerImage": "docker.io/koenkk/zigbee2mqtt:latest",
    "dockerPorts": [],
    "dockerNetworkMode": "bridge",
    "dockerVolumes": {
      "zigbee2mqtt-data": "/app/data",
      "/run/udev": "/run/udev:ro"
    },
    "dockerEnvironment": {
      "TZ": "$TIMEZONE"
    },
    "dockerPrivileged": true
  }
}