mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-11-20 13:31:28 +00:00
Merge branch 'staging' into dev
This commit is contained in:
commit
d48e6c5d67
53 changed files with 869 additions and 160 deletions
|
@ -2,6 +2,9 @@
|
||||||
|
|
||||||
## [Unreleased](https://github.com/pixelfed/pixelfed/compare/v0.11.3...dev)
|
## [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
|
### 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.
|
- 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 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 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 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)
|
## [v0.11.3 (2022-05-09)](https://github.com/pixelfed/pixelfed/compare/v0.11.2...v0.11.3)
|
||||||
|
|
||||||
|
|
|
@ -2289,6 +2289,7 @@ class ApiV1Controller extends Controller
|
||||||
'media_ids' => 'sometimes|array|max:' . config_cache('pixelfed.max_album_length'),
|
'media_ids' => 'sometimes|array|max:' . config_cache('pixelfed.max_album_length'),
|
||||||
'sensitive' => 'nullable',
|
'sensitive' => 'nullable',
|
||||||
'visibility' => 'string|in:private,unlisted,public',
|
'visibility' => 'string|in:private,unlisted,public',
|
||||||
|
'spoiler_text' => 'sometimes|string|max:140',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if(config('costar.enabled') == true) {
|
if(config('costar.enabled') == true) {
|
||||||
|
@ -2338,6 +2339,8 @@ class ApiV1Controller extends Controller
|
||||||
|
|
||||||
$content = strip_tags($request->input('status'));
|
$content = strip_tags($request->input('status'));
|
||||||
$rendered = Autolink::create()->autolink($content);
|
$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) {
|
if($in_reply_to_id) {
|
||||||
$parent = Status::findOrFail($in_reply_to_id);
|
$parent = Status::findOrFail($in_reply_to_id);
|
||||||
|
@ -2348,7 +2351,8 @@ class ApiV1Controller extends Controller
|
||||||
$status->scope = $visibility;
|
$status->scope = $visibility;
|
||||||
$status->visibility = $visibility;
|
$status->visibility = $visibility;
|
||||||
$status->profile_id = $user->profile_id;
|
$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_id = $parent->id;
|
||||||
$status->in_reply_to_profile_id = $parent->profile_id;
|
$status->in_reply_to_profile_id = $parent->profile_id;
|
||||||
$status->save();
|
$status->save();
|
||||||
|
@ -2371,7 +2375,8 @@ class ApiV1Controller extends Controller
|
||||||
$status->rendered = $rendered;
|
$status->rendered = $rendered;
|
||||||
$status->profile_id = $user->profile_id;
|
$status->profile_id = $user->profile_id;
|
||||||
$status->scope = 'draft';
|
$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();
|
$status->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -453,6 +453,7 @@ class ComposeController extends Controller
|
||||||
'tagged' => 'nullable',
|
'tagged' => 'nullable',
|
||||||
'license' => 'nullable|integer|min:1|max:16',
|
'license' => 'nullable|integer|min:1|max:16',
|
||||||
'collections' => 'sometimes|array|min:1|max:5',
|
'collections' => 'sometimes|array|min:1|max:5',
|
||||||
|
'spoiler_text' => 'nullable|string|max:140',
|
||||||
// 'optimize_media' => 'nullable'
|
// 'optimize_media' => 'nullable'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -540,6 +541,10 @@ class ComposeController extends Controller
|
||||||
$status->comments_disabled = (bool) $request->input('comments_disabled');
|
$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->caption = strip_tags($request->caption);
|
||||||
$status->rendered = Autolink::create()->autolink($status->caption);
|
$status->rendered = Autolink::create()->autolink($status->caption);
|
||||||
$status->scope = 'draft';
|
$status->scope = 'draft';
|
||||||
|
|
|
@ -208,7 +208,7 @@ class SettingsController extends Controller
|
||||||
$opencollective = Str::startsWith($opencollective, 'opencollective.com/') ? e($opencollective) : null;
|
$opencollective = Str::startsWith($opencollective, 'opencollective.com/') ? e($opencollective) : null;
|
||||||
|
|
||||||
if(empty($patreon) && empty($liberapay) && empty($opencollective)) {
|
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 = [
|
$res = [
|
||||||
|
@ -251,7 +251,7 @@ class SettingsController extends Controller
|
||||||
} else {
|
} else {
|
||||||
Redis::zrem('pf:tl:replies', $pid);
|
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)
|
public function mediaSettings(Request $request)
|
||||||
|
|
|
@ -22,7 +22,7 @@ class HashidService {
|
||||||
while($id) {
|
while($id) {
|
||||||
$id = ($id - ($r = $id % $base)) / $base;
|
$id = ($id - ($r = $id % $base)) / $base;
|
||||||
$shortcode = $cmap[$r] . $shortcode;
|
$shortcode = $cmap[$r] . $shortcode;
|
||||||
};
|
}
|
||||||
return $shortcode;
|
return $shortcode;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,7 +93,7 @@ class CreateNote extends Fractal\TransformerAbstract
|
||||||
'object' => [
|
'object' => [
|
||||||
'id' => $status->url(),
|
'id' => $status->url(),
|
||||||
'type' => 'Note',
|
'type' => 'Note',
|
||||||
'summary' => null,
|
'summary' => $status->is_nsfw ? $status->cw_summary : null,
|
||||||
'content' => $status->rendered ?? $status->caption,
|
'content' => $status->rendered ?? $status->caption,
|
||||||
'inReplyTo' => $status->in_reply_to_id ? $status->parent()->url() : null,
|
'inReplyTo' => $status->in_reply_to_id ? $status->parent()->url() : null,
|
||||||
'published' => $status->created_at->toAtomString(),
|
'published' => $status->created_at->toAtomString(),
|
||||||
|
|
|
@ -87,7 +87,7 @@ class Note extends Fractal\TransformerAbstract
|
||||||
],
|
],
|
||||||
'id' => $status->url(),
|
'id' => $status->url(),
|
||||||
'type' => 'Note',
|
'type' => 'Note',
|
||||||
'summary' => null,
|
'summary' => $status->is_nsfw ? $status->cw_summary : null,
|
||||||
'content' => $status->rendered ?? $status->caption,
|
'content' => $status->rendered ?? $status->caption,
|
||||||
'inReplyTo' => $status->in_reply_to_id ? $status->parent()->url() : null,
|
'inReplyTo' => $status->in_reply_to_id ? $status->parent()->url() : null,
|
||||||
'published' => $status->created_at->toAtomString(),
|
'published' => $status->created_at->toAtomString(),
|
||||||
|
|
|
@ -455,8 +455,8 @@ class Helpers {
|
||||||
|
|
||||||
return DB::transaction(function() use($url, $profile, $activity, $reply_to, $id) {
|
return DB::transaction(function() use($url, $profile, $activity, $reply_to, $id) {
|
||||||
$ts = self::pluckval($activity['published']);
|
$ts = self::pluckval($activity['published']);
|
||||||
$scope = self::getScope($activity);
|
$scope = self::getScope($activity, $url);
|
||||||
$cw = self::getSensitive($activity);
|
$cw = self::getSensitive($activity, $url);
|
||||||
$pid = is_object($profile) ? $profile->id : (is_array($profile) ? $profile['id'] : null);
|
$pid = is_object($profile) ? $profile->id : (is_array($profile) ? $profile['id'] : null);
|
||||||
|
|
||||||
if(!$pid) {
|
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);
|
$id = isset($activity['id']) ? self::pluckval($activity['id']) : self::pluckval($url);
|
||||||
$url = isset($activity['url']) ? self::pluckval($activity['url']) : $id;
|
$url = isset($activity['url']) ? self::pluckval($activity['url']) : $id;
|
||||||
|
@ -527,7 +527,7 @@ class Helpers {
|
||||||
return $reply_to;
|
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);
|
$id = isset($activity['id']) ? self::pluckval($activity['id']) : self::pluckval($url);
|
||||||
$url = isset($activity['url']) ? self::pluckval($activity['url']) : $id;
|
$url = isset($activity['url']) ? self::pluckval($activity['url']) : $id;
|
||||||
|
|
BIN
public/css/app.css
vendored
BIN
public/css/app.css
vendored
Binary file not shown.
BIN
public/css/appdark.css
vendored
BIN
public/css/appdark.css
vendored
Binary file not shown.
BIN
public/css/landing.css
vendored
BIN
public/css/landing.css
vendored
Binary file not shown.
BIN
public/css/spa.css
vendored
BIN
public/css/spa.css
vendored
Binary file not shown.
BIN
public/js/compose-mh8cayo8d.js
vendored
BIN
public/js/compose-mh8cayo8d.js
vendored
Binary file not shown.
BIN
public/js/compose-ojtjadoml.js
vendored
Normal file
BIN
public/js/compose-ojtjadoml.js
vendored
Normal file
Binary file not shown.
BIN
public/js/compose.js
vendored
BIN
public/js/compose.js
vendored
Binary file not shown.
BIN
public/js/daci-mh8cayo8d.js
vendored
BIN
public/js/daci-mh8cayo8d.js
vendored
Binary file not shown.
BIN
public/js/daci-ojtjadoml.js
vendored
Normal file
BIN
public/js/daci-ojtjadoml.js
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/js/direct.js
vendored
BIN
public/js/direct.js
vendored
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/js/dmsg-mh8cayo8d.js
vendored
BIN
public/js/dmsg-mh8cayo8d.js
vendored
Binary file not shown.
BIN
public/js/dmsg-ojtjadoml.js
vendored
Normal file
BIN
public/js/dmsg-ojtjadoml.js
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/js/home-mh8cayo8d.js
vendored
BIN
public/js/home-mh8cayo8d.js
vendored
Binary file not shown.
BIN
public/js/home-ojtjadoml.js
vendored
Normal file
BIN
public/js/home-ojtjadoml.js
vendored
Normal file
Binary file not shown.
BIN
public/js/manifest.js
vendored
BIN
public/js/manifest.js
vendored
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/js/profile.js
vendored
BIN
public/js/profile.js
vendored
Binary file not shown.
BIN
public/js/rempos.js
vendored
BIN
public/js/rempos.js
vendored
Binary file not shown.
BIN
public/js/rempro.js
vendored
BIN
public/js/rempro.js
vendored
Binary file not shown.
BIN
public/js/spa.js
vendored
BIN
public/js/spa.js
vendored
Binary file not shown.
BIN
public/js/status.js
vendored
BIN
public/js/status.js
vendored
Binary file not shown.
BIN
public/js/timeline.js
vendored
BIN
public/js/timeline.js
vendored
Binary file not shown.
Binary file not shown.
|
@ -432,7 +432,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</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>
|
||||||
<div class="text-dark ">Contains NSFW Media</div>
|
<div class="text-dark ">Contains NSFW Media</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -443,6 +444,18 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</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">
|
<div class="border-bottom">
|
||||||
<p class="px-4 mb-0 py-2 cursor-pointer" @click="showTagCard()">Tag people</p>
|
<p class="px-4 mb-0 py-2 cursor-pointer" @click="showTagCard()">Tag people</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1009,6 +1022,13 @@ export default {
|
||||||
collectionsLoaded: false,
|
collectionsLoaded: false,
|
||||||
collectionsPage: 1,
|
collectionsPage: 1,
|
||||||
collectionsCanLoadMore: false,
|
collectionsCanLoadMore: false,
|
||||||
|
spoilerText: undefined,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
spoilerTextLength: function() {
|
||||||
|
return this.spoilerText ? this.spoilerText.length : 0;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1248,7 +1268,8 @@ export default {
|
||||||
tagged: this.taggedUsernames,
|
tagged: this.taggedUsernames,
|
||||||
optimize_media: this.optimizeMedia,
|
optimize_media: this.optimizeMedia,
|
||||||
license: this.licenseId,
|
license: this.licenseId,
|
||||||
video: this.video
|
video: this.video,
|
||||||
|
spoiler_text: this.spoilerText,
|
||||||
};
|
};
|
||||||
|
|
||||||
if(this.collectionsSelected.length) {
|
if(this.collectionsSelected.length) {
|
||||||
|
@ -1503,7 +1524,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
locationSearch(input) {
|
locationSearch(input) {
|
||||||
if (input.length < 1) { return []; };
|
if (input.length < 1) { return []; }
|
||||||
let results = [];
|
let results = [];
|
||||||
return axios.get('/api/compose/v0/search/location', {
|
return axios.get('/api/compose/v0/search/location', {
|
||||||
params: {
|
params: {
|
||||||
|
@ -1650,7 +1671,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
tagSearch(input) {
|
tagSearch(input) {
|
||||||
if (input.length < 1) { return []; };
|
if (input.length < 1) { return []; }
|
||||||
let self = this;
|
let self = this;
|
||||||
let results = [];
|
let results = [];
|
||||||
return axios.get('/api/compose/v0/search/tag', {
|
return axios.get('/api/compose/v0/search/tag', {
|
||||||
|
|
|
@ -305,7 +305,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
composeSearch(input) {
|
composeSearch(input) {
|
||||||
if (input.length < 1) { return []; };
|
if (input.length < 1) { return []; }
|
||||||
let self = this;
|
let self = this;
|
||||||
let results = [];
|
let results = [];
|
||||||
return axios.post('/api/direct/lookup', {
|
return axios.post('/api/direct/lookup', {
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<p class="h4 font-weight-bold text-center">
|
<p class="h4 font-weight-bold text-center">
|
||||||
Sensitive Content
|
Sensitive Content
|
||||||
</p>
|
</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.'}}
|
{{ status.spoiler_text ? status.spoiler_text : 'This album may contain sensitive content.'}}
|
||||||
</p>
|
</p>
|
||||||
<p class="mb-0">
|
<p class="mb-0">
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<p class="h4 font-weight-bold text-center">
|
<p class="h4 font-weight-bold text-center">
|
||||||
Sensitive Content
|
Sensitive Content
|
||||||
</p>
|
</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.'}}
|
{{ status.spoiler_text ? status.spoiler_text : 'This post may contain sensitive content.'}}
|
||||||
</p>
|
</p>
|
||||||
<p class="mb-0">
|
<p class="mb-0">
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<p class="h4 font-weight-bold text-center">
|
<p class="h4 font-weight-bold text-center">
|
||||||
Sensitive Content
|
Sensitive Content
|
||||||
</p>
|
</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.'}}
|
{{ status.spoiler_text ? status.spoiler_text : 'This post may contain sensitive content.'}}
|
||||||
</p>
|
</p>
|
||||||
<p class="mb-0">
|
<p class="mb-0">
|
||||||
|
|
2
resources/assets/js/lib/argon.js
vendored
2
resources/assets/js/lib/argon.js
vendored
|
@ -880,7 +880,7 @@ var UsersChart = (function() {
|
||||||
|
|
||||||
$chart.data('chart', usersChart);
|
$chart.data('chart', usersChart);
|
||||||
|
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
// Events
|
// Events
|
||||||
|
|
15
resources/assets/sass/custom.scss
vendored
15
resources/assets/sass/custom.scss
vendored
|
@ -652,3 +652,18 @@ details summary::-webkit-details-marker {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.content-label {
|
||||||
|
&-wrapper {
|
||||||
|
div:not(.content-label) {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&-text {
|
||||||
|
width: 80%;
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
37
resources/assets/sass/spa.scss
vendored
37
resources/assets/sass/spa.scss
vendored
|
@ -291,3 +291,40 @@ span.twitter-typeahead .tt-suggestion:focus {
|
||||||
color: var(--body-color);
|
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%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -21,8 +21,8 @@ return [
|
||||||
'blockingAccounts' => 'Blokování účtů',
|
'blockingAccounts' => 'Blokování účtů',
|
||||||
'safetyTips' => 'Tipy pro bezpečnost',
|
'safetyTips' => 'Tipy pro bezpečnost',
|
||||||
'reportSomething' => 'Nahlašování',
|
'reportSomething' => 'Nahlašování',
|
||||||
'dataPolicy' => 'Politika dat'
|
'dataPolicy' => 'Politika dat',
|
||||||
|
|
||||||
'taggingPeople' => 'Označování lidí'
|
'taggingPeople' => 'Označování lidí'
|
||||||
|
|
||||||
];
|
]
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
@section('section')
|
@section('section')
|
||||||
<div class="title mb-4">
|
<div class="title mb-4">
|
||||||
<h3 class="font-weight-bold">Diagnostics</h3>
|
<h3 class="font-weight-bold">Diagnostics</h3>
|
||||||
<p class="lead mb-0">Instance diagnostics</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="pb-3 border-bottom">
|
<div class="pb-3 border-bottom">
|
||||||
|
@ -11,30 +10,24 @@
|
||||||
Information
|
Information
|
||||||
<span class="small text-primary ml-3 copy-information cursor-pointer text-uppercase font-weight-bold">Copy</span>
|
<span class="small text-primary ml-3 copy-information cursor-pointer text-uppercase font-weight-bold">Copy</span>
|
||||||
</p>
|
</p>
|
||||||
<ul class="information">
|
|
||||||
|
<div class="information">
|
||||||
|
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<p class="font-weight-bold text-muted">
|
||||||
|
Troubleshooting
|
||||||
|
</p>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<strong>APP_URL:</strong>
|
<strong>Bootstrap:</strong>
|
||||||
<span>{{config_cache('app.url')}}</span>
|
<span>{{is_writable(base_path('bootstrap/')) ? 'Writable ✅' : 'Not writable ❌'}}</span>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<strong>APP_DOMAIN:</strong>
|
<strong>Storage:</strong>
|
||||||
<span>{{config_cache('pixelfed.domain.app')}}</span>
|
<span>{{is_writable(base_path('storage/')) ? 'Writable ✅' : 'Not writable ❌'}}</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>
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@foreach([
|
@foreach([
|
||||||
'bcmath',
|
'bcmath',
|
||||||
'gd',
|
'gd',
|
||||||
|
@ -49,107 +42,19 @@
|
||||||
] as $ext)
|
] as $ext)
|
||||||
@if(!extension_loaded($ext))
|
@if(!extension_loaded($ext))
|
||||||
<li>
|
<li>
|
||||||
<strong>PHP-{{$ext}}:</strong>
|
<strong>PHP Module {{$ext}}:</strong>
|
||||||
<span>Not installed/loaded</span>
|
<span>Not installed/Not loaded ❌</span>
|
||||||
</li>
|
</li>
|
||||||
@endif
|
@endif
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<strong>Database:</strong>
|
<strong><span class="badge badge-primary">DATABASE</span> Ping:</strong>
|
||||||
@php($v = explode(' ', DB::select('select version() as version')[0]->version))
|
<span>{{ \DB::connection()->getPDO() ? 'Pong! Connected to DB "' . \DB::connection()->getDatabaseName() . '" ✅' : 'DB Not Responding ❌' }}</span>
|
||||||
<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>
|
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<strong><span class="badge badge-primary">REDIS</span> Ping:</strong>
|
<strong><span class="badge badge-primary">REDIS</span> Ping:</strong>
|
||||||
<span>{{ \Illuminate\Support\Facades\Redis::command('ping') ? '✅' : '❌' }}</span>
|
<span>{{ \Illuminate\Support\Facades\Redis::command('ping') ? 'Pong! Connected to Redis ✅' : 'Redis Not Responding ❌' }}</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>
|
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<strong><span class="badge badge-primary">ACTIVITYPUB</span> instance actor created: </strong>
|
<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>
|
<strong><span class="badge badge-primary">OAUTH</span> token_expiration</strong>
|
||||||
<span>{{ config_cache('instance.oauth.token_expiration') }} days</span>
|
<span>{{ config_cache('instance.oauth.token_expiration') }} days</span>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<strong><span class="badge badge-primary">OAUTH</span> public key exists: </strong>
|
<strong><span class="badge badge-primary">OAUTH</span> public key exists: </strong>
|
||||||
<span>{{ file_exists(storage_path('oauth-public.key')) ? '✅' : '❌' }}</span>
|
<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>
|
<strong><span class="badge badge-primary">OAUTH</span> private key exists: </strong>
|
||||||
<span>{{ file_exists(storage_path('oauth-private.key')) ? '✅' : '❌' }}</span>
|
<span>{{ file_exists(storage_path('oauth-private.key')) ? '✅' : '❌' }}</span>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
<p class="font-weight-bold text-muted">
|
||||||
|
Important Information
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
@if(function_exists('shell_exec'))
|
||||||
<li>
|
<li>
|
||||||
<strong><span class="badge badge-primary">Storage</span> Cloud Storage: </strong>
|
<strong>Version:</strong>
|
||||||
<span>{{ config_cache('pixelfed.cloud_storage') ? '✅' : '❌' }}</span>
|
<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>
|
||||||
<li>
|
<li>
|
||||||
<strong><span class="badge badge-primary">Storage</span> Filesystems default (local/s3/spaces): </strong>
|
<strong>APP_URL:</strong>
|
||||||
<span>{{ config_cache('filesystems.default')}}</span>
|
<span>{{config_cache('app.url')}}</span>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<strong><span class="badge badge-primary">Network</span> TrustedProxy: </strong>
|
<strong>APP_DOMAIN:</strong>
|
||||||
<span>{{ config('trustedproxy.proxies') }}</span>
|
<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>
|
</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>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="pb-3 border-bottom">
|
<div class="pb-3 border-bottom">
|
||||||
<div class="form-group mb-0">
|
<div class="form-group mb-0">
|
||||||
|
|
|
@ -261,7 +261,7 @@
|
||||||
}
|
}
|
||||||
if($(this).hasClass('row-check-all')) {
|
if($(this).hasClass('row-check-all')) {
|
||||||
return;
|
return;
|
||||||
};
|
}
|
||||||
if(el.checked == true) {
|
if(el.checked == true) {
|
||||||
$(this).parents().eq(2).addClass('user-row-active');
|
$(this).parents().eq(2).addClass('user-row-active');
|
||||||
$('.bulk-actions').removeClass('d-none');
|
$('.bulk-actions').removeClass('d-none');
|
||||||
|
|
|
@ -68,7 +68,7 @@
|
||||||
swal.stopLoading();
|
swal.stopLoading();
|
||||||
swal.close();
|
swal.close();
|
||||||
return;
|
return;
|
||||||
};
|
}
|
||||||
let msg = 'The URL you have entered is not valid, please try again.'
|
let msg = 'The URL you have entered is not valid, please try again.'
|
||||||
try {
|
try {
|
||||||
let validator = new URL(val);
|
let validator = new URL(val);
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
swal.close();
|
swal.close();
|
||||||
swal('Invalid URL', msg, 'error');
|
swal('Invalid URL', msg, 'error');
|
||||||
return;
|
return;
|
||||||
};
|
}
|
||||||
axios.post(window.location.href, {
|
axios.post(window.location.href, {
|
||||||
domain: validator.href
|
domain: validator.href
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
|
|
|
@ -82,7 +82,7 @@ $(document).ready(function() {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue