Docker Configuration
Stack: "edge"
This stack sets up the edge authentication via authelia, the caddy content delivery web proxy and the dashy dashboard.
name: edge
services:
caddy:
image: caddy:2.11.1
restart: unless-stopped
ports:
- "10.77.10.21:80:80"
- "10.77.10.21:443:443"
volumes:
- D:/DockerData/Binds/edge/caddy/Caddyfile:/etc/caddy/Caddyfile:rw
- D:/DockerData/Binds/antora/privsite:/data_private
- D:/DockerData/Binds/antora/pubsite:/data_public
- D:/DockerData/Binds/antora/playsite:/data_play
- D:/DockerData/Binds/edge/caddy/data:/data
- D:/DockerData/Binds/edge/caddy/config:/config
healthcheck:
test: ["CMD-SHELL", "wget -q -O /dev/null --spider http://127.0.0.1:2019/config/ || exit 1"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
depends_on:
authelia:
condition: service_healthy
dashy:
condition: service_healthy
networks:
edge:
aliases:
- proxy.internal
authelia:
image: authelia/authelia:4.38.19
restart: unless-stopped
volumes:
- D:/DockerData/Binds/edge/authelia:/config:rw
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:9091/api/health"]
interval: 30s
timeout: 5s
retries: 5
start_period: 20s
environment:
- TZ=America/New_York
depends_on:
redis:
condition: service_healthy
networks:
edge:
aliases:
- authelia.internal
redis:
image: redis:7-alpine
restart: unless-stopped
command: ["redis-server", "--appendonly", "yes"]
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
networks:
- edge
dashy:
image: lissy93/dashy:3.1.0
restart: unless-stopped
volumes:
- D:/DockerData/Binds/edge/dashy/conf.yml:/app/user-data/conf.yml:rw
environment:
- NODE_ENV=production
- BROWSERSLIST_IGNORE_OLD_DATA=true
healthcheck:
test: ["CMD-SHELL", "wget -q --spider http://127.0.0.1:8080/ || exit 1"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
networks:
edge:
aliases:
- dashy.internal
networks:
edge:
external: true
name: edge
volumes:
caddy_data:
caddy_config:
redis_data:
Other files/configuration:
— D:\DockerData\Binds\edge\authelia\
— D:\DockerData\Binds\edge\caddy\
xinclude::Xtest.t[] |
— D:\DockerData\Binds\edge\dashy\
pageInfo:
title: Portal
description: Internal Services for the Home
navLinks: []
sections:
- name: Applications
items:
- title: Under Oath
description: A Campaign Set in Viniculum
url: https://caldris.4mailx.cc
id: 0_1255_underoath
- title: Log Out
url: https://auth.4mailx.cc/logout
target: sametab
id: 1_1255_logout
- name: Services
items:
- title: UniFi Router
url: https://10.77.10.1
id: 0_836_unifirouter
- title: Reolink NVR
url: https://reolink.gn.com
target: newtab
id: 1_836_reolinknvr
appConfig:
theme: glass
layout: auto
iconSize: medium
startingView: default
defaultOpeningMethod: newtab
statusCheck: false
statusCheckInterval: 20
faviconApi: allesedv
routingMode: hash
enableMultiTasking: false
widgetsAlwaysUseProxy: false
webSearch:
disableWebSearch: false
searchEngine: duckduckgo
openingMethod: newtab
searchBangs: {}
enableFontAwesome: false
enableMaterialDesignIcons: false
hideComponents:
hideHeading: false
hideNav: false
hideSearch: false
hideSettings: false
hideFooter: false
auth:
enableHeaderAuth: false
headerAuth:
userHeader: Remote-User
proxyWhitelist: []
showSplashScreen: true
preventWriteToDisk: false
preventLocalSave: true
disableConfiguration: false
disableConfigurationForNonAdmin: false
allowConfigEdit: true
enableServiceWorker: false
disableContextMenu: false
disableUpdateChecks: true
disableSmartSort: false
enableErrorReporting: false
Stack: "kroki"
version: "3.8"
services:
kroki:
image: yuzutech/kroki:0.30.1
restart: unless-stopped
ports:
- "8000:8000"
environment:
KROKI_CACHE_ENABLED: "true"
KROKI_CACHE_DIR: /cache
KROKI_CACHE_MAX_SIZE: 100000000
KROKI_MERMAID_HOST: mermaid
KROKI_MERMAID_PORT: 8002
volumes:
- kroki_cache:/cache
depends_on:
- mermaid
healthcheck:
test: ["CMD", "wget", "-q", "-O", "-", "http://localhost:8000/plantuml/svg/eNpzzMlMTlXQtVNwyk_iAgAbygOn"]
interval: 30s
timeout: 5s
retries: 3
start_period: 15s
networks:
- edge
mermaid:
image: yuzutech/kroki-mermaid:0.30.1
restart: unless-stopped
networks:
- edge
networks:
edge:
external: true
volumes:
kroki_cache:
No external host configuration required, although that image, as it stands does not include asciidoctor-kroki. If you look at the batch file below for Antora you’ll see the call to yarn that merges it with the instance at invocation time.
Stack: "antora"
Deployed via the command-line, Antora doesn’t need a full stack running full time in- or out- of Docker. It’s invoked via a batch file containing the following:
@echo off @echo Building Viniculum Documentation and Lore git --git-dir=D:\DockerData\Binds\antora\src\.git --work-tree=D:\DockerData\Binds\antora\src add * git --git-dir=D:\DockerData\Binds\antora\src\.git --work-tree=D:\DockerData\Binds\antora\src commit -m "Latest" docker run --rm -v D:/DockerData/Binds/antora/src:/workspace -v D:/DockerData/Binds/antora/site:/site antora/antora:3.1.4 sh -lc "yarn global add asciidoctor-kroki && antora /workspace/site.yml --to-dir=/site --stacktrace" @echo Done ...
Other files and binds
You’ll need:
D:\DockerData\Binds\antona\site\ (can be created empty. The Antora process will populate it.)
D:\DockerData\Binds\antona\src\ workspace folder containging the (minimum of)
¦ antora.yml ¦ site.yml +---modules ¦ +---ROOT ¦ ¦ nav.adoc ¦ +---attachments ¦ +---examples ¦ +---images ¦ +---pages ¦ ¦ index.adoc ¦ ¦ ¦ +---partials +---ui +---ui-supplemental
With a minimum:
name: caldris title: Under Oath version: latest nav: - modules/ROOT/nav.adoc - modules/pcref/nav.adoc - modules/lore/nav.adoc - modules/geo/nav.adoc - modules/gmref/nav.adoc - modules/misc/nav.adoc
site:
title: Under Oath
start_page: caldris::index.adoc
runtime:
log:
level: info
format: pretty
content:
sources:
- url: .
branches: HEAD
ui:
bundle:
url: ./ui/ui-bundle.zip
supplemental_files: ./ui-supplemental
asciidoc:
extensions:
- asciidoctor-kroki
attributes:
kroki-server-url: http://host.docker.internal:8000
kroki-fetch-diagram: true