You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pixelfed/config/federation.php

118 lines
4.1 KiB
PHP

<?php
return [
/*
|--------------------------------------------------------------------------
| ActivityPub
|--------------------------------------------------------------------------
|
| ActivityPub configuration
|
*/
'activitypub' => [
'enabled' => env('ACTIVITY_PUB', false),
'outbox' => env('AP_OUTBOX', true),
'inbox' => env('AP_INBOX', true),
'sharedInbox' => env('AP_SHAREDINBOX', true),
'remoteFollow' => env('AP_REMOTE_FOLLOW', true),
'delivery' => [
'timeout' => env('ACTIVITYPUB_DELIVERY_TIMEOUT', 30),
'concurrency' => env('ACTIVITYPUB_DELIVERY_CONCURRENCY', 10),
'logger' => [
'enabled' => env('AP_LOGGER_ENABLED', false),
'driver' => 'log',
],
'failure_threshold' => env('AP_DELIVERY_FAILURE_THRESHOLD', 5),
'max_backoff' => env('AP_DELIVERY_MAX_BACKOFF', 604800),
],
'ingest' => [
'store_notes_without_followers' => env('AP_INGEST_STORE_NOTES_WITHOUT_FOLLOWERS', false),
],
'authorized_fetch' => env('AUTHORIZED_FETCH', false),
/*
* FEP-8fcf: Followers collection synchronization across servers
*
* When enabled, followers-only posts are delivered with a signed
* Collection-Synchronization header, the partial followers
* collection is served to authenticated remote instances, and
* incoming Collection-Synchronization headers are reconciled.
*/
'followers_sync' => [
'enabled' => env('AP_FOLLOWERS_SYNC', true),
// Minimum seconds between two synchronizations of the same remote actor
'cooldown' => env('AP_FOLLOWERS_SYNC_COOLDOWN', 900),
// Maximum collection pages fetched from a remote server per synchronization
'max_pages' => env('AP_FOLLOWERS_SYNC_MAX_PAGES', 10),
],
],
'atom' => [
'enabled' => env('ATOM_FEEDS', true),
],
'avatars' => [
'store_local' => env('REMOTE_AVATARS', true),
],
'nodeinfo' => [
'enabled' => env('NODEINFO', true),
],
'webfinger' => [
'enabled' => env('WEBFINGER', true),
],
'network_timeline' => env('PF_NETWORK_TIMELINE', true),
'network_timeline_days_falloff' => env('PF_NETWORK_TIMELINE_DAYS_FALLOFF', 90),
'custom_emoji' => [
'enabled' => env('CUSTOM_EMOJI', false),
// max size in bytes, default is 2mb
'max_size' => env('CUSTOM_EMOJI_MAX_SIZE', 2000000),
],
'migration' => env('PF_ACCT_MIGRATION_ENABLED', true),
'url_validation' => [
/*
* Skip resolution and domain ban checks for urls that belong to this
* instance. Local urls are trusted by definition, and the app domain
* often does not resolve to a globally routable address from inside
* the app container (docker networks, split-horizon dns, CGNAT).
* Failing those urls breaks local audience normalization and local
* actor resolution on otherwise healthy instances.
*
* Scheme, userinfo, port and length checks still apply. Only the ban
* list and address resolution are bypassed.
*/
'skip_local_checks' => env('AP_SKIP_LOCAL_URL_CHECKS', true),
/*
* Accept urls whose host returned no A/AAAA records at all.
*
* Defaults to true. An empty answer is ambiguous (NXDOMAIN, SERVFAIL,
* a container with no usable resolver, a libc whose res_* functions
* PHP cannot use) and is far more often a local misconfiguration than
* a hostile url. Failing closed there takes the whole instance off
* the network.
*
* Hosts that positively resolve into non-global address space are
* rejected regardless of this setting, and ip literals, single label
* hosts and the loopback names are refused before resolution is ever
* attempted.
*/
'allow_unresolved' => env('AP_ALLOW_UNRESOLVED_HOSTS', true),
],
];