53 lines
1.8 KiB
Bash
53 lines
1.8 KiB
Bash
# Copy to .env and fill in. Do NOT commit .env.
|
|
DB_USER=jqc_features
|
|
DB_PASSWORD=change_me
|
|
DB_HOST=127.0.0.1
|
|
DB_PORT=3306
|
|
DB_NAME=jqc_features
|
|
# Or set a full URI and it overrides the parts above:
|
|
# DATABASE_URL=mysql+pymysql://user:pass@127.0.0.1:3306/jqc_features?charset=utf8mb4
|
|
|
|
# Fallback "email us directly" link shown under the booking form
|
|
DEMO_CONTACT_URL=mailto:info@ltservicesinc.com
|
|
|
|
# --- Demo appointments (/demo) ---
|
|
# Owner notification address. Blank -> no mail, requests still land in /admin/demos.
|
|
DEMO_NOTIFY_EMAIL=info@ltservicesinc.com
|
|
# Email the customer a confirmation copy too (1/0)
|
|
DEMO_CONFIRM_CUSTOMER=1
|
|
# Bookable window and slot size
|
|
DEMO_HOUR_START=8
|
|
DEMO_HOUR_END=17
|
|
DEMO_SLOT_MINUTES=30
|
|
DEMO_MAX_DAYS_AHEAD=90
|
|
DEMO_TIMEZONE_LABEL=Eastern Time
|
|
# Max form submissions per IP per hour (per gunicorn worker)
|
|
DEMO_RATE_LIMIT=5
|
|
|
|
# --- Outgoing mail (SMTP). Leave SMTP_HOST blank to disable mail entirely. ---
|
|
SMTP_HOST=
|
|
SMTP_PORT=587
|
|
SMTP_USER=
|
|
SMTP_PASSWORD=
|
|
# STARTTLS on port 587:
|
|
SMTP_USE_TLS=1
|
|
# Implicit TLS on port 465 (set SMTP_USE_TLS=0 if you use this):
|
|
SMTP_USE_SSL=0
|
|
SMTP_TIMEOUT=20
|
|
# From address; defaults to SMTP_USER when blank
|
|
MAIL_FROM=
|
|
MAIL_SUBJECT_PREFIX=[JQC]
|
|
|
|
# --- Admin panel ---
|
|
# Sign session cookies + CSRF tokens. Generate: python3 -c "import secrets; print(secrets.token_hex(32))"
|
|
SECRET_KEY=change_me_to_a_long_random_string
|
|
ADMIN_USERNAME=admin
|
|
# Generate: python3 -c "from werkzeug.security import generate_password_hash as g; print(g('yourpassword'))"
|
|
ADMIN_PASSWORD_HASH=
|
|
# Set to 1 once served over HTTPS (required for the login cookie to send). Use 0 for plain-HTTP local testing.
|
|
SESSION_COOKIE_SECURE=1
|
|
# Where the auth log fail2ban watches is written. Blank -> <appdir>/logs/auth.log
|
|
AUTH_LOG_PATH=
|
|
# CSRF token lifetime (seconds). Blank -> token lasts the whole session (no 1h expiry).
|
|
WTF_CSRF_TIME_LIMIT=
|