{% extends "admin_base.html" %} {% block admin_content %}

Settings

Background service parameters (news fetching, intervals, AI grading) are configured per service on the Services page.

General

Public origin used for absolute links (SEO, container ingress /p/<slug>). Empty = derive from the request or the DEVPLACE_SITE_URL env var.
Official iOS app listing. The App Store badge links here in the footer and the top navigation. Empty hides the badges.

Uploads & Attachments

Maximum file size per upload in megabytes.
Comma-separated list of allowed extensions. When set, this is the authoritative allowlist; any extension listed here is enabled and its type auto-detected. Leave empty to use the built-in defaults, which include common image and video formats (mp4, webm, ogv, mov, m4v).
Maximum number of files that can be attached to a single post, comment, etc.

Operational

AI agent renders the in-page Devii chat on the docs search page. Keyword uses the classic BM25 results list. Users who exceed their daily AI limit (or guests when Devii is disabled) fall back to keyword search automatically.
When closed, new account sign-ups are rejected.
When enabled, non-admin visitors see the maintenance page. Admins retain full access.
Shown to visitors while maintenance mode is enabled.
Maximum mutating requests allowed per IP within the window below.
Rolling window over which the request limit is counted.
Cookie lifetime for a standard sign-in.
Cookie lifetime when "remember me" is checked at login.
Routes every outbound stealth-client request (Devii fetch, DeepSearch, news, attachments, and more) through this proxy. Leave empty to connect directly. Needed only when a destination blocks this server's own IP/network (not its browser fingerprint) - most sites never need this.

Moderation & Safety

How the classifier acts on a match. review is the default: nothing legitimate is ever suppressed by a machine and a human sees every flag. Move to block only with evidence from the queue - on a developer platform a blanket block produces false positives on security research and error messages. The sexual and exploitative categories always block, whatever this setting says.
The commitment published in the terms and shown on every report acknowledgement. The moderation queue badge turns red once the oldest open report is older than this.
Signup is refused below this age. Only the derived age band is stored, never the date of birth.
When on, mature-labelled content renders behind an interstitial until the viewer explicitly opts in. Minor age bands are never offered the reveal for restricted content.
How long a deleted account stays restorable from the trash before it is permanently purged. The account is anonymised immediately either way; this only sets when the purge runs.
Named in the consent copy and the privacy policy, so the user knows who receives their content before they grant consent.

Policy Versions

Bumping this forces every member to accept the terms again before their next write. Reading and account deletion are never blocked.

Published Contact Details

Rendered on /docs/contact.html. Keep it identical to the trader email declared in every app store that carries a DevPlace client.

Custom Code

Raw HTML injected into the page <head> on every page. Put anything here: a <style> block, <script>, <link>, meta tags, or an analytics snippet. Applies site-wide. Leave empty to remove.
{% endblock %}