GoToSocial uses environment variables with the GTS_ prefix. Any command-line flag can be converted to an environment variable by:
- Adding the
GTS_prefix - Converting hyphens to underscores
- Converting to uppercase
GTS_LOG_LEVEL- Log level (trace, debug, info, warn, error, fatal)GTS_LOG_TIMESTAMP_FORMAT- Timestamp format for logsGTS_LOG_DB_QUERIES- Log database queries verboselyGTS_LOG_CLIENT_IP- Include client IP in logsGTS_REQUEST_ID_HEADER- Header to extract Request ID fromGTS_CONFIG_PATH- Path to configuration fileGTS_APPLICATION_NAME- Application nameGTS_LANDING_PAGE_USER- User to show on landing pageGTS_HOST- Server hostnameGTS_ACCOUNT_DOMAIN- Domain for account namesGTS_PROTOCOL- Protocol (http/https)GTS_BIND_ADDRESS- Bind addressGTS_PORT- Port numberGTS_TRUSTED_PROXIES- Trusted proxy addresses
GTS_DB_TYPE- Database type (postgres/sqlite)GTS_DB_ADDRESS- Database addressGTS_DB_PORT- Database portGTS_DB_USER- Database usernameGTS_DB_PASSWORD- Database passwordGTS_DB_DATABASE- Database nameGTS_DB_TLS_MODE- Database TLS modeGTS_DB_TLS_CA_CERT- Path to CA cert for DB TLSGTS_DB_MAX_OPEN_CONNS_MULTIPLIER- Database connection multiplierGTS_DB_SQLITE_JOURNAL_MODE- SQLite journal modeGTS_DB_SQLITE_SYNCHRONOUS- SQLite synchronous modeGTS_DB_SQLITE_CACHE_SIZE- SQLite cache sizeGTS_DB_SQLITE_BUSY_TIMEOUT- SQLite busy timeoutGTS_DB_POSTGRES_CONNECTION_STRING- Full PostgreSQL connection string
GTS_WEB_TEMPLATE_BASE_DIR- HTML template directoryGTS_WEB_ASSET_BASE_DIR- Static assets directory
GTS_INSTANCE_FEDERATION_MODE- Federation mode (blocklist/allowlist)GTS_INSTANCE_FEDERATION_SPAM_FILTER- Enable spam filterGTS_INSTANCE_EXPOSE_PEERS- Expose peers endpointGTS_INSTANCE_EXPOSE_BLOCKLIST- Expose blocklistGTS_INSTANCE_EXPOSE_BLOCKLIST_WEB- Expose blocklist on webGTS_INSTANCE_EXPOSE_ALLOWLIST- Expose allowlistGTS_INSTANCE_EXPOSE_ALLOWLIST_WEB- Expose allowlist on webGTS_INSTANCE_EXPOSE_PUBLIC_TIMELINE- Expose public timelineGTS_INSTANCE_EXPOSE_CUSTOM_EMOJIS- Expose custom emojisGTS_INSTANCE_DELIVER_TO_SHARED_INBOXES- Use shared inboxesGTS_INSTANCE_INJECT_MASTODON_VERSION- Inject Mastodon versionGTS_INSTANCE_LANGUAGES- Preferred languagesGTS_INSTANCE_SUBSCRIPTIONS_PROCESS_FROM- Subscription processing start timeGTS_INSTANCE_SUBSCRIPTIONS_PROCESS_EVERY- Subscription processing intervalGTS_INSTANCE_STATS_MODE- Stats serving modeGTS_INSTANCE_ALLOW_BACKDATING_STATUSES- Allow backdating statuses
GTS_ACCOUNTS_REGISTRATION_OPEN- Allow open registrationGTS_ACCOUNTS_REASON_REQUIRED- Require reason for signupGTS_ACCOUNTS_REGISTRATION_DAILY_LIMIT- Daily registration limitGTS_ACCOUNTS_REGISTRATION_BACKLOG_LIMIT- Registration backlog limitGTS_ACCOUNTS_ALLOW_CUSTOM_CSS- Allow custom CSSGTS_ACCOUNTS_CUSTOM_CSS_LENGTH- Custom CSS length limitGTS_ACCOUNTS_MAX_PROFILE_FIELDS- Max profile fields
GTS_STORAGE_BACKEND- Storage backend (local/s3)GTS_STORAGE_LOCAL_BASE_PATH- Local storage pathGTS_STORAGE_S3_ENDPOINT- S3 endpointGTS_STORAGE_S3_ACCESS_KEY- S3 access keyGTS_STORAGE_S3_SECRET_KEY- S3 secret keyGTS_STORAGE_S3_USE_SSL- Use SSL for S3GTS_STORAGE_S3_BUCKET- S3 bucket nameGTS_STORAGE_S3_PROXY- Proxy S3 contentGTS_STORAGE_S3_REDIRECT_URL- Custom S3 redirect URLGTS_STORAGE_S3_BUCKET_LOOKUP- S3 bucket lookup typeGTS_STORAGE_S3_KEY_PREFIX- S3 key prefix
GTS_STATUSES_MAX_CHARS- Max status charactersGTS_STATUSES_POLL_MAX_OPTIONS- Max poll optionsGTS_STATUSES_POLL_OPTION_MAX_CHARS- Max poll option charactersGTS_STATUSES_MEDIA_MAX_FILES- Max media files per status
GTS_MEDIA_DESCRIPTION_MIN_CHARS- Min media description charsGTS_MEDIA_DESCRIPTION_MAX_CHARS- Max media description charsGTS_MEDIA_REMOTE_CACHE_DAYS- Remote media cache daysGTS_MEDIA_EMOJI_LOCAL_MAX_SIZE- Local emoji max sizeGTS_MEDIA_EMOJI_REMOTE_MAX_SIZE- Remote emoji max sizeGTS_MEDIA_LOCAL_MAX_SIZE- Local media max sizeGTS_MEDIA_REMOTE_MAX_SIZE- Remote media max sizeGTS_MEDIA_CLEANUP_FROM- Media cleanup start timeGTS_MEDIA_CLEANUP_EVERY- Media cleanup intervalGTS_MEDIA_FFMPEG_POOL_SIZE- FFMPEG pool sizeGTS_MEDIA_THUMB_MAX_PIXELS- Thumbnail max pixels
GTS_LETSENCRYPT_ENABLED- Enable LetsEncryptGTS_LETSENCRYPT_PORT- LetsEncrypt portGTS_LETSENCRYPT_CERT_DIR- Certificate directoryGTS_LETSENCRYPT_EMAIL_ADDRESS- Email for LetsEncryptGTS_TLS_CERTIFICATE_CHAIN- TLS certificate chain pathGTS_TLS_CERTIFICATE_KEY- TLS private key path
GTS_OIDC_ENABLED- Enable OIDCGTS_OIDC_IDP_NAME- OIDC provider nameGTS_OIDC_SKIP_VERIFICATION- Skip OIDC verificationGTS_OIDC_ISSUER- OIDC issuer URLGTS_OIDC_CLIENT_ID- OIDC client IDGTS_OIDC_CLIENT_SECRET- OIDC client secretGTS_OIDC_SCOPES- OIDC scopesGTS_OIDC_LINK_EXISTING- Link existing usersGTS_OIDC_ALLOWED_GROUPS- Allowed groupsGTS_OIDC_ADMIN_GROUPS- Admin groups
GTS_SMTP_HOST- SMTP hostGTS_SMTP_PORT- SMTP portGTS_SMTP_USERNAME- SMTP usernameGTS_SMTP_PASSWORD- SMTP passwordGTS_SMTP_FROM- SMTP from addressGTS_SMTP_DISCLOSE_RECIPIENTS- Disclose email recipients
GTS_TRACING_ENABLED- Enable tracingGTS_METRICS_ENABLED- Enable metrics
GTS_SYSLOG_ENABLED- Enable syslogGTS_SYSLOG_PROTOCOL- Syslog protocolGTS_SYSLOG_ADDRESS- Syslog address
GTS_HTTP_CLIENT_ALLOW_IPS- Allowed IPs for outgoing requestsGTS_HTTP_CLIENT_BLOCK_IPS- Blocked IPs for outgoing requestsGTS_HTTP_CLIENT_TIMEOUT- HTTP client timeoutGTS_HTTP_CLIENT_TLS_INSECURE_SKIP_VERIFY- Skip TLS verificationGTS_HTTP_CLIENT_INSECURE_OUTGOING- Use insecure outgoing connections
GTS_ADVANCED_COOKIES_SAMESITE- Cookie SameSite attributeGTS_ADVANCED_SENDER_MULTIPLIER- ActivityPub sender multiplierGTS_ADVANCED_CSP_EXTRA_URIS- Extra CSP URIsGTS_ADVANCED_HEADER_FILTER_MODE- Header filter modeGTS_ADVANCED_RATE_LIMIT_REQUESTS- Rate limit requestsGTS_ADVANCED_RATE_LIMIT_EXCEPTIONS- Rate limit exceptionsGTS_ADVANCED_THROTTLING_MULTIPLIER- Throttling multiplierGTS_ADVANCED_THROTTLING_RETRY_AFTER- Throttling retry afterGTS_ADVANCED_SCRAPER_DETERRENCE_ENABLED- Enable scraper deterrenceGTS_ADVANCED_SCRAPER_DETERRENCE_DIFFICULTY- Scraper deterrence difficulty
GTS_CACHE_MEMORY_TARGET- Memory target for cachesGTS_CACHE_ACCOUNT_MEM_RATIO- Account cache memory ratioGTS_CACHE_ACCOUNT_NOTE_MEM_RATIO- Account note cache memory ratioGTS_CACHE_ACCOUNT_SETTINGS_MEM_RATIO- Account settings cache memory ratioGTS_CACHE_ACCOUNT_STATS_MEM_RATIO- Account stats cache memory ratioGTS_CACHE_APPLICATION_MEM_RATIO- Application cache memory ratioGTS_CACHE_BLOCK_MEM_RATIO- Block cache memory ratioGTS_CACHE_BLOCK_IDS_MEM_RATIO- Block IDs cache memory ratioGTS_CACHE_BOOST_OF_IDS_MEM_RATIO- Boost of IDs cache memory ratioGTS_CACHE_CLIENT_MEM_RATIO- Client cache memory ratioGTS_CACHE_CONVERSATION_MEM_RATIO- Conversation cache memory ratioGTS_CACHE_CONVERSATION_LAST_STATUS_IDS_MEM_RATIO- Conversation last status IDs cache memory ratioGTS_CACHE_DOMAIN_PERMISSION_DRAFT_MEM_RATIO- Domain permission draft cache memory ratioGTS_CACHE_DOMAIN_PERMISSION_SUBSCRIPTION_MEM_RATIO- Domain permission subscription cache memory ratioGTS_CACHE_EMOJI_MEM_RATIO- Emoji cache memory ratioGTS_CACHE_EMOJI_CATEGORY_MEM_RATIO- Emoji category cache memory ratioGTS_CACHE_FILTER_MEM_RATIO- Filter cache memory ratioGTS_CACHE_FILTER_IDS_MEM_RATIO- Filter IDs cache memory ratioGTS_CACHE_FILTER_KEYWORD_MEM_RATIO- Filter keyword cache memory ratioGTS_CACHE_FILTER_STATUS_MEM_RATIO- Filter status cache memory ratioGTS_CACHE_FOLLOW_MEM_RATIO- Follow cache memory ratioGTS_CACHE_FOLLOW_IDS_MEM_RATIO- Follow IDs cache memory ratioGTS_CACHE_FOLLOW_REQUEST_MEM_RATIO- Follow request cache memory ratioGTS_CACHE_FOLLOW_REQUEST_IDS_MEM_RATIO- Follow request IDs cache memory ratioGTS_CACHE_FOLLOWING_TAG_IDS_MEM_RATIO- Following tag IDs cache memory ratioGTS_CACHE_IN_REPLY_TO_IDS_MEM_RATIO- In reply to IDs cache memory ratioGTS_CACHE_INSTANCE_MEM_RATIO- Instance cache memory ratioGTS_CACHE_INTERACTION_REQUEST_MEM_RATIO- Interaction request cache memory ratioGTS_CACHE_LIST_MEM_RATIO- List cache memory ratioGTS_CACHE_LIST_IDS_MEM_RATIO- List IDs cache memory ratioGTS_CACHE_LISTED_IDS_MEM_RATIO- Listed IDs cache memory ratioGTS_CACHE_MARKER_MEM_RATIO- Marker cache memory ratioGTS_CACHE_MEDIA_MEM_RATIO- Media cache memory ratioGTS_CACHE_MENTION_MEM_RATIO- Mention cache memory ratioGTS_CACHE_MOVE_MEM_RATIO- Move cache memory ratioGTS_CACHE_NOTIFICATION_MEM_RATIO- Notification cache memory ratioGTS_CACHE_POLL_MEM_RATIO- Poll cache memory ratioGTS_CACHE_POLL_VOTE_MEM_RATIO- Poll vote cache memory ratioGTS_CACHE_POLL_VOTE_IDS_MEM_RATIO- Poll vote IDs cache memory ratioGTS_CACHE_REPORT_MEM_RATIO- Report cache memory ratioGTS_CACHE_SIN_BIN_STATUS_MEM_RATIO- Sin bin status cache memory ratioGTS_CACHE_STATUS_MEM_RATIO- Status cache memory ratioGTS_CACHE_STATUS_BOOKMARK_MEM_RATIO- Status bookmark cache memory ratioGTS_CACHE_STATUS_BOOKMARK_IDS_MEM_RATIO- Status bookmark IDs cache memory ratioGTS_CACHE_STATUS_EDIT_MEM_RATIO- Status edit cache memory ratioGTS_CACHE_STATUS_FAVE_MEM_RATIO- Status fave cache memory ratioGTS_CACHE_STATUS_FAVE_IDS_MEM_RATIO- Status fave IDs cache memory ratioGTS_CACHE_TAG_MEM_RATIO- Tag cache memory ratioGTS_CACHE_THREAD_MUTE_MEM_RATIO- Thread mute cache memory ratioGTS_CACHE_TOKEN_MEM_RATIO- Token cache memory ratioGTS_CACHE_TOMBSTONE_MEM_RATIO- Tombstone cache memory ratioGTS_CACHE_USER_MEM_RATIO- User cache memory ratioGTS_CACHE_USER_MUTE_MEM_RATIO- User mute cache memory ratioGTS_CACHE_USER_MUTE_IDS_MEM_RATIO- User mute IDs cache memory ratioGTS_CACHE_WEBFINGER_MEM_RATIO- Webfinger cache memory ratioGTS_CACHE_WEB_PUSH_SUBSCRIPTION_MEM_RATIO- Web push subscription cache memory ratioGTS_CACHE_WEB_PUSH_SUBSCRIPTION_IDS_MEM_RATIO- Web push subscription IDs cache memory ratioGTS_CACHE_MUTES_MEM_RATIO- Mutes cache memory ratioGTS_CACHE_STATUS_FILTER_MEM_RATIO- Status filter cache memory ratioGTS_CACHE_VISIBILITY_MEM_RATIO- Visibility cache memory ratio
These are temporary environment variables used for admin commands:
GTS_USERNAME- Username for admin operationsGTS_EMAIL- Email for admin operationsGTS_PASSWORD- Password for admin operationsGTS_PATH- Path for import/export operationsGTS_DRY_RUN- Perform dry run for media pruneGTS_LOCAL_ONLY- List only local attachments/emojisGTS_REMOTE_ONLY- List only remote attachments/emojisGTS_SKIP_DB_SETUP- Skip testrig database setupGTS_SKIP_DB_TEARDOWN- Skip testrig database teardown