Repository navigation
Expand file tree
/
Copy path.env.dist
More file actions
240 lines (203 loc) · 8.04 KB
/
Copy path.env.dist
File metadata and controls
240 lines (203 loc) · 8.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
# This file (.env.dist) is an example template for the environment variables required by the application.
# The .env file is not versioned in the repository and should be created by duplicating this file.
# To use it, copy this file as .env and define the appropriate values.
# The environment variables defined in .env will be automatically loaded by Docker Compose.
###> symfony/framework-bundle ###
APP_ENV=prod
APP_DEBUG=0
APP_SECRET=CHANGE_THIS_TO_A_SECRET
APP_PORT=8080
APP_ONLINE_MODE=1
XDEBUG_MODE=off # You can enable it by changing to "debug", "off" to leave it disabled
XDEBUG_CONFIG="client_host=host.docker.internal"
# Configure the BASE_PATH for subdirectory installation.
# Leave it empty if you want to use the root directory.
# IMPORTANT: Do not end with a slash (/).
# Examples:
# BASE_PATH= (installation at root)
# BASE_PATH=/exelearning
# BASE_PATH=/web/exelearning
BASE_PATH=
# Allow users to import/install styles
ONLINE_THEMES_INSTALL=0
# Allow users to import/install iDevices
ONLINE_IDEVICES_INSTALL=0
# Test user data
TEST_USER_EMAIL=user@exelearning.net
TEST_USER_USERNAME=user
TEST_USER_PASSWORD=1234
###> Authentication Configuration ###
# Available modes (comma-separated):
# - "none": Offline mode (no authentication)
# - "password": Traditional username/password login
# - "cas": CAS authentication
# - "openid": OpenID Connect authentication
# - "guest": Guest access — creates a temporary user, no login required
# Examples:
# APP_AUTH_METHODS=none
# APP_AUTH_METHODS=password,cas
APP_AUTH_METHODS=password,cas,openid,guest
# Automatically create users when authenticating with CAS/OpenID (true/false)
AUTH_CREATE_USERS=true
# Domain used when generating temporary emails for CAS/OpenID users without one
# Leave empty to use the default value (domain.local)
AUTH_TEMP_EMAIL_DOMAIN=domain.local
###> CAS Configuration (required if using CAS) ###
# Test server: https://casserverpac4j.herokuapp.com
CAS_URL=https://casserverpac4j.herokuapp.com
CAS_VALIDATE_PATH=/p3/serviceValidate
CAS_LOGIN_PATH=/login
CAS_LOGOUT_PATH=/logout
###> OpenID Connect Configuration (required if using OpenID) ###
# Test server: https://demo.duendesoftware.com
OIDC_ISSUER=https://demo.duendesoftware.com
OIDC_AUTHORIZATION_ENDPOINT=https://demo.duendesoftware.com/connect/authorize
OIDC_TOKEN_ENDPOINT=https://demo.duendesoftware.com/connect/token
OIDC_USERINFO_ENDPOINT=https://demo.duendesoftware.com/connect/userinfo
OIDC_SCOPE="openid email"
OIDC_CLIENT_ID=interactive.confidential
OIDC_CLIENT_SECRET=secret
## Sample Google Oauth values
# OIDC_ISSUER=https://accounts.google.com
# OIDC_AUTHORIZATION_ENDPOINT=https://accounts.google.com/o/oauth2/v2/auth
# OIDC_TOKEN_ENDPOINT=https://oauth2.googleapis.com/token
# OIDC_USERINFO_ENDPOINT=https://openidconnect.googleapis.com/v1/userinfo
# OIDC_SCOPE="openid email"
# OIDC_CLIENT_ID=PLEASE_CHANGEME
# OIDC_CLIENT_SECRET=PLEASE_CHANGEME
###< Authentication Configuration ###
###> API JWT (local Bearer tokens) ###
# Secret for locally signed JWTs accepted by the API
API_JWT_SECRET=dev_secret_change_me
# Optional issuer and audience checks
# API_JWT_ISSUER=exelearning
# API_JWT_AUDIENCE=exelearning_clients
###< API JWT (local Bearer tokens) ###
###> symfony/framework-bundle ###
# See: https://symfony.com/doc/7.3/deployment/proxies.html
# ATTENTION: if the app is behind an SSL reverse proxy, set the proxies below.
# Use 'private_ranges' to cover common private CIDRs and include REMOTE_ADDR
# so the node directly in front of PHP is trusted too.
TRUSTED_PROXIES=private_ranges,REMOTE_ADDR
# Comma-separated trusted headers. Keep x-forwarded-proto to detect HTTPS,
# but REMOVE it if your proxy cannot be fully trusted (prevents protocol spoofing).
# If your proxy uses the standard Forwarded header, set TRUSTED_HEADERS=forwarded
TRUSTED_HEADERS=x-forwarded-for,x-forwarded-host,x-forwarded-proto,x-forwarded-port,x-forwarded-prefix
###< symfony/framework-bundle ###
###> symfony/mailer ###
# MAILER_DSN=smtp://localhost
###< symfony/mailer ###
###> doctrine/doctrine-bundle ###
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html
# IMPORTANT: You must configure your database server version, either here or in config/packages/doctrine.yaml
# SQLite configuration (default)
DB_DRIVER=pdo_sqlite
DB_HOST=
DB_PORT=
DB_NAME=
DB_USER=
DB_PASSWORD=
DB_CHARSET=
DB_SERVER_VERSION=3.32
DB_PATH=/mnt/data/exelearning.db
# MySQL configuration
# DB_DRIVER=pdo_mysql
# DB_HOST=db
# DB_PORT=3306
# DB_NAME=exelearning
# DB_USER=root
# DB_PASSWORD=secret
# DB_CHARSET=utf8mb4
# DB_SERVER_VERSION=8.0
# DB_PATH=
# PostgreSQL configuration
# DB_DRIVER=pdo_pgsql
# DB_HOST=db
# DB_PORT=5432
# DB_NAME=exelearning
# DB_USER=myuser
# DB_PASSWORD=mypassword
# DB_CHARSET=utf8
# DB_SERVER_VERSION=13
# DB_PATH=
###< doctrine/doctrine-bundle ###
###> Files, cache, and logs directories ###
FILES_DIR="/mnt/data/"
CACHE_DIR=""
LOG_DIR=""
TMP_CLEANUP_KEY=
###< Files, cache, and logs directories ###
###> User Storage and File Upload Limits ###
# Maximum disk space per user in MB
USER_STORAGE_MAX_DISK_SPACE=1024
# Whether autosaved files count towards user storage quota (true/false)
COUNT_USER_AUTOSAVE_SPACE_ODE_FILES=true
# Maximum file upload size in MB (application level)
# This limit will be compared with PHP limits (upload_max_filesize, post_max_size, memory_limit)
# The most restrictive limit will be enforced
FILE_UPLOAD_MAX_SIZE=256
###< User Storage and File Upload Limits ###
###> Autosave Configuration ###
# Time interval for autosave in seconds
PERMANENT_SAVE_AUTOSAVE_TIME_INTERVAL=600
# Maximum number of autosaved files to maintain
PERMANENT_SAVE_AUTOSAVE_MAX_NUMBER_OF_FILES=10
# Enable/disable autosave functionality (true/false)
AUTOSAVE_ODE_FILES_FUNCTION=true
###< Autosave Configuration ###
###> Application Features ###
# Enable/disable version control (true/false)
VERSION_CONTROL=true
# Number of recent ODE files to show
USER_RECENT_ODE_FILES_AMOUNT=3
# Collaborative blocking level: "page" blocks entire pages, "idevice" blocks individual devices
COLLABORATIVE_BLOCK_LEVEL=idevice
###< Application Features ###
###> Google ###
GOOGLE_CLIENT_ID=example.com.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=example.com
###< Google ###
###> Dropbox ###
DROPBOX_CLIENT_ID=example.com
DROPBOX_CLIENT_SECRET=example.com
###< Dropbox ###
###> openEQUELLA ###
OPENEQUELLA_CLIENT_ID=example.com
OPENEQUELLA_CLIENT_SECRET=example.com
###< openEQUELLA ###
###> Multiple Platform Providers Configuration ###
# Support for multiple educational platform providers (e.g., Moodle, Moodle Workplace, Others etc.)
# Each provider needs a URL, token, and unique identifier
# Use comma-separated values with positional mapping (same order for all three variables)
# Provider URLs - base URLs for each platform
# Example: PROVIDER_URLS=https://moodle_lms.com,https://moodle_workplace.example.com,https://custom_lms.example.com
PROVIDER_URLS=
# Provider tokens - authentication tokens/secrets for each platform
# Example: PROVIDER_TOKENS=moodle_lms_token,workplace_token,custom_lms_token
PROVIDER_TOKENS=
# Provider IDs - unique identifiers for each platform
# Example: PROVIDER_IDS=moodlelms,workplace,custommoodle
PROVIDER_IDS=
# Default provider fallback settings
DEFAULT_PROVIDER_URL=
DEFAULT_PROVIDER_TOKEN=
DEFAULT_PROVIDER_ID=
###< Multiple Platform Providers Configuration ###
###> symfony/mercure-bundle ###
# See https://symfony.com/doc/current/mercure.html#configuration
#
# Internal Mercure hub URL used by Symfony to publish updates.
# Can't be left blank, passed to mercure.yaml in compile time
MERCURE_URL=http://localhost:8080/.well-known/mercure
#
# Public URL of the Mercure hub used by the browser to connect via SSE.
# If left blank, the app will fallback to the current public host + '/.well-known/mercure'.
MERCURE_PUBLIC_URL=
#
# Example if using separate internal and public URLs:
# MERCURE_URL=http://mercure/.well-known/mercure
# MERCURE_PUBLIC_URL=https://example.com/.well-known/mercure
#
# The secret used to sign JWTs (JSON Web Tokens).
MERCURE_JWT_SECRET_KEY="!ChangeThisMercureHubJWTSecretKey!"
###< symfony/mercure-bundle ###