automatic initialization

This commit is contained in:
2024-08-21 22:29:42 +02:00
parent 6ae8b9543d
commit 1000b563eb
4 changed files with 128 additions and 0 deletions

View File

@ -1,6 +1,7 @@
TYPE=zammad
DOMAIN=zammad.example.com
TIMEOUT=600
## Domain aliases
#EXTRA_DOMAINS=', `www.zammad.example.com`'
@ -8,5 +9,19 @@ DOMAIN=zammad.example.com
LETS_ENCRYPT_ENV=production
SECRET_DB_PASSWORD_VERSION=v1
SECRET_SMTP_PASSWORD_VERSION=v1
SECRET_ADMIN_PASSWORD_VERSION=v1
#RAILS_TRUSTED_PROXIES=['127.0.0.1', '::1', 'your-traefik_app']
## Initialization ##
PRODUCT_NAME="Support"
ORGANIZATION="Test Org"
LOGO_URL=logo.svg
# TIMEZONE="Europe/Berlin"
LOCALE="de-de"
ADMIN_EMAIL=admin@example.com
SMTP_HOST=mail.example.com
SMTP_LOGIN=user@example.com
SMTP_PORT=465

21
abra.sh
View File

@ -1 +1,22 @@
export ENTRYPOINT_VERSION=v2
export AUTO_WIZARD_VERSION=v1
get_setting_changes() {
/custom-entrypoint.sh "rails r 'puts JSON.pretty_generate(JSON.parse(Setting.all.select{ |setting| setting.state_current != setting.state_initial }.map { |setting| {name: setting.name, value: setting.state_current[\""value\""]} } .to_json))'"
}
console() {
/custom-entrypoint.sh "rails c"
}
rails_run() {
COMMAND="rails r \"$@\""
/custom-entrypoint.sh "$COMMAND"
}
init() {
cp -f /opt/zammad/contrib/auto_wizard.json /tmp/auto_wizard.json
/custom-entrypoint.sh "rails zammad:setup:auto_wizard[/tmp/auto_wizard.json]"
}

69
auto_wizard.json.tmpl Normal file
View File

@ -0,0 +1,69 @@
{
"Users": [
{
"login": "admin",
"firstname": "Admin",
"lastname": "Agent",
"password": "{{ secret "admin_password" }}",
"email": "{{ env "ADMIN_EMAIL" }}"
}
],
"Channels": [
{
"id": 1,
"area": "Email::Notification",
"options": {
"outbound": {
"adapter": "smtp",
"options": {
"host": "{{ env "SMTP_HOST" }}",
"user": "{{ env "SMTP_LOGIN" }}",
"password": "{{ secret "smtp_password" }}",
"port": "{{ env "SMTP_PORT" }}",
"ssl": true,
"domain": "{{ env "DOMAIN" }}",
"enable_starttls_auto": true,
"openssl_verify_mode": "none"
}
}
},
"active": true,
"preferences": {
"online_service_disable": true
}
}
],
"Settings": [
{
"name": "fqdn",
"value": "{{ env "DOMAIN" }}"
},
{
"name": "product_name",
"value": "{{ env "PRODUCT_NAME" }}"
},
{
"name": "organization",
"value": "{{ env "ORGANIZATION" }}"
},
{
"name": "product_logo",
"value": "{{ env "LOGO_URL" }}"
},
{
"name": "timezone_default",
"value": "{{ env "TZ" }}"
},
{
"name": "locale_default",
"value": "{{ env "LOCALE" }}"
},
{
"name": "http_type",
"value": "https"
}
],
"TextModuleLocale": {
"Locale": "{{ env "LOCALE" }}"
}
}

View File

@ -37,6 +37,15 @@ x-shared:
ZAMMAD_SESSION_JOBS:
ZAMMAD_PROCESS_SCHEDULED:
ZAMMAD_PROCESS_DELAYED_JOBS_WORKERS:
PRODUCT_NAME:
ORGANIZATION:
LOGO_URL:
LOCALE:
ADMIN_EMAIL:
SMTP_HOST:
SMTP_LOGIN:
SMTP_PORT:
DOMAIN:
image: ghcr.io/zammad/zammad:6.3.1-95
deploy:
restart_policy:
@ -53,8 +62,12 @@ x-shared:
- source: entrypoint
target: /custom-entrypoint.sh
mode: 0555
- source: auto_wizard
target: /opt/zammad/contrib/auto_wizard.json
secrets:
- db_password
- smtp_password
- admin_password
services:
zammad-backup:
@ -227,8 +240,18 @@ configs:
entrypoint:
name: ${STACK_NAME}_entrypoint_${ENTRYPOINT_VERSION}
file: entrypoint.sh
auto_wizard:
name: ${STACK_NAME}_auto_wizard_${AUTO_WIZARD_VERSION}
file: auto_wizard.json.tmpl
template_driver: golang
secrets:
db_password:
external: true
name: ${STACK_NAME}_db_password_${SECRET_DB_PASSWORD_VERSION}
smtp_password:
external: true
name: ${STACK_NAME}_smtp_password_${SECRET_SMTP_PASSWORD_VERSION}
admin_password:
external: true
name: ${STACK_NAME}_admin_password_${SECRET_ADMIN_PASSWORD_VERSION}