Mike Phares 9d0a142419 ncdu
IMMICH_CONFIG_FILE
2025-03-02 22:25:20 -07:00

174 lines
8.2 KiB
Plaintext

[Container]
# AutoUpdate=registry
ContainerName=2fauth-server
# You can change the name of the app
Environment="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".
Environment="APP_ENV=local"
# 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
Environment="APP_TIMEZONE=UTC"
# Set to true if you want to see debug information in error screens.
Environment="APP_DEBUG=false"
# This should be your email address
Environment="SITE_OWNER=mikepharesjr@msn.com"
# The encryption key for our database and sessions. Keep this very secure.
# If you generate a new one all existing data must be considered LOST.
# Change it to a string of exactly 32 chars or use command `php artisan key:generate` to generate it
Environment="APP_KEY=uvL37oiI1By0J#5t5kZwYB~17CXI2J9A"
# This variable must match your installation's external address.
# Webauthn won't work otherwise.
# Environment="APP_URL=http://localhost"
# Environment="APP_URL=http://192.168.11.2"
# Environment="APP_URL=http://192.168.11.2:5015"
Environment="APP_URL=https://2fauth.phares.duckdns.org"
# If you want to serve js assets from a CDN (like https://cdn.example.com),
# uncomment the following line and set this var with the CDN url.
# Otherwise, let this line commented.
# - ASSET_URL=http://localhost
#
# 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.
Environment="IS_DEMO_APP=false"
# The log channel defines where your log entries go to.
# 'daily' is the default logging mode giving you 7 daily rotated log files in /storage/logs/.
# Also available are 'errorlog', 'syslog', 'stderr', 'papertrail', 'slack' and a 'stack' channel
# to combine multiple channels into a single one.
Environment="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.
Environment="LOG_LEVEL=notice"
# Database config (can only be sqlite)
Environment="DB_DATABASE=/srv/database/database.sqlite"
# If you're looking for performance improvements, you could install memcached.
Environment="CACHE_DRIVER=file"
Environment="SESSION_DRIVER=file"
# Mail settings
# Refer your email provider documentation to configure your mail settings
# Set a value for every available setting to avoid issue
Environment="MAIL_MAILER=log"
Environment="MAIL_HOST=smtp.centurylink.net"
Environment="MAIL_PORT=587"
Environment="MAIL_USERNAME=phares@centurylink.net"
Environment="MAIL_PASSWORD=RN9iPi5Ej#gRgLgiBTkb"
Environment="MAIL_ENCRYPTION=null"
Environment="MAIL_FROM_NAME=Mik Phares"
Environment="MAIL_FROM_ADDRESS=noreply@phares.duckdns.org"
# 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.
Environment="MAIL_VERIFY_SSL_PEER=false"
# 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.
Environment="THROTTLE_API=60"
# Authentication settings
# 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 attempts.
Environment="LOGIN_THROTTLE=5"
# 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
# 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.
Environment="AUTHENTICATION_GUARD=web-guard"
# Authentication log retention time, in days.
# Log entries older than that are automatically deleted.
Environment="AUTHENTICATION_LOG_RETENTION=365"
# 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')
Environment="AUTH_PROXY_HEADER_FOR_USER=null"
Environment="AUTH_PROXY_HEADER_FOR_EMAIL=null"
# Custom logout URL to open when using an auth proxy.
Environment="PROXY_LOGOUT_URL=null"
# WebAuthn settings
# Relying Party name, aka the name of the application. If blank, defaults to APP_NAME. Do not set to null.
Environment="WEBAUTHN_NAME=2FAuth"
# Relying Party ID, should equal the site domain (i.e 2fauth.example.com).
# If null, the device will fill it internally (recommended)
# See https://webauthn-doc.spomky-labs.com/prerequisites/the-relying-party#how-to-determine-the-relying-party-id
Environment="WEBAUTHN_ID=null"
# 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)
Environment="WEBAUTHN_USER_VERIFICATION=preferred"
#### SSO settings (for Socialite) ####
# Uncomment and complete lines for the OAuth providers you want to enable.
# - OPENID_AUTHORIZE_URL=
# - OPENID_TOKEN_URL=
# - OPENID_USERINFO_URL=
# - OPENID_CLIENT_ID=
# - OPENID_CLIENT_SECRET=
# - GITHUB_CLIENT_ID=
# - GITHUB_CLIENT_SECRET=
# Use this setting to declare trusted proxied.
# Supported:
# '*': to trust any proxy
# A comma separated IP list: The list of proxies IP to trust
Environment="TRUSTED_PROXIES=null"
# 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".
Environment="PROXY_FOR_OUTGOING_REQUESTS=null"
# Leave the following configuration vars as is.
# Unless you like to tinker and know what you're doing.
Environment="BROADCAST_DRIVER=log"
Environment="QUEUE_DRIVER=sync"
Environment="SESSION_LIFETIME=120"
Environment="REDIS_HOST=127.0.0.1"
Environment="REDIS_PASSWORD=null"
Environment="REDIS_PORT=6379"
Environment="PUSHER_APP_ID="
Environment="PUSHER_APP_KEY="
Environment="PUSHER_APP_SECRET="
Environment="PUSHER_APP_CLUSTER=mt1"
Environment="VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}""
Environment="VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}""
Environment="MIX_ENV=local"
Image=docker.io/2fauth/2fauth
# Network=2fauth.network
# Pod=2fauth.pod
PublishPort=5015:44311
Volume=2fauth-server-data:/2fauth:Z
Volume=/home/podman/2fauth/nginx.conf:/etc/nginx/nginx.conf:ro
Volume=/home/podman/wild-phares/fullchain.cer:/certs/server.cert:ro
Volume=/home/podman/wild-phares/phares.duckdns.org.key:/certs/server.key:ro
[Service]
Restart=no
[Install]
WantedBy=multi-user.target default.target
# podman pull docker.io/2fauth/2fauth
# systemctl --user daemon-reload
# systemctl --user start 2fauth-server
# systemctl --user status 2fauth-server --lines=999
# journalctl -fu 2fauth-server.service
# podman logs 2fauth-server
# systemctl --user stop 2fauth-server
# systemctl --user disable 2fauth-server
# podman exec -ti 2fauth-server /bin/sh
# podman exec -ti 2fauth-server /bin/bash