2020-01-13 15:22:25 +01:00
|
|
|
# You can change the name of the app
|
|
|
|
|
|
|
|
APP_NAME=2FAuth
|
|
|
|
|
|
|
|
|
|
|
|
# You can leave this on "local". If you change it to production most console commands will ask for extra confirmation.
|
|
|
|
# Never set it to "testing".
|
|
|
|
|
|
|
|
APP_ENV=local
|
|
|
|
|
|
|
|
|
2024-04-25 16:56:35 +02:00
|
|
|
# The timezone for your application, which is used to record dates and times to database. This global setting can be
|
|
|
|
# overridden by users via in-app settings for a personalised dates and times display.
|
|
|
|
|
|
|
|
# If this setting is changed while the application is already running, existing records in the database won't be updated.
|
|
|
|
|
|
|
|
APP_TIMEZONE=UTC
|
|
|
|
|
|
|
|
|
2020-01-13 15:22:25 +01:00
|
|
|
# Set to true if you want to see debug information in error screens.
|
|
|
|
|
|
|
|
APP_DEBUG=false
|
|
|
|
|
|
|
|
|
|
|
|
# This should be your email address
|
|
|
|
|
|
|
|
SITE_OWNER=mail@example.com
|
|
|
|
|
|
|
|
|
|
|
|
# The encryption key for your database and sessions. Keep this very secure.
|
|
|
|
# If you generate a new one all existing data must be considered LOST.
|
2023-04-18 08:43:36 +02:00
|
|
|
#
|
|
|
|
# You can leave this empty if you use `php artisan 2fauth:install`.
|
|
|
|
# Otherwise, change it to a string of exactly 32 chars or use command
|
|
|
|
# `php artisan key:generate` to generate it.
|
2020-01-13 15:22:25 +01:00
|
|
|
|
2023-04-18 08:43:36 +02:00
|
|
|
APP_KEY=
|
2020-01-13 15:22:25 +01:00
|
|
|
|
|
|
|
|
2023-08-25 13:49:52 +02:00
|
|
|
# This variable must match your installation's external address.
|
|
|
|
# Webauthn won't work otherwise.
|
2020-01-13 15:22:25 +01:00
|
|
|
|
|
|
|
APP_URL=http://localhost
|
|
|
|
|
|
|
|
|
2024-01-17 10:38:58 +01:00
|
|
|
# If you want to serve js assets from a CDN (like https://cdn.example.com),
|
2024-02-19 13:38:38 +01:00
|
|
|
# uncomment the following line and set this var with the CDN url.
|
|
|
|
# Otherwise, let this line commented.
|
2024-01-17 10:38:58 +01:00
|
|
|
|
2024-02-19 13:38:38 +01:00
|
|
|
# ASSET_URL=http://localhost
|
2024-01-17 10:38:58 +01:00
|
|
|
|
|
|
|
|
2023-01-25 16:58:30 +01:00
|
|
|
# The domain subdirectory from which you want to serve 2FAuth.
|
|
|
|
# This must reflect the path targeted by APP_URL.
|
|
|
|
#
|
|
|
|
# For example, if you set APP_URL=https://mydomain.org/2fa to access 2FAuth from the '/2fa/' subdirectory
|
|
|
|
# you have to set APP_SUBDIRECTORY=2fa
|
|
|
|
#
|
|
|
|
# Leave blank if you serve 2FAuth from the domain root.
|
|
|
|
|
|
|
|
APP_SUBDIRECTORY=
|
|
|
|
|
|
|
|
|
2020-03-18 18:37:57 +01:00
|
|
|
# Turn this to true if you want your app to react like a demo.
|
|
|
|
# The Demo mode reset the app content every hours and set a generic demo user.
|
|
|
|
|
|
|
|
IS_DEMO_APP=false
|
|
|
|
|
|
|
|
|
2020-01-13 15:22:25 +01:00
|
|
|
# The log channel defines where your log entries go to.
|
2021-10-15 23:46:21 +02:00
|
|
|
# 'daily' is the default logging mode giving you 7 daily rotated log files in /storage/logs/.
|
2024-01-17 08:56:44 +01:00
|
|
|
# Also available are 'errorlog', 'syslog', 'stderr', 'papertrail', 'slack' and a 'stack' channel
|
|
|
|
# to combine multiple channels into a single one.
|
2020-01-13 15:22:25 +01:00
|
|
|
|
|
|
|
LOG_CHANNEL=daily
|
|
|
|
|
|
|
|
|
|
|
|
# Log level. You can set this from least severe to most severe:
|
|
|
|
# debug, info, notice, warning, error, critical, alert, emergency
|
|
|
|
# If you set it to debug your logs will grow large, and fast. If you set it to emergency probably
|
|
|
|
# nothing will get logged, ever.
|
|
|
|
|
2022-07-21 15:44:58 +02:00
|
|
|
LOG_LEVEL=notice
|
2020-01-13 15:22:25 +01:00
|
|
|
|
|
|
|
|
2022-03-24 15:08:03 +01:00
|
|
|
# If you're looking for performance improvements, you could install memcached.
|
|
|
|
|
|
|
|
CACHE_DRIVER=file
|
|
|
|
SESSION_DRIVER=file
|
|
|
|
|
|
|
|
|
|
|
|
#### Database config & credentials ####
|
2020-01-13 15:22:25 +01:00
|
|
|
|
2023-04-18 08:43:36 +02:00
|
|
|
# Supported values for DB_CONNECTION: mysql|pgsql|sqlsrv|sqlite
|
|
|
|
# mysql => MySQL
|
|
|
|
# pgsql => PostGreSQL
|
|
|
|
# sqlsrv => SQL server
|
|
|
|
# sqlite => SQLite
|
2020-01-13 15:22:25 +01:00
|
|
|
|
2023-04-18 08:43:36 +02:00
|
|
|
# Example for a MySQL database connection
|
|
|
|
#
|
2020-01-13 15:22:25 +01:00
|
|
|
# DB_CONNECTION=mysql
|
2023-04-18 08:43:36 +02:00
|
|
|
# DB_DATABASE=my_2fauth_DB_name
|
2020-01-13 15:22:25 +01:00
|
|
|
# DB_HOST=127.0.0.1
|
|
|
|
# DB_PORT=3306
|
2023-04-18 08:43:36 +02:00
|
|
|
# DB_USERNAME=my_2fauth_db_user
|
|
|
|
# DB_PASSWORD=My_d8_S3cr3t
|
|
|
|
|
|
|
|
# Example for SQLite (linux)
|
|
|
|
#
|
|
|
|
# DB_CONNECTION=sqlite
|
|
|
|
# DB_DATABASE="path/to/your/database.sqlite"
|
|
|
|
|
|
|
|
# Example for SQLite (windows)
|
|
|
|
#
|
|
|
|
# DB_CONNECTION=sqlite
|
|
|
|
# DB_DATABASE="C:\\path\\to\\your\\database.sqlite"
|
|
|
|
|
|
|
|
DB_CONNECTION=
|
|
|
|
DB_DATABASE=
|
|
|
|
DB_HOST=
|
|
|
|
DB_PORT=
|
|
|
|
DB_USERNAME=
|
|
|
|
DB_PASSWORD=
|
|
|
|
|
|
|
|
# The absolute path to the root CA bundle if you're connecting to the MySQL database via SSL.
|
|
|
|
|
|
|
|
MYSQL_ATTR_SSL_CA=
|
2020-01-13 15:22:25 +01:00
|
|
|
|
|
|
|
|
2022-03-24 15:08:03 +01:00
|
|
|
#### Mail settings ####
|
2020-01-13 15:22:25 +01:00
|
|
|
|
2020-02-10 23:23:15 +01:00
|
|
|
# Refer your email provider documentation to configure your mail settings
|
|
|
|
# Set a value for every available setting to avoid issue
|
|
|
|
|
2024-04-08 16:16:27 +02:00
|
|
|
MAIL_MAILER=log
|
2020-01-13 15:22:25 +01:00
|
|
|
MAIL_HOST=smtp.mailtrap.io
|
|
|
|
MAIL_PORT=2525
|
|
|
|
MAIL_USERNAME=null
|
|
|
|
MAIL_PASSWORD=null
|
|
|
|
MAIL_ENCRYPTION=null
|
2020-02-10 23:23:15 +01:00
|
|
|
MAIL_FROM_NAME=null
|
|
|
|
MAIL_FROM_ADDRESS=null
|
2023-12-05 17:26:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
# SSL peer verification.
|
|
|
|
# Set this to false to disable the SSL certificate validation.
|
|
|
|
#
|
|
|
|
# WARNING
|
|
|
|
# Disabling peer verification can result in a major security flaw.
|
|
|
|
# Change it only if you know what you're doing.
|
|
|
|
|
2023-11-23 15:00:26 +01:00
|
|
|
MAIL_VERIFY_SSL_PEER=true
|
2020-01-13 15:22:25 +01:00
|
|
|
|
2023-12-05 17:26:34 +01:00
|
|
|
|
2023-03-16 15:57:22 +01:00
|
|
|
#### API settings ####
|
|
|
|
|
|
|
|
# The maximum number of API calls in a minute from the same IP.
|
|
|
|
# Once reached, all requests from this IP will be rejected until the minute has elapsed.
|
|
|
|
#
|
|
|
|
# Set to null to disable the API throttling.
|
|
|
|
|
|
|
|
THROTTLE_API=60
|
|
|
|
|
|
|
|
|
2022-03-24 15:08:03 +01:00
|
|
|
#### Authentication settings ####
|
|
|
|
|
2023-03-16 15:57:22 +01:00
|
|
|
# The number of times per minute a user can fail to log in before being locked out.
|
|
|
|
# Once reached, all login attempts will be rejected until the minute has elapsed.
|
|
|
|
#
|
|
|
|
# This setting applies to both email/password and webauthn login attemps.
|
|
|
|
|
|
|
|
LOGIN_THROTTLE=5
|
|
|
|
|
2022-03-24 15:08:03 +01:00
|
|
|
# The default authentication guard
|
|
|
|
#
|
|
|
|
# Supported:
|
|
|
|
# 'web-guard' : The Laravel built-in auth system (default if nulled)
|
|
|
|
# 'reverse-proxy-guard' : When 2FAuth is deployed behind a reverse-proxy that handle authentication
|
|
|
|
#
|
|
|
|
# WARNING
|
2022-03-31 09:36:12 +02:00
|
|
|
# When using 'reverse-proxy-guard' 2FAuth only look for the dedicated headers and skip all other built-in
|
|
|
|
# authentication checks. That means your proxy is fully responsible of the authentication process, 2FAuth will
|
|
|
|
# trust him as long as headers are presents.
|
2022-03-24 15:08:03 +01:00
|
|
|
|
2022-05-10 12:52:05 +02:00
|
|
|
AUTHENTICATION_GUARD=web-guard
|
2022-03-24 15:08:03 +01:00
|
|
|
|
2022-11-14 17:13:24 +01:00
|
|
|
|
2024-04-23 16:28:42 +02:00
|
|
|
# Authentication log retention time, in days.
|
|
|
|
# Log entries older than that are automatically deleted.
|
|
|
|
|
|
|
|
AUTHENTICATION_LOG_RETENTION=365
|
|
|
|
|
|
|
|
|
2022-03-24 15:08:03 +01:00
|
|
|
# Name of the HTTP headers sent by the reverse proxy that identifies the authenticated user at proxy level.
|
|
|
|
# Check your proxy documentation to find out how these headers are named (i.e 'REMOTE_USER', 'REMOTE_EMAIL', etc...)
|
|
|
|
# (only relevant when AUTHENTICATION_GUARD is set to 'reverse-proxy-guard')
|
|
|
|
|
2022-05-17 00:16:59 +02:00
|
|
|
AUTH_PROXY_HEADER_FOR_USER=null
|
|
|
|
AUTH_PROXY_HEADER_FOR_EMAIL=null
|
2022-03-24 15:08:03 +01:00
|
|
|
|
2022-11-14 17:13:24 +01:00
|
|
|
|
2022-05-17 00:16:59 +02:00
|
|
|
# Custom logout URL to open when using an auth proxy.
|
|
|
|
|
|
|
|
PROXY_LOGOUT_URL=null
|
2022-03-24 15:08:03 +01:00
|
|
|
|
2022-11-14 17:13:24 +01:00
|
|
|
|
2022-03-24 15:08:03 +01:00
|
|
|
#### WebAuthn settings ####
|
|
|
|
|
2022-08-10 11:39:17 +02:00
|
|
|
# Relying Party name, aka the name of the application.
|
|
|
|
# If blank, defaults to APP_NAME. Do not set to null.
|
2022-03-24 15:08:03 +01:00
|
|
|
|
2022-08-10 11:39:17 +02:00
|
|
|
WEBAUTHN_NAME=2FAuth
|
2022-03-24 15:08:03 +01:00
|
|
|
|
2022-11-14 17:13:24 +01:00
|
|
|
|
2024-03-29 09:21:00 +01:00
|
|
|
# Relying Party ID, should equal the site domain (i.e 2fauth.example.com).
|
|
|
|
# If null, the device will fill it internally (recommended)
|
2023-08-25 13:49:52 +02:00
|
|
|
# See https://webauthn-doc.spomky-labs.com/prerequisites/the-relying-party#how-to-determine-the-relying-party-id
|
2022-03-24 15:08:03 +01:00
|
|
|
|
2022-05-17 00:16:59 +02:00
|
|
|
WEBAUTHN_ID=null
|
2022-03-24 15:08:03 +01:00
|
|
|
|
2022-11-14 17:13:24 +01:00
|
|
|
# [DEPRECATED]
|
2022-03-24 15:08:03 +01:00
|
|
|
# Optional image data in BASE64 (128 bytes maximum) or an image url
|
2023-08-25 13:49:52 +02:00
|
|
|
# See https://webauthn-doc.spomky-labs.com/prerequisites/the-relying-party#relying-party-icon
|
2022-03-24 15:08:03 +01:00
|
|
|
|
2022-11-14 17:13:24 +01:00
|
|
|
# WEBAUTHN_ICON=null
|
|
|
|
# [/DEPRECATED]
|
|
|
|
|
2022-03-24 15:08:03 +01:00
|
|
|
|
|
|
|
# Use this setting to control how user verification behave during the
|
|
|
|
# WebAuthn authentication flow.
|
|
|
|
#
|
|
|
|
# Most authenticators and smartphones will ask the user to actively verify
|
|
|
|
# themselves for log in. For example, through a touch plus pin code,
|
|
|
|
# password entry, or biometric recognition (e.g., presenting a fingerprint).
|
|
|
|
# The intent is to distinguish one user from any other.
|
|
|
|
#
|
|
|
|
# Supported:
|
|
|
|
# 'required': Will ALWAYS ask for user verification
|
|
|
|
# 'preferred' (default) : Will ask for user verification IF POSSIBLE
|
|
|
|
# 'discouraged' : Will NOT ask for user verification (for example, to minimize disruption to the user interaction flow)
|
|
|
|
|
2022-05-17 00:16:59 +02:00
|
|
|
WEBAUTHN_USER_VERIFICATION=preferred
|
2022-03-24 15:08:03 +01:00
|
|
|
|
2023-12-09 17:22:24 +01:00
|
|
|
|
|
|
|
#### SSO settings (for Socialite) ####
|
|
|
|
|
2023-12-09 17:35:34 +01:00
|
|
|
# Uncomment and complete lines for the OAuth providers you want to enable.
|
2023-11-20 23:25:36 +01:00
|
|
|
|
|
|
|
# OPENID_AUTHORIZE_URL=
|
|
|
|
# OPENID_TOKEN_URL=
|
|
|
|
# OPENID_USERINFO_URL=
|
|
|
|
# OPENID_CLIENT_ID=
|
|
|
|
# OPENID_CLIENT_SECRET=
|
|
|
|
|
2023-12-09 17:22:24 +01:00
|
|
|
# GITHUB_CLIENT_ID=
|
|
|
|
# GITHUB_CLIENT_SECRET=
|
|
|
|
|
2022-11-14 17:13:24 +01:00
|
|
|
|
2023-12-13 16:49:35 +01:00
|
|
|
#### Proxy settings ####
|
|
|
|
|
2022-04-14 11:34:40 +02:00
|
|
|
# Use this setting to declare trusted proxied.
|
|
|
|
# Supported:
|
|
|
|
# '*': to trust any proxy
|
|
|
|
# A comma separated IP list: The list of proxies IP to trust
|
|
|
|
|
2022-05-17 00:16:59 +02:00
|
|
|
TRUSTED_PROXIES=null
|
2022-03-24 15:08:03 +01:00
|
|
|
|
2022-11-14 17:13:24 +01:00
|
|
|
|
2023-12-13 16:49:35 +01:00
|
|
|
# Proxy for outgoing requests like new releases detection or logo fetching.
|
|
|
|
# You can provide a proxy URL that contains a scheme, username, and password.
|
|
|
|
# For example, "http://username:password@192.168.16.1:10".
|
|
|
|
|
|
|
|
PROXY_FOR_OUTGOING_REQUESTS=null
|
|
|
|
|
|
|
|
|
2024-11-17 20:39:27 +01:00
|
|
|
# Set this to true to enable Content-Security-Policy (CSP).
|
|
|
|
# CSP helps to prevent or minimize the risk of certain types of security threats.
|
|
|
|
# This is mainly used as a defense against cross-site scripting (XSS) attacks, in which
|
|
|
|
# an attacker is able to inject malicious code into the web app
|
|
|
|
|
2024-11-19 12:47:37 +01:00
|
|
|
CONTENT_SECURITY_POLICY=true
|
2024-11-17 20:39:27 +01:00
|
|
|
|
|
|
|
|
2020-01-13 15:22:25 +01:00
|
|
|
# Leave the following configuration vars as is.
|
|
|
|
# Unless you like to tinker and know what you're doing.
|
|
|
|
|
|
|
|
BROADCAST_DRIVER=log
|
|
|
|
QUEUE_DRIVER=sync
|
|
|
|
|
|
|
|
REDIS_HOST=127.0.0.1
|
|
|
|
REDIS_PASSWORD=null
|
|
|
|
REDIS_PORT=6379
|
|
|
|
|
|
|
|
PUSHER_APP_ID=
|
|
|
|
PUSHER_APP_KEY=
|
|
|
|
PUSHER_APP_SECRET=
|
|
|
|
PUSHER_APP_CLUSTER=mt1
|
|
|
|
|
2023-09-20 16:10:32 +02:00
|
|
|
VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
|
|
|
VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
2020-01-13 15:22:25 +01:00
|
|
|
|
2023-11-23 15:00:26 +01:00
|
|
|
MIX_ENV=local
|