{% extends "base.html" %} {% from "components/ui.html" import page_header, breadcrumb_nav, button, filter_badge %} {% block extra_css %} {% endblock %} {% block content %} {% set breadcrumbs = [ {'text': 'Admin', 'url': url_for('admin.admin_dashboard')}, {'text': 'System Settings'} ] %} {{ page_header( icon_class='fas fa-sliders-h', title_text='System Settings', subtitle_text='Configure system-wide application settings', breadcrumbs=breadcrumbs, actions_html=None ) }}

General

This becomes the default timezone for users who choose “System Default”.

System-wide default date format. Users can override this in their profile.

System-wide default time format. Users can override this in their profile.

Timers

{{ _('Time Entry Requirements') }}

{{ _('Optionally require users to provide task and description when logging worked time. Enforced across web, mobile, and desktop.') }}

{{ _('Minimum number of characters required in the description field.') }}

{{ _('Used as the standard hours per day for overtime calculation when new users are created. Existing users keep their own setting.') }}

{{ _('User Management') }}

Note: Admin users are configured via the ADMIN_USERNAMES environment variable, not in this UI.

{{ _('Support visibility') }}

{{ _('Remove donate and support prompts for all users with a one-time key (€25, one key per instance).') }}

  1. {{ _('Copy your System ID below and use it when buying the key.') }}
  2. {{ _('Buy key') }} {{ _('— key sent by email.') }}
  3. {{ _('Paste the code below and click Verify.') }}

{{ _('Get key') }}

{% if system_instance_id %}

{{ _('Use this ID when purchasing your key.') }}

{% endif %} {% if settings.donate_ui_hidden %}

{{ _('Supporter instance: prompts are minimized; support entry points remain available.') }}

{% else %}
{% endif %}

{{ _('Company Branding') }}

{{ _('Invoice Defaults') }}

Available tokens: {SEQ}, {YYYY}, {YY}, {MM}, {DD}, {PREFIX}. Leave blank to generate sequence-only numbers.

Peppol e-Invoicing

If enabled, invoices can be sent via Peppol using your configured access point.

When enabled, PDFs include PEPPOL/EN 16931 identifiers (seller/buyer endpoint and VAT), and warnings are shown when required data is missing. UBL for Peppol includes mandatory elements.

When enabled, exported invoice PDFs contain an embedded CII (Cross-Industry Invoice) XML file (factur-x.xml) conforming to the Factur-X / ZUGFeRD EN 16931 profile. The PDF is both human-readable and machine-readable.

When enabled with Factur-X embedding, exported PDFs include PDF/A-3b identification, an embedded sRGB ICC profile, and output intent metadata for validator compliance (e.g. veraPDF).

When enabled, runs veraPDF on exported ZUGFeRD PDFs and shows a summary. Does not block download. Set path below.

Generic: use your access point adapter URL. Native (experimental): discover recipient via SML/SMP and send AS4 — lacks WS-Security and receipt handling; use a Peppol AP provider for production.

For security, the token is not shown. Leave blank to keep the current token.

{{ _('Backup Settings') }}

{{ _('LDAP') }}

{{ _('LDAP authentication is configured with environment variables. Values below are read-only.') }}

{{ _('Enabled for auth') }}

{{ _('Yes') if ldap_settings.enabled else _('No') }}

{{ _('Host') }} / {{ _('Port') }}

{{ ldap_settings.host }}:{{ ldap_settings.port }}

{{ _('SSL') }} / {{ _('TLS') }}

{{ _('SSL') }}: {% if ldap_settings.use_ssl %}{{ _('on') }}{% else %}{{ _('off') }}{% endif %}, {{ _('TLS') }}: {% if ldap_settings.use_tls %}{{ _('on') }}{% else %}{{ _('off') }}{% endif %}

{{ _('Base DN') }}

{{ ldap_settings.base_dn }}

{{ _('User DN') }}

{{ ldap_settings.user_dn }}

{{ _('User login attribute') }}

{{ ldap_settings.login_attr }}

{{ _('Admin group (CN)') }}

{{ ldap_settings.admin_group }}

{{ _('Required group (CN)') }}

{{ ldap_settings.required_group }}

{{ _('Export Settings') }}

{{ _('Kiosk Mode') }}

{{ _('Kiosk mode provides a simplified interface for warehouse operations with barcode scanning and time tracking. Access at') }} /kiosk/login

{% if kiosk_settings.kiosk_mode_enabled %}
{% endif %}

{{ _('AI Helper') }}

{{ _('New installs keep the AI helper off by default (no bundled LLM). To use in-cluster Ollama, run Docker Compose with the optional profile and set AI_ENABLED=true in .env (see README). To use only a hosted model, set Availability below to Enabled and configure an openai_compatible provider.') }}

{{ _('Configure the shared server-side AI helper for the web app, desktop app, and API clients. Hosted provider keys stay on the server.') }}

{{ _('For Ollama, this is the URL from the Flask server to Ollama.') }}

{% if ai_config.api_key_set %} {% endif %}

{{ _('Privacy & Analytics') }}

Minimal install telemetry (always on): Version, platform, and last-seen heartbeat so we can understand install footprint and distribution. No personal data.

When enabled, we also collect:

  • Feature usage (e.g. timer started, project created)
  • Screens and pages visited
  • Errors linked to usage context (no PII)

Privacy: No email, usernames, time entry content, or client data. You can turn this off anytime.

Same setting as the telemetry preference during initial setup.

{{ _('Company Logo') }}

{% if settings.has_logo() %}

✓ Current Company Logo

This logo appears on invoices, PDFs, and other documents

{{ _('Company Logo') }}
{% else %}

No company logo uploaded yet

Upload a logo to appear on invoices, PDFs, and documents

{% endif %}

{{ _('Upload New Logo') }}

Allowed formats: PNG, JPG, GIF, SVG, WEBP (max 5MB)

Recommended: Square or landscape logo, at least 200x200 pixels

Where it appears: PDF invoices, email templates, and exported documents

{% endblock %}