Compare commits

...

16 Commits

Author SHA1 Message Date
fxequals
d38793e102 fix: spelling mistake 2025-12-08 03:35:10 -05:00
fxequals
5551eca149 add: proxy network to romm-db 2025-12-08 01:45:34 -05:00
fxequals
2f6bed8bbc fix: env variable name 2025-12-08 01:39:19 -05:00
fxequals
175494fc07 fix: removed reduntant romm entry 2025-12-08 01:25:08 -05:00
fxequals
5901d4c672 fix: json schema 2025-12-08 01:22:23 -05:00
fxequals
eef76bfcc5 fix: name capitalization 2025-12-08 01:19:24 -05:00
fxequals
aae3f1f062 fix: env name and volume link 2025-12-08 01:17:55 -05:00
fxequals
b1e6014d65 add: romm definition 2025-12-08 01:03:06 -05:00
fxequals
950e32fed3 fix: env name 2025-12-08 01:02:22 -05:00
fxequals
b0741aed5a add: romm 2025-12-08 01:00:05 -05:00
fxequals
a90ce07520 fix: updated enviromental variable names 2025-12-07 23:13:57 -05:00
fxequals
2fbbee45cb fix: updated schema 2025-12-07 23:08:39 -05:00
fxequals
91838007b7 fix: removed unused property and updated scheme link 2025-12-07 23:04:43 -05:00
fxequals
096751ec24 fix: removed updated_at property 2025-12-07 22:54:25 -05:00
fxequals
e604085adb Merge branch 'main' of https://gitea.mydigitalfix.com/fxequals/docker-compose 2025-12-07 21:31:40 -05:00
fxequals
8bfa625b6d fix: updated url for github repo 2025-12-07 21:31:37 -05:00
9 changed files with 301 additions and 57 deletions

View File

@@ -16,7 +16,6 @@
"dns",
"webfilter"
],
"updated_at": "2025-07-13T13:32:00Z",
"version": "1.0.0"
},
{
@@ -32,7 +31,6 @@
"2fa",
"access"
],
"updated_at": "2025-07-13T13:31:00Z",
"version": "1.0.0"
},
{
@@ -47,7 +45,6 @@
"docker-management",
"web-based"
],
"updated_at": "2025-07-13T13:31:00Z",
"version": "1.0.0"
},
{
@@ -63,7 +60,6 @@
"2fa",
"access"
],
"updated_at": "2025-07-13T13:31:00Z",
"version": "1.0.0"
},
{
@@ -77,7 +73,6 @@
"tags": [
"image-upload"
],
"updated_at": "2025-07-13T13:31:00Z",
"version": "1.0.0"
},
{
@@ -93,7 +88,6 @@
"2fa",
"access"
],
"updated_at": "2025-07-13T13:31:00Z",
"version": "1.0.0"
},
{
@@ -109,7 +103,6 @@
"2fa",
"access"
],
"updated_at": "2025-07-13T13:31:00Z",
"version": "1.0.0"
}
],

View File

@@ -2,8 +2,8 @@
# Arcane
# Modern Docker Web UI
# Created by arcane
# ↳ https://github.com/ofkm/arcane
# Created by Kyle Mendell
# ↳ https://github.com/getarcaneapp/arcane
services:
arcane:
@@ -14,12 +14,12 @@ services:
networks:
- proxy
# ports:
# - 3000:3000
# - 3552:3552
environment:
PUID: 1000
PGID: 1000
APP_URL: https://arcane.wpsit.org
APP_URL: https://arcane.mydigitalfix.com
ENCRYPTION_KEY: ${ENCRYPTION_KEY}
JWT_SECRET: ${JWT_SECRET}
@@ -29,9 +29,18 @@ services:
- /var/run/docker.sock:/var/run/docker.sock
- /home/fxequals/docker/arcane/data:/app/data
- /opt/dockge:/opt/dockge # This maps existing Dockge stacks and lets Arcane manage them, otherwise /host/path/to/projects:/app/data/projects
upgrader:
image: ghcr.io/getarcaneapp/arcane:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
entrypoint: ['/app/arcane']
command: ['upgrade', '--auto']
profiles:
- tools
networks:
proxy:
external: true
# Documentation available at https://arcane.ofkm.dev/
# Documentation available at https://getarcane.app/docs

View File

