Settings
The settings page lets you configure site-specific options that control how your site behaves and appears. Settings are scoped to the currently selected site.
Accessing Settings
Navigate to Settings in the sidebar. The settings page is organized into tabs. Which tabs you see depends on your role and which modules are enabled for the site.
Settings Tabs Overview
| Tab | Visible To | Condition |
|---|---|---|
| Overview | Admin, Owner | Always |
| Content | Admin, Owner | Always |
| Modules | Admin, Owner | Always |
| SEO | Admin, Owner | Always |
| Site Icon | Admin, Owner | Always |
| Code Injection | Admin, Owner | Always |
| AI Assist | Admin, Owner | AI module enabled |
Preferences Tab
Personal settings that apply to your account on this site. Available to all users.
| Setting | Description |
|---|---|
| Language | The UI language for the admin dashboard. |
| Theme | Light or dark mode. |
| Autosave | Toggle automatic saving of content while editing. |
| Page size | Number of items to display per page in listings. |
Site Settings Tab
Core configuration for the site. Requires Admin or Owner role.
General
| Setting | Description |
|---|---|
| Site name | The display name of your site. Used in the admin dashboard and can be used by your frontend template. |
| Site description | A brief description of your site. Useful for SEO meta tags. |
| Domain | The primary domain for your site. |
| Default locale | The default language for content when no locale is specified. |
| Timezone | The timezone used for content scheduling and timestamps. |
| Contact email | Public contact email for the site. |
| Preview template URL | URL of the frontend template used for content previews. |
Feature Toggles
| Toggle | Description |
|---|---|
| Analytics | Enable site analytics tracking. |
| Maintenance mode | Put the site into maintenance mode (public API returns 503). When active, a warning banner appears on every dashboard page with a quick "Turn Off" button. |
| Editorial workflow | Enable the review workflow for blog posts (Draft > In Review > Published). Only visible when the site has 2 or more members. |
Data Retention
| Setting | Default | Description |
|---|---|---|
| Analytics retention | 90 days | How long raw analytics pageview data is kept before pruning. Aggregated daily stats are kept indefinitely. |
| Audit log retention | 365 days | How long audit log and change history entries are kept. A daily background worker deletes entries older than this. Set via the audit_log_retention_days site setting key. |
File Upload Limits
Configure the maximum allowed file size for media uploads.
Modules Tab
Enable or disable content modules for the site. Requires Admin or Owner role.
| Module | Description |
|---|---|
| Blog | Blog posts, categories, and tags. |
| Pages | Static pages with sections. |
| Portfolio | Resume / portfolio entries and skills. |
| Legal | Legal pages (privacy policy, terms of service, etc.). |
| Documents | File/document management and attachments. |
| AI | AI-powered content assist features. |
| Disabling a module hides its sidebar entry and API endpoints for this site. Existing data is preserved and reappears if you re-enable the module. |
AI Assist Tab
Configure the AI provider for content assist features. Requires Admin or Owner role and the AI module to be enabled.
| Setting | Description |
|---|---|
| LLM Provider | The AI service provider (e.g., OpenAI, Anthropic). |
| API Key | Your provider API key (stored encrypted). |
| Model | The model to use for generation (e.g., gpt-4o, claude-sonnet-4-20250514). |
| Temperature | Controls randomness (0 = deterministic, 1 = creative). |
| Max tokens | Maximum number of tokens per AI response. |
| System prompts | Custom instructions sent to the LLM for content generation and SEO tasks. |
For full details on capabilities, see the AI Content Assist guide.
System Info Tab
Server and platform information. Visible only to Owner users.
- Server version -- the running Forja backend version.
- Services health -- status of connected services (database, cache, storage, AI provider).
- Storage info -- disk or S3 usage statistics.
Legal Tab
Cookie consent and legal notice configuration. Requires Admin or Owner role and the Legal module to be enabled.
- Configure cookie consent banner text, categories, and behavior.
- Manage links to privacy policy and terms of service pages.
SEO Tab
The SEO tab contains two sections: SEO Defaults and robots.txt Configuration.
SEO Defaults
Site-wide fallback values for content that lacks custom SEO metadata. These are applied at response time in the content detail endpoints (blog posts, pages) — they are never stored on the content itself.
| Setting | Description |
|---|---|
| Title template | Pattern for <title> tags. Use {{title}} for the content title and {{site_name}} for the site name. Example: {{title}} | {{site_name}}. A live preview shows how the template renders. |
| Default meta description | Fallback <meta name="description"> used when content has no custom description. A character counter shows the recommended 160-character limit. |
| Default OG image | Fallback Open Graph image (selected from the media library) used when content has no cover image. The cascade is: content cover image > default OG image > site logo. |
robots.txt Configuration
Control how search engine crawlers access your site. Changes are reflected immediately at the public GET /sites/<slug>/robots.txt endpoint.
- Add/remove User-Agent blocks (e.g.
*,Googlebot) - Add/remove Allow/Disallow directives per block
- A live preview panel shows the rendered robots.txt
- The
Sitemap:directive is automatically appended when a Site URL is configured - Reset to Defaults restores the default "allow all" rule
Site Icon Tab
Upload a source image (512x512px+ recommended) to generate a complete favicon package. The generated variants include:
favicon.ico(multi-resolution: 16, 32, 48px)favicon-16x16.png,favicon-32x32.pngapple-touch-icon.png(180x180)android-chrome-192x192.png,android-chrome-512x512.png
After uploading, the page shows:
- Variant preview grid — visual preview of all generated icons
- Theme color / Background color — hex color pickers that feed into the
site.webmanifest - HTML snippet — ready-to-paste
<head>markup with a copy-to-clipboard button
Icons are stored separately from the media library and do not appear in media listings. The site's favicon_url is automatically updated to the 32x32 PNG variant for backwards compatibility with templates that only read that field.
Code Injection Tab
Inject custom HTML, CSS, or JavaScript into your site's templates. Useful for analytics scripts (Google Analytics, Plausible), search engine verification tags (Google Search Console), chat widgets, tracking pixels, or custom meta tags.
| Field | Description |
|---|---|
| Head code | Injected into the <head> section of every page. |
| Footer code | Injected before the closing </body> tag. |
Both fields have a 10,000-character limit (enforced on backend and shown in UI). A warning banner reminds you that injected code runs on your live site.
Templates fetch these values from the site settings API and render them in the appropriate document locations.
Saving Settings
After making changes to any setting, click Save at the bottom of the page. Settings take effect immediately.
Resetting to Defaults
If available, click the Reset to defaults option to revert all settings to their default values. Confirm the action when prompted.
Permissions
| Action | Required Role |
|---|---|
| View settings | Viewer |
| Modify settings | Admin, Owner |
| Reset settings | Admin, Owner |