mirror of
https://github.com/nickyeoman/docker-compose-cookbooks.git
synced 2026-09-03 18:36:22 +00:00
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 <noreply@anthropic.com>
This commit is contained in:
@@ -12,6 +12,12 @@ 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```
|
||||
@@ -27,6 +33,22 @@ ArchiveBox is a self-hosted app that lets you preserve content from websites in
|
||||
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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**
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
```
|
||||
|
||||
@@ -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**
|
||||
|
||||
@@ -1,3 +1,65 @@
|
||||
# Duplicati
|
||||
|
||||
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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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".
|
||||
|
||||
+29
-11
@@ -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
|
||||
|
||||
@@ -44,3 +47,18 @@ docker run -d \
|
||||
-v /data/gatus:/config/data \
|
||||
twinproduction/gatus:latest
|
||||
```
|
||||
|
||||
## 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
|
||||
|
||||
+20
-1
@@ -11,6 +11,12 @@ 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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
+60
-22
@@ -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:
|
||||
```
|
||||
|
||||
@@ -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
|
||||
|
||||
## 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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
+29
-11
@@ -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
|
||||
|
||||
@@ -41,3 +42,20 @@ docker run -d \
|
||||
--gpus all \
|
||||
ghcr.io/invoke-ai/invokeai:latest
|
||||
```
|
||||
|
||||
## 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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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**
|
||||
|
||||
@@ -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**
|
||||
|
||||
@@ -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
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -12,3 +12,58 @@ TODO:
|
||||
- "/etc/timezone:/etc/timezone:ro"
|
||||
- "/etc/localtime:/etc/localtime:ro"
|
||||
```
|
||||
|
||||
## 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
|
||||
|
||||
@@ -7,6 +7,64 @@ 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.
|
||||
|
||||
## 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
|
||||
|
||||
@@ -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
|
||||
|
||||
+38
-19
@@ -16,6 +16,12 @@ 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)
|
||||
@@ -26,25 +32,6 @@ 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)
|
||||
@@ -54,6 +41,19 @@ Docker Compose setup for [n8n](https://n8n.io/), a workflow automation tool.
|
||||
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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```
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
+54
-25
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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**
|
||||
|
||||
+61
-12
@@ -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.
|
||||
@@ -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**
|
||||
|
||||
@@ -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**
|
||||
|
||||
@@ -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**
|
||||
|
||||
@@ -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**
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
+30
-3
@@ -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
|
||||
+32
-4
@@ -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:
|
||||
@@ -21,6 +27,28 @@ This is where all your code is stored, it should be set to your 1000 user. Then
|
||||
Config Directory:
|
||||
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
|
||||
|
||||
For setup you need to set the user and group ID
|
||||
@@ -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
|
||||
@@ -55,3 +79,7 @@ Additional env file (optional): vscode/sample.env
|
||||
Then "Load" vscode/sample.env into the Environmental variables in dockhand
|
||||
|
||||
Create the Stack
|
||||
|
||||
## Nginx Proxy manager
|
||||
|
||||
If you are placing this behind NPM then you need to enable web sockets.
|
||||
|
||||
@@ -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**
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user