# Configuration

All configuration files are located in the config/ folder of your Pixelfed installation. These are the environment variables you can set in your .env file; note that some variables are currently unused and do nothing.

Summary of important variables

For a user-facing guide to which environment variables you might want to set, check out the installation guide instead.

# app

# APP_NAME

Pixelfed

# APP_ENV

production

# APP_DEBUG

false

# APP_URL

https://localhost

# APP_TIMEZONE

UTC

# APP_LOCALE

en

# APP_FALLBACK_LOCALE

en

# APP_KEY

A random 32-character string to be used as an encryption key. No default value; use php artisan key:generate to generate.

# broadcasting

# BROADCAST_DRIVER

Possible values:

  • pusher
  • redis
  • log
  • null (default)

# PUSHER_APP_KEY

# PUSHER_APP_SECRET

# PUSHER_APP_ID

# PUSHER_APP_CLUSTER

# cache

# CACHE_DRIVER

Defaults to file.

# CACHE_PREFIX

Defaults to APP_NAME_cache, or laravel_cache if no APP_NAME is set.

# MEMCACHED_PERSISTENT_ID

# MEMCACHED_USERNAME

# MEMCACHED_PASSWORD

# MEMCACHED_HOST

127.0.0.1

# MEMCACHED_PORT

11211

# REDIS_CLIENT

predis

# REDIS_SCHEME

tcp

# REDIS_PATH

No default value.

# REDIS_HOST

localhost

# REDIS_PASSWORD

null

# REDIS_PORT

6379

# REDIS_DATABASE

0

# costar

# CS_BLOCKED_DOMAINS

Comma-separated list of domains to block. Defaults to null.

# CS_CW_DOMAINS

Comma-separated list of domains to add warnings. Defaults to null.

# CS_UNLISTED_DOMAINS

Comma-separated list of domains to remove from public timelines. Defaults to null.

# CS_BLOCKED_KEYWORDS

Comma-separated list of keywords to block. Defaults to null.

# CS_CW_KEYWORDS

Comma-separated list of keywords to add warnings. Defaults to null.

# CS_UNLISTED_KEYWORDS

Comma-separated list of keywords to remove from public timelines. Defaults to null.

# CS_BLOCKED_ACTOR

# CS_CW_ACTOR

# CS_UNLISTED_ACTOR

# database

# DB_CONNECTION

Sets the database driver. Defaults to mysql.

# DB_DATABASE

When using sqlite for DB_CONNECTION. Defaults to database.sqlite

# DB_HOST

Defaults to 127.0.0.1 when using mysql or pgsql for DB_CONNECTION, or localhost when using sqlsrv.

# DB_PORT

Defaults to 3306 for mysql, 5432 for pgsql, or 1433 for sqlsrv.

# DB_DATABASE

Defaults to forge

# DB_USERNAME

Defaults to forge

# DB_PASSWORD

Defaults to an empty string.

# DB_SOCKET

Defaults to an empty string.

# REDIS_CLIENT

predis

# REDIS_SCHEME

tcp

# REDIS_PATH

No default value.

# REDIS_HOST

127.0.0.1

# REDIS_PASSWORD

null

# REDIS_PORT

6379

# REDIS_DATABASE

0

# exp

# EXP_LC

false

# EXP_REC

false

# EXP_LOOPS

false

# federation

# ACTIVITY_PUB

false

# AP_OUTBOX

true

# AP_INBOX

true

# AP_SHARED_INBOX

false

# AP_REMOTE_FOLLOW

false

# ACTIVITYPUB_DELIVERY_TIMEOUT

2.0

# ACTIVITYPUB_DELIVERY_CONCURRENCY

10

# AP_LOGGER_ENABLED

false

# ATOM_FEEDS

true

# NODEINFO

true

# WEBFINGER

true

# filesystem

# FILESYSTEM_DRIVER

local

# FILESYSTEM_CLOUD

s3

# AWS_ACCESS_KEY_ID

# AWS_SECRET_ACCESS_KEY

# AWS_DEFAULT_REGION

# AWS_BUCKET

# AWS_URL

# AWS_ENDPOINT

# AWS_USE_PATH_STYLE_ENDPOINT

false

# DO_SPACES_KEY

# DO_SPACES_SECRET

# DO_SPACES_ENDPOINT

# DO_SPACES_REGION

# DO_SPACES_BUCKET

# DO_SPACES_ROOT

/

# hashids

# APP_HASHID_SALT

v3MsJ1Hgnlma8YPrD3f4sW6vAn6zLnkuh6vOpKnR5IKkLqDGIk7TCADS2igpEN4ADrtXkkzV2E8HBfzpz7BreDzQqVOYDMeb4cJ1xhDhDwDeicZVUPyrxihHDaMWpTsP

# hashing

Possible drivers are bcrypt and argon, but this requires manual editing of driver (which is hardcoded as bcrypt).

# BCRYPT_COST

How many rounds of hashing to use. Defaults to 10.

# ARGON_MEM

1024

# ARGON_THREADS

2

# ARGON_TIME

2

# horizon

# HORIZON_PREFIX

Defaults to horizon-xxxxxxxx:, where xxxxxxxx is a random 8-character string.

# HORIZON_DARKMODE

false

# image

