Use more configs from env, improved docker setup

This commit is contained in:
Igor Scheller 2020-10-22 17:08:00 +02:00
parent 620c9a02bb
commit efddc102d1
8 changed files with 42 additions and 50 deletions

View File

@ -1,4 +1,16 @@
**/docker-compose.yml # Docker config
**/Dockerfile docker/
docker/deployment.env !docker/nginx/entrypoint.sh
!docker/nginx/nginx.conf
# Configuration
config/config.php
# Files
.dockerignore .dockerignore
*.git*
.editorconfig
deployment.tpl.yaml
storage/cache/
!storage/cache/.gitignore
!storage/cache/views/.gitignore

2
.gitignore vendored
View File

@ -20,7 +20,9 @@ _vimrc_local.vim
# Docker .env files # Docker .env files
/docker/.env /docker/.env
/docker/deployment.env
/docker/dev/.env /docker/dev/.env
/docker/dev/deployment.env
# Project files # Project files
/config/config.php /config/config.php

View File

@ -94,20 +94,20 @@ return [
'registration_enabled' => (bool)env('REGISTRATION_ENABLED', true), 'registration_enabled' => (bool)env('REGISTRATION_ENABLED', true),
// Only arrived angels can sign up for shifts // Only arrived angels can sign up for shifts
'signup_requires_arrival' => false, 'signup_requires_arrival' => (bool)env('SIGNUP_REQUIRES_ARRIVAL', false),
// Whether newly-registered user should automatically be marked as arrived // Whether newly-registered user should automatically be marked as arrived
'autoarrive' => (bool)env('ANGEL_AUTOARRIVE', false), 'autoarrive' => (bool)env('ANGEL_AUTOARRIVE', false),
// Only allow shift signup this number of hours in advance // Only allow shift signup this number of hours in advance
// Setting this to 0 disables the feature // Setting this to 0 disables the feature
'signup_advance_hours' => 0, 'signup_advance_hours' => env('SIGNUP_ADVANCE_HOURS', 0),
// Allow signup this many minutes after the start of the shift // Allow signup this many minutes after the start of the shift
'signup_post_minutes' => 0, 'signup_post_minutes' => env('SIGNUP_POST_MINUTES', 0),
// Number of hours that an angel has to sign out own shifts // Number of hours that an angel has to sign out own shifts
'last_unsubscribe' => 3, 'last_unsubscribe' => env('LAST_UNSUBSCRIBE', 3),
// Define the algorithm to use for `password_verify()` // Define the algorithm to use for `password_verify()`
// If the user uses an old algorithm the password will be converted to the new format // If the user uses an old algorithm the password will be converted to the new format
@ -118,41 +118,41 @@ return [
'min_password_length' => env('PASSWORD_MINIMUM_LENGTH', 8), 'min_password_length' => env('PASSWORD_MINIMUM_LENGTH', 8),
// Whether the DECT field should be enabled // Whether the DECT field should be enabled
'enable_dect' => (bool)env('REGISTRATION_ENABLE_DECT', true), 'enable_dect' => (bool)env('ENABLE_DECT', true),
// Enables prename and lastname // Enables prename and lastname
'enable_user_name' => (bool)env('REGISTRATION_ENABLE_USERNAME', false), 'enable_user_name' => (bool)env('ENABLE_USER_NAME', false),
// Enable displaying the pronoun fields // Enable displaying the pronoun fields
'enable_pronoun' => (bool)env('REGISTRATION_ENABLE_DECT', false), 'enable_pronoun' => (bool)env('ENABLE_PRONOUN', false),
// Enables the planned arrival/leave date // Enables the planned arrival/leave date
'enable_planned_arrival' => (bool)env('REGISTRATION_ENABLE_PLANNED_ARRIVAL', true), 'enable_planned_arrival' => (bool)env('ENABLE_PLANNED_ARRIVAL', true),
// Enables the T-Shirt configuration on signup and profile // Enables the T-Shirt configuration on signup and profile
'enable_tshirt_size' => (bool)env('REGISTRATION_ENABLE_TSHIRT', true), 'enable_tshirt_size' => (bool)env('ENABLE_TSHIRT_SIZE', true),
// Number of shifts to freeload until angel is locked for shift signup. // Number of shifts to freeload until angel is locked for shift signup.
'max_freeloadable_shifts' => 2, 'max_freeloadable_shifts' => env('MAX_FREELOADABLE_SHIFTS', 2),
// Local timezone // Local timezone
'timezone' => env('TIMEZONE', ini_get('date.timezone') ?: 'Europe/Berlin'), 'timezone' => env('TIMEZONE', ini_get('date.timezone') ?: 'Europe/Berlin'),
// Multiply 'night shifts' and freeloaded shifts (start or end between 2 and 6 exclusive) by 2 // Multiply 'night shifts' and freeloaded shifts (start or end between 2 and 6 exclusive) by 2
'night_shifts' => [ 'night_shifts' => [
'enabled' => true, // Disable to weigh every shift the same 'enabled' => (bool)env('NIGHT_SHIFTS', true), // Disable to weigh every shift the same
'start' => 2, 'start' => env('NIGHT_SHIFTS_START', 2),
'end' => 6, 'end' => env('NIGHT_SHIFTS_END', 6),
'multiplier' => 2, 'multiplier' => env('NIGHT_SHIFTS_MULTIPLIER', 2),
], ],
// Voucher calculation // Voucher calculation
'voucher_settings' => [ 'voucher_settings' => [
'initial_vouchers' => 0, 'initial_vouchers' => env('INITIAL_VOUCHERS', 0),
'shifts_per_voucher' => 0, 'shifts_per_voucher' => env('SHIFTS_PER_VOUCHER', 0),
'hours_per_voucher' => 2, 'hours_per_voucher' => env('HOURS_PER_VOUCHER', 2),
// 'Y-m-d' formatted // 'Y-m-d' formatted
'voucher_start' => null, 'voucher_start' => env('VOUCHER_START', null) ?: null,
], ],
// Available locales in /resources/lang/ // Available locales in /resources/lang/
@ -187,7 +187,8 @@ return [
// Shifts overview // Shifts overview
// Set max number of hours that can be shown at once // Set max number of hours that can be shown at once
'filter_max_duration' => 0, // 0 means no limit
'filter_max_duration' => env('FILTER_MAX_DURATION', 0),
// Session config // Session config
'session' => [ 'session' => [
@ -195,7 +196,7 @@ return [
'driver' => env('SESSION_DRIVER', 'pdo'), 'driver' => env('SESSION_DRIVER', 'pdo'),
// Cookie name // Cookie name
'name' => 'session', 'name' => env('SESSION_NAME', 'session'),
], ],
// IP addresses of reverse proxies that are trusted, can be an array or a comma separated list // IP addresses of reverse proxies that are trusted, can be an array or a comma separated list

View File

@ -25,8 +25,7 @@ COPY --from=translation /data/ /app/resources/lang
COPY --from=composer /app/vendor/ /app/vendor COPY --from=composer /app/vendor/ /app/vendor
COPY --from=composer /app/composer.lock /app/ COPY --from=composer /app/composer.lock /app/
RUN find /app/storage/ -type f -not -name .gitignore -exec rm {} \; RUN find /app/storage/ -type f -not -name VERSION -exec rm {} \;
RUN rm -f /app/config/config.php
# Build the PHP container # Build the PHP container
FROM php:7-fpm-alpine FROM php:7-fpm-alpine

View File

@ -1,23 +1 @@
# MAINTENANCE=false # Additional env config can be added here
# APP_NAME="Engelsystem"
# ENVIRONMENT= 'production'
# APP_URL=null
# FAQ_URL='https://events.ccc.de/congress/2013/wiki/Static:Volunteers'
# MAIL_DRIVER='mail'
# MAIL_FROM_ADDRESS='noreply@engelsystem.de'
# MAIL_FROM_NAME=Engelsystem
# MAIL_HOST='localhost'
# MAIL_PORT=587
# THEME=1
# HOME_SITE='news'
# DISPLAY_NEWS=10
# REGISTRATION_ENABLED=true
# PASSWORD_MINIMUM_LENGTH=8
# REGISTRATION_ENABLE_DECT=true
# REGISTRATION_ENABLE_USERNAME=false
# REGISTRATION_ENABLE_DECT=false
# REGISTRATION_ENABLE_PLANNED_ARRIVAL=true
# REGISTRATION_ENABLE_TSHIRT=true
# TIMEZONE='Europe/Berlin'
# DEFAULT_LOCALE='en_US'
# ADD_HEADERS=true

View File

@ -0,0 +1 @@
# Additional env config can be added here

View File

@ -33,6 +33,7 @@ services:
ENVIRONMENT: development ENVIRONMENT: development
MAIL_DRIVER: log MAIL_DRIVER: log
APP_NAME: Engelsystem DEV APP_NAME: Engelsystem DEV
env_file: deployment.env
networks: networks:
- database - database
- fpm - fpm

View File

@ -23,8 +23,6 @@ services:
MYSQL_USER: engelsystem MYSQL_USER: engelsystem
MYSQL_PASSWORD: engelsystem MYSQL_PASSWORD: engelsystem
MYSQL_DATABASE: engelsystem MYSQL_DATABASE: engelsystem
# some optional env vars and their defaults can be seen in the env file
# for exact information have a look at config/config.default.php
env_file: deployment.env env_file: deployment.env
networks: networks:
- database - database