automatic initialization
This commit is contained in:
15
.env.sample
15
.env.sample
@ -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
21
abra.sh
@ -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
69
auto_wizard.json.tmpl
Normal 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" }}"
|
||||
}
|
||||
}
|
23
compose.yml
23
compose.yml
@ -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}
|
||||
|
Reference in New Issue
Block a user