From 340866f9f4d89cb02b8cc47090124976b850b01c Mon Sep 17 00:00:00 2001 From: code Date: Thu, 16 Jul 2026 06:25:05 +0000 Subject: [PATCH] complete all stack READMEs to the 9-section template Existing content preserved and reordered to the canonical section order; missing sections generated from each stack's compose data (ports, volumes, env vars, image links). Fixes copy-paste errors in Dockhand sections (qbittorrent pointed at archivebox; invokeai/thunderbird said SERVICENAME) and persistant->persistent typos in gatus. Co-Authored-By: Claude Fable 5 --- archivebox/README.md | 26 +++++++++++- authentik_dev/README.md | 69 ++++++++++++++++++++++++++++++++ bazarr_dev/README.md | 4 ++ bookstack/README.md | 57 ++++++++++++++++++++++++++ directus_dev/README.md | 69 ++++++++++++++++++++++++++++++++ docmost_dev/README.md | 4 ++ duplicati_dev/README.md | 64 ++++++++++++++++++++++++++++- filebrowser_dev/README.md | 69 +++++++++++++++++++++++++++++--- firefly_dev/README.md | 53 ++++++++++++++++++++++++ gatus/README.md | 42 +++++++++++++------ gitea/README.md | 23 ++++++++++- handbrake_notes/README.md | 2 +- headscale_dev/README.md | 82 ++++++++++++++++++++++++++++---------- heimdall/README.md | 41 ++++++++++++++++++- homepage_dev/README.md | 50 +++++++++++++++++++++++ invoiceninja_dev/README.md | 77 +++++++++++++++++++++++++++++++++++ invokeai/README.md | 42 +++++++++++++------ jellyfin_dev/README.md | 61 ++++++++++++++++++++++++++++ jellyseerr_dev/README.md | 4 ++ lidarr_dev/README.md | 4 ++ listmonk/README.md | 23 ++++++++++- lubelogger_dev/README.md | 56 ++++++++++++++++++++++++++ mailhog_dev/README.md | 57 +++++++++++++++++++++++++- mariadb_dev/README.md | 62 +++++++++++++++++++++++++++- mealie_dev/README.md | 61 ++++++++++++++++++++++++++++ n8n/README.md | 61 ++++++++++++++++++---------- nextcloud/README.md | 61 +++++++++++++++++++++++++++- nocodb_dev/README.md | 53 +++++++++++++++++++++++- ollama/README.md | 67 ++++++++++++++++++++++++++++++- openarchiver_dev/README.md | 75 +++++++++++++++++++++++++++++++++- opencode/README.md | 79 ++++++++++++++++++++++++------------ paperless/README.md | 66 ++++++++++++++++++++++++++++++ peertube_dev/README.md | 63 +++++++++++++++++++++++++++++ penpot_dev/README.md | 64 +++++++++++++++++++++++++++++ pihole/README.md | 33 +++++++++++++++ poste_dev/README.md | 62 ++++++++++++++++++++++++++++ prowlarr_dev/README.md | 4 ++ qbittorrent/README.md | 75 ++++++++++++++++++++++++++++------ radarr_dev/README.md | 4 ++ readarr_dev/README.md | 4 ++ sonarr_dev/README.md | 4 ++ spotdl_dev/README.md | 4 ++ stash/README.md | 60 ++++++++++++++++++++++++++++ suitecrm_dev/README.md | 62 +++++++++++++++++++++++++++- thunderbird/README.md | 35 ++++++++++++++-- vscode/README.md | 40 ++++++++++++++++--- whisparr_dev/README.md | 4 ++ zammad_dev/README.md | 82 ++++++++++++++++++++++++++++++++++++++ 48 files changed, 2024 insertions(+), 140 deletions(-) diff --git a/archivebox/README.md b/archivebox/README.md index 1670c92..1a39104 100644 --- a/archivebox/README.md +++ b/archivebox/README.md @@ -12,21 +12,43 @@ ArchiveBox is a self-hosted app that lets you preserve content from websites in - **Documentation:** [Docs](https://github.com/ArchiveBox/ArchiveBox/wiki) - **Reverse Proxy Port:** `8000` +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8000 in your browser +3. Follow the initial setup wizard to configure the application + ## Environment Variable Notes - ARCHIVEBOX_IMAGE - you can lock the version like so: ```archivebox/archivebox:sha-1d49bee``` +ARCHIVEBOX_IMAGE - you can lock the version like so: ```archivebox/archivebox:sha-1d49bee``` ARCHIVEBOX_UID - User 1000 ARCHIVEBOX_GID - Group 1000 PYTHONUNBUFFERED - Ensures logs are output in real-time ## Volume Notes - /data – just one volume +/data – just one volume ## Network Notes Requires proxy network +## Docker Run + +```bash +docker run -d \ + --name archivebox \ + -p 8000:8000 \ + -v /data/archivebox:/data \ + archivebox/archivebox:stable +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + ## Dockhand Stack, Deploy from Git Cookbooks Repository diff --git a/authentik_dev/README.md b/authentik_dev/README.md index aa4fb3e..aa2a5ad 100644 --- a/authentik_dev/README.md +++ b/authentik_dev/README.md @@ -3,3 +3,72 @@ Here is the official doc: https://docs.goauthentik.io/install-config/install/docker-compose/ Authentik is on a 2 month release cycle and should be updated in order of release. + +## Overview + +Identity provider and SSO platform supporting OIDC, SAML, LDAP, and proxy authentication. + +## Project Details + +- **Container Image:** [ghcr.io/goauthentik/server:2025.10.1](https://github.com/goauthentik/server) +- **Reverse Proxy Port:** `9000` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:9000 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + PG_DB – default: authentik + PG_USER – default: authentik + AUTHENTIK_TAG – default: 2025.10.1 + PG_PASS – default: (none, must be set) + AUTHENTIK_PORT_HTTP – default: 9000 + AUTHENTIK_PORT_HTTPS – default: 9443 + +## Volume Notes + + /var/lib/postgresql/data – host path /data/authentik/db + /media – host path /data/authentik/media + /templates – host path /data/authentik/custom-templates + /media – host path /data/authentik/media + /certs – host path /data/authentik/certs + /templates – host path /data/authentik/custom-templates + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name authentik \ + -p 9000:9000 \ + -p 9443:9443 \ + -v /data/authentik/db:/var/lib/postgresql/data \ + -v /data/authentik/media:/media \ + -v /data/authentik/custom-templates:/templates \ + -v /data/authentik/media:/media \ + -v /data/authentik/certs:/certs \ + ghcr.io/goauthentik/server:2025.10.1 +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: authentik_dev +Compose file path: authentik_dev/compose.yaml +Additional env file (optional): authentik_dev/sample.env + +Then "Load" authentik_dev/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/bazarr_dev/README.md b/bazarr_dev/README.md index e976615..6cfeb4c 100644 --- a/bazarr_dev/README.md +++ b/bazarr_dev/README.md @@ -65,6 +65,10 @@ docker run -d \ ghcr.io/hotio/bazarr:release ``` +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + ## Dockhand Stack, Deploy from Git - **Cookbooks Repository** diff --git a/bookstack/README.md b/bookstack/README.md index d019c83..ffebfe2 100644 --- a/bookstack/README.md +++ b/bookstack/README.md @@ -12,6 +12,63 @@ BookStack is a self-hosted wiki platform for organizing and storing documentatio - **Documentation:** [Docs](https://www.bookstackapp.com/docs/) - **Reverse Proxy Port:** `8080` +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8080 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + BOOKSTACK_APP_KEY – default: ChangeThisPassword + BOOKSTACK_APP_TIMEZONE – default: America/Vancouver + BOOKSTACK_APP_URL – default: http://localhost:8080 + BOOKSTACK_DB_DATABASE – default: bookstack + BOOKSTACK_DB_PASSWORD – default: ChangeThisPassword + BOOKSTACK_DB_USERNAME – default: dbuser + BOOKSTACK_REVISION_LIMIT – default: false + BOOKSTACK_PORT – default: 8080 + MARIADB_ROOT_PASSWORD – default: ChangeThisPassword + +## Volume Notes + + /var/www/bookstack/storage/uploads – host path /data/bookstack/uploads + /var/www/bookstack/public/uploads – host path /data/bookstack/public + /var/lib/mysql – host path /data/bookstack/db + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name bookstack \ + -p 8080:8080 \ + -v /data/bookstack/uploads:/var/www/bookstack/storage/uploads \ + -v /data/bookstack/public:/var/www/bookstack/public/uploads \ + -v /data/bookstack/db:/var/lib/mysql \ + solidnerd/bookstack:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: bookstack +Compose file path: bookstack/compose.yaml +Additional env file (optional): bookstack/sample.env + +Then "Load" bookstack/sample.env into the Environmental variables in dockhand + +Create the Stack + ## Notes ### APP_KEY diff --git a/directus_dev/README.md b/directus_dev/README.md index 7d2a93f..37edde6 100644 --- a/directus_dev/README.md +++ b/directus_dev/README.md @@ -6,7 +6,76 @@ Proxy port: 8055 +## Overview + +Instant headless CMS and admin app layered on top of a SQL database. + +## Project Details + +- **Container Image:** [directus/directus:latest](https://hub.docker.com/r/directus/directus) +- **Reverse Proxy Port:** `8055` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8000 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + MARIADB_DATABASE – default: directus + MARIADB_USER – default: directus + MARIADB_PASSWORD – default: ChangeThisPassword + MARIADB_ROOT_PASSWORD – default: ChangeThisPassword + DIRECTUS_SECRET – default: ChangeThisPassword + DIRECTUS_ADMIN_EMAIL – default: noreply@example.com + DIRECTUS_ADMIN_PASSWORD – default: ChangeThisPassword + DIRECTUS_PUBLIC_URL – default: http://localhost:8055 + DIRECTUS_PORT – default: 8000 + +## Volume Notes + + /var/lib/mysql – host path /data/directus/db + /directus/uploads – host path /data/directus/uploads + /directus/extensions – host path /data/directus/extensions + /directus/templates – host path /data/directus/templates + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name directus \ + -p 8000:8055 \ + -v /data/directus/db:/var/lib/mysql \ + -v /data/directus/uploads:/directus/uploads \ + -v /data/directus/extensions:/directus/extensions \ + -v /data/directus/templates:/directus/templates \ + directus/directus:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: directus_dev +Compose file path: directus_dev/compose.yaml +Additional env file (optional): directus_dev/sample.env + +Then "Load" directus_dev/sample.env into the Environmental variables in dockhand + +Create the Stack + ## Other Containers + You will also need mariadb and redis, something like: ``` diff --git a/docmost_dev/README.md b/docmost_dev/README.md index 4adb934..b7e8347 100644 --- a/docmost_dev/README.md +++ b/docmost_dev/README.md @@ -55,6 +55,10 @@ docker network create proxy This is a multi-service stack — use `docker compose` instead of individual `docker run` commands. +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + ## Dockhand Stack, Deploy from Git - **Cookbooks Repository** diff --git a/duplicati_dev/README.md b/duplicati_dev/README.md index 62c4104..38d2f85 100644 --- a/duplicati_dev/README.md +++ b/duplicati_dev/README.md @@ -1,3 +1,65 @@ # Duplicati -Proxy port: 8200 \ No newline at end of file +Proxy port: 8200 + +## Overview + +Encrypted backup software for securely storing backups to cloud or local destinations. + +## Project Details + +- **Container Image:** [duplicati/duplicati:latest](https://hub.docker.com/r/duplicati/duplicati) +- **Reverse Proxy Port:** `8200` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8200 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + DUPLICATI_KEY – default: ChangeThisPassword + DUPLICATI_PASS – default: ChangeThisPassword + DUPLICATI_PORT – default: 8200 + +## Volume Notes + + /data – host path /data/duplicati/config + /backups – host path /data/duplicati/backups + /source – host path /data/duplicati/source + /restore – host path /data/duplicati/restore + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name duplicati \ + -p 8200:8200 \ + -v /data/duplicati/config:/data \ + -v /data/duplicati/backups:/backups \ + -v /data/duplicati/source:/source:ro \ + -v /data/duplicati/restore:/restore \ + duplicati/duplicati:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: duplicati_dev +Compose file path: duplicati_dev/compose.yaml +Additional env file (optional): duplicati_dev/sample.env + +Then "Load" duplicati_dev/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/filebrowser_dev/README.md b/filebrowser_dev/README.md index dd78296..ea9150f 100644 --- a/filebrowser_dev/README.md +++ b/filebrowser_dev/README.md @@ -3,6 +3,69 @@ A lightweight Docker Compose setup for running the **Filebrowser Quantum** container. The future of Filebrowser was in question so switched to Quantum. +## Overview + +* [Filebrowser Quantum on GitHub](https://github.com/gtsteffaniak/filebrowser/tree/main) +* [Getting Started Wiki](https://github.com/gtsteffaniak/filebrowser/wiki/Getting-Started) +* [Configuration Docs](https://github.com/gtsteffaniak/filebrowser/wiki/Configuration-And-Examples) + +## Project Details + +- **Container Image:** [gtstef/filebrowser:latest](https://hub.docker.com/r/gtstef/filebrowser) +- **Reverse Proxy Port:** `80` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8080 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + FILEBROWSER_CONFIG_PATH – default: /data/filebrowser + FILEBROWSER_CONFIG – default: /home/filebrowser/config.yaml + FILEBROWSER_ADMIN_PASSWORD – default: ChangeThisPassword + FILEBROWSER_PORT – default: 8080 + +## Volume Notes + + /srv – host path /data/storage + /home/filebrowser/data – host path /data/filebrowser/root + /home/filebrowser/config.yaml – host path /data/filebrowser/config.yaml + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name filebrowser \ + -p 8080:80 \ + -v /data/storage:/srv \ + -v /data/filebrowser/root:/home/filebrowser/data \ + -v /data/filebrowser/config.yaml:/home/filebrowser/config.yaml \ + gtstef/filebrowser:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: filebrowser_dev +Compose file path: filebrowser_dev/compose.yaml +Additional env file (optional): filebrowser_dev/sample.env + +Then "Load" filebrowser_dev/sample.env into the Environmental variables in dockhand + +Create the Stack + ## Quick Notes Proxy Port: 80 @@ -10,9 +73,3 @@ Proxy Port: 80 Default user account: * Username: admin * Password: admin - -## Overview - -* [Filebrowser Quantum on GitHub](https://github.com/gtsteffaniak/filebrowser/tree/main) -* [Getting Started Wiki](https://github.com/gtsteffaniak/filebrowser/wiki/Getting-Started) -* [Configuration Docs](https://github.com/gtsteffaniak/filebrowser/wiki/Configuration-And-Examples) diff --git a/firefly_dev/README.md b/firefly_dev/README.md index 8b9968c..fe45cfd 100644 --- a/firefly_dev/README.md +++ b/firefly_dev/README.md @@ -1,12 +1,65 @@ # Firefly iii ## Overview + Docker Hub: https://hub.docker.com/r/fireflyiii/core/tags Documentation: https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/ Project: https://firefly-iii.org/ Proxy Port: 8080 Proxy Port Importer: 8080 +## Project Details + +- **Container Image:** [fireflyiii/core:latest](https://hub.docker.com/r/fireflyiii/core) +- **Reverse Proxy Port:** `8080` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8080 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + FIREFLY_PORT – default: 8080 + +## Volume Notes + + /var/www/html/storage/upload – host path /data/firefly + /var/www/html/storage/upload – host path /data/firefly + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name firefly \ + -p 8080:8080 \ + -v /data/firefly:/var/www/html/storage/upload \ + -v /data/firefly:/var/www/html/storage/upload \ + fireflyiii/core:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: firefly_dev +Compose file path: firefly_dev/compose.yaml +Additional env file (optional): firefly_dev/sample.env + +Then "Load" firefly_dev/sample.env into the Environmental variables in dockhand + +Create the Stack + ## Notes The Firefly III Data Importer will ask you for the Firefly III URL and a "Client ID". diff --git a/gatus/README.md b/gatus/README.md index 1ca2014..a2ad492 100644 --- a/gatus/README.md +++ b/gatus/README.md @@ -11,26 +11,29 @@ Track uptime. - **Documentation:** [Docs](https://gatus.io/) - **Reverse Proxy Port:** `8080` +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8080 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + GATUS_PORT – default: 8080 + ## Volume Notes There are two mounts CONFIG_FILE - Where the yaml config file lives. Likely stored to a repo somewhere. -VOL_DATA - Which is the persistant data. +VOL_DATA - Which is the persistent data. -Note the db must be set in the config file for persistant to happen. +Note the db must be set in the config file for persistent to happen. There is an example config.yaml file in this repo. -## Dockhand Stack, Deploy from Git +## Network Notes -Cookbooks Repository -stackname: Gatus -Compose file path: gatus/compose.yaml -Additional env file (optional): gatus/sample.env - -Then "Load" gatus/sample.env into the Environmental variables in dockhand, then modify. - -Create the Stack +Requires proxy network ## Docker Run @@ -43,4 +46,19 @@ docker run -d \ -v /data/config.yml:/config/config.yaml \ -v /data/gatus:/config/data \ twinproduction/gatus:latest -``` \ No newline at end of file +``` + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: Gatus +Compose file path: gatus/compose.yaml +Additional env file (optional): gatus/sample.env + +Then "Load" gatus/sample.env into the Environmental variables in dockhand, then modify. + +Create the Stack diff --git a/gitea/README.md b/gitea/README.md index 63dcfce..d5f878b 100644 --- a/gitea/README.md +++ b/gitea/README.md @@ -11,9 +11,15 @@ Self Hosted Git repository. - **Compose Example:** [Compose](https://docs.gitea.com/installation/install-with-docker) - **Reverse Proxy Port:** `3000` +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:22 in your browser +3. Follow the initial setup wizard to configure the application + ## Environment Variable Notes - ENABLE_SWAGGER="true" – Lets you: Test API calls in browser, See endpoints, Debug integrations +ENABLE_SWAGGER="true" – Lets you: Test API calls in browser, See endpoints, Debug integrations MAX_RESPONSE_ITEMS="15" – controls pagination limits for API responses ROOT_URL - This is what Gitea uses for: Clone URLs, Redirects, Webhooks, OAuth callbacks LOCAL_ROOT_URL - You can't change the port from 3000, so you don't need this with this configuration. @@ -26,8 +32,21 @@ volumes are easy, one for gitea and one for mariadb. We connect to the proxy network and have an internal network for db. -## Additional Notes / Gotchas +## Docker Run +```bash +docker run -d \ + --name gitea \ + -p 22:22 \ + -p 3000:3000 \ + -v /data/gitea/data:/data \ + -v /data/gitea/db:/var/lib/mysql \ + gitea/gitea:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas ### 1000 User diff --git a/handbrake_notes/README.md b/handbrake_notes/README.md index 46ba4c8..a7c12a4 100644 --- a/handbrake_notes/README.md +++ b/handbrake_notes/README.md @@ -159,6 +159,6 @@ stackname: handbrake Compose file path: handbrake/compose-cpu.yaml Additional env file (optional): handbrake/sample.env -Then "Load" handbrake/sample.env into the Environmental variables in dockhand +Then "Load" handbrake_notes/sample.env into the Environmental variables in dockhand Create the Stack \ No newline at end of file diff --git a/headscale_dev/README.md b/headscale_dev/README.md index b9b3fd1..60831de 100644 --- a/headscale_dev/README.md +++ b/headscale_dev/README.md @@ -18,31 +18,15 @@ Requires a valid config.yaml before first startup. * Internal Service Port: 8080 (not exposed publicly) * Environment Variable Notes -## Core Settings +## Getting Started -These variables are used in the Docker Compose file (.env): +1. Start the container: `docker compose up -d` +2. Open http://localhost:PORT in your browser +3. Follow the initial setup wizard to configure the application -``` -HEADSCALE_IMAGE – Docker image for Headscale server (default: headscale/headscale:latest) -HEADSCALE_UI_IMAGE – Docker image for admin UI -HEADSCALE_RESTART – Restart policy (default: unless-stopped) -HEADSCALE_UI_RESTART – Restart policy for UI container +## Environment Variable Notes -# Paths -CONFIG_PATH – Location of configuration files (config.yaml) -DATA_PATH – Persistent database storage (SQLite) -LOG_PATH – Application logs - -# System -TZ – Timezone (e.g. America/Vancouver) -HEADSCALE_LOG_LEVEL – Logging verbosity (info, debug, etc.) -Domain Configuration -HEADSCALE_DOMAIN – Public-facing domain used via reverse proxy -Example: headscale.4lt.ca - -HEADSCALE_URL – Full URL used by Headscale clients -Must match your reverse proxy domain: -``` + HEADSCALE_LOG_LEVEL – default: info ## Volume Notes @@ -103,3 +87,57 @@ Ensure config.yaml exists in: ./config/headscale/config/config.yaml Deploy stack Configure reverse proxy in Nginx Proxy Manager + +## Docker Run + +```bash +docker run -d \ + --name headscale \ + -v /data/headscale/config:/etc/headscale \ + -v /data/headscale/data:/var/lib/headscale \ + -v /data/headscale/logs:/var/log/headscale \ + headscale/headscale:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: headscale_dev +Compose file path: headscale_dev/compose.yaml +Additional env file (optional): headscale_dev/sample.env + +Then "Load" headscale_dev/sample.env into the Environmental variables in dockhand + +Create the Stack + +## Core Settings + +These variables are used in the Docker Compose file (.env): + +``` +HEADSCALE_IMAGE – Docker image for Headscale server (default: headscale/headscale:latest) +HEADSCALE_UI_IMAGE – Docker image for admin UI +HEADSCALE_RESTART – Restart policy (default: unless-stopped) +HEADSCALE_UI_RESTART – Restart policy for UI container + +# Paths +CONFIG_PATH – Location of configuration files (config.yaml) +DATA_PATH – Persistent database storage (SQLite) +LOG_PATH – Application logs + +# System +TZ – Timezone (e.g. America/Vancouver) +HEADSCALE_LOG_LEVEL – Logging verbosity (info, debug, etc.) +Domain Configuration +HEADSCALE_DOMAIN – Public-facing domain used via reverse proxy +Example: headscale.4lt.ca + +HEADSCALE_URL – Full URL used by Headscale clients +Must match your reverse proxy domain: +``` diff --git a/heimdall/README.md b/heimdall/README.md index 1169760..ca27736 100644 --- a/heimdall/README.md +++ b/heimdall/README.md @@ -10,10 +10,47 @@ Heimdall is a lightweight web-based dashboard for organizing and launching your - **Container Image:** [Docker Hub](https://hub.docker.com/r/linuxserver/heimdall) - **Reverse Proxy Port:** `80` +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8000 in your browser +3. Follow the initial setup wizard to configure the application + ## Environment Variable Notes - FORCE_HTTPS=true - For https - +FORCE_HTTPS=true - For https + +## Volume Notes + + /config – host path /data/heimdall + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name heimdall \ + -p 8000:80 \ + -v /data/heimdall:/config \ + linuxserver/heimdall:latest +``` + +See compose.yaml for the full set of environment variables. + ## Additional Notes / Gotchas Still working on the staging config, TODO: where is domain base path set? + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: heimdall +Compose file path: heimdall/compose.yaml +Additional env file (optional): heimdall/sample.env + +Then "Load" heimdall/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/homepage_dev/README.md b/homepage_dev/README.md index d141e11..baf3a3c 100644 --- a/homepage_dev/README.md +++ b/homepage_dev/README.md @@ -10,3 +10,53 @@ Proxy Port: 3000 If you want to use the optional docker socket, you must run as root. + +## Project Details + +- **Container Image:** [ghcr.io/gethomepage/homepage:latest](https://github.com/gethomepage/homepage) +- **Reverse Proxy Port:** `3000` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:3000 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + HOMEPAGE_PORT – default: 3000 + +## Volume Notes + + /app/config – host path /data/homepage/config + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name homepage \ + -p 3000:3000 \ + -v /data/homepage/config:/app/config \ + ghcr.io/gethomepage/homepage:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: homepage_dev +Compose file path: homepage_dev/compose.yaml +Additional env file (optional): homepage_dev/sample.env + +Then "Load" homepage_dev/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/invoiceninja_dev/README.md b/invoiceninja_dev/README.md index a1b9492..50c9fa3 100644 --- a/invoiceninja_dev/README.md +++ b/invoiceninja_dev/README.md @@ -11,3 +11,80 @@ This repo is just a slight modification of [the source](https://github.com/invoi I'm not a big fan of all the licensing and paywall features. + +## Overview + +Invoicing, payments, and client management for freelancers and small businesses. + +## Project Details + +- **Container Image:** [nginx:alpine](https://hub.docker.com/_/nginx) +- **Reverse Proxy Port:** `80` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8000 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + DB_DATABASE – default: ninja + DB_USERNAME – default: ninja + DB_PASSWORD – default: ChangeThisPassword + DB_ROOT_PASSWORD – default: ChangeThisPassword + APP_URL – default: http://localhost:8000 + APP_KEY – default: ChangeThisPassword + APP_ENV – default: production + APP_DEBUG – default: false + REQUIRE_HTTPS – default: false + PHANTOMJS_PDF_GENERATION – default: false + PDF_GENERATOR – default: snappdf + TRUSTED_PROXIES – default: * + CACHE_DRIVER – default: redis + QUEUE_CONNECTION – default: redis + (see sample.env for the full list) + +## Volume Notes + + /var/lib/mysql – host path /data/invoiceninja/mysql + /var/www/html/public – host path /data/invoiceninja/public + /var/www/html/storage – host path /data/invoiceninja/storage + /etc/nginx/conf.d – host path /data/invoiceninja/nginx + /var/www/html/public – host path /data/invoiceninja/public + /var/www/html/storage – host path /data/invoiceninja/storage + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name invoiceninja \ + -p 8000:80 \ + -v /data/invoiceninja/mysql:/var/lib/mysql \ + -v /data/invoiceninja/public:/var/www/html/public \ + -v /data/invoiceninja/storage:/var/www/html/storage \ + -v /data/invoiceninja/nginx:/etc/nginx/conf.d:ro \ + -v /data/invoiceninja/public:/var/www/html/public:ro \ + nginx:alpine +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: invoiceninja_dev +Compose file path: invoiceninja_dev/compose.yaml +Additional env file (optional): invoiceninja_dev/sample.env + +Then "Load" invoiceninja_dev/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/invokeai/README.md b/invokeai/README.md index 9591bd8..d6093fe 100644 --- a/invokeai/README.md +++ b/invokeai/README.md @@ -11,22 +11,23 @@ Makes images, needs gpu. - **Documentation:** [Docs](https://invoke-ai.github.io/InvokeAI/) - **Reverse Proxy Port:** You Can set this in env, I have it set to 9090 -## Additional Notes / Gotchas +## Getting Started -To get started, go to the models tab and install: RealVisXL V3 or Juggernaut XL -Also in the model manager, for upscale install: RealESRGAN_x4plus -And last install Tile SDXL version +1. Start the container: `docker compose up -d` +2. Open http://localhost:9090 in your browser +3. Follow the initial setup wizard to configure the application -## Dockhand Stack, Deploy from Git +## Environment Variable Notes -Cookbooks Repository -stackname: invokeai -Compose file path: invokeai/compose.yaml -Additional env file (optional): invokeai/sample.env + INVOKEAI_PORT – default: 9090 -Then "Load" SERVICENAME/sample.env into the Environmental variables in dockhand +## Volume Notes -Create the Stack + /invokeai – host path /data/invokeai + +## Network Notes + +Requires proxy network ## Docker Run @@ -40,4 +41,21 @@ docker run -d \ -p 9090:9090 \ --gpus all \ ghcr.io/invoke-ai/invokeai:latest - ``` \ No newline at end of file + ``` + +## Additional Notes / Gotchas + +To get started, go to the models tab and install: RealVisXL V3 or Juggernaut XL +Also in the model manager, for upscale install: RealESRGAN_x4plus +And last install Tile SDXL version + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: invokeai +Compose file path: invokeai/compose.yaml +Additional env file (optional): invokeai/sample.env + +Then "Load" invokeai/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/jellyfin_dev/README.md b/jellyfin_dev/README.md index b91ea13..87c0a00 100644 --- a/jellyfin_dev/README.md +++ b/jellyfin_dev/README.md @@ -11,3 +11,64 @@ * 8920/tcp is used by default for HTTPS traffic. You can change this in the dashboard. * 1900/udp is used for service auto-discovery. This is not configurable. * 7359/udp is also used for auto-discovery. This is not configurable. + +## Project Details + +- **Container Image:** [jellyfin/jellyfin:latest](https://hub.docker.com/r/jellyfin/jellyfin) +- **Reverse Proxy Port:** `8096` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8096 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + JELLYFIN_URL – default: http://localhost:8096 + JELLYFIN_PORT – default: 8096 + +## Volume Notes + + /cache – host path /data/jellyfin/cache + /config – host path /data/jellyfin/config + /books – host path /data/jellyfin/media/books + /movies – host path /data/jellyfin/media/movies + /music – host path /data/jellyfin/media/music + /photos – host path /data/jellyfin/media/photos + /shows – host path /data/jellyfin/media/shows + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name jellyfin \ + -p 8096:8096 \ + -v /data/jellyfin/cache:/cache \ + -v /data/jellyfin/config:/config \ + -v /data/jellyfin/media/books:/books \ + -v /data/jellyfin/media/movies:/movies \ + -v /data/jellyfin/media/music:/music \ + jellyfin/jellyfin:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: jellyfin_dev +Compose file path: jellyfin_dev/compose.yaml +Additional env file (optional): jellyfin_dev/sample.env + +Then "Load" jellyfin_dev/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/jellyseerr_dev/README.md b/jellyseerr_dev/README.md index 86c0f51..ddc5d4b 100644 --- a/jellyseerr_dev/README.md +++ b/jellyseerr_dev/README.md @@ -61,6 +61,10 @@ docker run -d \ ghcr.io/hotio/jellyseerr:release ``` +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + ## Dockhand Stack, Deploy from Git - **Cookbooks Repository** diff --git a/lidarr_dev/README.md b/lidarr_dev/README.md index 121d50c..e1f8985 100644 --- a/lidarr_dev/README.md +++ b/lidarr_dev/README.md @@ -74,6 +74,10 @@ docker run -d \ ghcr.io/hotio/lidarr:release ``` +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + ## Dockhand Stack, Deploy from Git - **Cookbooks Repository** diff --git a/listmonk/README.md b/listmonk/README.md index 78f00d7..f976233 100644 --- a/listmonk/README.md +++ b/listmonk/README.md @@ -14,6 +14,12 @@ initialization/upgrades, and support for reverse proxy integration. - **Documentation:** https://listmonk.app/docs/ - **Reverse Proxy Port:** `9000` (configurable with `LISTMONK_PORT`) +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:9000 in your browser +3. Follow the initial setup wizard to configure the application + ## Environment Variable Notes Most variables are optional because sane defaults are already included @@ -52,7 +58,7 @@ These are only used during first startup. ## Volume Notes - /data/listmonk/db +/data/listmonk/db PostgreSQL database storage /data/listmonk/uploads @@ -78,6 +84,19 @@ Internal application traffic uses the private: bridge network. +## Docker Run + +```bash +docker run -d \ + --name listmonk \ + -p 9000:9000 \ + -v /data/listmonk/db:/var/lib/postgresql \ + -v /data/listmonk/uploads:/listmonk/uploads:rw \ + listmonk/listmonk:latest +``` + +See compose.yaml for the full set of environment variables. + ## Additional Notes / Gotchas - The stack automatically runs: @@ -109,4 +128,4 @@ Then load: into the Environmental Variables section in Dockhand. -Create the Stack. \ No newline at end of file +Create the Stack. diff --git a/lubelogger_dev/README.md b/lubelogger_dev/README.md index fd0dbf7..5da982c 100644 --- a/lubelogger_dev/README.md +++ b/lubelogger_dev/README.md @@ -6,3 +6,59 @@ You could put it behind a reverse proxy. Uses sqlite by default but postgres is an option too. [Getting Started Wiki](https://docs.lubelogger.com/Installation/Getting%20Started) + +## Overview + +Vehicle maintenance records and fuel mileage tracker. + +## Project Details + +- **Container Image:** [ghcr.io/hargata/lubelogger:latest](https://github.com/hargata/lubelogger) +- **Reverse Proxy Port:** `8080` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8080 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + LUBELOGGER_PORT – default: 8080 + +## Volume Notes + + /App/data – host path /data/lubelogger/data + /root/.aspnet/DataProtection-Keys – host path /data/lubelogger/keys + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name lubelogger \ + -p 8080:8080 \ + -v /data/lubelogger/data:/App/data \ + -v /data/lubelogger/keys:/root/.aspnet/DataProtection-Keys \ + ghcr.io/hargata/lubelogger:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: lubelogger_dev +Compose file path: lubelogger_dev/compose.yaml +Additional env file (optional): lubelogger_dev/sample.env + +Then "Load" lubelogger_dev/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/mailhog_dev/README.md b/mailhog_dev/README.md index 7901d4d..550c737 100644 --- a/mailhog_dev/README.md +++ b/mailhog_dev/README.md @@ -11,4 +11,59 @@ TODO: volumes: - "/etc/timezone:/etc/timezone:ro" - "/etc/localtime:/etc/localtime:ro" -``` \ No newline at end of file +``` + +## Overview + +Email testing tool: fake SMTP server with a web UI to inspect captured mail. + +## Project Details + +- **Container Image:** [mailhog/mailhog:latest](https://hub.docker.com/r/mailhog/mailhog) +- **Reverse Proxy Port:** `1025` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:1025 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + MAILHOG_SMTP_PORT – default: 1025 + MAILHOG_UI_PORT – default: 8025 + +## Volume Notes + +No persistent volumes. + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name mailhog \ + -p 1025:1025 \ + -p 8025:8025 \ + mailhog/mailhog:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: mailhog_dev +Compose file path: mailhog_dev/compose.yaml +Additional env file (optional): mailhog_dev/sample.env + +Then "Load" mailhog_dev/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/mariadb_dev/README.md b/mariadb_dev/README.md index b1615b0..3eb8a6a 100644 --- a/mariadb_dev/README.md +++ b/mariadb_dev/README.md @@ -7,7 +7,65 @@ Proxy Port: 3306 It will be quite uncommon to just use this compose file, it's likely you are extending this from another project. That's the main context of this container. -## Sample +## Overview + +Standalone MariaDB database server for stacks that need shared SQL. + +## Project Details + +- **Container Image:** [mariadb:latest](https://hub.docker.com/_/mariadb) +- **Reverse Proxy Port:** `3306` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:3306 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + MARIADB_DATABASE – default: mydb + MARIADB_ROOT_PASSWORD – default: ChangeThisPassword + MARIADB_USER – default: dbuser + MARIADB_PASSWORD – default: ChangeThisPassword + MARIADB_PORT – default: 3306 + +## Volume Notes + + /var/lib/mysql – host path /data/mariadb + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name mariadb \ + -p 3306:3306 \ + -v /data/mariadb:/var/lib/mysql \ + mariadb:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Other stacks include their own database; this stack is for a shared or standalone instance. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: mariadb_dev +Compose file path: mariadb_dev/compose.yaml +Additional env file (optional): mariadb_dev/sample.env + +Then "Load" mariadb_dev/sample.env into the Environmental variables in dockhand + +Create the Stack + +## Sample ### Run multiple databases @@ -37,4 +95,4 @@ command: --max_allowed_packet=32505856 command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed # nextcloud command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW -``` \ No newline at end of file +``` diff --git a/mealie_dev/README.md b/mealie_dev/README.md index 0013b36..170f210 100644 --- a/mealie_dev/README.md +++ b/mealie_dev/README.md @@ -3,6 +3,67 @@ Last Updated: Thu August 08, 2024 15:15:31 PDT ## Overview + Docker Hub: https://hub.docker.com/r/hkotel/mealie Project: https://mealie.io/ Proxy Port: 9000 + +## Project Details + +- **Container Image:** [hkotel/mealie:latest](https://hub.docker.com/r/hkotel/mealie) +- **Reverse Proxy Port:** `80` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:9000 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + MEALIE_BASE_URL – default: https://mealie.domain.com + MEALIE_DEFAULT_EMAIL – default: email@domain.com + MEALIE_PGID – default: 1000 + MEALIE_PUID – default: 1000 + MEALIE_RECIPE_DISABLE_AMOUNT – default: false + MEALIE_RECIPE_DISABLE_COMMENTS – default: false + MEALIE_RECIPE_LANDSCAPE_VIEW – default: true + MEALIE_RECIPE_PUBLIC – default: true + MEALIE_RECIPE_SHOW_ASSETS – default: true + MEALIE_RECIPE_SHOW_NUTRITION – default: true + MEALIE_PORT – default: 9000 + +## Volume Notes + + /app/data – host path /data/mealie + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name mealie \ + -p 9000:80 \ + -v /data/mealie:/app/data \ + hkotel/mealie:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: mealie_dev +Compose file path: mealie_dev/compose.yaml +Additional env file (optional): mealie_dev/sample.env + +Then "Load" mealie_dev/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/n8n/README.md b/n8n/README.md index fbe7f83..fa583f8 100644 --- a/n8n/README.md +++ b/n8n/README.md @@ -16,9 +16,15 @@ Docker Compose setup for [n8n](https://n8n.io/), a workflow automation tool. - **Docker Hub Tags:** [Tags](https://hub.docker.com/r/n8nio/n8n/tags) - **Reverse Proxy Port:** `5678` +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:5678 in your browser +3. Follow the initial setup wizard to configure the application + ## Environment Variable Notes - N8N_IMAGE – Docker image tag (default: n8nio/n8n:latest) +N8N_IMAGE – Docker image tag (default: n8nio/n8n:latest) N8N_PORT – Container port (default: 5678) N8N_HOST – Hostname for the n8n instance (default: localhost) N8N_PROTOCOL – Protocol (default: http; set to https behind NPM) @@ -26,34 +32,28 @@ Docker Compose setup for [n8n](https://n8n.io/), a workflow automation tool. N8N_SECURE_COOKIE – Set true when using HTTPS (default: true) WEBHOOK_URL – Public-facing webhook URL (default: http://localhost:5678) -## Reverse Proxy Setup (Nginx Proxy Manager) - -1. In NPM, create a **Proxy Host**: - - **Domain Names:** `n8n.yourdomain.com` - - **Forward Hostname:** `n8n` - - **Forward Port:** `5678` - - **Scheme:** `http` - - **Websockets Support:** ✔ Enabled - - **Block Common Exploits:** ✔ Enabled - - **SSL:** ✔ Enable SSL (Let's Encrypt) - -2. Override these env vars: - - N8N_HOST=n8n.yourdomain.com - N8N_PROTOCOL=https - N8N_EDITOR_BASE_URL=https://n8n.yourdomain.com - WEBHOOK_URL=https://n8n.yourdomain.com - N8N_SECURE_COOKIE=true - ## Volume Notes - ${VOL_PATH}/n8n/data – n8n database and config (chown 1000:1000) +${VOL_PATH}/n8n/data – n8n database and config (chown 1000:1000) ${VOL_PATH}/n8n/files – shared file storage for workflows ## Network Notes Requires the external `proxy` network. +## Docker Run + +```bash +docker run -d \ + --name n8n \ + -p 5678:5678 \ + -v /data/n8n/data:/home/node/.n8n \ + -v /data/n8n/files:/files \ + n8nio/n8n:latest +``` + +See compose.yaml for the full set of environment variables. + ## Additional Notes / Gotchas - A license key is required (free at the time of writing). @@ -74,3 +74,22 @@ Cookbooks Repository Then "Load" n8n/sample.env into the Environmental variables in dockhand Create the Stack + +## Reverse Proxy Setup (Nginx Proxy Manager) + +1. In NPM, create a **Proxy Host**: + - **Domain Names:** `n8n.yourdomain.com` + - **Forward Hostname:** `n8n` + - **Forward Port:** `5678` + - **Scheme:** `http` + - **Websockets Support:** ✔ Enabled + - **Block Common Exploits:** ✔ Enabled + - **SSL:** ✔ Enable SSL (Let's Encrypt) + +2. Override these env vars: + + N8N_HOST=n8n.yourdomain.com + N8N_PROTOCOL=https + N8N_EDITOR_BASE_URL=https://n8n.yourdomain.com + WEBHOOK_URL=https://n8n.yourdomain.com + N8N_SECURE_COOKIE=true diff --git a/nextcloud/README.md b/nextcloud/README.md index a56ffa2..acd16c2 100644 --- a/nextcloud/README.md +++ b/nextcloud/README.md @@ -3,6 +3,65 @@ Docker Hub: https://hub.docker.com/_/nextcloud Proxy Port: 80 +## Overview + +Self-hosted file sync, sharing, and collaboration platform. + +## Project Details + +- **Container Image:** [mariadb:latest](https://hub.docker.com/_/mariadb) +- **Reverse Proxy Port:** `n/a` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:PORT in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + NEXTCLOUD_DB – default: nextcloud + MARIADB_ROOT_PASSWORD – default: ChangeThisPassword + NEXTCLOUD_DB_USER – default: nextcloud + NEXTCLOUD_DB_PASSWORD – default: ChangeThisPassword + NEXTCLOUD_DB_HOST – default: nextcloud-db + +## Volume Notes + + /var/lib/mysql – host path /data/nextcloud/db + /var/www/html – host path /data/nextcloud/data + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name nextcloud \ + -v /data/nextcloud/db:/var/lib/mysql \ + -v /data/nextcloud/data:/var/www/html \ + mariadb:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +See `compose-aio.yaml` in this directory for the Nextcloud All-in-One variant. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: nextcloud +Compose file path: nextcloud/compose.yaml +Additional env file (optional): nextcloud/sample.env + +Then "Load" nextcloud/sample.env into the Environmental variables in dockhand + +Create the Stack + ## Useful commands ```bash @@ -12,4 +71,4 @@ sudo -u www-data php occ maintenance:mode --on php occ trashbin:cleanup --all-users docker-compose exec --user www-data nextcloud php occ -``` \ No newline at end of file +``` diff --git a/nocodb_dev/README.md b/nocodb_dev/README.md index 9cfdcab..7e9841e 100644 --- a/nocodb_dev/README.md +++ b/nocodb_dev/README.md @@ -3,11 +3,62 @@ Last Updated: Thu August 01, 2024 18:40:57 PDT ## Overview + Docker Hub: https://hub.docker.com/r/nocodb/nocodb Project: https://nocodb.com/ Docker Compose Example: https://github.com/nocodb/nocodb/blob/master/docker-compose/mysql/docker-compose.yml Proxy Port: 8080 +## Project Details + +- **Container Image:** [nocodb/nocodb:latest](https://hub.docker.com/r/nocodb/nocodb) +- **Reverse Proxy Port:** `8080` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8080 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + NOCODB_PORT – default: 8080 + +## Volume Notes + + /usr/app/data – host path /data/nocodb + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name nocodb \ + -p 8080:8080 \ + -v /data/nocodb:/usr/app/data \ + nocodb/nocodb:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: nocodb_dev +Compose file path: nocodb_dev/compose.yaml +Additional env file (optional): nocodb_dev/sample.env + +Then "Load" nocodb_dev/sample.env into the Environmental variables in dockhand + +Create the Stack + ## Description This project is setup to use sql lite. Although it can use mysql with some env vars. @@ -15,4 +66,4 @@ This project is setup to use sql lite. Although it can use mysql with some env ## Notes # environment: - # - NC_DB=${NCDB_NC_DB:-mysql2://root_db:3306?u=noco&p=password&d=root_db} \ No newline at end of file + # - NC_DB=${NCDB_NC_DB:-mysql2://root_db:3306?u=noco&p=password&d=root_db} diff --git a/ollama/README.md b/ollama/README.md index 939d2cc..8aa44ac 100644 --- a/ollama/README.md +++ b/ollama/README.md @@ -11,6 +11,67 @@ Github (instructions): https://github.com/open-webui/open-webui Reverse Proxy Port webui: 8080 (The docker-compose sets the port to 3000) Ollama Models: https://ollama.com/search +## Overview + +Local large language model runner with the Open WebUI front end. + +## Project Details + +- **Container Image:** [ollama/ollama:latest](https://hub.docker.com/r/ollama/ollama) +- **Reverse Proxy Port:** `11434` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:11434 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + OLLAMA_KEEP_ALIVE – default: 5m + OLLAMA_PORT – default: 11434 + WEBUI_URL – default: http://localhost:8080 + WEBUI_PORT – default: 8080 + +## Volume Notes + + /root/.ollama – host path /data/ollama + /root/.cache – host path /data/webui/cache + /app/backend/data – host path /data/webui/data + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name ollama \ + -p 11434:11434 \ + -v /data/ollama:/root/.ollama \ + -v /data/webui/cache:/root/.cache \ + -v /data/webui/data:/app/backend/data \ + ollama/ollama:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: ollama +Compose file path: ollama/compose.yaml +Additional env file (optional): ollama/sample.env + +Then "Load" ollama/sample.env into the Environmental variables in dockhand + +Create the Stack + ## Preperation You need to have nvidia-drivers, cuda and nvidia-container-toolkit installed before proceeding. @@ -22,6 +83,7 @@ docker run -d --runtime=nvidia --gpus=all -v ollama:/root/.ollama -p 11434:11434 docker exec -it ollama ollama pull llama3 docker exec -it ollama ollama run llama3 ``` + ## Environment WEBUI_SECRET_KEY is just a random secret string used to secure sessions, cookies, and auth in your WebUI. ```openssl rand -hex 32``` @@ -29,7 +91,7 @@ WEBUI_SECRET_KEY is just a random secret string used to secure sessions, cookies You could also set OLLAMA_KEEP_ALIVE=5m if you are running multiple models. 5m is default, 0 removes as soon as done (then would have to reload model, so not quick), more than 5m is longer (minutes). See "Docker Container Cheatsheet" below for how to remove models from memory. -## Use +## Use - [Ollama Models](https://ollama.com/search) @@ -83,6 +145,7 @@ Straight docker run: ```bash docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda ``` + ## Recommended Pulls For a NVIDIA GeForce RTX 5060 Ti, your GPU may vary. @@ -117,4 +180,4 @@ Summarizing documents ollama pull granite3.2:8b-instruct ollama pull cognitivetech/obook_summary:7b ollama pull bge-m3:8b -``` \ No newline at end of file +``` diff --git a/openarchiver_dev/README.md b/openarchiver_dev/README.md index 45a7146..08985fd 100644 --- a/openarchiver_dev/README.md +++ b/openarchiver_dev/README.md @@ -1,8 +1,81 @@ # Open Archiver +## Overview + +Self-hosted email archiving platform with full-text search. + +## Project Details + +- **Container Image:** [logiclabshq/open-archiver:latest](https://hub.docker.com/r/logiclabshq/open-archiver) +- **Reverse Proxy Port:** `3000` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:3000 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + POSTGRES_DB – default: open_archive + POSTGRES_USER – default: admin + POSTGRES_PASSWORD – default: ChangeThisPassword + REDIS_PASSWORD – default: ChangeThisPassword + MEILI_MASTER_KEY – default: ChangeThisPassword + NODE_ENV – default: production + PORT_BACKEND – default: 4000 + PORT_FRONTEND – default: 3000 + SYNC_FREQUENCY – default: * * * * * + MEILI_HOST – default: http://meilisearch:7700 + MEILI_INDEXING_BATCH – default: 500 + REDIS_HOST – default: valkey + REDIS_PORT – default: 6379 + REDIS_TLS_ENABLED – default: false + (see sample.env for the full list) + +## Volume Notes + + /var/lib/postgresql/data – host path /data/openarchiver/pgdata + /data – host path /data/openarchiver/valkeydata + /meili_data – host path /data/openarchiver/meilidata + /var/data/open-archiver – host path /data/openarchiver/archiver-data + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name openarchiver \ + -p 3000:3000 \ + -v /data/openarchiver/pgdata:/var/lib/postgresql/data \ + -v /data/openarchiver/valkeydata:/data \ + -v /data/openarchiver/meilidata:/meili_data \ + -v /data/openarchiver/archiver-data:/var/data/open-archiver \ + logiclabshq/open-archiver:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: openarchiver_dev +Compose file path: openarchiver_dev/compose.yaml +Additional env file (optional): openarchiver_dev/sample.env + +Then "Load" openarchiver_dev/sample.env into the Environmental variables in dockhand + +Create the Stack + ## First Run Will give you a chance to setup a new user. You can add an ingestion source and it just starts importing. - diff --git a/opencode/README.md b/opencode/README.md index f50b529..9b7ea47 100644 --- a/opencode/README.md +++ b/opencode/README.md @@ -11,6 +11,60 @@ OpenCode is an open source AI coding agent. - **Documentation:** [Docs](https://opencode.ai/docs) - **Reverse Proxy Port:** `4096` +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:4096 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + OPENCODE_PORT – default: 4096 + OPENCODE_HOSTNAME – default: 0.0.0.0 + OLLAMA_HOST_URL – default: http://localhost:11434 + +## Volume Notes + +With `VOL_PATH=/data`: + +| Container path | Host path | Purpose | +|---|---|---| +| `/config` | `/data/opencode/config` | Config files (config.json) | +| `/data` | `/data/opencode/data` | OpenCode state | +| `/projects` | `/data/opencode/projects` | Workspace/project files | + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name opencode \ + -p 4096:4096 \ + -v /data/opencode/config:/config \ + -v /data/projects:/projects \ + ghcr.io/anomalyco/opencode:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: opencode +Compose file path: opencode/compose.yaml +Additional env file (optional): opencode/sample.env + +Then "Load" opencode/sample.env into the Environmental variables in dockhand. + +Create the Stack + ## Config file The `config.json` at `opencode/config/config.json` is pre-configured for @@ -89,28 +143,3 @@ To use a host-side ollama instead, set `OLLAMA_HOST=http://host.docker.internal: - `OLLAMA_HOST` — Ollama API endpoint (default `http://localhost:11434`) - `OPENCODE_PORT` — Web UI port (default `4096`) - `VOL_PATH` — Base path for persistent data (default `/data`) - -## Volume Notes - -With `VOL_PATH=/data`: - -| Container path | Host path | Purpose | -|---|---|---| -| `/config` | `/data/opencode/config` | Config files (config.json) | -| `/data` | `/data/opencode/data` | OpenCode state | -| `/projects` | `/data/opencode/projects` | Workspace/project files | - -## Network Notes - -Requires proxy network - -## dockhand Stack, Deploy from Git - -Cookbooks Repository -stackname: opencode -Compose file path: opencode/compose.yaml -Additional env file (optional): opencode/sample.env - -Then "Load" opencode/sample.env into the Environmental variables in dockhand. - -Create the Stack diff --git a/paperless/README.md b/paperless/README.md index 6944eff..3eebd9a 100644 --- a/paperless/README.md +++ b/paperless/README.md @@ -1,5 +1,9 @@ # Paperless +## Overview + +Document management system that indexes your scanned paperwork. + ## Project Details - **Project Repository:** [Link](https://github.com/paperless-ngx/paperless-ngx) @@ -8,6 +12,68 @@ - **Documentation:** [Docs](https://docs.paperless-ngx.com/) - **Reverse Proxy Port:** `8000` +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8000 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + PAPERLESS_MARIADB_DATABASE – default: paperless + PAPERLESS_MARIADB_USER – default: paperless + PAPERLESS_MARIADB_PASSWORD – default: ChangeThisPassword + PAPERLESS_MARIADB_ROOT_PASSWORD – default: ChangeThisPassword + PAPERLESS_SECRET_KEY – default: ChangeThisPassword + PAPERLESS_OCR_LANGUAGE – default: eng + PAPERLESS_URL – default: http://localhost + PAPERLESS_CONSUMER_DELETE_DUPLICATES – default: 0 + PAPERLESS_PORT – default: 8000 + +## Volume Notes + + /data – host path /data/paperless/redis + /var/lib/mysql – host path /data/paperless/db + /usr/src/paperless/data – host path /data/paperless/data + /usr/src/paperless/media – host path /data/paperless/media + /usr/src/paperless/export – host path /data/paperless/export + /usr/src/paperless/consume – host path /data/paperless/consume + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name paperless \ + -p 8000:8000 \ + -v /data/paperless/redis:/data \ + -v /data/paperless/db:/var/lib/mysql \ + -v /data/paperless/data:/usr/src/paperless/data \ + -v /data/paperless/media:/usr/src/paperless/media \ + -v /data/paperless/export:/usr/src/paperless/export \ + ghcr.io/paperless-ngx/paperless-ngx:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: paperless +Compose file path: paperless/compose.yaml +Additional env file (optional): paperless/sample.env + +Then "Load" paperless/sample.env into the Environmental variables in dockhand + +Create the Stack + ## First Run It takes a very long time for the first run to initilaze, v diff --git a/peertube_dev/README.md b/peertube_dev/README.md index 035080a..663f3f7 100644 --- a/peertube_dev/README.md +++ b/peertube_dev/README.md @@ -11,3 +11,66 @@ docker compose exec peertube npm run reset-password -- -u root ``` NOTICE: I've added this one for testing, it didn't fit what I was wanting, but I'll levae it here as it did boot. + +## Overview + +Federated, peer-to-peer video hosting platform. + +## Project Details + +- **Container Image:** [chocobozzz/peertube:production-bookworm](https://hub.docker.com/r/chocobozzz/peertube) +- **Reverse Proxy Port:** `9000` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:9000 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + PEERTUBE_HOSTNAME – default: localhost + PEERTUBE_ADMIN_EMAIL – default: admin@example.com + PEERTUBE_ADMIN_PASSWORD – default: ChangeThisPassword + PEERTUBE_PORT – default: 9000 + +## Volume Notes + + /var/lib/postgresql/data – host path /data/peertube/postgres + /data – host path /data/peertube/redis + /data – host path /data/peertube/data + /config – host path /data/peertube/config + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name peertube \ + -p 9000:9000 \ + -v /data/peertube/postgres:/var/lib/postgresql/data \ + -v /data/peertube/redis:/data \ + -v /data/peertube/data:/data \ + -v /data/peertube/config:/config \ + chocobozzz/peertube:production-bookworm +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: peertube_dev +Compose file path: peertube_dev/compose.yaml +Additional env file (optional): peertube_dev/sample.env + +Then "Load" peertube_dev/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/penpot_dev/README.md b/penpot_dev/README.md index 9df509c..029d776 100644 --- a/penpot_dev/README.md +++ b/penpot_dev/README.md @@ -1 +1,65 @@ # https://penpot.app/ + +## Overview + +Open-source design and prototyping tool (Figma alternative). + +## Project Details + +- **Container Image:** [penpotapp/frontend:latest](https://hub.docker.com/r/penpotapp/frontend) +- **Reverse Proxy Port:** `8080` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:9001 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + PENPOT_FLAGS – default: disable-email-verification enable-smtp enable-prepl-server disable-secure-session-cookies + PENPOT_PUBLIC_URI – default: http://localhost:9001 + PENPOT_BODY_SIZE – default: 31457280 + PENPOT_MULTIPART_SIZE – default: 367001600 + PENPOT_SMTP_FROM – default: no-reply@example.com + PENPOT_TELEMETRY – default: true + PENPOT_PORT – default: 9001 + +## Volume Notes + + /var/lib/postgresql/data – host path /data/penpot/postgres + /opt/data/assets – host path /data/penpot/assets + /opt/data/assets – host path /data/penpot/assets + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name penpot \ + -p 9001:8080 \ + -v /data/penpot/postgres:/var/lib/postgresql/data \ + -v /data/penpot/assets:/opt/data/assets \ + -v /data/penpot/assets:/opt/data/assets \ + penpotapp/frontend:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: penpot_dev +Compose file path: penpot_dev/compose.yaml +Additional env file (optional): penpot_dev/sample.env + +Then "Load" penpot_dev/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/pihole/README.md b/pihole/README.md index 62ffd21..7b83737 100644 --- a/pihole/README.md +++ b/pihole/README.md @@ -12,6 +12,12 @@ This Docker Compose project deploys a Pi-hole DNS sinkhole and network-wide ad b - **Documentation:** [Docs](https://docs.docker.com/compose/install/) - **Reverse Proxy Port:** `53 (tcp & udp), 80, 443, 67, 123` +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:PORT in your browser +3. Follow the initial setup wizard to configure the application + ## Environment Variable Notes Below are the key environment variables commonly used with the Pi-hole container. @@ -36,6 +42,22 @@ Pi-hole uses volumes to persist configuration and query data: /etc/dnsmasq.d – Stores dnsmasq configuration files used by Pi-hole’s DNS service. ``` +## Network Notes + +Uses `network_mode: host` (DNS server) — no proxy network. + +## Docker Run + +```bash +docker run -d \ + --name pihole \ + -v /data/pihole/etc:/etc/pihole \ + -v /data/pihole/dnsmasq:/etc/dnsmasq.d \ + pihole/pihole:latest +``` + +See compose.yaml for the full set of environment variables. + ## Additional Notes / Gotchas DHCP Server: If running Pi-hole as your network DHCP server, the container must run in host networking mode to broadcast DHCP packets correctly. @@ -47,3 +69,14 @@ Port Conflicts: Nothing else on the host may use port 53. Disable systemd-resolv Docker + Reverse Proxy: Pi-hole doesn’t always play nicely behind reverse proxies. If using one, forward only the admin interface (port 80) and keep DNS ports (53) exposed directly. Gravity Updates: Pi-hole updates blocklists daily. If using custom lists, verify they can be fetched without authentication or special headers. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: pihole +Compose file path: pihole/compose.yaml +Additional env file (optional): pihole/sample.env + +Then "Load" pihole/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/poste_dev/README.md b/poste_dev/README.md index c6d7de6..3bf1cc8 100644 --- a/poste_dev/README.md +++ b/poste_dev/README.md @@ -2,3 +2,65 @@ [Documentation](https://poste.io/doc/) +## Overview + +All-in-one mail server: SMTP, IMAP, webmail, antispam, and admin UI. + +## Project Details + +- **Container Image:** [analogic/poste.io:latest](https://hub.docker.com/r/analogic/poste.io) +- **Reverse Proxy Port:** `25` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:25 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + POSTE_HOSTNAME – default: mail.yourdomain.com + POSTE_SMTP_PORT – default: 25 + POSTE_POP3_PORT – default: 110 + POSTE_IMAP_PORT – default: 143 + POSTE_SUBMISSION_PORT – default: 587 + POSTE_IMAPS_PORT – default: 993 + POSTE_POP3S_PORT – default: 995 + POSTE_SIEVE_PORT – default: 4190 + +## Volume Notes + + /data – host path /data/poste + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name poste \ + -p 25:25 \ + -p 110:110 \ + -p 143:143 \ + -v /data/poste:/data \ + analogic/poste.io:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: poste_dev +Compose file path: poste_dev/compose.yaml +Additional env file (optional): poste_dev/sample.env + +Then "Load" poste_dev/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/prowlarr_dev/README.md b/prowlarr_dev/README.md index 0d22e67..57aa379 100644 --- a/prowlarr_dev/README.md +++ b/prowlarr_dev/README.md @@ -61,6 +61,10 @@ docker run -d \ ghcr.io/hotio/prowlarr:release ``` +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + ## Dockhand Stack, Deploy from Git - **Cookbooks Repository** diff --git a/qbittorrent/README.md b/qbittorrent/README.md index a0f640b..020af71 100644 --- a/qbittorrent/README.md +++ b/qbittorrent/README.md @@ -6,6 +6,67 @@ https://github.com/Trigus42/alpine-qbittorrentvpn port: 8080 +## Overview + +BitTorrent client with a full-featured web UI. + +## Project Details + +- **Container Image:** [trigus42/qbittorrentvpn:latest](https://hub.docker.com/r/trigus42/qbittorrentvpn) +- **Reverse Proxy Port:** `8080` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8080 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + QBT_PASS – default: ChangeThisPassword + QBT_PORT – default: 8080 + +## Volume Notes + + /config – host path /data/qbit/config + /downloads – host path /data/qbit/downloads + /incomplete – host path /data/qbit/incomplete + /dev/net/tun – host path /dev/net/tun + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name qbittorrent \ + -p 8080:8080 \ + -v /data/qbit/config:/config \ + -v /data/qbit/downloads:/downloads \ + -v /data/qbit/incomplete:/incomplete \ + -v /dev/net/tun:/dev/net/tun \ + trigus42/qbittorrentvpn:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Check the container logs on first start for the temporary web UI password. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: qbittorrent +Compose file path: qbittorrent/compose.yaml +Additional env file (optional): qbittorrent/sample.env + +Then "Load" qbittorrent/sample.env into the Environmental variables in dockhand + +Create the Stack + ## Default username Admin @@ -20,18 +81,6 @@ The container will fail to boot if VPN_ENABLED is set and there is no valid INTE chmod 600 /path/to/wg0.conf -## Dockhand Stack, Deploy from Git - -Cookbooks Repository -stackname: qbittorrent -Compose file path: qbittorrent/compose.yaml -Additional env file (optional): qbittorrent/sample.env - -Then "Load" archivebox/sample.env into the Environmental variables in dockhand - -Create the Stack - - ## Gotchas -For the trigus42/qbittorrentvpn image the env Username doesn't work, it's just admin. \ No newline at end of file +For the trigus42/qbittorrentvpn image the env Username doesn't work, it's just admin. diff --git a/radarr_dev/README.md b/radarr_dev/README.md index 406d3ab..5390738 100644 --- a/radarr_dev/README.md +++ b/radarr_dev/README.md @@ -70,6 +70,10 @@ docker run -d \ ghcr.io/hotio/radarr:release ``` +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + ## Dockhand Stack, Deploy from Git - **Cookbooks Repository** diff --git a/readarr_dev/README.md b/readarr_dev/README.md index 7fd2397..5218d0c 100644 --- a/readarr_dev/README.md +++ b/readarr_dev/README.md @@ -70,6 +70,10 @@ docker run -d \ ghcr.io/hotio/readarr:release ``` +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + ## Dockhand Stack, Deploy from Git - **Cookbooks Repository** diff --git a/sonarr_dev/README.md b/sonarr_dev/README.md index 7e9ff6f..e2d20bd 100644 --- a/sonarr_dev/README.md +++ b/sonarr_dev/README.md @@ -70,6 +70,10 @@ docker run -d \ ghcr.io/hotio/sonarr:release ``` +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + ## Dockhand Stack, Deploy from Git - **Cookbooks Repository** diff --git a/spotdl_dev/README.md b/spotdl_dev/README.md index 34b3ba5..d260ca7 100644 --- a/spotdl_dev/README.md +++ b/spotdl_dev/README.md @@ -56,6 +56,10 @@ docker run -d \ web ``` +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + ## Dockhand Stack, Deploy from Git - **Cookbooks Repository** diff --git a/stash/README.md b/stash/README.md index 6884e4e..62c1358 100644 --- a/stash/README.md +++ b/stash/README.md @@ -1,6 +1,7 @@ # Stash App Docker Compose Configuration ## Overview + This Docker Compose configuration sets up the Stash application using Docker containers. - Stash App: [Stash on Docker Hub](https://hub.docker.com/r/stashapp/stash) @@ -8,6 +9,65 @@ This Docker Compose configuration sets up the Stash application using Docker con - Documentation: https://docs.stashapp.cc/ - ProxyPort: 9999 +## Project Details + +- **Container Image:** [stashapp/stash:latest](https://hub.docker.com/r/stashapp/stash) +- **Reverse Proxy Port:** `9999` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:9999 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + STASH_CONTENT_PATH – default: /data/stash + STASHAPP_CACHE – default: /cache/ + STASHAPP_DOMAIN – default: stash.yourdomain.ca + STASHAPP_PORT – default: 9999 + +## Volume Notes + + /generated – host path /data/stash/generated + /metadata – host path /data/stash/metadata + /root/.stash – host path /data/stash/root + /data – host path /data/stash + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name stash \ + -p 9999:9999 \ + -v /data/stash/generated:/generated \ + -v /data/stash/metadata:/metadata \ + -v /data/stash/root:/root/.stash \ + -v /data/stash:/data \ + stashapp/stash:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Point STASH_CONTENT_PATH at your library; first-run wizard configures the library paths. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: stash +Compose file path: stash/compose.yaml +Additional env file (optional): stash/sample.env + +Then "Load" stash/sample.env into the Environmental variables in dockhand + +Create the Stack + ## Setup ### Data directories diff --git a/suitecrm_dev/README.md b/suitecrm_dev/README.md index dfe7689..a4f7b5c 100644 --- a/suitecrm_dev/README.md +++ b/suitecrm_dev/README.md @@ -5,6 +5,66 @@ proxyport 8080 See documentation: https://hub.docker.com/r/bitnami/suitecrm +## Overview + +Open-source customer relationship management platform (SugarCRM fork). + +## Project Details + +- **Container Image:** [bitnami/suitecrm:latest](https://hub.docker.com/r/bitnami/suitecrm) +- **Reverse Proxy Port:** `8080` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8080 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + SUITECRM_DB_PASSWORD – default: ChangeThisPassword + MARIADB_ROOT_PASSWORD – default: ChangeThisPassword + SUITECRM_USER – default: admin + SUITECRM_PASS – default: ChangeThisPassword + SUITECRM_PORT – default: 8080 + +## Volume Notes + + /var/lib/mysql – host path /data/suitecrm/db + /bitnami/suitecrm – host path /data/suitecrm/data + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name suitecrm \ + -p 8080:8080 \ + -v /data/suitecrm/db:/var/lib/mysql \ + -v /data/suitecrm/data:/bitnami/suitecrm \ + bitnami/suitecrm:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: suitecrm_dev +Compose file path: suitecrm_dev/compose.yaml +Additional env file (optional): suitecrm_dev/sample.env + +Then "Load" suitecrm_dev/sample.env into the Environmental variables in dockhand + +Create the Stack + ## Gotchas 1. they sometimes change variable names. @@ -13,4 +73,4 @@ See documentation: https://hub.docker.com/r/bitnami/suitecrm imap is not enabled by default as it's last update was 2011. -I don't yet have a process of updating this container for imap. Looking for alternative container providers. \ No newline at end of file +I don't yet have a process of updating this container for imap. Looking for alternative container providers. diff --git a/thunderbird/README.md b/thunderbird/README.md index de96d55..2ecc435 100644 --- a/thunderbird/README.md +++ b/thunderbird/README.md @@ -12,6 +12,12 @@ The web interface also offers audio playback, seamless clipboard sharing, an int - **Container Image:** [Docker Hub](https://hub.docker.com/r/jlesage/thunderbird) - **Reverse Proxy Port:** `5800` +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:5800 in your browser +3. Follow the initial setup wizard to configure the application + ## Environment Variable Notes THUNDERBIRD_IMAGE=jlesage/thunderbird:latest @@ -29,13 +35,34 @@ THUNDERBIRD_SECURE_CONNECTION=1 I use the import/export plugin for thunderbird so I've added an optional volume: ```thunderbird-export:/export``` +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name thunderbird \ + -p 5800:5800 \ + -v /data/thunderbird/config:/config \ + -v /data/thunderbird/export:/export \ + jlesage/thunderbird +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +GUI app streamed to the browser — unauthenticated by default aside from the web password, keep it behind the proxy. + ## Dockhand Stack, Deploy from Git Cookbooks Repository stackname: NAME_HERE -Compose file path: SERVICENAME/compose.yaml -Additional env file (optional): SERVICENAME/sample.env +Compose file path: thunderbird/compose.yaml +Additional env file (optional): thunderbird/sample.env -Then "Load" SERVICENAME/sample.env into the Environmental variables in dockhand +Then "Load" thunderbird/sample.env into the Environmental variables in dockhand -Create the Stack \ No newline at end of file +Create the Stack diff --git a/vscode/README.md b/vscode/README.md index 6c3b999..62d53d6 100644 --- a/vscode/README.md +++ b/vscode/README.md @@ -10,6 +10,12 @@ VS Code - **Container Image:** [Docker Hub](https://hub.docker.com/r/linuxserver/code-server) - **Reverse Proxy Port:** `8443` +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8443 in your browser +3. Follow the initial setup wizard to configure the application + ## Environment Variable Notes Data directory: @@ -19,7 +25,29 @@ Data directory: This is where all your code is stored, it should be set to your 1000 user. Then you can move your code here as that user. Config Directory: -This is your home directory, your ssh keys are stored here. +This is your home directory, your ssh keys are stored here. + +## Volume Notes + + /data – host path /data/projects + /config – host path /data/vscode/config + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name vscode \ + -p 8443:8443 \ + -v /data/projects:/data \ + -v /data/vscode/config:/config \ + lscr.io/linuxserver/code-server:latest +``` + +See compose.yaml for the full set of environment variables. ## Additional Notes / Gotchas @@ -41,10 +69,6 @@ ssh-keygen -t ed25519 -C "c@nickyeoman.com" cat ~/.ssh/id_ed25519.pub ``` -## Nginx Proxy manager - -If you are placing this behind NPM then you need to enable web sockets. - ## Dockhand Stack, Deploy from Git Cookbooks Repository @@ -54,4 +78,8 @@ Additional env file (optional): vscode/sample.env Then "Load" vscode/sample.env into the Environmental variables in dockhand -Create the Stack \ No newline at end of file +Create the Stack + +## Nginx Proxy manager + +If you are placing this behind NPM then you need to enable web sockets. diff --git a/whisparr_dev/README.md b/whisparr_dev/README.md index f4260bc..2309803 100644 --- a/whisparr_dev/README.md +++ b/whisparr_dev/README.md @@ -70,6 +70,10 @@ docker run -d \ ghcr.io/hotio/whisparr:release ``` +## Additional Notes / Gotchas + +Nothing specific to this stack so far. + ## Dockhand Stack, Deploy from Git - **Cookbooks Repository** diff --git a/zammad_dev/README.md b/zammad_dev/README.md index f3ea978..74b7376 100644 --- a/zammad_dev/README.md +++ b/zammad_dev/README.md @@ -14,3 +14,85 @@ mkdir -p data/elasticsearch chown -R 1000:1000 data/ chmod -R 755 data/elasticsearch/ ``` + +## Overview + +Helpdesk and ticketing system with web, email, and chat channels. + +## Project Details + +- **Container Image:** [ghcr.io/zammad/zammad:latest](https://github.com/zammad/zammad) +- **Reverse Proxy Port:** `8080` + +## Getting Started + +1. Start the container: `docker compose up -d` +2. Open http://localhost:8080 in your browser +3. Follow the initial setup wizard to configure the application + +## Environment Variable Notes + + POSTGRES_VERSION – default: 17.5-alpine + POSTGRES_DB – default: zammad_production + POSTGRES_USER – default: zammad + POSTGRES_PASS – default: ChangeThisPassword + REDIS_VERSION – default: 7.4.5-alpine + MEMCACHE_VERSION – default: 1.6.39-alpine + ELASTICSEARCH_VERSION – default: 8.19.2 + ELASTICSEARCH_JAVA_OPTS – default: -Xms1g -Xmx1g + MEMCACHE_SERVERS – default: zammad-memcached:11211 + POSTGRES_HOST – default: zammad-postgresql + POSTGRES_PORT – default: 5432 + POSTGRESQL_OPTIONS – default: ?pool=50 + POSTGRESQL_DB_CREATE – default: true + REDIS_URL – default: redis://zammad-redis:6379 + (see sample.env for the full list) + +## Volume Notes + + /var/lib/postgresql/data – host path /data/zammad/postgresql + /data – host path /data/zammad/redis + /data – host path /data/zammad/memcached + /usr/share/elasticsearch/data – host path /data/zammad/elasticsearch + /opt/zammad/storage – host path /data/zammad/storage + /opt/zammad/storage – host path /data/zammad/storage + /opt/zammad/storage – host path /data/zammad/storage + /opt/zammad/storage – host path /data/zammad/storage + /var/tmp/zammad – host path /data/zammad/backup + /opt/zammad/storage – host path /data/zammad/storage + /opt/zammad/storage – host path /data/zammad/storage + +## Network Notes + +Requires proxy network + +## Docker Run + +```bash +docker run -d \ + --name zammad \ + -p 8080:8080 \ + -v /data/zammad/postgresql:/var/lib/postgresql/data \ + -v /data/zammad/redis:/data \ + -v /data/zammad/memcached:/data \ + -v /data/zammad/elasticsearch:/usr/share/elasticsearch/data \ + -v /data/zammad/storage:/opt/zammad/storage \ + ghcr.io/zammad/zammad:latest +``` + +See compose.yaml for the full set of environment variables. + +## Additional Notes / Gotchas + +The zammad-init service intentionally uses `restart: on-failure` (one-shot init container). + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: zammad_dev +Compose file path: zammad_dev/compose.yaml +Additional env file (optional): zammad_dev/sample.env + +Then "Load" zammad_dev/sample.env into the Environmental variables in dockhand + +Create the Stack