Skip to main content
This page documents all environment variables available in AnimeThemes Server. Configure these in your .env file.

API Configuration

VariableDefaultDescription
API_PATH/apiThe path prefix for API endpoints
API_URL-The full URL for the API (optional)

Application

VariableDefaultDescription
APP_NAMEAnimeThemesThe name of the application
APP_ENVlocalEnvironment: local, staging, or production
APP_DEBUGtrueEnable debug mode (disable in production)
APP_URLhttp://localhostThe base URL of the application
APP_KEY-Application encryption key (generate with php artisan key:generate)
ASSET_URLnullCDN URL for assets (optional)
DEBUGBAR_ENABLEDtrueEnable Laravel Debugbar
DEBUGBAR_EDITOR-Editor to open files from Debugbar
AUDITING_ENABLEDtrueEnable model auditing

Audio Configuration

VariableDefaultDescription
AUDIO_DISK_DEFAULTaudios_localDefault disk for audio files
AUDIO_DISKSaudios_localComma-separated list of audio disks
AUDIO_DISK_ROOT-Root path for local audio storage
AUDIO_PATH/audioPath prefix for audio URLs
AUDIO_URL-Subdomain URL for audio (e.g., a.animethemes.test)
AUDIO_STREAMING_METHODresponseStreaming method: response or nginx
AUDIO_NGINX_REDIRECT-Nginx internal redirect location for audio

Audio Storage (S3)

Configure separate S3 buckets for different regions: NYC Region:
  • AUDIO_NYC_ACCESS_KEY_ID
  • AUDIO_NYC_SECRET_ACCESS_KEY
  • AUDIO_NYC_DEFAULT_REGION
  • AUDIO_NYC_ENDPOINT
  • AUDIO_NYC_BUCKET
  • AUDIO_NYC_STREAM_READS
  • AUDIO_NYC_DISABLE_ASSERTS
  • AUDIO_NYC_VISIBILITY
FRA Region:
  • AUDIO_FRA_ACCESS_KEY_ID
  • AUDIO_FRA_SECRET_ACCESS_KEY
  • AUDIO_FRA_DEFAULT_REGION
  • AUDIO_FRA_ENDPOINT
  • AUDIO_FRA_BUCKET
  • AUDIO_FRA_STREAM_READS
  • AUDIO_FRA_DISABLE_ASSERTS
  • AUDIO_FRA_VISIBILITY

Broadcasting

VariableDefaultDescription
BROADCAST_DRIVERlogBroadcasting driver: log, pusher, ably, etc.
PUSHER_APP_KEY-Pusher application key
PUSHER_APP_SECRET-Pusher application secret
PUSHER_APP_ID-Pusher application ID
PUSHER_HOST-Pusher host
PUSHER_APP_CLUSTERmt1Pusher cluster
PUSHER_PORT443Pusher port
PUSHER_SCHEMEhttpsPusher scheme
ABLY_KEY-Ably key

Cache

VariableDefaultDescription
CACHE_DRIVERfileCache driver: file, redis, memcached, dynamodb
CACHE_PREFIXanimethemesCache key prefix
MEMCACHED_PERSISTENT_ID-Memcached persistent ID
MEMCACHED_USERNAME-Memcached username
MEMCACHED_PASSWORD-Memcached password
MEMCACHED_HOST127.0.0.1Memcached host
MEMCACHED_PORT11211Memcached port
DYNAMODB_CACHE_TABLEcacheDynamoDB cache table name
DYNAMODB_ENDPOINT-DynamoDB endpoint

Database

MySQL Production

VariableDefaultDescription
DB_CONNECTIONmysql_prodDefault database connection
DATABASE_URL-Full database URL (optional)
DB_HOST_READ127.0.0.1Read replica host
DB_HOST_WRITE127.0.0.1Write host
DB_STICKYfalseEnable sticky read connections
DB_PORT3306Database port
DB_DATABASEanimethemesDatabase name
DB_USERNAMErootDatabase username
DB_PASSWORD-Database password
DB_SOCKET-Unix socket path (optional)
MYSQL_ATTR_SSL_CAnullSSL CA certificate path

