eesyphp/example/includes/config.yml
2024-01-23 19:23:10 +01:00

370 lines
10 KiB
YAML

# Public root URL
public_root_url: "http://127.0.0.1/eesyphp"
# Application root data directory
data_directory: "${root_directory_path}/data"
# Temporary files root directory
tmp_root_directory: "${data_directory}/tmp"
# Temporary uploading files directory (optional, default: PHP ini default)
upload_tmp_directory: ${tmp_root_directory}/uploading"
# Uploading file size limit (in bytes, example: 104857600 == 100Mb)
# (optional, default: PHP ini default)
upload_max_filesize: 104857600
# Main pagetitle
main_pagetitle: "Eesyphp"
# Debug Ajax request/response
debug_ajax: false
#
# Log configuration
#
log:
# Logs directory path
directory_path: "${data_directory}/logs"
# CLI log file path
cli_file_path: "${log.directory_path}/cli.log"
# Log file path
file_path: "${log.directory_path}/app.log"
# Log level (TRACE / DEBUG / INFO / WARNING / ERROR / FATAL)
level: "INFO"
# Log PHP errors levels (as specified to set_error_handler())
# Note: expected a list of PHP error level constants that will be resolved and combine
# with a bitwise operator. After the first value, the bitwise operator "|" (OR) or "^" (XOR)
# could be specified as contanst name prefix, otherwise the "&" (AND) operator will be used.
# The constant name could also be prefix with "~" or "!" (NOT) bitwise operator.
#
# Default:
# - In TRACE or DEBUG: E_ALL & ~E_STRICT
# - Otherwise: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
#log_php_errors_levels:
# - E_ALL
# - ~E_NOTICE
# - ~E_STRICT
# - ~E_DEPRECATED
#
# Sentry configuration
#
sentry:
# Sentry DSN
#dsn: null
# Log PHP errors in Sentry: list of errors types to logs
# See: https://www.php.net/manual/fr/errorfunc.constants.php
php_error_types:
- "E_ERROR"
- "E_PARSE"
- "E_CORE_ERROR"
- "E_COMPILE_ERROR"
- "E_USER_ERROR"
- "E_RECOVERABLE_ERROR"
- "E_DEPRECATED"
# Traces sample rate (between 0 and 1)
# Note: this parameter permit to determine how many transactions (=~ access) are traced and
# sent to Sentry, for instance, 0.2 meen that 20% of the transactions will be traced. In dev
# mode, set to 1 if you want all transactions are sent to Sentry.
# Default: 0.2
traces_sample_rate: 0.2
#
# Smarty templates configuration
#
templates:
# Smarty directories
directory: "${root_directory_path}/templates"
cache_directory: "${tmp_root_directory}/templates_c"
# Theme CSS file
included_css_files:
#- css/custom.css
included_js_files:
#- js/custom.js
#
# Translations
#
i18n:
# Default locale (see locales directory for available languages list, default: 'en_US.UTF8')
#default_locale: 'en_US.UTF8'
#
# Session
#
session:
# Session timeout due to inactivity (in seconds)
timeout: 1800
# Session max duration (in seconds, default : 12h)
max_duration: 43200
# Directory path where to store PHP sessions data (optional, default: use system default)
directory_path: "${data_directory}/sessions"
#
# Database configuration
#
db:
# Sqlite
dsn: "sqlite:${data_directory}/db.sqlite3"
options: null
# Date/Datetime format in database (strptime format)
date_format: "%s"
datetime_format: "%s"
# Postgresql
#dsn: "pgsql:host=localhost;port=5432;dbname=items"
#user: "items"
#pwd: "items"
#options: null
# Date/Datetime format in database (strptime format)
#date_format: '%Y-%m-%d' # Example : 2018-10-12
#datetime_format: '%Y-%m-%d %H:%M:%S' # Example : 2018-10-12 18:06:59
# MariaDB / MySQL
#dsn: "mysql:host=localhost;dbname=items"
#user: "items"
#pwd: "items"
#options: null
# Date/Datetime format in database (strptime format)
#date_format: '%Y-%m-%d' # Example : 2018-10-12
#datetime_format: '%Y-%m-%d %H:%M:%S' # Example : 2018-10-12 18:06:59
#
# Authentication
#
auth:
# Enabled authentication
enabled: true
# Methods to authenticate users
methods:
- form
- http
#- cas
# User backends
backends:
- db
#- ldap
#- casuser
#
# Login form
#
login_form:
# Include application navbar (default: true)
include_navbar: true
# Display link for other authentication methods
# Note: method as key and label as value
display_other_methods:
http: "HTTP"
cas: "SSO"
# Remember username
# Enable the feature (default: true)
# remember_username: true
# Cookie name (default: remember_username)
# remember_username_cookie_name: "remember_username"
#
# HTTP Authentication Configuration
#
http:
# HTTP Auth methods :
# * AUTHORIZATION : use HTTP_AUTHORIZATION environment. This mode could be use with PHP FPM.
# Specific configuration is need in Apache to use this mode :
# RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# * REMOTE_USER : use REMOTE_USER environment variable to retrieve authenticated user's login
# This method could be only used with $http_auth_trust_without_password_challenge
# enabled.
# * PHP_AUTH : use PHP_AUTH_USER and PHP_AUTH_PW environment variables (only available
# using mod_php with Apache. (default)
method: "PHP_AUTH"
# Trust HTTP server authentication
# If enabled, the application will no check user credentials and only retrieve user's login
# from HTTP server.
#trust_without_password_challenge: true
# Realm (use when force HTTP login, optional)
#realm: "Authentication required"
#
# CAS Configuration
#
cas:
# CAS host (just the domain name)
host: "idp.example.com"
# CAS context (the root path, default: '/idp/cas')
# Example: for 'http://idp.example.com/idp/cas', put '/idp/cas'
context: "/idp/cas"
# CAS HTTP port (default: 443)
#port: 443
# CAS procotol version
# Possible values: "1.0", "2.0" (default), "3.0" or "S1" (SAML1)
#version: '2.0'
# CAS server SSL certificate validation (set to false to disable)
ca_cert_certificate_path: "/etc/ssl/certs/ca-certificates.crt"
# CAS Debug log file
#debug_log_file: "${root_directory_path}/data/logs/cas.log"
# CAS Logout
#logout: true # Enable CAS logout on app logout
#logout_url: "https://my.example.fr/logout/" # Specify custom CAS logout URL
# CAS Fake authenticated user
#fake_authenticated_user: 'myusername'
# CAS user attributes to retrieve with their properties:
# [attr name]:
# # CAS attribute name (optional, default: [attr name])
# cas_name: [CAS attr name]
# # Alternative CAS attribute name to retrieve if the first one is not defined (optional)
# alt_cas_name: [alternative CAS attr name]
# # Type of value (optional, default: 'string', possible values: string, bool, int, float)
# type: [type of value]
# # Default attribute value (optional, default: null)
# default: null
# Note: only used by casuser auth backend.
user_attributes:
login:
cas_name: "uid"
default: null
name:
cas_name: "displayName"
cas_ldap_name: "cn"
default: null
mail:
type: "string"
#
# Database user backend
#
db:
# DSN (required)
dsn: "${db.dsn}"
# Username (optional but could be required with some PDO drivers)
user: "${db.user}"
# Password (optional)
password: "${db.password}"
# PDO options (optional)
options: "${db.options}"
# Users table name (optional, default: users)
users_table: "users"
# Username field name (optional, default: username)
username_field: "username"
# Password field name (optional, default: password)
password_field: "password"
# Exposed users table fields in resulting EesyPHP\Auth\User object
# (optional, default: name, mail)
exposed_fields:
- "name"
- "mail"
#
# LDAP user backend
#
ldap:
# LDAP host (required, multiple hosts could be specified with comma separator)
host: "ldap://localhost"
# LDAP port (optional)
#port: 389
# Enable STARTTLS (optional, default: false)
#starttls: false
# LDAP directory base DN (required)
basedn: "o=example"
# LDAP bind DN (optional)
#bind_dn: 'uid=eesyphp,ou=sysaccounts,${auth.ldap.basedn}'
# LDAP bind password (optional)
#bind_password: 'secret'
# User search filter by username. The keyword "[username]" will be replace before search by
# the looked username (default: "uid=[username]")
#user_filter_by_uid: 'uid=[username]'
# User base DN
user_basedn: "ou=people,${auth.ldap.basedn}"
# Bind with username instead of user DN (optional, default: false)
#bind_with_username: true
# LDAP user attributes to retrieve with their properties:
# [attr name]:
# # LDAP attribute name (optional, default: [attr name])
# ldap_name: [LDAP attr name]
# # Alternative LDAP attribute name to retrieve if the first one is not defined (optional)
# alt_ldap_name: [alternative LDAP attr name]
# # Type of value (optional, default: 'string', possible values: string, bool, int, float)
# type: [type of value]
# # Multivalued attribute (optional, default: false)
# multivalued: true
# # Default attribute value (optional, default: null)
# default: null
user_attributes:
login:
ldap_name: "uid"
multivalued: false
default: null
name:
ldap_name: "displayName"
alt_ldap_name: "cn"
multivalued: false
default: null
mail:
type: "string"
# PEAR Net_LDAP2 library path (optional, default: Net/LDAP2.php)
#netldap2_path: 'Net/LDAP2.php'
#
# Email configuration
#
email:
# PHP PEAR Mail and Mail_Mine paths
php_mail_path: "Mail.php"
php_mail_mime_path: "Mail/mime.php"
# Sending method :
# - mail : use PHP mail function
# - sendmail : use sendmail system command
# - smtp : use an SMTP server (PHP PEAR Net_SMTP required)
send_method: "smtp"
# Sending parameters
# See : http:#pear.php.net/manual/en/package.mail.mail.factory.php
send_params: NULL
# Headers add to all e-mails sent
headers:
#- "CC: support@example.com"
# Email sender address (for all emails sent by the application)
sender: "noreply@example.org"
# Catch all e-mails sent to a configured e-mail address
catch_all: false
# Web Stats JS code
#webstats_js_code: ''
# vim: tabstop=2 shiftwidth=2 softtabstop=2 expandtab