{"result":{"depiction_url":null,"edges":{"in_module":{"objects":[{"created":"2026-09-09T13:48:09Z","object_id":{"id":335,"is_a":["text","documentation","reference","module"],"name":"doc_core","title":"Zotonic Core","uri":"https:\/\/zotonic.com\/id\/335"},"seq":1}],"predicate":{"id":333,"is_a":["meta","predicate"],"name":"in_module","title":{"_type":"trans","tr":{"en":"In module"}},"uri":"https:\/\/zotonic.com\/id\/in_module"}},"subject":{"objects":[{"created":"2026-09-09T13:48:09Z","object_id":{"id":2555,"is_a":["categorization","keyword","keyword_information_type"],"name":"zotonic_topic_reference","title":"Reference","uri":"https:\/\/zotonic.com\/id\/2555"},"seq":1},{"created":"2026-09-09T13:48:10Z","object_id":{"id":2566,"is_a":["categorization","keyword","keyword_audience"],"name":"zotonic_topic_operator","title":"Operator","uri":"https:\/\/zotonic.com\/id\/2566"},"seq":2},{"created":"2026-09-09T13:48:10Z","object_id":{"id":2603,"is_a":["categorization","keyword","keyword_domain"],"name":"zotonic_topic_configuration","title":"Configuration","uri":"https:\/\/zotonic.com\/id\/2603"},"seq":3},{"created":"2026-09-09T13:48:10Z","object_id":{"id":2625,"is_a":["categorization","keyword","keyword_architecture"],"name":"zotonic_topic_model","title":"Model","uri":"https:\/\/zotonic.com\/id\/2625"},"seq":4},{"created":"2026-09-09T13:48:10Z","object_id":{"id":2636,"is_a":["categorization","keyword","keyword_task"],"name":"zotonic_topic_configure","title":"Configure","uri":"https:\/\/zotonic.com\/id\/2636"},"seq":5}],"predicate":{"id":308,"is_a":["meta","predicate"],"name":"subject","title":{"_type":"trans","tr":{"en":"Keyword"}},"uri":"http:\/\/purl.org\/dc\/elements\/1.1\/subject"}}},"id":2104,"is_a":["text","documentation","reference","model"],"links":[{"rel":"self","target":"https:\/\/zotonic.com\/.zotonic\/websub\/topic\/2104"},{"rel":"hub","target":"https:\/\/zotonic.com\/.zotonic\/websub"}],"medium":null,"medium_url":null,"name":"doc_model_model_sysconfig","page_url":{"en":"https:\/\/zotonic.com\/docs\/2104\/sysconfig","x-default":"https:\/\/zotonic.com\/docs\/2104\/sysconfig"},"preview_url":null,"resource":{"version":3380,"pivot_location_lat":null,"title":"sysconfig","is_authoritative":true,"body":"<div class=\"admonition note\"><p class=\"first admonition-title\">Note<\/p><p class=\"last\">System configurations are only accessible from templates, using <code>m.sysconfig<\/code>, for users with administrator rights.<\/p><\/div>\n<p>Gives access to the Zotonic system configuration from the <code>zotonic.config<\/code> file(s).<\/p>\n<h2>Available Model API Paths<\/h2>\n<table class=\"table\"><thead><tr><th>Method<\/th><th>Path pattern<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>get<\/code><\/td><td><code>\/+key\/...<\/code><\/td><td>Look up system configuration key <code>+key<\/code> via <code>z_config:get\/1<\/code> (admin-only); unknown keys return <code>undefined<\/code>.<\/td><\/tr><\/tbody><\/table>\n<p><code>\/+name<\/code> marks a variable path segment. A trailing <code>\/...<\/code> means extra path segments are accepted for further lookups.<\/p>\n<h2>Known Keys<\/h2>\n<p>The following keys are defined in <code>z_config:all\/0<\/code>:<\/p>\n<table class=\"table\"><thead><tr><th>Key<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>environment<\/code><\/td><td>Runtime environment profile such as development, test, or production.<\/td><\/tr><tr><td><code>zotonic_apps<\/code><\/td><td>Path where user applications are located.<\/td><\/tr><tr><td><code>security_dir<\/code><\/td><td>Directory containing TLS and security-related files.<\/td><\/tr><tr><td><code>data_dir<\/code><\/td><td>Directory for persistent runtime data.<\/td><\/tr><tr><td><code>log_dir<\/code><\/td><td>Directory for log output files.<\/td><\/tr><tr><td><code>cache_dir<\/code><\/td><td>Directory for cache files.<\/td><\/tr><tr><td><code>password<\/code><\/td><td>Global bootstrap\/management password setting when configured.<\/td><\/tr><tr><td><code>admin_email<\/code><\/td><td>Default administrator\/system email address.<\/td><\/tr><tr><td><code>timezone<\/code><\/td><td>Default server timezone.<\/td><\/tr><tr><td><code>listen_ip<\/code><\/td><td>IPv4 listen address for HTTP listener.<\/td><\/tr><tr><td><code>listen_ip6<\/code><\/td><td>IPv6 listen address for HTTP listener.<\/td><\/tr><tr><td><code>listen_port<\/code><\/td><td>HTTP listen port.<\/td><\/tr><tr><td><code>ssl_listen_port<\/code><\/td><td>HTTPS listen port.<\/td><\/tr><tr><td><code>port<\/code><\/td><td>Public HTTP port used in URL generation.<\/td><\/tr><tr><td><code>ssl_port<\/code><\/td><td>Public HTTPS port used in URL generation.<\/td><\/tr><tr><td><code>max_connections<\/code><\/td><td>Maximum HTTP connections.<\/td><\/tr><tr><td><code>ssl_max_connections<\/code><\/td><td>Maximum HTTPS connections.<\/td><\/tr><tr><td><code>dbhost<\/code><\/td><td>PostgreSQL host.<\/td><\/tr><tr><td><code>dbport<\/code><\/td><td>PostgreSQL port.<\/td><\/tr><tr><td><code>dbuser<\/code><\/td><td>PostgreSQL user name.<\/td><\/tr><tr><td><code>dbpassword<\/code><\/td><td>PostgreSQL password.<\/td><\/tr><tr><td><code>dbdatabase<\/code><\/td><td>PostgreSQL database name.<\/td><\/tr><tr><td><code>dbschema<\/code><\/td><td>PostgreSQL schema name.<\/td><\/tr><tr><td><code>security_headers<\/code><\/td><td>Enable or disable default security headers.<\/td><\/tr><tr><td><code>smtp_verp_as_from<\/code><\/td><td>Use VERP envelope sender behavior for outgoing email.<\/td><\/tr><tr><td><code>smtp_no_mx_lookups<\/code><\/td><td>Disable MX lookups for SMTP delivery.<\/td><\/tr><tr><td><code>smtp_relay<\/code><\/td><td>Enable relay delivery via configured SMTP relay.<\/td><\/tr><tr><td><code>smtp_username<\/code><\/td><td>Username for SMTP relay authentication.<\/td><\/tr><tr><td><code>smtp_password<\/code><\/td><td>Password for SMTP relay authentication.<\/td><\/tr><tr><td><code>smtp_host<\/code><\/td><td>SMTP relay host.<\/td><\/tr><tr><td><code>smtp_port<\/code><\/td><td>SMTP relay port.<\/td><\/tr><tr><td><code>smtp_ssl<\/code><\/td><td>Use SSL\/TLS when connecting to SMTP relay.<\/td><\/tr><tr><td><code>smtp_relay_tls_options<\/code><\/td><td>TLS options for SMTP relay connection.<\/td><\/tr><tr><td><code>smtp_listen_ip<\/code><\/td><td>Listen address for inbound SMTP listener.<\/td><\/tr><tr><td><code>smtp_listen_port<\/code><\/td><td>Listen port for inbound SMTP listener.<\/td><\/tr><tr><td><code>smtp_starttls<\/code><\/td><td>Enable STARTTLS for inbound SMTP.<\/td><\/tr><tr><td><code>smtp_spamd_ip<\/code><\/td><td>Spamd host for spam filtering integration.<\/td><\/tr><tr><td><code>smtp_spamd_port<\/code><\/td><td>Spamd port for spam filtering integration.<\/td><\/tr><tr><td><code>smtp_dns_blocklist<\/code><\/td><td>DNS blocklists consulted for inbound SMTP checks.<\/td><\/tr><tr><td><code>smtp_dns_allowlist<\/code><\/td><td>DNS allowlists consulted for inbound SMTP checks.<\/td><\/tr><tr><td><code>smtp_delete_sent_after<\/code><\/td><td>Retention window for sent-email log rows.<\/td><\/tr><tr><td><code>smtp_max_senders<\/code><\/td><td>Max sender processes\/concurrency for SMTP sending.<\/td><\/tr><tr><td><code>mqtt_listen_ip<\/code><\/td><td>Listen address for MQTT listener (IPv4).<\/td><\/tr><tr><td><code>mqtt_listen_ip6<\/code><\/td><td>Listen address for MQTT listener (IPv6).<\/td><\/tr><tr><td><code>mqtt_listen_port<\/code><\/td><td>MQTT TCP listen port.<\/td><\/tr><tr><td><code>mqtt_listen_ssl_port<\/code><\/td><td>MQTT TLS listen port.<\/td><\/tr><tr><td><code>mqtt_max_connections<\/code><\/td><td>Maximum MQTT connections (plain TCP).<\/td><\/tr><tr><td><code>mqtt_ssl_max_connections<\/code><\/td><td>Maximum MQTT connections (TLS).<\/td><\/tr><tr><td><code>inet_backlog<\/code><\/td><td>TCP listen backlog size for HTTP listener.<\/td><\/tr><tr><td><code>inet_acceptor_pool_size<\/code><\/td><td>Number of HTTP acceptor processes.<\/td><\/tr><tr><td><code>ssl_backlog<\/code><\/td><td>TLS listen backlog size.<\/td><\/tr><tr><td><code>ssl_acceptor_pool_size<\/code><\/td><td>Number of HTTPS acceptor processes.<\/td><\/tr><tr><td><code>ssl_dhfile<\/code><\/td><td>Diffie-Hellman parameter file for TLS.<\/td><\/tr><tr><td><code>filewatcher_enabled<\/code><\/td><td>Enable filesystem watcher for site\/app changes.<\/td><\/tr><tr><td><code>filewatcher_scanner_enabled<\/code><\/td><td>Enable periodic scanner fallback for filewatcher.<\/td><\/tr><tr><td><code>filewatcher_scanner_interval<\/code><\/td><td>Interval in ms for periodic filewatch scanner.<\/td><\/tr><tr><td><code>syslog_ident<\/code><\/td><td>Syslog ident\/program name.<\/td><\/tr><tr><td><code>syslog_opts<\/code><\/td><td>Syslog logger options.<\/td><\/tr><tr><td><code>syslog_facility<\/code><\/td><td>Syslog facility used for logging.<\/td><\/tr><tr><td><code>syslog_level<\/code><\/td><td>Minimum syslog severity level.<\/td><\/tr><tr><td><code>proxy_allowlist<\/code><\/td><td>Trusted proxy allowlist for forwarded headers.<\/td><\/tr><tr><td><code>ip_allowlist<\/code><\/td><td>Global IP allowlist for request access.<\/td><\/tr><tr><td><code>ip_allowlist_system_management<\/code><\/td><td>IP allowlist for system-management endpoints.<\/td><\/tr><tr><td><code>sessionjobs_limit<\/code><\/td><td>Maximum number of session job workers.<\/td><\/tr><tr><td><code>sidejobs_limit<\/code><\/td><td>Maximum number of sidejob workers.<\/td><\/tr><tr><td><code>log_http_metrics_buffer_size<\/code><\/td><td>Buffer size for HTTP metrics logging.<\/td><\/tr><tr><td><code>server_header<\/code><\/td><td>Value used for HTTP <code>Server<\/code> response header.<\/td><\/tr><tr><td><code>html_error_path<\/code><\/td><td>Directory containing static HTML error pages.<\/td><\/tr><\/tbody><\/table>","slug":"sysconfig","is_protected":false,"visible_for":0,"tz":"UTC","language":["en"],"doc_source_hash":"d657e50bcde0ab8c42b89e4d6088d89b6b59302df85ab6bded7ff079a53cae22","is_featured":false,"content_group_id":{"id":2551,"is_a":["meta","content_group"],"name":"content_group_imported_docs","title":"Imported documentation","uri":"https:\/\/zotonic.com\/id\/content_group_imported_docs"},"category_id":{"id":322,"is_a":["meta","category"],"name":"model","title":"Models","uri":"https:\/\/test.zotonic.com\/id\/322"},"doc_source_path":"apps\/zotonic_core\/src\/models\/m_sysconfig.erl","publication_start":"2023-01-30T19:24:00Z","github_url":"https:\/\/github.com\/zotonic\/zotonic\/blob\/master\/apps\/zotonic_core\/src\/models\/m_sysconfig.erl","pivot_location_lng":null,"doc_source_kind":"model","name":"doc_model_model_sysconfig","is_unfindable":false,"is_published":true,"pivot_geocode":null,"created":"2020-05-30T05:48:00Z","uri":null,"doc_status":"current","is_dependent":false,"erlang_app":"zotonic_core","publication_end":"9999-06-01T00:00:00Z","modifier_id":{"id":1,"is_a":["person"],"name":"administrator","title":"Site Administrator","uri":"https:\/\/zotonic.com\/id\/1"},"privacy":0,"doc_source_commit":"28493fb676b2d92727e68d4fba20d89c56cf8ead\n","erlang_module":"m_sysconfig","creator_id":{"id":336,"is_a":["person","robot"],"name":"gitbot","title":"Git","uri":"https:\/\/zotonic.com\/id\/336"},"modified":"2026-10-15T20:07:36Z","title_slug":"sysconfig"},"uri":"https:\/\/zotonic.com\/id\/2104","uri_template":"https:\/\/zotonic.com\/id\/:id","websub":{"hub":"https:\/\/zotonic.com\/.zotonic\/websub","topic":"https:\/\/zotonic.com\/.zotonic\/websub\/topic\/2104"}},"status":"ok"}