149 lines
5.2 KiB
Bash
149 lines
5.2 KiB
Bash
# **Core Settings**
|
|
WORKDIR=/workdir
|
|
DATABASE_URL=sqlite:///./app/database.db
|
|
REDIS_URL=redis://redis:6379/0
|
|
EXTERNAL_HOSTNAME=docuelevate.example.com
|
|
GOTENBERG_URL=http://gotenberg:3000
|
|
ALLOW_FILE_DELETE=true # Allow deletion of file records
|
|
|
|
# **Authentication**
|
|
AUTH_ENABLED=true
|
|
SESSION_SECRET=<atLeast32Characters>
|
|
ADMIN_USERNAME=admin
|
|
ADMIN_PASSWORD=your_secure_password
|
|
|
|
# **OpenID Connect/Authentik Settings**
|
|
AUTHENTIK_CLIENT_ID=<yourAuthentikAppClientID>
|
|
AUTHENTIK_CLIENT_SECRET=<yourAuthentikClientSecret>
|
|
AUTHENTIK_CONFIG_URL=<ConfigUrlOfYourApp, e.g. https://authentik.example.com/application/o/docuelevate/.well-known/openid-configuration>
|
|
|
|
# **AI/ML Services**
|
|
# OpenAI
|
|
OPENAI_API_KEY="<OPENAI_API_KEY>"
|
|
OPENAI_BASE_URL=https://api.openai.com/v1
|
|
OPENAI_MODEL=gpt-4o-mini
|
|
|
|
# Azure AI
|
|
AZURE_REGION="eastus"
|
|
AZURE_ENDPOINT="https://<yourendpoint>.cognitiveservices.azure.com/"
|
|
AZURE_AI_KEY=<AZURE_AI_KEY>
|
|
|
|
# **Email Settings**
|
|
EMAIL_HOST=smtp.example.com
|
|
EMAIL_PORT=587
|
|
EMAIL_USERNAME=docuelevate@example.com
|
|
EMAIL_PASSWORD=your_secure_email_password
|
|
EMAIL_USE_TLS=True
|
|
EMAIL_SENDER=DocuElevate System <docuelevate@example.com>
|
|
EMAIL_DEFAULT_RECIPIENT=recipient@example.com
|
|
|
|
# **IMAP Settings**
|
|
IMAP1_HOST=mail.example.com
|
|
IMAP1_PORT=993
|
|
IMAP1_USERNAME=<IMAP1_USERNAME>
|
|
IMAP1_PASSWORD=<IMAP1_PASSWORD>
|
|
IMAP1_SSL=true
|
|
IMAP1_POLL_INTERVAL_MINUTES=5
|
|
IMAP1_DELETE_AFTER_PROCESS=false
|
|
|
|
IMAP2_HOST=imap.gmail.com
|
|
IMAP2_PORT=993
|
|
IMAP2_USERNAME=<IMAP2_USERNAME>
|
|
IMAP2_PASSWORD=<IMAP2_PASSWORD>
|
|
IMAP2_SSL=true
|
|
IMAP2_POLL_INTERVAL_MINUTES=10
|
|
IMAP2_DELETE_AFTER_PROCESS=false
|
|
|
|
# **Storage/Document Services**
|
|
# Amazon S3
|
|
AWS_REGION=us-east-1
|
|
AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
|
|
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
|
|
S3_BUCKET_NAME=my-document-bucket
|
|
S3_FOLDER_PREFIX=documents/uploads/2023/ # Organizes files in this subfolder
|
|
S3_STORAGE_CLASS=STANDARD
|
|
S3_ACL=private
|
|
|
|
# NextCloud
|
|
NEXTCLOUD_UPLOAD_URL=https://nextcloud.example.com/remote.php/dav/files/<USERNAME>
|
|
NEXTCLOUD_FOLDER="<NEXTCLOUD_FOLDER_PATH>"
|
|
NEXTCLOUD_USERNAME=<NEXTCLOUD_USERNAME>
|
|
NEXTCLOUD_PASSWORD=<NEXTCLOUD_PASSWORD>
|
|
|
|
# Paperless-ngx
|
|
PAPERLESS_HOST=https://paperless.example.com
|
|
PAPERLESS_NGX_API_TOKEN=<PAPERLESS_API_TOKEN>
|
|
|
|
# Dropbox
|
|
DROPBOX_APP_KEY=<DROPBOX_APP_KEY>
|
|
DROPBOX_APP_SECRET=<DROPBOX_APP_SECRET>
|
|
DROPBOX_REFRESH_TOKEN=<DROPBOX_REFRESH_TOKEN>
|
|
DROPBOX_FOLDER="/Documents/Uploads"
|
|
|
|
# Google Drive
|
|
# Service Account Method:
|
|
GOOGLE_DRIVE_CREDENTIALS_JSON={"type":"service_account","project_id":"your-project","private_key_id":"key-id","private_key":"-----BEGIN PRIVATE KEY-----\nYOUR_PRIVATE_KEY\n-----END PRIVATE KEY-----\n","client_email":"service-account@project.iam.gserviceaccount.com","client_id":"client-id","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_x509_cert_url":"https://www.googleapis.com/robot/v1/metadata/x509/service-account%40project.iam.gserviceaccount.com"}
|
|
GOOGLE_DRIVE_FOLDER_ID=<YOUR_FOLDER_ID>
|
|
GOOGLE_DRIVE_DELEGATE_TO=<OPTIONAL_USER_EMAIL>
|
|
|
|
# OAuth Method (Alternative):
|
|
GOOGLE_DRIVE_USE_OAUTH=false # Set to true to use OAuth instead of service account
|
|
GOOGLE_DRIVE_CLIENT_ID=your-oauth-client-id # Required for OAuth method
|
|
GOOGLE_DRIVE_CLIENT_SECRET=your-oauth-client-secret # Required for OAuth method
|
|
GOOGLE_DRIVE_REFRESH_TOKEN=your-oauth-refresh-token # Required for OAuth method
|
|
|
|
# OneDrive
|
|
ONEDRIVE_CLIENT_ID=your-client-id
|
|
ONEDRIVE_CLIENT_SECRET=your-client-secret
|
|
ONEDRIVE_TENANT_ID=common
|
|
ONEDRIVE_REFRESH_TOKEN=your-refresh-token
|
|
ONEDRIVE_FOLDER_PATH=Documents/Uploads
|
|
|
|
# WebDAV
|
|
WEBDAV_URL=https://webdav.example.com/path
|
|
WEBDAV_USERNAME=webdav_user
|
|
WEBDAV_PASSWORD=your_secure_webdav_password
|
|
WEBDAV_FOLDER=/Documents/Uploads
|
|
WEBDAV_VERIFY_SSL=True
|
|
|
|
# FTP
|
|
FTP_HOST=ftp.example.com
|
|
FTP_PORT=21
|
|
FTP_USERNAME=ftp_user
|
|
FTP_PASSWORD=your_secure_ftp_password
|
|
FTP_FOLDER=/Documents/Uploads
|
|
FTP_USE_TLS=True
|
|
FTP_ALLOW_PLAINTEXT=True
|
|
|
|
# SFTP
|
|
SFTP_HOST=sftp.example.com
|
|
SFTP_PORT=22
|
|
SFTP_USERNAME=sftp_user
|
|
SFTP_PASSWORD=your_secure_sftp_password
|
|
# SFTP_PRIVATE_KEY=/path/to/private_key.pem
|
|
# SFTP_PRIVATE_KEY_PASSPHRASE=optional_passphrase
|
|
SFTP_FOLDER=/Documents/Uploads
|
|
|
|
# **Notification Settings**
|
|
# Configure notification services using Apprise URL format
|
|
# See https://github.com/caronc/apprise#supported-notifications
|
|
# Examples:
|
|
# - Discord: discord://webhook_id/webhook_token
|
|
# - Telegram: tgram://bot_token/chat_id
|
|
# - Email: mailto://user:pass@example.com
|
|
# - Pushover: pover://user_key/app_token
|
|
# - Slack: slack://tokenA/tokenB/tokenC
|
|
# - Matrix: matrix://username:password@domain/#room
|
|
|
|
# You can specify multiple notification URLs by separating them with commas
|
|
NOTIFICATION_URLS=discord://webhook_id/webhook_token,mailto://user:pass@gmail.com,tgram://bot_token/chat_id
|
|
|
|
# Control when notifications are sent
|
|
NOTIFY_ON_TASK_FAILURE=True
|
|
NOTIFY_ON_CREDENTIAL_FAILURE=True
|
|
NOTIFY_ON_STARTUP=True
|
|
NOTIFY_ON_SHUTDOWN=False
|
|
|
|
# Uptime Kuma
|
|
UPTIME_KUMA_URL=https://status.example.com/api/push/abcdef123456?status=up
|
|
UPTIME_KUMA_PING_INTERVAL=5 |