# IMAGE_DRIVER

Pixelfed supports GD or ImageMagick to process images. Defaults to gd. Set IMAGE_DRIVER='imagick' to use ImageMagick instead.

# instance

# INSTANCE_DESCRIPTION

null

# INSTANCE_CONTACT_FORM

false

# INSTANCE_CONTACT_MAX_PER_DAY

1

# EXP_LOOPS

false

# INSTANCE_PUBLIC_HASHTAGS

false

# INSTANCE_CONTACT_EMAIL

No default value.

# INSTANCE_PUBLIC_LOCAL_TIMELINE

false

# PAGE_404_HEADER

'Sorry, this page isn\'t available.'

# PAGE_404_BODY

# PAGE_503_HEADER

# PAGE_503_BODY

# BANNED_USERNAMES

# USERNAME_REMOTE_FORMAT

# USERNAME_REMOTE_CUSTOM_TEXT

# STORIES_ENABLED

false

# RESTRICTED_INSTANCE

false. Level is hardcoded to 1.

# OAUTH_PAT_ENABLED

false

# OAUTH_PAT_ID

No default value.

# logging

# LOG_CHANNEL

Possible values:

  • single
  • daily
  • slack
  • syslog
  • errorlog
  • monolog
  • custom
  • stack (default)

# LOG_SLACK_WEBHOOK_URL

No default value.

# mail

# MAIL_DRIVER

Possible values:

  • smtp (default)
  • sendmail
  • mailgun
  • mandrill
  • ses
  • sparkpost
  • log
  • array

# MAIL_HOST

smtp.mailgun.org

# MAIL_PORT

587

# MAIL_FROM_ADDRESS

hello@example.com

# MAIL_FROM_NAME

Example

# MAIL_ENCRYPTION

tls

# MAIL_USERNAME

No default value.

# MAIL_PASSWORD

No default value.

# media

# MEDIA_EXIF_DATABASE

false

# passport

By default, encryption keys are stored as local files, but can be set as environment variables if that is more convenient.

# PASSPORT_PRIVATE_KEY

# PASSPORT_PUBLIC_KEY

# pixelfed

# ADMIN_DOMAIN

# APP_DOMAIN

# MEMORY_LIMIT

1024M

# OPEN_REGISTRATION

true

# MAX_ACCOUNT_SIZE

Per-user file-size limit in KB. Defaults to 1000000 (1GB).

# MAX_PHOTO_SIZE

Per-file file-size limit in KB. Defaults to 15000 (15MB).

# MAX_AVATAR_SIZE

2000 (2MB)

# MAX_CAPTION_LENGTH

500

# MAX_BIO_LENGTH

125

# MAX_NAME_LENGTH

30

# MAX_ALBUM_LENGTH

4

# ENFORCE_EMAIL_VERIFICATION

true

# IMAGE_QUALITY

0-100 value for optimization level. Defaults to 80.

# ACCOUNT_DELETION

true

# ACCOUNT_DELETE_AFTER

Queue account deletion for X days. Defaults to false, i.e., immediately.

# PF_ENABLE_CLOUD

false

# PF_MAX_USERS

false

# PF_OPTIMIZE_IMAGES

true

# PF_OPTIMIZE_VIDEOS

true

# PF_USER_INVITES

false

# PF_USER_INVITES_TOTAL_LIMIT

0

# PF_USER_INVITES_DAILY_LIMIT

0

# PF_USER_INVITES_MONTHLY_LIMIT

0

# MEDIA_TYPES

'image/jpeg,image/png,image/gif'

# LIMIT_ACCOUNT_SIZE

true

# IMPORT_INSTAGRAM

false

# IMPORT_INSTAGRAM_POST_LIMIT

100

# IMPORT_INSTAGRAM_SIZE_LIMIT

5000

# OAUTH_ENABLED

false

# ADMIN_ENV_EDITOR

`false

# purify

# RESTRICT_HTML_TYPES

true

# queue

# QUEUE_DRIVER

  • sync (default)
  • database
  • beanstalkd
  • sqs
  • redis
  • null

# SQS_KEY

your-public-key

# SQS_SECRET

your-secret-key

# SQS_PREFIX

https://sqs.us-east-1.amazonaws.com/your-account-id

# SQS_QUEUE

your-queue-name

# SQS_REGION

us-east-1

# DB_CONNECTION

mysql

# services

# MAILGUN_DOMAIN

# MAILGUN_SECRET

# SES_KEY

# SES_SECRET

# SES_REGION

us-east-1

# SPARKPOST_SECRET

# STRIPE_KEY

# STRIPE_SECRET

# session

# SESSION_DRIVER

  • file
  • cookie
  • database (default)
  • apc
  • memcached
  • redis
  • array

# SESSION_LIFETIME

86400

# SESSION_DOMAIN

Defaults to the value of APP_DOMAIN, or null.

# trustedproxy

# TRUST_PROXIES

Defaults to empty string.

# websockets

# PUSHER_APP_ID

# APP_NAME

# PUSHER_APP_KEY

# PUSHER_APP_SECRET

# WSS_CM

# WSS_STATS

# WSS_LOCAL_CERT

# WSS_LOCAL_PK

# WSS_PASSPHRASE

# WSS_VERIFY_PEER