@@ -0,0 +1,46 @@
---
# Arcane
# Modern Docker GUI Manager
# Created by Kyle Mendell
# ↳ https://github.com/getarcaneapp/arcane
services:
arcane:
image: ghcr.io/getarcaneapp/arcane
container_name: arcane
restart: unless-stopped
networks:
- proxy
# ports:
# - 3552:3552
environment:
PUID: 1000
PGID: 1000
APP_URL: https://arcane.wpsit.org
ENCRYPTION_KEY: ${ENCRYPTION_KEY}
JWT_SECRET: ${JWT_SECRET}
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
- /home/wpsit/docker/arcane/data:/app/data
- /opt/dockge:/opt/dockge # This maps existing Dockge stacks and lets Arcane manage them, otherwise /host/path/to/projects:/app/data/projects
upgrader:
image: ghcr.io/getarcaneapp/arcane:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
entrypoint: ['/app/arcane']
command: ['upgrade', '--auto']
profiles:
- tools
networks:
proxy:
external: true
# Documentation available at https://getarcane.app/docs

View File

@@ -1,23 +1,11 @@
{
"$schema": "https://templates.arcane.ofkm.dev/schema.json",
"$schema": "https://raw.githubusercontent.com/getarcaneapp/templates/refs/heads/main/schema.json",
"name": "obsidian-logic",
"description": "docker apps for obsidian-logic",
"version": "1.0.0",
"author": "fxequals",
"url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic",
"templates": [
{
"id": "arcane",
"name": "Arcane",
"description": "Web based Docker GUI",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/arcane/arcane.yml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/arcane/arcane.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/arcane/",
"tags": ["docker", "container", "management"],
"updated_at": "2025-07-13T13:31:00Z"
},
{
"id": "authentik",
"name": "Authentik",
@@ -27,8 +15,7 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/authentik/authentik.yml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/authentik/authentik.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/authentik/",
"tags": ["identity", "2fa", "access"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["identity", "2fa", "access"]
},
{
"id": "dozzle",
@@ -39,8 +26,7 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/dozzle/dozzle.yml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/dozzle/dozzle.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/dozzle/",
"tags": ["gui", "logs", "docker"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["gui", "logs", "docker"]
},
{
"id": "fresh-rss",
@@ -51,8 +37,7 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/fresh-rss/fresh-rss.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/fresh-rss/fresh-rss.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/fresh-rss/",
"tags": ["rss", "feeds", "aggregiator"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["rss", "feeds", "aggregiator"]
},
{
"id": "fulltext-rss",
@@ -63,8 +48,7 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/fulltext-rss/fulltext-rss.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/fulltext-rss/fulltext-rss.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/fulltext-rss/",
"tags": ["feeds", "text", "rss"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["feeds", "text", "rss"]
},
{
"id": "gitea",
@@ -75,8 +59,7 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/gitea/gitea.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/gitea/gitea.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/gitea/",
"tags": ["code", "repository", "github"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["code", "repository", "github"]
},
{
"id": "goaccess",
@@ -87,8 +70,7 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/goaccess/goaccess.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/goaccess/goaccess.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/goaccess/",
"tags": ["nginx", "logs", "visualizer"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["nginx", "logs", "visualizer"]
},
{
"id": "homepage",
@@ -99,8 +81,7 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/homepage/homepage.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/homepage/homepage.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/homepage/",
"tags": ["bookmarks", "landing-page", "dashboard"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["bookmarks", "landing-page", "dashboard"]
},
{
"id": "nginx-proxy-manager",
@@ -111,8 +92,7 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/nginx-proxy-manager/nginx-proxy-manager.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/nginx-proxy-manager/nginx-proxy-manager.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/nginx-proxy-manager/",
"tags": ["web", "reverse-proxy", "proxy"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["web", "reverse-proxy", "proxy"]
},
{
"id": "privatebin",
@@ -123,8 +103,7 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/privatebin/privatebin.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/privatebin/privatebin.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/privatebin/",
"tags": ["web", "reverse-proxy", "proxy"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["web", "reverse-proxy", "proxy"]
},
{
"id": "remotely",
@@ -135,8 +114,7 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/remotely/remotely.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/remotely/remotely.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/remotely/",
"tags": ["access", "web", "remote"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["access", "web", "remote"]
},
{
"id": "shlinks",
@@ -147,8 +125,7 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/shlinks/shlinks.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/shlinks/shlinks.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/shlinks/",
"tags": ["url", "shortener", "service"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["url", "shortener", "service"]
},
{
"id": "spdf",
@@ -159,8 +136,7 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/spdf/spdf.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/spdf/spdf.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/spdf/",
"tags": ["pdf", "web", "tools"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["pdf", "web", "tools"]
},
{
"id": "vaultwarden",
@@ -171,8 +147,7 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/vaultwarden/vaultwarden.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/vaultwarden/vaultwarden.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/vaultwarden/",
"tags": ["password", "manager", "bitwarden"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["password", "manager", "bitwarden"]
},
{
"id": "watchtower",
@@ -183,8 +158,7 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/watchtower/watchtower.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/watchtower/watchtower.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/watchtower/",
"tags": ["updater", "images", "docker"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["updater", "images", "docker"]
},
{
"id": "wordpress",
@@ -195,8 +169,18 @@
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/wordpress/wordpress.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/wordpress/wordpress.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/wordpress/",
"tags": ["web", "website", "cms"],
"updated_at": "2025-07-13T13:31:00Z"
"tags": ["web", "website", "cms"]
},
{
"id": "romm",
"name": "RomM",
"description": "Web GUI for managing and playing Roms",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/romm/romm.yml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/romm/romm.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/romm/",
"tags": ["roms", "gui", "web-based"]
}
]
}

View File

@@ -1 +1,2 @@
SESSION_SECRET=
ENCRYPTION_KEY=
JWT_SECRET=

View File

@@ -3,7 +3,7 @@
# GoAccess
# Web based log visualizer for NGINX Proxy Manager
# Created by xavierh
# ↳ https://github.com/allinurl/goaccess
# ↳ https://github.com/xavier-hernandez/goaccess-for-nginxproxymanager
services:
goaccess:

View File

@@ -0,0 +1,129 @@
# This is a generic example of a configuration file
# Rename this file to `config.yml`, copy it to a `config` folder, and mount that folder as per the docker-compose.example.yml
# Only uncomment the lines you want to use/modify, or add new ones where needed
exclude:
# Exclude platforms to be scanned
platforms: [] # ['my_excluded_platform_1', 'my_excluded_platform_2']
# Exclude roms or parts of roms to be scanned
roms:
# Single file games section.
# Will not apply to files that are in sub-folders (multi-disc roms, games with updates, DLC, patches, etc.)
single_file:
# Exclude all files with certain extensions to be scanned
extensions: [] # ['xml', 'txt']
# Exclude matched file names to be scanned.
# Supports unix filename pattern matching
# Can also exclude files by extension
names: [] # ['info.txt', '._*', '*.nfo']
# Multi files games section
# Will apply to files that are in sub-folders (multi-disc roms, games with updates, DLC, patches, etc.)
multi_file:
# Exclude matched 'folder' names to be scanned (RomM identifies folders as multi file games)
names: [] # ['my_multi_file_game', 'DLC']
# Exclude files within sub-folders.
parts:
# Exclude matched file names to be scanned from multi file roms
# Keep in mind that RomM doesn't scan folders inside multi files games,
# so there is no need to exclude folders from inside of multi files games.
names: [] # ['data.xml', '._*'] # Supports unix filename pattern matching
# Exclude all files with certain extensions to be scanned from multi file roms
extensions: [] # ['xml', 'txt']
system:
# Asociate different platform names to your current file system platform names
# [your custom platform folder name]: [RomM platform name]
# In this example if you have a 'gc' folder, RomM will treat it like the 'ngc' folder and if you have a 'psx' folder, RomM will treat it like the 'ps' folder
platforms: {} # { gc: 'ngc', psx: 'ps' }
# Asociate one platform to it's main version
versions: {} # { naomi: 'arcade' }
# The folder name where your roms are located
filesystem: {} # { roms_folder: 'roms' } For example if your folder structure is /home/user/library/roms_folder
# scan:
# # Metadata priority during scans
# priority:
# # Below are the default priority values used
# metadata: # Top-level metadata source priority
# - "igdb" # IGDB (highest priority)
# - "moby" # MobyGames
# - "ss" # Screenscraper
# - "ra" # RetroAchievements
# - "launchbox" # Launchbox
# - "gamelist" # ES-DE gamelist.xml
# - "hasheous" # Hasheous
# - "flashpoint" # Flashpoint Project
# - "hltb" # HowLongToBeat (lowest priority)
# artwork: # Cover art and screenshots
# - "igdb" # IGDB
# - "moby" # MobyGames
# - "ss" # Screenscraper
# - "ra" # RetroAchievements
# - "launchbox" # Launchbox
# - "gamelist" # ES-DE gamelist.xml
# - "hasheous" # Hasheous
# - "flashpoint" # Flashpoint Project
# - "hltb" # HowLongToBeat
# region: # Used by IGDB and ScreenScraper for regional variants
# - "us"
# - "wor"
# - "ss"
# - "eu"
# - "jp"
# language: # Used by ScreenScraper for descriptions
# - "en"
# - "fr"
# # Media assets to download
# # Only used by Screenscraper and ES-DE gamelist.xml
# media:
# # Used as alternative cover art
# - box2d # Normal cover art (always enabled)
# - box3d # 3D box art
# - miximage # Mixed image of multiple media
# - physical # Disc, cartridge, etc.
# # Added to the screenshots carousel
# - screenshot # Screenshot (enabled by default)
# - title_screen # Title screen
# - fanart # User uploaded artwork
# # Bezel displayed around the emulatorjs window
# - bezel
# # Manual in PDF format
# - manual # Manual (enabled by default)
# # Gameplay video
# - video # Video (warning: large file size)
# # Media used for batocera gamelist.xml export
# - box2d_back # Back cover art
# - logo # Transparent logo
# # Other media assets (might be used in the future)
# - marquee # Custom marquee
EmulatorJS per-core options
emulatorjs:
debug: true # Available options will be logged to the browser console
cache_limit: null # Cache limit per ROM (in bytes)
settings:
parallel_n64: # Use the exact core name
vsync: disabled
snes9x:
snes9x_region: ntsc
default: # These settings apply to all cores
fps: show
controls: # https://emulatorjs.org/docs4devs/control-mapping/
snes9x:
0: # Player 1
0: # A MAPPING FOR EACH BUTTON MUST BE SET!
value: x # Mapping for keyboard
value2: BUTTON_2 # Mapping for connected controller
1:
value:
value2:
1: # Player 2
2: # Player 3
3: # Player 4

View File

@@ -0,0 +1,10 @@
DB_ROOTPWD=
DB_HOST=
DB_NAME=
DB_USER=
DB_PASSWD=
ROMM_AUTH_SECRET_KEY=
RETROACHIEVEMENTS_API_KEY=
STEAMGRIDDB_API_KEY=
IGDB_CLIENT_ID=
IGDB_CLIENT_SECRET=

View File

@@ -0,0 +1,72 @@
---
# RomM
# Web based rom player and manager
# Created by gantoine
# ↳ https://github.com/rommapp/romm
services:
romm:
image: rommapp/romm:latest
container_name: romm
restart: unless-stopped
networks:
- proxy
# ports:
# - 8080:8080
environment:
PUID: 1000
PGID: 1000
DB_HOST: romm-db
DB_NAME: ${DB_NAME}
DB_USER: ${DB_USER}
DB_PASSWD: ${DB_PASSWORD}
ROMM_AUTH_SECRET_KEY: ${ROMM_AUTH_SECRET_KEY}
SCREENSCRAPER_USER: ${SCREENSCRAPER_USER}
SCREENSCRAPER_PASSWORD: ${SCREENSCRAPER_PASSWORD}
RETROACHIEVEMENTS_API_KEY: ${RETROACHIEVEMENTS_API_KEY}
STEAMGRIDDB_API_KEY: ${STEAMGRIDDB_API_KEY}
HASHEOUS_API_ENABLED: true
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/romm/romm_resources:/romm/resources
- /home/fxequals/docker/romm/romm_redis:/redis-data
- /home/fxequals/docker/romm/roms:/romm/library
- /home/fxequals/docker/romm:/romm/config
romm-db:
image: mariadb:latest
container_name: romm-db
restart: unless-stopped
networks:
- proxy
environment:
MARIADB_ROOT_PASSWORD: ${DB_ROOTPWD}
MARIADB_DATABASE: ${DB_NAME}
MARIADB_USER: ${DB_USER}
MARIADB_PASSWORD: ${DB_PASSWORD}
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
start_period: 30s
start_interval: 10s
interval: 10s
timeout: 5s
retries: 5
networks:
proxy:
external: true
volumes:
mysql_data:
driver: local
# Documentation available at https://docs.romm.app/latest/