MySQL Beta (Optional)

VariableDefaultDescription
DATABASE_BETA_URL-Beta database URL
DB_BETA_HOST-Beta database host
DB_BETA_PORT3306Beta database port
DB_BETA_DATABASEanimethemes-betaBeta database name
DB_BETA_USERNAMErootBeta database username
DB_BETA_PASSWORD-Beta database password
DB_BETA_SOCKET-Beta database socket

Redis

VariableDefaultDescription
REDIS_CLIENTpredisRedis client: predis or phpredis
REDIS_CLUSTERredisRedis cluster configuration
REDIS_URLnullFull Redis URL (optional)
REDIS_HOST127.0.0.1Redis host
REDIS_PASSWORDnullRedis password
REDIS_PORT6379Redis port
REDIS_SCHEMEtcpRedis connection scheme
REDIS_DB0Default Redis database
REDIS_CACHE_DB1Redis cache database

Dump Configuration

Database dump downloads:
VariableDefaultDescription
DUMP_DISKdumps_localDisk for database dumps
DUMP_DISK_ROOT-Root path for local dump storage
DUMP_URLhttp://localhostURL for dump downloads
DUMP_PATH/dumpPath prefix for dump URLs

Dump Storage (S3)

  • DUMP_ACCESS_KEY_ID
  • DUMP_SECRET_ACCESS_KEY
  • DUMP_DEFAULT_REGION
  • DUMP_ENDPOINT
  • DUMP_BUCKET
  • DUMP_STREAM_READS
  • DUMP_DISABLE_ASSERTS
  • DUMP_VISIBILITY

Elasticsearch

VariableDefaultDescription
ELASTIC_CONNECTIONdefaultElasticsearch connection name
ELASTIC_HOSThttp://localhost:9200Elasticsearch host URL
ELASTIC_SCOUT_DRIVER_REFRESH_DOCUMENTSfalseRefresh documents immediately after indexing
ELASTIC_MIGRATIONS_TABLEelastic_migrationsMigration tracking table
See Elasticsearch Setup for detailed configuration.

FFmpeg

VariableDefaultDescription
FFMPEG_BINARIES-Path to FFmpeg binary (auto-detected if not set)
FFPROBE_BINARIES-Path to FFprobe binary (auto-detected if not set)

Filament Admin

VariableDefaultDescription
FILAMENT_URL-Admin panel URL (optional)
FILAMENT_PATHadminAdmin panel path
FILAMENT_SUBMISSION_URL-Submission panel URL (optional)
FILAMENT_SUBMISSION_PATHsubmissionSubmission panel path

Filesystems

VariableDefaultDescription
FILESYSTEM_DISKlocalDefault filesystem disk
See Storage Configuration for detailed disk configuration.

Image Storage

VariableDefaultDescription
IMAGE_DISKimages_localDefault disk for images
IMAGE_DISK_ROOT-Root path for local image storage
IMAGE_ACCESS_KEY_ID-S3 access key for images
IMAGE_SECRET_ACCESS_KEY-S3 secret key for images
IMAGE_DEFAULT_REGION-S3 region for images
IMAGE_ENDPOINT-S3 endpoint for images
IMAGE_BUCKET-S3 bucket for images
IMAGE_STREAM_READS-Enable stream reads
IMAGE_DISABLE_ASSERTS-Disable S3 assertions
IMAGE_VISIBILITY-Default file visibility
IMAGE_URL-CDN URL for images

Script Storage

For video encoding scripts:
  • SCRIPT_DISK - Default: scripts_local
  • SCRIPT_DISK_ROOT - Root path for local storage
  • SCRIPT_URL - Subdomain URL
  • SCRIPT_PATH - Default: /videoscript
