Merge branch 'staging' into dev

This commit is contained in:
Daniel Supernault 2022-05-18 03:15:24 -06:00
commit d48e6c5d67
53 changed files with 869 additions and 160 deletions

View file

@ -2,6 +2,9 @@
## [Unreleased](https://github.com/pixelfed/pixelfed/compare/v0.11.3...dev)
### New Features
- Custom content warnings/spoiler text ([d4864213](https://github.com/pixelfed/pixelfed/commit/d4864213))
### Breaking
- Replaced `predis` with `phpredis` as default redis driver due to predis being deprecated, install [phpredis](https://github.com/phpredis/phpredis/blob/develop/INSTALL.markdown) if you're still using predis.
@ -18,6 +21,7 @@
- Update exp config, enforce mastoapi compatibility by default ([a160b233](https://github.com/pixelfed/pixelfed/commit/a160b233))
- Update home timeline, redirect to /i/web unless force_old_ui is present ([5ff4730f](https://github.com/pixelfed/pixelfed/commit/5ff4730f))
- Update adminReportController, fix mail verification request 500 bug by changing filter precedence to catch deleted users that may still be cached in AccountService ([3f322e29](https://github.com/pixelfed/pixelfed/commit/3f322e29))
- Update AP Helpers, fix getSensitive and getScope missing parameters ([657c66c1](https://github.com/pixelfed/pixelfed/commit/657c66c1))
## [v0.11.3 (2022-05-09)](https://github.com/pixelfed/pixelfed/compare/v0.11.2...v0.11.3)

View file

@ -2289,6 +2289,7 @@ class ApiV1Controller extends Controller
'media_ids' => 'sometimes|array|max:' . config_cache('pixelfed.max_album_length'),
'sensitive' => 'nullable',
'visibility' => 'string|in:private,unlisted,public',
'spoiler_text' => 'sometimes|string|max:140',
]);
if(config('costar.enabled') == true) {
@ -2338,6 +2339,8 @@ class ApiV1Controller extends Controller
$content = strip_tags($request->input('status'));
$rendered = Autolink::create()->autolink($content);
$cw = $user->profile->cw == true ? true : $request->input('sensitive', false);
$spoilerText = $cw && $request->filled('spoiler_text') ? $request->input('spoiler_text') : null;
if($in_reply_to_id) {
$parent = Status::findOrFail($in_reply_to_id);
@ -2348,7 +2351,8 @@ class ApiV1Controller extends Controller
$status->scope = $visibility;
$status->visibility = $visibility;
$status->profile_id = $user->profile_id;
$status->is_nsfw = $user->profile->cw == true ? true : $request->input('sensitive', false);
$status->is_nsfw = $cw;
$status->cw_summary = $spoilerText;
$status->in_reply_to_id = $parent->id;
$status->in_reply_to_profile_id = $parent->profile_id;
$status->save();
@ -2371,7 +2375,8 @@ class ApiV1Controller extends Controller
$status->rendered = $rendered;
$status->profile_id = $user->profile_id;
$status->scope = 'draft';
$status->is_nsfw = $user->profile->cw == true ? true : $request->input('sensitive', false);
$status->is_nsfw = $cw;
$status->cw_summary = $spoilerText;
$status->save();
}

View file

@ -453,6 +453,7 @@ class ComposeController extends Controller
'tagged' => 'nullable',
'license' => 'nullable|integer|min:1|max:16',
'collections' => 'sometimes|array|min:1|max:5',
'spoiler_text' => 'nullable|string|max:140',
// 'optimize_media' => 'nullable'
]);
@ -540,6 +541,10 @@ class ComposeController extends Controller
$status->comments_disabled = (bool) $request->input('comments_disabled');
}
if($request->filled('spoiler_text') && $cw) {
$status->cw_summary = $request->input('spoiler_text');
}
$status->caption = strip_tags($request->caption);
$status->rendered = Autolink::create()->autolink($status->caption);
$status->scope = 'draft';

View file

@ -208,7 +208,7 @@ class SettingsController extends Controller
$opencollective = Str::startsWith($opencollective, 'opencollective.com/') ? e($opencollective) : null;
if(empty($patreon) && empty($liberapay) && empty($opencollective)) {
return redirect(route('settings'))->with('error', 'An error occured. Please try again later.');;
return redirect(route('settings'))->with('error', 'An error occured. Please try again later.');
}
$res = [
@ -251,7 +251,7 @@ class SettingsController extends Controller
} else {
Redis::zrem('pf:tl:replies', $pid);
}
return redirect(route('settings'))->with('status', 'Timeline settings successfully updated!');;
return redirect(route('settings'))->with('status', 'Timeline settings successfully updated!');
}
public function mediaSettings(Request $request)

View file

@ -22,7 +22,7 @@ class HashidService {
while($id) {
$id = ($id - ($r = $id % $base)) / $base;
$shortcode = $cmap[$r] . $shortcode;
};
}
return $shortcode;
});
}

View file

@ -93,7 +93,7 @@ class CreateNote extends Fractal\TransformerAbstract
'object' => [
'id' => $status->url(),
'type' => 'Note',
'summary' => null,
'summary' => $status->is_nsfw ? $status->cw_summary : null,
'content' => $status->rendered ?? $status->caption,
'inReplyTo' => $status->in_reply_to_id ? $status->parent()->url() : null,
'published' => $status->created_at->toAtomString(),

View file

@ -87,7 +87,7 @@ class Note extends Fractal\TransformerAbstract
],
'id' => $status->url(),
'type' => 'Note',
'summary' => null,
'summary' => $status->is_nsfw ? $status->cw_summary : null,
'content' => $status->rendered ?? $status->caption,
'inReplyTo' => $status->in_reply_to_id ? $status->parent()->url() : null,
'published' => $status->created_at->toAtomString(),

View file

@ -455,8 +455,8 @@ class Helpers {
return DB::transaction(function() use($url, $profile, $activity, $reply_to, $id) {
$ts = self::pluckval($activity['published']);
$scope = self::getScope($activity);
$cw = self::getSensitive($activity);
$scope = self::getScope($activity, $url);
$cw = self::getSensitive($activity, $url);
$pid = is_object($profile) ? $profile->id : (is_array($profile) ? $profile['id'] : null);
if(!$pid) {
@ -493,7 +493,7 @@ class Helpers {
});
}
public static function getSensitive($activity)
public static function getSensitive($activity, $url)
{
$id = isset($activity['id']) ? self::pluckval($activity['id']) : self::pluckval($url);
$url = isset($activity['url']) ? self::pluckval($activity['url']) : $id;
@ -527,7 +527,7 @@ class Helpers {
return $reply_to;
}
public static function getScope($activity)
public static function getScope($activity, $url)
{
$id = isset($activity['id']) ? self::pluckval($activity['id']) : self::pluckval($url);
$url = isset($activity['url']) ? self::pluckval($activity['url']) : $id;

BIN
public/css/app.css vendored

Binary file not shown.

BIN
public/css/appdark.css vendored

Binary file not shown.

BIN
public/css/landing.css vendored

Binary file not shown.

BIN
public/css/spa.css vendored

Binary file not shown.

Binary file not shown.

BIN
public/js/compose-ojtjadoml.js vendored Normal file

Binary file not shown.

BIN
public/js/compose.js vendored

Binary file not shown.

Binary file not shown.

BIN
public/js/daci-ojtjadoml.js vendored Normal file

Binary file not shown.

BIN
public/js/direct.js vendored

Binary file not shown.

Binary file not shown.

BIN
public/js/dmsg-ojtjadoml.js vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
public/js/home-ojtjadoml.js vendored Normal file

Binary file not shown.

BIN
public/js/manifest.js vendored

Binary file not shown.

BIN
public/js/profile.js vendored

Binary file not shown.

BIN
public/js/rempos.js vendored

Binary file not shown.

BIN
public/js/rempro.js vendored

Binary file not shown.

BIN
public/js/spa.js vendored

Binary file not shown.

BIN
public/js/status.js vendored

Binary file not shown.

BIN
public/js/timeline.js vendored

Binary file not shown.

Binary file not shown.

View file

@ -432,7 +432,8 @@
</div>
</div>
</div>
<div class="border-bottom d-flex justify-content-between px-4 mb-0 py-2 ">
<div class="border-bottom px-4 mb-0 py-2">
<div class="d-flex justify-content-between">
<div>
<div class="text-dark ">Contains NSFW Media</div>
</div>
@ -443,6 +444,18 @@
</div>
</div>
</div>
<div v-if="nsfw">
<textarea
class="form-control mt-3"
placeholder="Add an optional content warning or spoiler text"
maxlength="140"
v-model="spoilerText">
</textarea>
<p class="help-text small text-right text-muted mb-0">{{ spoilerTextLength }}/140</p>
</div>
</div>
<div class="border-bottom">
<p class="px-4 mb-0 py-2 cursor-pointer" @click="showTagCard()">Tag people</p>
</div>
@ -1009,6 +1022,13 @@ export default {
collectionsLoaded: false,
collectionsPage: 1,
collectionsCanLoadMore: false,
spoilerText: undefined,
}
},
computed: {
spoilerTextLength: function() {
return this.spoilerText ? this.spoilerText.length : 0;
}
},
@ -1248,7 +1268,8 @@ export default {
tagged: this.taggedUsernames,
optimize_media: this.optimizeMedia,
license: this.licenseId,
video: this.video
video: this.video,
spoiler_text: this.spoilerText,
};
if(this.collectionsSelected.length) {
@ -1503,7 +1524,7 @@ export default {
},
locationSearch(input) {
if (input.length < 1) { return []; };
if (input.length < 1) { return []; }
let results = [];
return axios.get('/api/compose/v0/search/location', {
params: {
@ -1650,7 +1671,7 @@ export default {
},
tagSearch(input) {
if (input.length < 1) { return []; };
if (input.length < 1) { return []; }
let self = this;
let results = [];
return axios.get('/api/compose/v0/search/tag', {

View file

@ -305,7 +305,7 @@ export default {
},
composeSearch(input) {
if (input.length < 1) { return []; };
if (input.length < 1) { return []; }
let self = this;
let results = [];
return axios.post('/api/direct/lookup', {

View file

@ -7,7 +7,7 @@
<p class="h4 font-weight-bold text-center">
Sensitive Content
</p>
<p class="text-center py-2">
<p class="text-center py-2 content-label-text">
{{ status.spoiler_text ? status.spoiler_text : 'This album may contain sensitive content.'}}
</p>
<p class="mb-0">

View file

@ -7,7 +7,7 @@
<p class="h4 font-weight-bold text-center">
Sensitive Content
</p>
<p class="text-center py-2">
<p class="text-center py-2 content-label-text">
{{ status.spoiler_text ? status.spoiler_text : 'This post may contain sensitive content.'}}
</p>
<p class="mb-0">

View file

@ -7,7 +7,7 @@
<p class="h4 font-weight-bold text-center">
Sensitive Content
</p>
<p class="text-center py-2">
<p class="text-center py-2 content-label-text">
{{ status.spoiler_text ? status.spoiler_text : 'This post may contain sensitive content.'}}
</p>
<p class="mb-0">

View file

@ -880,7 +880,7 @@ var UsersChart = (function() {
$chart.data('chart', usersChart);
};
}
// Events

View file

@ -652,3 +652,18 @@ details summary::-webkit-details-marker {
font-weight: bold;
}
}
.content-label {
&-wrapper {
div:not(.content-label) {
height: 100%;
}
}
&-text {
width: 80%;
@media (min-width: 768px) {
width: 50%;
}
}
}

View file

@ -291,3 +291,40 @@ span.twitter-typeahead .tt-suggestion:focus {
color: var(--body-color);
}
}
.ui-menu {
.btn-group {
.btn:first-child {
border-top-left-radius: 50rem;
border-bottom-left-radius: 50rem;
}
.btn:last-child {
border-top-right-radius: 50rem;
border-bottom-right-radius: 50rem;
}
.btn-primary {
font-weight: bold;
}
}
.b-custom-control-lg {
padding-bottom: 8px;
}
}
.content-label {
&-wrapper {
div:not(.content-label) {
height: 100%;
}
}
&-text {
width: 80%;
@media (min-width: 768px) {
width: 50%;
}
}
}

View file

@ -21,8 +21,8 @@ return [
'blockingAccounts' => 'Blokování účtů',
'safetyTips' => 'Tipy pro bezpečnost',
'reportSomething' => 'Nahlašování',
'dataPolicy' => 'Politika dat'
'dataPolicy' => 'Politika dat',
'taggingPeople' => 'Označování lidí'
];
]

View file

@ -3,7 +3,6 @@
@section('section')
<div class="title mb-4">
<h3 class="font-weight-bold">Diagnostics</h3>
<p class="lead mb-0">Instance diagnostics</p>
</div>
<div class="pb-3 border-bottom">
@ -11,30 +10,24 @@
Information
<span class="small text-primary ml-3 copy-information cursor-pointer text-uppercase font-weight-bold">Copy</span>
</p>
<ul class="information">
<div class="information">
<ul>
<p class="font-weight-bold text-muted">
Troubleshooting
</p>
<li>
<strong>APP_URL:</strong>
<span>{{config_cache('app.url')}}</span>
<strong>Bootstrap:</strong>
<span>{{is_writable(base_path('bootstrap/')) ? 'Writable ✅' : 'Not writable ❌'}}</span>
</li>
<li>
<strong>APP_DOMAIN:</strong>
<span>{{config_cache('pixelfed.domain.app')}}</span>
</li>
@if(function_exists('shell_exec'))
<li>
<strong>Version:</strong>
<span>{{config('pixelfed.version')}}-{{ @shell_exec('git log --pretty="%h" -n1 HEAD') ?? 'unknown git commit' }}</span>
</li>
@else
<li>
<strong>Version:</strong>
<span>{{config('pixelfed.version')}}</span>
</li>
@endif
<li>
<strong>PHP:</strong>
<span>{{phpversion()}}</span>
<strong>Storage:</strong>
<span>{{is_writable(base_path('storage/')) ? 'Writable ✅' : 'Not writable ❌'}}</span>
</li>
@foreach([
'bcmath',
'gd',
@ -49,107 +42,19 @@
] as $ext)
@if(!extension_loaded($ext))
<li>
<strong>PHP-{{$ext}}:</strong>
<span>Not installed/loaded</span>
<strong>PHP Module {{$ext}}:</strong>
<span>Not installed/Not loaded </span>
</li>
@endif
@endforeach
<li>
<strong>Database:</strong>
@php($v = explode(' ', DB::select('select version() as version')[0]->version))
<span>{{config('database.default')}} ({{count($v) == 1 ? $v[0] : $v[1]}})</span>
</li>
<li>
<strong>Bootstrap:</strong>
<span>{{is_writable(base_path('bootstrap/')) ? 'Writable' : 'Not writable'}}</span>
</li>
<li>
<strong>Storage:</strong>
<span>{{is_writable(base_path('storage/')) ? 'Writable' : 'Not writable'}}</span>
</li>
<li>
<strong>Image Driver:</strong>
<span>{{ config('image.driver') }}</span>
<strong><span class="badge badge-primary">DATABASE</span> Ping:</strong>
<span>{{ \DB::connection()->getPDO() ? 'Pong! Connected to DB "' . \DB::connection()->getDatabaseName() . '" ✅' : 'DB Not Responding ❌' }}</span>
</li>
<li>
<strong><span class="badge badge-primary">REDIS</span> Ping:</strong>
<span>{{ \Illuminate\Support\Facades\Redis::command('ping') ? '✅' : '❌' }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP</span> memory_limit:</strong>
<span>{{ ini_get('memory_limit') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP</span> post_max_size:</strong>
<span>{{ ini_get('post_max_size') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP</span> upload_max_filesize:</strong>
<span>{{ ini_get('upload_max_filesize') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> Cache Driver:</strong>
<span>{{ config_cache('cache.default') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> Mail Driver:</strong>
<span>{{ config_cache('mail.driver') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> Mail Host:</strong>
<span>{{ config_cache('mail.host') ? substr(config_cache('mail.host'), 0, 5) . str_repeat('*', strlen(config_cache('mail.host')) - 5) : 'undefined' }}</span>
</li>
@if(config_cache('mail.driver') == 'mailgun')
<li>
<strong><span class="badge badge-primary">APP</span> Mailgun Domain:</strong>
<span>{{ config_cache('services.mailgun.domain') ?? 'undefined' }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> Mailgun Secret:</strong>
<span>{{ config_cache('services.mailgun.secret') ? str_repeat('*', strlen(config_cache('services.mailgun.secret'))) : 'undefined' }}</span>
</li>
@endif
@if(config_cache('mail.driver') == 'ses')
<li>
<strong><span class="badge badge-primary">APP</span> SES Key:</strong>
<span>{{ config_cache('services.ses.key') ? str_repeat('*', strlen(config_cache('services.ses.key'))) : 'undefined' }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> SES Secret:</strong>
<span>{{ config_cache('services.ses.secret') ? str_repeat('*', strlen(config_cache('services.ses.secret'))) : 'undefined' }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> SES Region:</strong>
<span>{{ config_cache('services.ses.region') ?? 'undefined' }}</span>
</li>
@endif
<li>
<strong><span class="badge badge-primary">APP</span> Queue Driver:</strong>
<span>{{ config_cache('queue.default') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> Session Driver:</strong>
<span>{{ config_cache('session.driver') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> Session Lifetime:</strong>
<span>{{ config_cache('session.lifetime') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">APP</span> Session Domain:</strong>
<span>{{ config_cache('session.domain') }}</span>
</li>
<li>
<div class="tt">
<strong><span class="badge badge-primary">CONFIG</span> pixelfed: </strong>
<span class="text-truncate">{!! json_encode(config_cache('pixelfed'), JSON_UNESCAPED_SLASHES) !!}</span>
</div>
</li>
<li>
<div class="tt">
<strong><span class="badge badge-primary">CONFIG</span> federation: </strong>
<span class="text-truncate">{!! json_encode(config_cache('federation'), JSON_UNESCAPED_SLASHES) !!}</span>
</div>
<span>{{ \Illuminate\Support\Facades\Redis::command('ping') ? 'Pong! Connected to Redis ✅' : 'Redis Not Responding ❌' }}</span>
</li>
<li>
<strong><span class="badge badge-primary">ACTIVITYPUB</span> instance actor created: </strong>
@ -167,7 +72,6 @@
<strong><span class="badge badge-primary">OAUTH</span> token_expiration</strong>
<span>{{ config_cache('instance.oauth.token_expiration') }} days</span>
</li>
<li>
<strong><span class="badge badge-primary">OAUTH</span> public key exists: </strong>
<span>{{ file_exists(storage_path('oauth-public.key')) ? '✅' : '❌' }}</span>
@ -176,20 +80,738 @@
<strong><span class="badge badge-primary">OAUTH</span> private key exists: </strong>
<span>{{ file_exists(storage_path('oauth-private.key')) ? '✅' : '❌' }}</span>
</li>
<hr>
<p class="font-weight-bold text-muted">
Important Information
</p>
@if(function_exists('shell_exec'))
<li>
<strong><span class="badge badge-primary">Storage</span> Cloud Storage: </strong>
<span>{{ config_cache('pixelfed.cloud_storage') ? '✅' : '❌' }}</span>
<strong>Version:</strong>
<span>{{config('pixelfed.version')}}-{{ @shell_exec('git log --pretty="%h" -n1 HEAD') ?? 'unknown git commit' }}</span>
</li>
@else
<li>
<strong>Version:</strong>
<span>{{config('pixelfed.version')}}</span>
</li>
@endif
<li>
<strong>Database:</strong>
@php($v = explode(' ', DB::select('select version() as version')[0]->version))
<span>{{config('database.default')}} ({{count($v) == 1 ? $v[0] : $v[1]}})</span>
</li>
<li>
<strong><span class="badge badge-primary">Storage</span> Filesystems default (local/s3/spaces): </strong>
<span>{{ config_cache('filesystems.default')}}</span>
<strong>APP_URL:</strong>
<span>{{config_cache('app.url')}}</span>
</li>
<li>
<strong><span class="badge badge-primary">Network</span> TrustedProxy: </strong>
<span>{{ config('trustedproxy.proxies') }}</span>
<strong>APP_DOMAIN:</strong>
<span>{{config_cache('pixelfed.domain.app')}}</span>
</li>
<li>
<strong>ADMIN_DOMAIN:</strong>
<span>{{config_cache('pixelfed.domain.admin')}}</span>
</li>
<li>
<strong>SESSION_DOMAIN:</strong>
<span>{{config_cache('session.domain')}}</span>
</li>
<hr>
<p class="font-weight-bold text-muted">
PHP Variables
</p>
<li>
<strong>PHP:</strong>
<span>{{phpversion()}}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP INI</span> memory_limit:</strong>
<span>{{ ini_get('memory_limit') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP INI</span> post_max_size:</strong>
<span>{{ ini_get('post_max_size') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP INI</span> upload_max_filesize:</strong>
<span>{{ ini_get('upload_max_filesize') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP INI</span> max_file_uploads:</strong>
<span>{{ ini_get('max_file_uploads') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP INI</span> max_execution_time:</strong>
<span>{{ ini_get('max_execution_time') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP INI</span> max_input_time:</strong>
<span>{{ ini_get('max_input_time') }}</span>
</li>
<li>
<strong><span class="badge badge-primary">PHP INI</span> file_uploads:</strong>
<span>{{ ini_get('file_uploads') ? '✅' : '❌' }}</span>
</li>
<hr>
<p class="font-weight-bold text-muted">
Pixelfed Variables (No Secrets)
</p>
<table style="width:100%" class="table">
<thead class="bg-light">
<tr>
<th width="5%" scope="col" class="border-0 text-dark">CONFIG</th>
<th width="20%"scope="col" class="border-0 text-dark">Variable Name</th>
<th width="40%"scope="col" class="border-0 text-dark">Details</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="badge badge-primary">APP</span></td>
<td><strong>APP_NAME</strong></td>
<td><span>"{{config_cache('app.name')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">APP</span></td>
<td><strong>APP_ENV</strong></td>
<td><span>"{{config_cache('app.env')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">APP</span></td>
<td><strong>APP_DEBUG</strong></td>
<td><span>{{config_cache('app.debug') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">APP</span></td>
<td><strong>APP_URL</strong></td>
<td><span>"{{config_cache('app.url')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">APP</span></td>
<td><strong>APP_LOCALE</strong></td>
<td><span>"{{config_cache('app.locale')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">APP</span></td>
<td><strong>APP_FALLBACK_LOCALE</strong></td>
<td><span>"{{config_cache('app.fallback_locale')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">BROADCASTING</span></td>
<td><strong>BROADCAST_DRIVER</strong></td>
<td><span>"{{config_cache('broadcasting.default')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">CACHE</span></td>
<td><strong>CACHE_DRIVER</strong></td>
<td><span>"{{config_cache('cache.default')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">CAPTCHA</span></td>
<td><strong>CAPTCHA_ENABLED</strong></td>
<td><span>{{ config_cache('captcha.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">DATABASE</span></td>
<td><strong>DB_CONNECTION</strong></td>
<td><span>"{{config_cache('database.default')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">DATABASE</span></td>
<td><strong>REDIS_CLIENT</strong></td>
<td><span>"{{config_cache('database.redis.client')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">EXP</span></td>
<td><strong>EXP_LC</strong></td>
<td><span>{{config_cache('exp.lc') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">EXP</span></td>
<td><strong>EXP_TOP</strong></td>
<td><span>{{config_cache('exp.top') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">EXP</span></td>
<td><strong>EXP_POLLS</strong></td>
<td><span>{{config_cache('exp.polls') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">EXP</span></td>
<td><strong>EXP_CPT</strong></td>
<td><span>{{config_cache('exp.cached_public_timeline') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">EXP</span></td>
<td><strong>EXP_GPS</strong></td>
<td><span>{{config_cache('exp.gps') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">EXP</span></td>
<td><strong>EXP_EMC</strong></td>
<td><span>{{config_cache('exp.emc') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>ACTIVITY_PUB</strong></td>
<td><span>{{config_cache('federation.activitypub.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>AP_OUTBOX</strong></td>
<td><span>{{config_cache('federation.activitypub.outbox') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>AP_INBOX</strong></td>
<td><span>{{config_cache('federation.activitypub.inbox') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>AP_SHAREDINBOX</strong></td>
<td><span>{{config_cache('federation.activitypub.sharedInbox') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>AP_REMOTE_FOLLOW</strong></td>
<td><span>{{config_cache('federation.activitypub.remoteFollow') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>ACTIVITYPUB_DELIVERY_TIMEOUT</strong></td>
<td><span>"{{config_cache('federation.activitypub.delivery.timeout')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>ACTIVITYPUB_DELIVERY_CONCURRENCY</strong></td>
<td><span>"{{config_cache('federation.activitypub.delivery.concurrency')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>AP_LOGGER_ENABLED</strong></td>
<td><span>{{config_cache('federation.activitypub.delivery.logger.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>ATOM_FEEDS</strong></td>
<td><span>{{config_cache('federation.atom.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>REMOTE_AVATARS</strong></td>
<td><span>{{config_cache('federation.avatars.store_local') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>NODEINFO</strong></td>
<td><span>{{config_cache('federation.nodeinfo.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>WEBFINGER</strong></td>
<td><span>{{config_cache('federation.webfinger.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>PF_NETWORK_TIMELINE</strong></td>
<td><span>{{config_cache('federation.network_timeline') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>CUSTOM_EMOJI</strong></td>
<td><span>{{config_cache('federation.custom_emoji.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FEDERATION</span></td>
<td><strong>CUSTOM_EMOJI_MAX_SIZE</strong></td>
<td><span>"{{config_cache('federation.custom_emoji.max_size')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FILESYSTEMS</span></td>
<td><strong>FILESYSTEM_DRIVER</strong></td>
<td><span>"{{config_cache('filesystems.default')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">FILESYSTEMS</span></td>
<td><strong>FILESYSTEM_CLOUD</strong></td>
<td><span>"{{config_cache('filesystems.cloud')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HASHING</span></td>
<td><strong>BCRYPT_COST</strong></td>
<td><span>"{{config_cache('hashing.bcrypt.rounds')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_PREFIX</strong></td>
<td><span>"{{config_cache('horizon.prefix')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_MEMORY_LIMIT</strong></td>
<td><span>"{{config_cache('horizon.memory_limit')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_BALANCE_STRATEGY</strong></td>
<td><span>"{{config_cache('horizon.environments.production.supervisor-1.balance')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_MIN_PROCESSES</strong></td>
<td><span>"{{config_cache('horizon.environments.production.supervisor-1.minProcesses')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_MAX_PROCESSES</strong></td>
<td><span>"{{config_cache('horizon.environments.production.supervisor-1.maxProcesses')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_SUPERVISOR_MEMORY</strong></td>
<td><span>"{{config_cache('horizon.environments.production.supervisor-1.memory')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_SUPERVISOR_TRIES</strong></td>
<td><span>"{{config_cache('horizon.environments.production.supervisor-1.tries')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_SUPERVISOR_NICE</strong></td>
<td><span>"{{config_cache('horizon.environments.production.supervisor-1.nice')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_SUPERVISOR_TIMEOUT</strong></td>
<td><span>"{{config_cache('horizon.environments.production.supervisor-1.timeout')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">HORIZON</span></td>
<td><strong>HORIZON_DARKMODE</strong></td>
<td><span>{{config_cache('horizon.darkmode') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">IMAGE</span></td>
<td><strong>IMAGE_DRIVER </strong></td>
<td><span>"{{config_cache('image.driver')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>INSTANCE_DESCRIPTION</strong></td>
<td><span>"{{config_cache('instance.description')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>INSTANCE_CONTACT_FORM</strong></td>
<td><span>{{config_cache('instance.contact.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>INSTANCE_CONTACT_MAX_PER_DAY</strong></td>
<td><span>"{{config_cache('instance.contact.max_per_day')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>INSTANCE_DISCOVER_PUBLIC</strong></td>
<td><span>{{config_cache('instance.discover.public') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>EXP_LOOPS</strong></td>
<td><span>{{config_cache('instance.discover.loops.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>INSTANCE_PUBLIC_HASHTAGS</strong></td>
<td><span>{{config_cache('instance.discover.tags.is_public') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>INSTANCE_CONTACT_EMAIL</strong></td>
<td><span>"{{config_cache('instance.email')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>INSTANCE_PUBLIC_LOCAL_TIMELINE</strong></td>
<td><span>{{config_cache('instance.timeline.local.is_public') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>PAGE_404_HEADER</strong></td>
<td><span>"{{config_cache('instance.page.404.header')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>PAGE_404_BODY</strong></td>
<td><span>"{{config_cache('instance.page.404.body')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>PAGE_503_HEADER</strong></td>
<td><span>"{{config_cache('instance.page.503.header')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>PAGE_503_BODY</strong></td>
<td><span>"{{config_cache('instance.page.503.body')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>BANNED_USERNAMES</strong></td>
<td><span>"{{config_cache('instance.username.banned')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>USERNAME_REMOTE_FORMAT</strong></td>
<td><span>"{{config_cache('instance.username.remote.format')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>USERNAME_REMOTE_CUSTOM_TEXT</strong></td>
<td><span>"{{config_cache('instance.username.remote.custom')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>STORIES_ENABLED</strong></td>
<td><span>{{config_cache('instance.stories.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>RESTRICTED_INSTANCE</strong></td>
<td><span>{{config_cache('instance.restricted.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>OAUTH_TOKEN_DAYS</strong></td>
<td><span>"{{config_cache('instance.oauth.token_expiration')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>OAUTH_REFRESH_DAYS</strong></td>
<td><span>"{{config_cache('instance.oauth.refresh_expiration')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>OAUTH_PAT_ENABLED</strong></td>
<td><span>{{config_cache('instance.oauth.pat.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>OAUTH_PAT_ID</strong></td>
<td><span>"{{config_cache('instance.oauth.pat.id')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>ENABLE_COVID_LABEL</strong></td>
<td><span>{{config_cache('instance.label.covid.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>COVID_LABEL_URL</strong></td>
<td><span>"{{config_cache('instance.label.covid.url')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>COVID_LABEL_ORG</strong></td>
<td><span>"{{config_cache('instance.label.covid.org')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">INSTANCE</span></td>
<td><strong>ENABLE_CONFIG_CACHE</strong></td>
<td><span>{{config_cache('instance.enable_cc') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">LDAP</span></td>
<td><strong>LDAP_CONNECTION</strong></td>
<td><span>"{{config_cache('ldap.default')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">LDAP</span></td>
<td><strong>LDAP_LOGGING</strong></td>
<td><span>{{config_cache('ldap.logging') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">LDAP</span></td>
<td><strong>LDAP_CACHE</strong></td>
<td><span>{{config_cache('ldap.cache.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">LOGGING</span></td>
<td><strong>LOG_CHANNEL</strong></td>
<td><span>"{{config_cache('logging.default')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">LOGGING</span></td>
<td><strong>LOG_LEVEL (stack)</strong></td>
<td><span>"{{config_cache('logging.channels.single.level')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">MAIL</span></td>
<td><strong>MAIL_DRIVER</strong></td>
<td><span>"{{config_cache('mail.driver')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">MAIL</span></td>
<td><strong>MAIL_HOST</strong></td>
<td><span>"{{config_cache('mail.host')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">MAIL</span></td>
<td><strong>MAIL_PORT</strong></td>
<td><span>"{{config_cache('mail.port')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">MAIL</span></td>
<td><strong>MAIL_FROM_ADDRESS</strong></td>
<td><span>"{{config_cache('mail.from.address')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">MAIL</span></td>
<td><strong>MAIL_FROM_NAME</strong></td>
<td><span>"{{config_cache('mail.from.name')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">MAIL</span></td>
<td><strong>MAIL_ENCRYPTION</strong></td>
<td><span>"{{config_cache('mail.encryption')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">MEDIA</span></td>
<td><strong>MEDIA_EXIF_DATABASE</strong></td>
<td><span>{{config_cache('media.exif.batabase') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>ADMIN_DOMAIN</strong></td>
<td><span>"{{config_cache('pixelfed.domain.admin')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>APP_DOMAIN</strong></td>
<td><span>"{{config_cache('pixelfed.domain.app')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MEMORY_LIMIT</strong></td>
<td><span>"{{config_cache('pixelfed.memory_limit')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>OPEN_REGISTRATION</strong></td>
<td><span>{{config_cache('pixelfed.open_registration') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MAX_ACCOUNT_SIZE (KB)</strong></td>
<td><span>"{{config_cache('pixelfed.max_account_size')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MAX_PHOTO_SIZE (KB)</strong></td>
<td><span>"{{config_cache('pixelfed.max_photo_size')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MAX_AVATAR_SIZE (KB)</strong></td>
<td><span>"{{config_cache('pixelfed.max_avatar_size')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MAX_CAPTION_LENGTH</strong></td>
<td><span>"{{config_cache('pixelfed.max_caption_length')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MAX_BIO_LENGTH</strong></td>
<td><span>"{{config_cache('pixelfed.max_bio_length')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MAX_NAME_LENGTH</strong></td>
<td><span>"{{config_cache('pixelfed.max_name_length')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MIN_PASSWORD_LENGTH</strong></td>
<td><span>"{{config_cache('pixelfed.min_password_length')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MAX_ALBUM_LENGTH</strong></td>
<td><span>"{{config_cache('pixelfed.max_album_length')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>ENFORCE_EMAIL_VERIFICATION</strong></td>
<td><span>{{config_cache('pixelfed.enforce_email_verification') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>IMAGE_QUALITY (1-100)</strong></td>
<td><span>"{{config_cache('pixelfed.image_quality')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>ACCOUNT_DELETION</strong></td>
<td><span>{{config_cache('pixelfed.account_deletion') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>ACCOUNT_DELETE_AFTER</strong></td>
<td><span>{{config_cache('pixelfed.account_delete_after') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_ENABLE_CLOUD</strong></td>
<td><span>{{config_cache('pixelfed.cloud_storage') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_MAX_USERS</strong></td>
<td><span>{{config_cache('pixelfed.max_users') ? config('pixelfed.max_users') : '❌ false'}}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_OPTIMIZE_IMAGES</strong></td>
<td><span>{{config_cache('pixelfed.optimize_image') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_OPTIMIZE_VIDEOS</strong></td>
<td><span>{{config_cache('pixelfed.optimize_video') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_USER_INVITES</strong></td>
<td><span>{{config_cache('pixelfed.user_invites.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_USER_INVITES_TOTAL_LIMIT</strong></td>
<td><span>"{{config_cache('pixelfed.user_invites.limit.total')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_USER_INVITES_DAILY_LIMIT</strong></td>
<td><span>"{{config_cache('pixelfed.user_invites.limit.daily')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_USER_INVITES_MONTHLY_LIMIT</strong></td>
<td><span>"{{config_cache('pixelfed.user_invites.limit.monthly')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_MAX_COLLECTION_LENGTH</strong></td>
<td><span>"{{config_cache('pixelfed.max_collection_length')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>MEDIA_TYPES</strong></td>
<td><span>"{{config_cache('pixelfed.media_types')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>LIMIT_ACCOUNT_SIZE</strong></td>
<td><span>{{config_cache('pixelfed.enforce_account_limit') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>IMPORT_INSTAGRAM</strong></td>
<td><span>{{config_cache('pixelfed.import.instagram.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>IMPORT_INSTAGRAM_POST_LIMIT</strong></td>
<td><span>"{{config_cache('pixelfed.import.instagram.limits.posts')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>IMPORT_INSTAGRAM_SIZE_LIMIT</strong></td>
<td><span>"{{config_cache('pixelfed.import.instagram.limits.size')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>OAUTH_ENABLED</strong></td>
<td><span>{{config_cache('pixelfed.oauth_enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_BOUNCER_ENABLED</strong></td>
<td><span>{{config_cache('pixelfed.bouncer.enabled') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_MEDIA_FAST_PROCESS</strong></td>
<td><span>{{config_cache('pixelfed.media_fast_process') ? '✅ true' : '❌ false' }}</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PIXELFED</span></td>
<td><strong>PF_MEDIA_MAX_ALTTEXT_LENGTH</strong></td>
<td><span>"{{config_cache('pixelfed.max_altext_length')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">PURIFY</span></td>
<td><strong>RESTRICT_HTML_TYPES</strong></td>
<td><span>BROKEN</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">QUEUE</span></td>
<td><strong>QUEUE_DRIVER</strong></td>
<td><span>"{{config_cache('queue.default')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">SESSION</span></td>
<td><strong>SESSION_DRIVER</strong></td>
<td><span>"{{config_cache('session.driver')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">SESSION</span></td>
<td><strong>SESSION_LIFETIME</strong></td>
<td><span>"{{config_cache('session.lifetime')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">SESSION</span></td>
<td><strong>SESSION_DOMAIN</strong></td>
<td><span>"{{config_cache('session.domain')}}"</span></td>
</tr>
<tr>
<td><span class="badge badge-primary">TRUSTEDPROXY</span></td>
<td><strong>TRUST_PROXIES</strong></td>
<td><span>"{{config_cache('trustedproxy.proxies')}}"</span></td>
</tr>
</tbody>
</table>
</div>
</ul>
</div>
<div class="pb-3 border-bottom">
<div class="form-group mb-0">

View file

@ -261,7 +261,7 @@
}
if($(this).hasClass('row-check-all')) {
return;
};
}
if(el.checked == true) {
$(this).parents().eq(2).addClass('user-row-active');
$('.bulk-actions').removeClass('d-none');

View file

@ -68,7 +68,7 @@
swal.stopLoading();
swal.close();
return;
};
}
let msg = 'The URL you have entered is not valid, please try again.'
try {
let validator = new URL(val);
@ -77,7 +77,7 @@
swal.close();
swal('Invalid URL', msg, 'error');
return;
};
}
axios.post(window.location.href, {
domain: validator.href
}).then(res => {

View file

@ -82,7 +82,7 @@ $(document).ready(function() {
})
}
});
};
}
});
});
});