Docker
Docker¶
Image¶
Docker Compose¶
Template:
services:
# ------------------------------------------------------------------------------
critter_server:
image: ghcr.io/eurofurence/crittersystem:latest
restart: unless-stopped
environment:
MYSQL_HOST: critter_database
MYSQL_USER: critter_user
MYSQL_PASSWORD: critter_password
MYSQL_DATABASE: critter_db
ports:
- '5080:80'
networks:
- database
- internet
depends_on:
- critter_database
# ------------------------------------------------------------------------------
critter_database:
image: mariadb:10.2
restart: unless-stopped
environment:
MYSQL_DATABASE: critter_db
MYSQL_USER: critter_user
MYSQL_PASSWORD: critter_password
MYSQL_RANDOM_ROOT_PASSWORD: 1
MYSQL_INITDB_SKIP_TZINFO: 'yes'
volumes:
- db:/var/lib/mysql
networks:
- database
# ------------------------------------------------------------------------------
volumes:
db: {}
networks:
database:
internal: true
internet:
Variables¶
Variables | Docker ENV | Default Value |
---|---|---|
'host' | 'MYSQL_HOST' | localhost |
'database' | 'MYSQL_DATABASE' | critterdb |
'username' | 'MYSQL_USER' | root |
'password' | 'MYSQL_PASSWORD' | empty |
'api_key' | 'API_KEY' | empty |
'maintenance' | 'MAINTENANCE' | false |
'app_name' | 'APP_NAME' | Critter System |
'environment' | 'ENVIRONMENT' | production |
'url' | 'APP_URL' | empty |
'faq.faq' | 'FAQ_URL' | /faq |
'Contact' | 'CONTACT_EMAIL' | mailto:critter@eurofurence.org |
'general.email' | 'CONTACT_EMAIL' | mailto:critter@eurofurence.org |
'faq_text' | 'FAQ_TEXT' | |
'documentation_url' | 'DOCUMENTATION_URL' | 'https://github.com/eurofurence/crittersystem/' |
'driver' | 'MAIL_DRIVER' | |
'address' | 'MAIL_FROM_ADDRESS' | noreply@example.com |
'name' | 'MAIL_FROM_NAME' | env 'APP_NAME' |
'host' | 'MAIL_HOST' | 'localhost' |
'port' | 'MAIL_PORT' | 587 |
'tls' | 'MAIL_TLS' | |
'username' | 'MAIL_USERNAME' | |
'password' | 'MAIL_PASSWORD' | |
'sendmail' | 'MAIL_SENDMAIL' | '/usr/sbin/sendmail -bs' |
'privacy_email' | 'PRIVACY_EMAIL' | |
'enable_email_goodie' | 'ENABLE_EMAIL_GOODIE' | false |
'setup_admin_password' | 'SETUP_ADMIN_PASSWORD' | |
'theme' | 'THEME' | 21 |
'home_site' | 'HOME_SITE' | 'news' |
'display_news' | 'DISPLAY_NEWS' | 10 |
'registration_enabled' | 'REGISTRATION_ENABLED' | true |
'external_registration_url' | 'EXTERNAL_REGISTRATION_URL' | |
'pronoun' | 'PRONOUN_REQUIRED' | false |
'firstname' | 'FIRSTNAME_REQUIRED' | false |
'lastname' | 'LASTNAME_REQUIRED' | false |
'tshirt_size' | 'TSHIRT_SIZE_REQUIRED' | true |
'mobile' | 'MOBILE_REQUIRED' | false |
'dect' | 'DECT_REQUIRED' | false |
'signup_requires_arrival' | 'SIGNUP_REQUIRES_ARRIVAL' | false |
'autoarrive' | 'AUTOARRIVE' | false |
'supporters_can_promote' | 'SUPPORTERS_CAN_PROMOTE' | false |
'signup_advance_hours' | 'SIGNUP_ADVANCE_HOURS' | 0 |
'signup_post_minutes' | 'SIGNUP_POST_MINUTES' | 0 |
'signup_post_fraction' | 'SIGNUP_POST_FRACTION' | 0 |
'last_unsubscribe' | 'LAST_UNSUBSCRIBE' | 3 |
'password_algorithm' | 'PASSWORD_ALGORITHM' | PASSWORD_DEFAULT |
'password_min_length' | 'PASSWORD_MIN_LENGTH' | 8 |
'enable_password' | 'ENABLE_PASSWORD' | true |
'enable_dect' | 'ENABLE_DECT' | true |
'enable_mobile_show' | 'ENABLE_MOBILE_SHOW' | false |
'username_regex' | 'USERNAME_REGEX' | '/([^\p{L}\p{N}_.-]+)/ui' |
'enable_full_name' | 'ENABLE_FULL_NAME' | false |
'display_full_name' | 'DISPLAY_FULL_NAME' | false |
'ENABLE_FULL_NAME' | false | |
'enable_pronoun' | 'ENABLE_PRONOUN' | true |
'enable_planned_arrival' | 'ENABLE_PLANNED_ARRIVAL' | true |
'enable_force_active' | 'ENABLE_FORCE_ACTIVE' | true |
'enable_self_worklog' | 'ENABLE_SELF_WORKLOG' | true |
'goodie_type' | 'GOODIE_TYPE' | 'goodie' |
'enable_voucher' | 'ENABLE_VOUCHER' | true |
'max_freeloadable_shifts' | 'MAX_FREELOADABLE_SHIFTS' | 2 |
'timezone' | 'TIMEZONE' | 'Europe/Berlin' |
'enabled' | 'NIGHT_SHIFTS' | true |
'start' | 'NIGHT_SHIFTS_START' | 2 |
'end' | 'NIGHT_SHIFTS_END' | 8 |
'multiplier' | 'NIGHT_SHIFTS_MULTIPLIER' | 2 |
'initial_vouchers' | 'INITIAL_VOUCHERS' | 0 |
'shifts_per_voucher' | 'SHIFTS_PER_VOUCHER' | 0 |
'hours_per_voucher' | 'HOURS_PER_VOUCHER' | 2 |
'voucher_start' | 'VOUCHER_START' ?: null, | |
'driving_license_enabled' | 'DRIVING_LICENSE_ENABLED' | true |
'ifsg_enabled' | 'IFSG_ENABLED' | false |
'ifsg_light_enabled' | 'IFSG_LIGHT_ENABLED' | false |
'default_locale' | 'DEFAULT_LOCALE' | 'en_US' |
'tshirt_link' | 'TSHIRT_LINK' | |
'enable_day_of_event' | 'ENABLE_DAY_OF_EVENT' | false |
'event_has_day0' | 'EVENT_HAS_DAY0' | true |
'filter_max_duration' | 'FILTER_MAX_DURATION' | 0 |
'driver' | 'SESSION_DRIVER' | 'pdo' |
'name' | 'SESSION_NAME' | 'session' |
'lifetime' | 'SESSION_LIFETIME' | 30 |
'trusted_proxies' | 'TRUSTED_PROXIES' | ['127.0.0.0/8', '::ffff:127.0.0.0/8', '::1/128'] |
'add_headers' | 'ADD_HEADERS' | true |