mirror of
https://github.com/nickyeoman/docker-compose-cookbooks.git
synced 2026-09-03 18:36:22 +00:00
thunderbird updated and portainer builder
This commit is contained in:
@@ -116,7 +116,6 @@ def parse_ports(compose_path: Path):
|
|||||||
container_port = int(container_port.split("/")[0].strip())
|
container_port = int(container_port.split("/")[0].strip())
|
||||||
host_port = int(host_port.split("/")[0].strip())
|
host_port = int(host_port.split("/")[0].strip())
|
||||||
except ValueError:
|
except ValueError:
|
||||||
# Skip invalid ports
|
|
||||||
continue
|
continue
|
||||||
ports_list.append({
|
ports_list.append({
|
||||||
"container": container_port,
|
"container": container_port,
|
||||||
@@ -128,9 +127,13 @@ def parse_ports(compose_path: Path):
|
|||||||
|
|
||||||
# ---------------------------------------------------------
|
# ---------------------------------------------------------
|
||||||
# Parse volumes from docker-compose.yml
|
# Parse volumes from docker-compose.yml
|
||||||
# Returns a list of dicts: {"container": "/container/path"}
|
# Returns a list of dicts: {"name": "volume_name", "container": "/container/path"}
|
||||||
# ---------------------------------------------------------
|
# ---------------------------------------------------------
|
||||||
def parse_volumes(compose_path: Path):
|
# ---------------------------------------------------------
|
||||||
|
# Parse volumes from docker-compose.yml
|
||||||
|
# Returns a list of dicts: {"name": "unique-name", "container": "/container/path"}
|
||||||
|
# ---------------------------------------------------------
|
||||||
|
def parse_volumes(compose_path: Path, stack_name: str):
|
||||||
if not compose_path.exists():
|
if not compose_path.exists():
|
||||||
return []
|
return []
|
||||||
|
|
||||||
@@ -145,16 +148,17 @@ def parse_volumes(compose_path: Path):
|
|||||||
continue
|
continue
|
||||||
if in_volumes:
|
if in_volumes:
|
||||||
if not stripped or not stripped.startswith("-"):
|
if not stripped or not stripped.startswith("-"):
|
||||||
break # end of volumes section
|
break
|
||||||
# remove "- " prefix
|
volume_str = stripped[1:].strip().split("#", 1)[0].strip().strip('"').strip("'")
|
||||||
volume_str = stripped[1:].strip()
|
if not volume_str:
|
||||||
# split by ':' to separate host path from container path
|
continue
|
||||||
parts = volume_str.split(":", 1)
|
parts = volume_str.rsplit(":", 1)
|
||||||
container_path = parts[-1].strip() # take container path only
|
container_path = parts[-1].strip()
|
||||||
# remove quotes and inline comments
|
container_path = re.sub(r":(ro|rw)$", "", container_path)
|
||||||
container_path = container_path.split("#")[0].strip().strip('"').strip("'")
|
name = f"{stack_name}-{container_path.strip('/').replace('/', '-')}"
|
||||||
if container_path:
|
if not name:
|
||||||
volumes.append({"container": container_path})
|
name = f"{stack_name}-volume"
|
||||||
|
volumes.append({"name": name, "container": container_path})
|
||||||
|
|
||||||
return volumes
|
return volumes
|
||||||
|
|
||||||
@@ -194,17 +198,20 @@ def generate_template_object(dir_path: Path):
|
|||||||
compose_file = dir_path / "docker-compose.yml"
|
compose_file = dir_path / "docker-compose.yml"
|
||||||
readme_file = dir_path / "README.md"
|
readme_file = dir_path / "README.md"
|
||||||
|
|
||||||
|
# Extract info
|
||||||
description = extract_overview(readme_file, name)
|
description = extract_overview(readme_file, name)
|
||||||
logo = find_logo_url(dir_path)
|
logo = find_logo_url(dir_path)
|
||||||
env_vars = parse_env_vars(dir_path)
|
env_vars = parse_env_vars(dir_path)
|
||||||
image = parse_image(compose_file, env_vars)
|
image = parse_image(compose_file, env_vars)
|
||||||
ports = parse_ports(compose_file)
|
ports = parse_ports(compose_file)
|
||||||
volumes = parse_volumes(compose_file)
|
volumes = parse_volumes(compose_file, name) # pass stack name for unique volume naming
|
||||||
|
|
||||||
|
# Environment variables entries for Portainer
|
||||||
env_entries = [
|
env_entries = [
|
||||||
{"name": v["name"], "label": v["name"], "default": v["default"]} for v in env_vars
|
{"name": v["name"], "label": v["name"], "default": v["default"]} for v in env_vars
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# Build template object
|
||||||
return {
|
return {
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"title": name,
|
"title": name,
|
||||||
|
|||||||
+179
-73
@@ -52,9 +52,11 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/website:/data"
|
"name": "phpcontainer-data",
|
||||||
|
"container": "/data"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"name": "phpcontainer-usr-local-etc-php-php.ini",
|
||||||
"container": "/usr/local/etc/php/php.ini"
|
"container": "/usr/local/etc/php/php.ini"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -160,7 +162,8 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-/tmp}/wallabag:/var/www/wallabag/web/assets/images"
|
"name": "wallabag-var-www-wallabag-web-assets-images",
|
||||||
|
"container": "/var/www/wallabag/web/assets/images"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -216,10 +219,12 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/thunderbird/config:/config:rw"
|
"name": "thunderbird-config",
|
||||||
|
"container": "/config"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/thunderbird/export:/export:rw"
|
"name": "thunderbird-export",
|
||||||
|
"container": "/export"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -289,7 +294,8 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data/}/mariadb:/var/lib/mysql"
|
"name": "mariadb-var-lib-mysql",
|
||||||
|
"container": "/var/lib/mysql"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -319,6 +325,7 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "dozzle-var-run-docker.sock",
|
||||||
"container": "/var/run/docker.sock"
|
"container": "/var/run/docker.sock"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -405,6 +412,7 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "unami-var-lib-postgresql-data",
|
||||||
"container": "/var/lib/postgresql/data"
|
"container": "/var/lib/postgresql/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -435,9 +443,11 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "peertube-data",
|
||||||
"container": "/data"
|
"container": "/data"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"name": "peertube-config",
|
||||||
"container": "/config"
|
"container": "/config"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -518,10 +528,12 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "/etc/timezone:ro"
|
"name": "phpmyadmin-ro",
|
||||||
|
"container": "ro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "/etc/localtime:ro"
|
"name": "phpmyadmin-ro",
|
||||||
|
"container": "ro"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -603,9 +615,11 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "pihole-etc-pihole",
|
||||||
"container": "/etc/pihole"
|
"container": "/etc/pihole"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"name": "pihole-etc-dnsmasq.d",
|
||||||
"container": "/etc/dnsmasq.d"
|
"container": "/etc/dnsmasq.d"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -691,6 +705,7 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "paperless-data",
|
||||||
"container": "/data"
|
"container": "/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -737,9 +752,11 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "sonarr-config",
|
||||||
"container": "/config"
|
"container": "/config"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"name": "sonarr-data",
|
||||||
"container": "/data"
|
"container": "/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -775,7 +792,8 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/nc_data:/usr/app/data"
|
"name": "nocodb-usr-app-data",
|
||||||
|
"container": "/usr/app/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -841,13 +859,16 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/directus/uploads:/directus/uploads"
|
"name": "directus-directus-uploads",
|
||||||
|
"container": "/directus/uploads"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/directus/extensions:/directus/extensions"
|
"name": "directus-directus-extensions",
|
||||||
|
"container": "/directus/extensions"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/directus/templates:/directus/templates"
|
"name": "directus-directus-templates",
|
||||||
|
"container": "/directus/templates"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -902,6 +923,7 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "matomo-var-lib-mysql",
|
||||||
"container": "/var/lib/mysql"
|
"container": "/var/lib/mysql"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -992,9 +1014,11 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "n8n-home-node-.n8n",
|
||||||
"container": "/home/node/.n8n"
|
"container": "/home/node/.n8n"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"name": "n8n-files",
|
||||||
"container": "/files"
|
"container": "/files"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1041,9 +1065,11 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "radarr-config",
|
||||||
"container": "/config"
|
"container": "/config"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"name": "radarr-data",
|
||||||
"container": "/data"
|
"container": "/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1159,7 +1185,8 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/mealie:/app/data"
|
"name": "mealie-app-data",
|
||||||
|
"container": "/app/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1189,6 +1216,7 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "memos-var-opt-memos",
|
||||||
"container": "/var/opt/memos"
|
"container": "/var/opt/memos"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1276,13 +1304,16 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/duplicati/config:/data"
|
"name": "duplicati-data",
|
||||||
|
"container": "/data"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/duplicati/backups:/backups"
|
"name": "duplicati-backups",
|
||||||
|
"container": "/backups"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/duplicati/source:/source:ro"
|
"name": "duplicati-ro",
|
||||||
|
"container": "ro"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1333,15 +1364,19 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/qbit/config:/config"
|
"name": "qbittorrent-config",
|
||||||
|
"container": "/config"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/qbit/downloads:/downloads"
|
"name": "qbittorrent-downloads",
|
||||||
|
"container": "/downloads"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/qbit/incomplete:/incomplete"
|
"name": "qbittorrent-incomplete",
|
||||||
|
"container": "/incomplete"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"name": "qbittorrent-dev-net-tun",
|
||||||
"container": "/dev/net/tun"
|
"container": "/dev/net/tun"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1402,6 +1437,7 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "monica-var-www-html-storage",
|
||||||
"container": "/var/www/html/storage"
|
"container": "/var/www/html/storage"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1453,6 +1489,7 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "listmonk-var-lib-postgresql-data",
|
||||||
"container": "/var/lib/postgresql/data"
|
"container": "/var/lib/postgresql/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1483,13 +1520,16 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "shlink-var-lib-mysql",
|
||||||
"container": "/var/lib/mysql"
|
"container": "/var/lib/mysql"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "/etc/timezone:ro"
|
"name": "shlink-ro",
|
||||||
|
"container": "ro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "/etc/localtime:ro"
|
"name": "shlink-ro",
|
||||||
|
"container": "ro"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1529,10 +1569,12 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/lubelogger/App:/App/data"
|
"name": "lubelogger-App-data",
|
||||||
|
"container": "/App/data"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/lubelogger/keys:/root/.aspnet/DataProtection-Keys"
|
"name": "lubelogger-root-.aspnet-DataProtection-Keys",
|
||||||
|
"container": "/root/.aspnet/DataProtection-Keys"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1587,10 +1629,12 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/codeserver:/data"
|
"name": "code-server-data",
|
||||||
|
"container": "/data"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/codeserver-config:/config"
|
"name": "code-server-config",
|
||||||
|
"container": "/config"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1614,6 +1658,7 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "authentik-var-lib-postgresql-data",
|
||||||
"container": "/var/lib/postgresql/data"
|
"container": "/var/lib/postgresql/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1720,22 +1765,28 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/handbrake/ghb-config:/config"
|
"name": "handbrake-config",
|
||||||
|
"container": "/config"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/handbrake/storage:/storage"
|
"name": "handbrake-storage",
|
||||||
|
"container": "/storage"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/handbrake/complete:/output"
|
"name": "handbrake-output",
|
||||||
|
"container": "/output"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/handbrake/watch:/watch"
|
"name": "handbrake-watch",
|
||||||
|
"container": "/watch"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/handbrake/watch2:/watch2"
|
"name": "handbrake-watch2",
|
||||||
|
"container": "/watch2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/handbrake/trash:/trash"
|
"name": "handbrake-trash",
|
||||||
|
"container": "/trash"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1795,7 +1846,8 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/yourls-db:/var/lib/mysql"
|
"name": "yourls-var-lib-mysql",
|
||||||
|
"container": "/var/lib/mysql"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1835,7 +1887,8 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/paisa:/root/Documents/paisa/"
|
"name": "paisa-root-Documents-paisa",
|
||||||
|
"container": "/root/Documents/paisa/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1910,13 +1963,16 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "${SEMAPHORE_PLAYBOOK_PATH:-/tmp/semaphore/}"
|
"name": "semaphore---tmp-semaphore-}",
|
||||||
|
"container": "-/tmp/semaphore/}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./config}/ssh/:/home/semaphore/.ssh/"
|
"name": "semaphore-home-semaphore-.ssh",
|
||||||
|
"container": "/home/semaphore/.ssh/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./config}/etchosts:/etc/hosts"
|
"name": "semaphore-etc-hosts",
|
||||||
|
"container": "/etc/hosts"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1951,7 +2007,8 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/uptimekuma-data:/app/data"
|
"name": "uptimekuma-app-data",
|
||||||
|
"container": "/app/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -2021,7 +2078,8 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/postgresql:/var/lib/postgresql/data"
|
"name": "zammad-var-lib-postgresql-data",
|
||||||
|
"container": "/var/lib/postgresql/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -2061,9 +2119,11 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./config}/homepage:/app/config"
|
"name": "homepage-app-config",
|
||||||
|
"container": "/app/config"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"name": "homepage-var-run-docker.sock",
|
||||||
"container": "/var/run/docker.sock"
|
"container": "/var/run/docker.sock"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -2119,10 +2179,12 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/piwigo:/config"
|
"name": "piwigo-config",
|
||||||
|
"container": "/config"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/gallery:/gallery"
|
"name": "piwigo-gallery",
|
||||||
|
"container": "/gallery"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -2177,13 +2239,16 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/storage:/srv"
|
"name": "filebrowser-srv",
|
||||||
|
"container": "/srv"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/filebrowser/root:/home/filebrowser/data"
|
"name": "filebrowser-home-filebrowser-data",
|
||||||
|
"container": "/home/filebrowser/data"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./config}/config.yaml:/home/filebrowser/config.yaml"
|
"name": "filebrowser-home-filebrowser-config.yaml",
|
||||||
|
"container": "/home/filebrowser/config.yaml"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -2228,7 +2293,8 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/firefly:/var/www/html/storage/upload"
|
"name": "firefly-var-www-html-storage-upload",
|
||||||
|
"container": "/var/www/html/storage/upload"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -2273,31 +2339,40 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/jellyfin-cache:/cache"
|
"name": "jellyfin-cache",
|
||||||
|
"container": "/cache"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/jellyfin-config:/config"
|
"name": "jellyfin-config",
|
||||||
|
"container": "/config"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/jellyfin-content/books:/books"
|
"name": "jellyfin-books",
|
||||||
|
"container": "/books"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/jellyfin-content/media:/media"
|
"name": "jellyfin-media",
|
||||||
|
"container": "/media"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/jellyfin-content/movies:/movies"
|
"name": "jellyfin-movies",
|
||||||
|
"container": "/movies"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/jellyfin-content/music:/music"
|
"name": "jellyfin-music",
|
||||||
|
"container": "/music"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/jellyfin-content/musicvideos:/musicvideos"
|
"name": "jellyfin-musicvideos",
|
||||||
|
"container": "/musicvideos"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/jellyfin-content/photos:/photos"
|
"name": "jellyfin-photos",
|
||||||
|
"container": "/photos"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/jellyfin-content/shows:/shows"
|
"name": "jellyfin-shows",
|
||||||
|
"container": "/shows"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -2327,9 +2402,11 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "mailu-var-mailu",
|
||||||
"container": "/var/mailu"
|
"container": "/var/mailu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"name": "mailu-etc-mailu-domain.conf",
|
||||||
"container": "/etc/mailu/domain.conf"
|
"container": "/etc/mailu/domain.conf"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -2395,7 +2472,8 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data/}/minio:/data"
|
"name": "minio-data",
|
||||||
|
"container": "/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -2490,7 +2568,8 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/vault-data:/data"
|
"name": "vaultwarden-data",
|
||||||
|
"container": "/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -2633,10 +2712,12 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/proxy/data:/data"
|
"name": "nginx-proxy-manager-data",
|
||||||
|
"container": "/data"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/proxy/letsencrypt:/etc/letsencrypt"
|
"name": "nginx-proxy-manager-etc-letsencrypt",
|
||||||
|
"container": "/etc/letsencrypt"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -2666,6 +2747,7 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "docmost-app-data-storage",
|
||||||
"container": "/app/data/storage"
|
"container": "/app/data/storage"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -2679,7 +2761,7 @@
|
|||||||
"Auto"
|
"Auto"
|
||||||
],
|
],
|
||||||
"platform": "linux",
|
"platform": "linux",
|
||||||
"logo": "https://i.4lt.ca/cookbooks/default.png",
|
"logo": "https://i.4lt.ca/cookbooks/bookstack.png",
|
||||||
"image": "solidnerd/bookstack:latest",
|
"image": "solidnerd/bookstack:latest",
|
||||||
"repository": {
|
"repository": {
|
||||||
"url": "https://github.com/nickyeoman/docker-compose-cookbooks",
|
"url": "https://github.com/nickyeoman/docker-compose-cookbooks",
|
||||||
@@ -2767,12 +2849,15 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "bookstack-usr-local-etc-php-php.ini",
|
||||||
"container": "/usr/local/etc/php/php.ini"
|
"container": "/usr/local/etc/php/php.ini"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"name": "bookstack-var-www-bookstack-storage-uploads",
|
||||||
"container": "/var/www/bookstack/storage/uploads"
|
"container": "/var/www/bookstack/storage/uploads"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"name": "bookstack-var-www-bookstack-public-uploads",
|
||||||
"container": "/var/www/bookstack/public/uploads"
|
"container": "/var/www/bookstack/public/uploads"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -2833,7 +2918,8 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/gitea:/data"
|
"name": "gitea-data",
|
||||||
|
"container": "/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -2879,7 +2965,8 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/heimdall:/config"
|
"name": "heimdall-config",
|
||||||
|
"container": "/config"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -2959,13 +3046,16 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/ntfy-cache/ntfy:/var/cache/ntfy"
|
"name": "ntfy-var-cache-ntfy",
|
||||||
|
"container": "/var/cache/ntfy"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/ntfy:/etc/ntfy"
|
"name": "ntfy-etc-ntfy",
|
||||||
|
"container": "/etc/ntfy"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/ntfy-var:/var/lib/ntfy"
|
"name": "ntfy-var-lib-ntfy",
|
||||||
|
"container": "/var/lib/ntfy"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -3021,7 +3111,8 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/suitecrm_data:/bitnami/suitecrm"
|
"name": "suitecrm-bitnami-suitecrm",
|
||||||
|
"container": "/bitnami/suitecrm"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -3087,12 +3178,15 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "dockge-var-run-docker.sock",
|
||||||
"container": "/var/run/docker.sock"
|
"container": "/var/run/docker.sock"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"name": "dockge-app-data",
|
||||||
"container": "/app/data"
|
"container": "/app/data"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"name": "dockge-opt-stacks",
|
||||||
"container": "/opt/stacks"
|
"container": "/opt/stacks"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -3139,6 +3233,7 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "jellyseerr-config",
|
||||||
"container": "/config"
|
"container": "/config"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -3412,7 +3507,8 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data/prowlarr/config}:/config"
|
"name": "prowlarr-config",
|
||||||
|
"container": "/config"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -3467,22 +3563,28 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/stash/cache:/cache"
|
"name": "stashapp-cache",
|
||||||
|
"container": "/cache"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/stash/generated:/generated"
|
"name": "stashapp-generated",
|
||||||
|
"container": "/generated"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/stash/metadata:/metadata"
|
"name": "stashapp-metadata",
|
||||||
|
"container": "/metadata"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/stash/root:/root"
|
"name": "stashapp-root",
|
||||||
|
"container": "/root"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "-./data}/stash/video:/data"
|
"name": "stashapp-data",
|
||||||
|
"container": "/data"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"container": "/etc/localtime:ro"
|
"name": "stashapp-ro",
|
||||||
|
"container": "ro"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -3522,7 +3624,8 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/archive-data:/data"
|
"name": "archivebox-data",
|
||||||
|
"container": "/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -3608,6 +3711,7 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "poste-data",
|
||||||
"container": "/data"
|
"container": "/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -3668,7 +3772,8 @@
|
|||||||
"ports": [],
|
"ports": [],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
"container": "-./data}/nextcloud:/var/www/html"
|
"name": "nextcloud-var-www-html",
|
||||||
|
"container": "/var/www/html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -3698,6 +3803,7 @@
|
|||||||
],
|
],
|
||||||
"volumes": [
|
"volumes": [
|
||||||
{
|
{
|
||||||
|
"name": "hedgedoc-hedgedoc-data",
|
||||||
"container": "/hedgedoc/data"
|
"container": "/hedgedoc/data"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ services:
|
|||||||
image: ${THUNDERBIRD_IMAGE:-jlesage/thunderbird}
|
image: ${THUNDERBIRD_IMAGE:-jlesage/thunderbird}
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- "${VOL_PATH:-./data}/thunderbird/config:/config:rw"
|
- "thunderbird-config:/config"
|
||||||
- "${VOL_PATH:-./data}/thunderbird/export:/export:rw"
|
- "thunderbird-export:/export"
|
||||||
environment:
|
environment:
|
||||||
- TZ=${THUNDERBIRD_TZ:-America/Vancouver}
|
- TZ=${THUNDERBIRD_TZ:-America/Vancouver}
|
||||||
- WEB_AUTHENTICATION=${THUNDERBIRD_WEB_AUTHENTICATION:-1}
|
- WEB_AUTHENTICATION=${THUNDERBIRD_WEB_AUTHENTICATION:-1}
|
||||||
@@ -16,3 +16,7 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
- internal
|
- internal
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
thunderbird-config:
|
||||||
|
thunderbird-export:
|
||||||
|
|||||||
Reference in New Issue
Block a user