Plus S3 configuration variables (SCRIPT_ACCESS_KEY_ID, etc.)

GraphQL

VariableDefaultDescription
GRAPHQL_URL-GraphQL endpoint URL (optional)
GRAPHQL_PATH/graphqlGraphQL endpoint path
GRAPHQL_RATE_LIMIT90Requests per minute
GRAPHIQL_ENABLEDtrueEnable GraphiQL playground

Hashids

VariableDefaultDescription
HASHIDS_SALT_MAIN-Salt for main hashid generation
HASHIDS_SALT_PLAYLISTS-Salt for playlist hashids

Hashing

VariableDefaultDescription
BCRYPT_ROUNDS10BCrypt hashing rounds

Horizon

Laravel Horizon for queue management:
VariableDefaultDescription
HORIZON_URL-Horizon dashboard URL (optional)
HORIZON_PATHhorizonHorizon dashboard path

Logging

VariableDefaultDescription
LOG_CHANNELdailyLogging channel: daily, single, stack, etc.
LOG_DEPRECATIONS_CHANNELnullChannel for deprecation warnings
LOG_LEVELdebugMinimum log level: debug, info, warning, error

Mail

VariableDefaultDescription
MAIL_MAILERlogMail driver: log, smtp, mailgun, postmark
MAIL_HOSTsmtp.mailgun.orgSMTP host
MAIL_PORT587SMTP port
MAIL_ENCRYPTIONtlsSMTP encryption: tls or ssl
MAIL_USERNAMEnullSMTP username
MAIL_PASSWORDnullSMTP password
MAIL_FROM_ADDRESSnullDefault sender email
MAIL_FROM_NAME${APP_NAME}Default sender name
MAIL_SENDMAIL_PATH/usr/sbin/sendmail -bs -iSendmail binary path
MAIL_LOG_CHANNEL-Log channel for mail driver

Pennant (Feature Flags)

VariableDefaultDescription
PENNANT_STOREdatabaseFeature flag store: database or array
See Feature Flags for usage.

Playlists

VariableDefaultDescription
PLAYLIST_MAX_TRACKS1000Maximum tracks per playlist
USER_MAX_PLAYLISTS1000Maximum playlists per user

Queue

VariableDefaultDescription
QUEUE_CONNECTIONsyncQueue driver: sync, redis, database, sqs
REDIS_QUEUEdefaultRedis queue name
QUEUE_FAILED_DRIVERdatabase-uuidsFailed job storage driver

Sanctum

VariableDefaultDescription
SANCTUM_STATEFUL_DOMAINS-Comma-separated list of stateful domains
VariableDefaultDescription
SCOUT_DRIVERnullSearch driver: elastic, algolia, meilisearch, database
SCOUT_PREFIX-Index prefix for multi-tenant setups
SCOUT_QUEUEfalseQueue search index updates
SCOUT_IDENTIFYfalseIdentify users to search engine
ALGOLIA_APP_ID-Algolia application ID
ALGOLIA_SECRET-Algolia API key

Secure Headers

VariableDefaultDescription
ENABLE_CLEAR_SITE_DATAfalseEnable Clear-Site-Data header
ENABLE_HSTSfalseEnable HTTP Strict Transport Security
ENABLE_EXPECT_CTfalseEnable Certificate Transparency
ENABLE_PERMISSIONS_POLICYfalseEnable Permissions Policy
ENABLE_CSPfalseEnable Content Security Policy

Services

Third-party service integrations:
VariableDefaultDescription
MAILGUN_DOMAIN-Mailgun domain
MAILGUN_SECRET-Mailgun API key
MAILGUN_ENDPOINTapi.mailgun.netMailgun API endpoint
POSTMARK_TOKEN-Postmark API token
DISCORD_BOT_API_TOKEN-Discord bot token
DISCORD_BOT_API_URL-Discord bot API URL
DISCORD_BOT_API_KEY-Discord bot API key
DB_UPDATES_DISCORD_CHANNEL-Discord channel for database updates
ADMIN_DISCORD_CHANNEL-Discord channel for admin notifications
OPENAI_BEARER_TOKENnullOpenAI API token

