- Added properties for managing container logs, including log entries, service filters, and auto-refresh options. - Introduced commands for refreshing logs, toggling auto-refresh, and closing the logs panel. - Implemented log fetching logic with error handling and status messages. - Integrated log display in the InstancesView with a dedicated logs panel. feat: Enhance navigation to Instances page with auto-selection - Added method to navigate to the Instances page and auto-select an instance based on abbreviation. feat: Update SettingsViewModel to load and save Bitwarden configuration - Integrated Bitwarden configuration loading from IOptions and saving to appsettings.json. - Added properties for Bitwarden instance project ID and connection status. - Updated UI to reflect Bitwarden settings and connection status. feat: Add advanced options for instance creation - Introduced a new expander in CreateInstanceView for advanced options, including purging stale volumes. feat: Improve InstanceDetailsWindow with pending setup banner - Added a banner to indicate pending setup for Xibo OAuth credentials, with editable fields for client ID and secret. fix: Update appsettings.json to include Bitwarden configuration structure - Added Bitwarden section to appsettings.json for storing configuration values. chore: Update Docker Compose template with health checks - Added health check configuration for web service in template.yml to ensure service availability. refactor: Drop AppSettings table from database - Removed AppSettings table and related migration files as part of database cleanup. feat: Create ServiceLogEntry DTO for log management - Added ServiceLogEntry class to represent individual log entries from Docker services.
143 lines
3.6 KiB
YAML
143 lines
3.6 KiB
YAML
# Customer: {{CUSTOMER_NAME}}
|
|
version: "3.9"
|
|
|
|
services:
|
|
|
|
{{ABBREV}}-web:
|
|
image: {{CMS_IMAGE}}
|
|
environment:
|
|
CMS_USE_MEMCACHED: "true"
|
|
MEMCACHED_HOST: memcached
|
|
CMS_ALIAS: "/{{ABBREV}}"
|
|
MYSQL_HOST: {{MYSQL_HOST}}
|
|
MYSQL_PORT: "{{MYSQL_PORT}}"
|
|
MYSQL_DATABASE: {{MYSQL_DATABASE}}
|
|
MYSQL_USER: {{MYSQL_USER}}
|
|
MYSQL_PASSWORD: {{MYSQL_PASSWORD}}
|
|
CMS_SERVER_NAME: {{CMS_SERVER_NAME}}
|
|
CMS_SMTP_SERVER: {{SMTP_SERVER}}
|
|
CMS_SMTP_USERNAME: {{SMTP_USERNAME}}
|
|
CMS_SMTP_PASSWORD: {{SMTP_PASSWORD}}
|
|
CMS_SMTP_USE_TLS: {{SMTP_USE_TLS}}
|
|
CMS_SMTP_USE_STARTTLS: {{SMTP_USE_STARTTLS}}
|
|
CMS_SMTP_REWRITE_DOMAIN: {{SMTP_REWRITE_DOMAIN}}
|
|
CMS_SMTP_HOSTNAME: {{SMTP_HOSTNAME}}
|
|
CMS_SMTP_FROM_LINE_OVERRIDE: {{SMTP_FROM_LINE_OVERRIDE}}
|
|
CMS_PHP_POST_MAX_SIZE: {{PHP_POST_MAX_SIZE}}
|
|
CMS_PHP_UPLOAD_MAX_FILESIZE: {{PHP_UPLOAD_MAX_FILESIZE}}
|
|
CMS_PHP_MAX_EXECUTION_TIME: "{{PHP_MAX_EXECUTION_TIME}}"
|
|
secrets:
|
|
- global_mysql_host
|
|
- global_mysql_port
|
|
volumes:
|
|
- {{ABBREV}}-cms-custom:/var/www/cms/custom
|
|
- {{ABBREV}}-cms-backup:/var/www/backup
|
|
- {{THEME_HOST_PATH}}:/var/www/cms/web/theme/custom
|
|
- {{ABBREV}}-cms-library:/var/www/cms/library
|
|
- {{ABBREV}}-cms-userscripts:/var/www/cms/web/userscripts
|
|
- {{ABBREV}}-cms-ca-certs:/var/www/cms/ca-certs
|
|
ports:
|
|
- "{{HOST_HTTP_PORT}}:80"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -fsS --max-time 5 http://web:80/about | grep -Eo 'v?[0-9]+(\\.[0-9]+)+' >/dev/null || exit 1"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 30s
|
|
networks:
|
|
{{ABBREV}}-net:
|
|
aliases:
|
|
- web
|
|
deploy:
|
|
restart_policy:
|
|
condition: any
|
|
resources:
|
|
limits:
|
|
memory: 1G
|
|
|
|
{{ABBREV}}-memcached:
|
|
image: {{MEMCACHED_IMAGE}}
|
|
command: [memcached, -m, "15"]
|
|
networks:
|
|
{{ABBREV}}-net:
|
|
aliases:
|
|
- memcached
|
|
deploy:
|
|
restart_policy:
|
|
condition: any
|
|
resources:
|
|
limits:
|
|
memory: 100M
|
|
|
|
{{ABBREV}}-quickchart:
|
|
image: {{QUICKCHART_IMAGE}}
|
|
networks:
|
|
{{ABBREV}}-net:
|
|
aliases:
|
|
- quickchart
|
|
deploy:
|
|
restart_policy:
|
|
condition: any
|
|
|
|
{{ABBREV}}-newt:
|
|
image: {{NEWT_IMAGE}}
|
|
environment:
|
|
PANGOLIN_ENDPOINT: {{PANGOLIN_ENDPOINT}}
|
|
NEWT_ID: {{NEWT_ID}}
|
|
NEWT_SECRET: {{NEWT_SECRET}}
|
|
depends_on:
|
|
{{ABBREV}}-web:
|
|
condition: service_healthy
|
|
networks:
|
|
{{ABBREV}}-net: {}
|
|
deploy:
|
|
restart_policy:
|
|
condition: any
|
|
|
|
networks:
|
|
{{ABBREV}}-net:
|
|
driver: overlay
|
|
attachable: false
|
|
|
|
volumes:
|
|
{{ABBREV}}-cms-custom:
|
|
driver: local
|
|
driver_opts:
|
|
type: nfs
|
|
device: "{{NFS_DEVICE_PREFIX}}/{{ABBREV}}/cms-custom"
|
|
o: "{{NFS_OPTS}}"
|
|
{{ABBREV}}-cms-backup:
|
|
driver: local
|
|
driver_opts:
|
|
type: nfs
|
|
device: "{{NFS_DEVICE_PREFIX}}/{{ABBREV}}/cms-backup"
|
|
o: "{{NFS_OPTS}}"
|
|
{{ABBREV}}-cms-library:
|
|
driver: local
|
|
driver_opts:
|
|
type: nfs
|
|
device: "{{NFS_DEVICE_PREFIX}}/{{ABBREV}}/cms-library"
|
|
o: "{{NFS_OPTS}}"
|
|
{{ABBREV}}-cms-userscripts:
|
|
driver: local
|
|
driver_opts:
|
|
type: nfs
|
|
device: "{{NFS_DEVICE_PREFIX}}/{{ABBREV}}/cms-userscripts"
|
|
o: "{{NFS_OPTS}}"
|
|
{{ABBREV}}-cms-ca-certs:
|
|
driver: local
|
|
driver_opts:
|
|
type: nfs
|
|
device: "{{NFS_DEVICE_PREFIX}}/{{ABBREV}}/cms-ca-certs"
|
|
o: "{{NFS_OPTS}}"
|
|
|
|
secrets:
|
|
{{ABBREV}}-cms-db-password:
|
|
external: true
|
|
{{ABBREV}}-cms-db-user:
|
|
external: true
|
|
global_mysql_host:
|
|
external: true
|
|
global_mysql_port:
|
|
external: true
|