# Portainer stack for the Mythica armory. # # Differs from the upstream docker-compose.yml in three ways, all of them # because Portainer deploys from a git checkout it manages itself: # # 1. Configuration comes from environment variables set in the Portainer # stack UI, not from a .env file in the repo (upstream uses env_file, # which Portainer git stacks do not provide). # 2. Only the four large model-data directories are bind-mounted from the # host. The DBC .csv files stay in the image so they stay versioned with # the code, and Portainer re-cloning the repo cannot wipe the 2 GB of # model data. # 3. The unused ac-network block is dropped. # # See docs/mythica-deploy.md for the full procedure. services: armory: build: context: . dockerfile: Dockerfile container_name: mythica-armory restart: unless-stopped environment: # --- site identity ------------------------------------------------- ACORE_ARMORY_WEBSITE_NAME: ${ARMORY_WEBSITE_NAME:-Mythica} ACORE_ARMORY_WEBSITE_URL: ${ARMORY_WEBSITE_URL:-http://192.168.1.77:48733} ACORE_ARMORY_WEBSITE_ROOT: ${ARMORY_WEBSITE_ROOT:-} # Item tooltips and item icons are loaded from this AoWoW instance. # The default is a public third-party site: point this at your own # AoWoW if you do not want that dependency. ACORE_ARMORY_AOWOW_URL: ${ARMORY_AOWOW_URL:-https://wowgaming.altervista.org/aowow} # --- embedding ----------------------------------------------------- # Set both when embedding the armory in a page on the main site. ACORE_ARMORY_IFRAME_MODE__ENABLED: ${ARMORY_IFRAME_ENABLED:-0} ACORE_ARMORY_IFRAME_MODE__URL: ${ARMORY_IFRAME_URL:-} # --- behaviour ----------------------------------------------------- ACORE_ARMORY_LOAD_DBCS: ${ARMORY_LOAD_DBCS:-1} ACORE_ARMORY_HIDE_GAME_MASTERS: ${ARMORY_HIDE_GMS:-1} # Playerbots are ordinary accounts, not game masters, so the GM # filter does not touch them. Without this the armory lists ~1350 # bots against ~29 real characters. ACORE_ARMORY_HIDE_BOT_ACCOUNTS: ${ARMORY_HIDE_BOTS:-1} ACORE_ARMORY_BOT_ACCOUNT_PATTERN: ${ARMORY_BOT_PATTERN:-RNDBOT%} ACORE_ARMORY_TRANSMOG_MODULE: ${ARMORY_TRANSMOG:-0} # 0 = serve 3D model assets from the local data directory. # Leave it at 0: the upstream fetch tool can no longer rebuild this # data from the Zam CDN, so the local copy is the only source. ACORE_ARMORY_USE_ZAM_CDN: ${ARMORY_USE_ZAM_CDN:-0} # --- realm --------------------------------------------------------- ACORE_ARMORY_REALMS__0__NAME: ${ARMORY_REALM_NAME:-Mythica} ACORE_ARMORY_REALMS__0__REALM_ID: ${ARMORY_REALM_ID:-1} ACORE_ARMORY_REALMS__0__AUTH_DATABASE: ${ARMORY_AUTH_DB:-acore_auth} ACORE_ARMORY_REALMS__0__CHARACTERS_DATABASE__HOST: ${ARMORY_DB_HOST:-192.168.1.60} ACORE_ARMORY_REALMS__0__CHARACTERS_DATABASE__PORT: ${ARMORY_DB_PORT:-3306} ACORE_ARMORY_REALMS__0__CHARACTERS_DATABASE__USER: ${ARMORY_DB_USER:?set ARMORY_DB_USER} ACORE_ARMORY_REALMS__0__CHARACTERS_DATABASE__PASSWORD: ${ARMORY_DB_PASS:?set ARMORY_DB_PASS} ACORE_ARMORY_REALMS__0__CHARACTERS_DATABASE__DATABASE: ${ARMORY_CHARACTERS_DB:-acore_characters} # --- world database ------------------------------------------------- ACORE_ARMORY_WORLD_DATABASE__HOST: ${ARMORY_DB_HOST:-192.168.1.60} ACORE_ARMORY_WORLD_DATABASE__PORT: ${ARMORY_DB_PORT:-3306} ACORE_ARMORY_WORLD_DATABASE__USER: ${ARMORY_DB_USER:?set ARMORY_DB_USER} ACORE_ARMORY_WORLD_DATABASE__PASSWORD: ${ARMORY_DB_PASS:?set ARMORY_DB_PASS} ACORE_ARMORY_WORLD_DATABASE__DATABASE: ${ARMORY_WORLD_DB:-acore_world} ACORE_ARMORY_DB_QUERY_TIMEOUT: ${ARMORY_DB_TIMEOUT:-10000} volumes: # The 3D model payload, extracted from the release archive. These # four directories are exactly the top level of data.tar.gz. - ${ARMORY_DATA_DIR:-/opt/mythica-armory/data}/meta:/data/meta - ${ARMORY_DATA_DIR:-/opt/mythica-armory/data}/bone:/data/bone - ${ARMORY_DATA_DIR:-/opt/mythica-armory/data}/mo3:/data/mo3 - ${ARMORY_DATA_DIR:-/opt/mythica-armory/data}/textures:/data/textures - ${ARMORY_LOG_DIR:-/opt/mythica-armory/logs}:/logs ports: - "${ARMORY_PORT:-48733}:48733"