MyAnimeList

VariableDefaultDescription
MAL_CLIENT_IDnullMyAnimeList client ID
MAL_CLIENT_SECRETnullMyAnimeList client secret
MAL_REDIRECT_URInullOAuth redirect URI

AniList

VariableDefaultDescription
ANILIST_CLIENT_IDnullAniList client ID
ANILIST_CLIENT_SECRETnullAniList client secret
ANILIST_REDIRECT_URInullOAuth redirect URI

Session

VariableDefaultDescription
SESSION_DRIVERdatabaseSession driver: file, cookie, database, redis
SESSION_LIFETIME120Session lifetime in minutes
SESSION_CONNECTIONnullDatabase connection for sessions
SESSION_STOREnullCache store for sessions
SESSION_DOMAINnullSession cookie domain
SESSION_SECURE_COOKIE-Use secure cookies (HTTPS only)

Submissions

VariableDefaultDescription
USER_MAX_SUBMISSIONS50Maximum submissions per user

User Profiles

VariableDefaultDescription
USER_MAX_PROFILES5Maximum external profiles per user

Validation

VariableDefaultDescription
MODERATION_SERVICEnoneContent moderation service

Video Configuration

VariableDefaultDescription
VIDEO_DISK_DEFAULTvideos_localDefault disk for video files
VIDEO_DISKSvideos_localComma-separated list of video disks
VIDEO_DISK_ROOT-Root path for local video storage
VIDEO_PATH/videoPath prefix for video URLs
VIDEO_URL-Subdomain URL for video (e.g., v.animethemes.test)
VIDEO_RATE_LIMITER90Requests per minute (≤0 for unlimited)
VIDEO_STREAMING_METHODresponseStreaming method: response or nginx
VIDEO_NGINX_REDIRECT-Nginx internal redirect location for video

Video Storage (S3)

Configure separate S3 buckets for different regions: NYC Region:
  • VIDEO_NYC_ACCESS_KEY_ID
  • VIDEO_NYC_SECRET_ACCESS_KEY
  • VIDEO_NYC_DEFAULT_REGION
  • VIDEO_NYC_ENDPOINT
  • VIDEO_NYC_BUCKET
  • VIDEO_NYC_STREAM_READS
  • VIDEO_NYC_DISABLE_ASSERTS
  • VIDEO_NYC_VISIBILITY
FRA Region:
  • VIDEO_FRA_ACCESS_KEY_ID
  • VIDEO_FRA_SECRET_ACCESS_KEY
  • VIDEO_FRA_DEFAULT_REGION
  • VIDEO_FRA_ENDPOINT
  • VIDEO_FRA_BUCKET
  • VIDEO_FRA_STREAM_READS
  • VIDEO_FRA_DISABLE_ASSERTS
  • VIDEO_FRA_VISIBILITY

Web Configuration

VariableDefaultDescription
WEB_URLhttp://localhostFrontend application URL
WEB_PATH-Frontend path prefix

Wiki Configuration

Links to wiki/frontend pages:
VariableDefaultDescription
WIKI_LOGINhttp://localhost/loginLogin page URL
WIKI_RESET_PASSWORDhttp://localhost/reset-passwordPassword reset page URL
WIKI_EXTERNAL_PROFILEhttp://localhost/externalExternal profile page URL

Next Steps

Storage Configuration

Configure local and S3 storage disks

Feature Flags

Manage feature flags with Pennant

Elasticsearch

Set up Elasticsearch for search

Admin Panel

Access the Filament admin panel

Build docs developers (and LLMs) love