{ "order": [], "sections": { "updates": { "order": [], "meta": { "name": "Updates", "description": "Settings for update notifications and release channel." }, "settings": { "enabled": { "name": "Enabled", "required": true, "requires_restart": true, "type": "bool", "value": true, "description": "Enable/disable updating notifications and downloading/applying updates." }, "channel": { "name": "Release Channel", "required": true, "requires_restart": false, "type": "select", "options": [ ["stable", "Stable"], ["unstable", "Unstable"] ], "value": "", "description": "Release channel for updates." } } }, "jellyfin": { "order": [], "meta": { "name": "Jellyfin", "description": "Settings for connecting to Jellyfin" }, "settings": { "username": { "name": "Jellyfin Username", "required": true, "requires_restart": true, "type": "text", "value": "username", "description": "It is recommended to create a limited admin account for this program." }, "password": { "name": "Jellyfin Password", "required": true, "requires_restart": true, "type": "password", "value": "password" }, "server": { "name": "Server address", "required": true, "requires_restart": true, "type": "text", "value": "http://jellyfin.local:8096", "description": "Jellyfin server address. Can be public, or local for security purposes." }, "public_server": { "name": "Public address", "required": false, "requires_restart": false, "type": "text", "value": "https://jellyf.in:443", "description": "Publicly accessible Jellyfin address for invite form. Leave blank to reuse the above address." }, "client": { "name": "Client Name", "required": true, "requires_restart": true, "advanced": true, "type": "text", "value": "jfa-go", "description": "The name of the client that will show up in the Jellyfin dashboard." }, "cache_timeout": { "name": "User cache timeout (minutes)", "required": false, "requires_restart": true, "advanced": true, "type": "number", "value": 30, "description": "Timeout of user cache in minutes. Set to 0 to disable." }, "type": { "name": "Server type", "required": false, "requires_restart": true, "type": "select", "options": [ ["jellyfin", "Jellyfin"], ["emby", "Emby"] ], "value": "jellyfin", "description": "Note: Emby integration works but is missing some features, such as Password Resets." }, "substitute_jellyfin_strings": { "name": "Substitute occurrences of \"Jellyfin\"", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "Optionally substitute occurrences of \"Jellyfin\" in the account creation form and emails with this. May result in bad grammar." } } }, "ui": { "order": [], "meta": { "name": "General", "description": "Settings related to the UI and program functionality." }, "settings": { "language-form": { "name": "Default Form Language", "required": false, "requires_restart": true, "type": "select", "options": [ ["en-us", "English (US)"] ], "value": "en-us", "description": "Default Account Form Language. Visit weblate.jfa-go.com if you'd like to translate." }, "language-admin": { "name": "Default Admin Language", "required": false, "requires_restart": true, "type": "select", "options": [ ["en-us", "English (US)"] ], "value": "en-us", "description": "Default Admin page Language. Settings has not been translated. Visit weblate.jfa-go.com if you'd like to translate." }, "theme": { "name": "Default Look", "required": false, "requires_restart": true, "type": "select", "options": [ ["Jellyfin (Dark)", "Jellyfin (Dark)"], ["Default (Light)", "Default (Light)"] ], "value": "Jellyfin (Dark)", "description": "Default appearance for all users." }, "host": { "name": "Address", "required": true, "requires_restart": true, "type": "text", "value": "0.0.0.0", "description": "Set 0.0.0.0 to run on localhost" }, "port": { "name": "Port", "required": true, "requires_restart": true, "type": "number", "value": 8056 }, "jellyfin_login": { "name": "Use Jellyfin for authentication", "required": false, "requires_restart": true, "type": "bool", "value": true, "description": "Enable this to use Jellyfin users instead of the below username and pw." }, "admin_only": { "name": "Allow admin users only", "required": false, "requires_restart": true, "depends_true": "jellyfin_login", "type": "bool", "value": true, "description": "Allows only admin users on Jellyfin to access the admin page." }, "allow_all": { "name": "Allow all users to login", "required": false, "requires_restart": true, "depends_true": "jellyfin_login", "type": "bool", "value": false, "description": "Allow all Jellyfin users to access jfa-go. Not recommended, add individual users in the Accounts tab instead." }, "username": { "name": "Web Username", "required": true, "requires_restart": true, "depends_false": "jellyfin_login", "type": "text", "value": "your username", "description": "Username for admin page (Leave blank if using jellyfin_login)" }, "password": { "name": "Web Password", "required": true, "requires_restart": true, "depends_false": "jellyfin_login", "type": "password", "value": "your password", "description": "Password for admin page (Leave blank if using jellyfin_login)" }, "email": { "name": "Admin email address", "required": false, "requires_restart": false, "depends_false": "jellyfin_login", "type": "text", "value": "example@example.com", "description": "Address to send notifications to (Leave blank if using jellyfin_login)" }, "debug": { "name": "Debug logging", "required": false, "requires_restart": true, "type": "bool", "value": false, "description": "Enables debug logging and exposes pprof as a route (Don't use in production!)" }, "contact_message": { "name": "Contact message", "required": false, "requires_restart": false, "type": "text", "value": "Need help? contact me.", "description": "Displayed at bottom of all pages except admin" }, "help_message": { "name": "Help message", "required": false, "requires_restart": false, "type": "text", "value": "Enter your details to create an account.", "description": "Displayed at top of invite form." }, "success_message": { "name": "Success message", "required": false, "requires_restart": false, "type": "text", "value": "Your account has been created. Click below to continue to Jellyfin.", "description": "Displayed when a user creates an account" }, "url_base": { "name": "Reverse Proxy subfolder", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "URL base for when running jfa-go with a reverse proxy in a subfolder. include preceding /, e.g \"/accounts\"." }, "redirect_url": { "name": "Form success redirect URL", "required": false, "requires_restart": false, "type": "text", "value": "", "advanced": true, "description": "Set a different URL for the sign-up form to redirect the user to when they've signed up. Default to 'Public Server' or 'Server' in the Jellyfin tab." }, "auto_redirect": { "name": "Auto redirect on success", "required": false, "requires_restart": true, "type": "bool", "value": false, "description": "Navigate directly to the above URL instead of needing the user to click \"Continue\"." } } }, "advanced": { "order": [], "meta": { "name": "Advanced", "description": "Advanced settings." }, "settings": { "tls": { "name": "TLS/HTTP2", "required": false, "requires_restart": true, "type": "bool", "value": false, "description": "Enable TLS." }, "tls_port": { "name": "TLS Port", "depends_true": "tls", "required": false, "requires_restart": true, "type": "number", "value": 8057, "description": "Port to run TLS server on" }, "tls_cert": { "name": "Path to TLS Certificate", "depends_true": "tls", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "Path to .crt file. See jfa-go wiki for more info." }, "tls_key": { "name": "Path to TLS Key file", "depends_true": "tls", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "Path to .key file. See jfa-go wiki for more info." } } }, "captcha": { "order": [], "meta": { "name": "Captcha", "description": "Settings related to user creation CAPTCHAs." }, "settings": { "enabled": { "name": "Enabled", "required": false, "requires_restart": true, "type": "bool", "value": false, "description": "Enable a CAPTCHA on the account creation form." } } }, "password_validation": { "order": [], "meta": { "name": "Password Validation", "description": "Password validation (minimum length, etc.)" }, "settings": { "enabled": { "name": "Enabled", "required": false, "requires_restart": false, "type": "bool", "value": true }, "min_length": { "name": "Minimum Length", "requires_restart": false, "depends_true": "enabled", "type": "text", "value": "8" }, "upper": { "name": "Minimum uppercase characters", "requires_restart": false, "depends_true": "enabled", "type": "text", "value": "1" }, "lower": { "name": "Minimum lowercase characters", "requires_restart": false, "depends_true": "enabled", "type": "text", "value": "0" }, "number": { "name": "Minimum number count", "requires_restart": false, "depends_true": "enabled", "type": "text", "value": "1" }, "special": { "name": "Minimum number of special characters", "requires_restart": false, "depends_true": "enabled", "type": "text", "value": "0" } } }, "messages": { "order": [], "meta": { "name": "Messages/Notifications", "description": "General settings for emails/messages." }, "settings": { "enabled": { "name": "Enabled", "required": true, "requires_restart": true, "type": "bool", "value": true, "description": "Enable the sending of emails/messages such as password resets, announcements, etc." }, "use_24h": { "name": "Use 24h time", "required": false, "requires_restart": false, "depends_true": "method", "type": "bool", "value": true }, "date_format": { "name": "Date format", "required": false, "requires_restart": false, "advanced": true, "depends_true": "method", "type": "text", "value": "%d/%m/%y", "description": "Date format used in emails. Follows datetime.strftime format." }, "message": { "name": "Help message", "required": false, "requires_restart": false, "depends_true": "method", "type": "text", "value": "Need help? contact me.", "description": "Message displayed at bottom of emails." } } }, "email": { "order": [], "meta": { "name": "Email", "description": "General email settings.", "depends_true": "messages|enabled" }, "settings": { "language": { "name": "Email Language", "required": false, "requires_restart": false, "depends_true": "method", "type": "select", "options": [ ["en-us", "English (US)"] ], "value": "en-us", "description": "Default email language. Submit a PR on github if you'd like to translate." }, "no_username": { "name": "Use email addresses as username", "required": false, "requires_restart": false, "depends_true": "method", "type": "bool", "value": false, "description": "Use email address from invite form as username on Jellyfin." }, "method": { "name": "Email method", "required": false, "requires_restart": false, "type": "select", "options": [ ["", "Disabled"], ["smtp", "SMTP"], ["mailgun", "Mailgun"] ], "value": "smtp", "description": "Method of sending email to use." }, "address": { "name": "Sent from (address)", "required": false, "requires_restart": false, "depends_true": "method", "type": "email", "value": "jellyfin@jellyf.in", "description": "Address to send emails from" }, "from": { "name": "Sent from (name)", "required": false, "requires_restart": false, "depends_true": "method", "type": "text", "value": "Jellyfin", "description": "The name of the sender" }, "plaintext": { "name": "Send emails as plain text", "required": false, "requires_restart": false, "advanced": true, "depends_true": "method", "type": "bool", "value": false, "description": "Send emails as plain text instead of HTML." }, "required": { "name": "Require on sign-up", "required": false, "requires_restart": false, "depends_true": "method", "type": "bool", "value": false, "description": "Require an email address on sign-up." }, "require_unique": { "name": "Require unique address", "required": false, "requires_restart": true, "type": "bool", "value": false, "description": "Disables using the same address on multiple accounts." } } }, "mailgun": { "order": [], "meta": { "name": "Mailgun (Email)", "description": "Mailgun API connection settings", "depends_true": "email|method" }, "settings": { "api_url": { "name": "API URL", "required": false, "requires_restart": false, "type": "text", "value": "https://api.mailgun.net..." }, "api_key": { "name": "API Key", "required": false, "requires_restart": false, "type": "text", "value": "your api key" } } }, "smtp": { "order": [], "meta": { "name": "SMTP (Email)", "description": "SMTP Server connection settings.", "depends_true": "email|method" }, "settings": { "username": { "name": "Username", "required": false, "requires_restart": false, "type": "text", "value": "", "description": "Username for SMTP. Leave blank to user send from address as username." }, "encryption": { "name": "Encryption Method", "required": false, "requires_restart": false, "type": "select", "options": [ ["ssl_tls", "SSL/TLS"], ["starttls", "STARTTLS"] ], "value": "starttls", "description": "Your email provider should provide different ports for each encryption method. Generally 465 for ssl_tls, 587 for starttls." }, "server": { "name": "Server address", "required": false, "requires_restart": false, "type": "text", "value": "smtp.jellyf.in", "description": "SMTP Server address." }, "port": { "name": "Port", "required": false, "requires_restart": false, "type": "number", "value": 465 }, "password": { "name": "Password", "required": false, "requires_restart": false, "type": "password", "value": "smtp password" }, "hello_hostname": { "name": "HELLO Hostname", "required": false, "requires_restart": false, "advanced": true, "type": "text", "value": "localhost", "description": "Hostname sent when sending HELLO to the SMTP server. Some servers don't like the default \"localhost\" value, such as smtp-relay.gmail.com." }, "ssl_cert": { "name": "Path to custom SSL certificate", "required": false, "requires_restart": false, "advanced": true, "type": "text", "value": "", "description": "Use if your SMTP server's SSL Certificate is not trusted by the system." }, "cert_validation": { "name": "Verify certificate", "required": false, "requires_restart": false, "advanced": true, "type": "bool", "value": true, "description": "Warning, disabling this makes you much more vulnerable to man-in-the-middle attacks" } } }, "discord": { "order": [], "meta": { "name": "Discord", "description": "Settings for Discord invites/signup/notifications" }, "settings": { "enabled": { "name": "Enabled", "required": false, "requires_restart": true, "type": "bool", "value": false, "description": "Enable signup verification through Discord and the sending of notifications through it.\nSee the jfa-go wiki for setting up a bot." }, "show_on_reg": { "name": "Show on user registration", "required": false, "requires_restart": true, "type": "bool", "depends_true": "enabled", "value": true, "description": "Allow users to link their Discord on the registration page." }, "required": { "name": "Require on sign-up", "required": false, "requires_restart": true, "depends_true": "enabled", "type": "bool", "value": false, "description": "Require Discord connection on sign-up. See the jfa-go wiki for info on setting this up." }, "require_unique": { "name": "Require unique user", "required": false, "requires_restart": true, "type": "bool", "value": false, "description": "Disables using the same user on multiple Jellyfin accounts." }, "token": { "name": "API Token", "required": false, "requires_restart": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Discord Bot API Token." }, "start_command": { "name": "Start command", "required": false, "requires_restart": true, "depends_true": "enabled", "type": "text", "value": "start", "description": "Command to start the user verification process." }, "channel": { "name": "Channel to monitor", "required": false, "requires_restart": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Only listen to commands in specified channel. Leave blank to monitor all." }, "provide_invite": { "name": "Provide server invite", "required": false, "requires_restart": true, "depends_true": "enabled", "type": "bool", "value": false, "description": "Generate a one-time discord server invite for the account creation form. Required Bot permission \"Create instant invite\", you may need to re-add the bot to your server after." }, "invite_channel": { "name": "Invite channel", "required": false, "requires_restart": true, "depends_true": "provide_invite", "type": "text", "value": "", "description": "Channel to invite new users to." }, "apply_role": { "name": "Apply Role on connection", "required": false, "requires_restart": true, "depends_true": "enabled", "type": "select", "options": [ ["", "None"] ], "value": "", "description": "Add the selected role to a user when they sign up." }, "language": { "name": "Language", "required": false, "requires_restart": false, "depends_true": "enabled", "type": "select", "options": [ ["en-us", "English (US)"] ], "value": "en-us", "description": "Default Discord message language. Visit weblate if you'd like to translate." } } }, "telegram": { "order": [], "meta": { "name": "Telegram", "description": "Settings for Telegram signup/notifications. See the jfa-go wiki for info on setting this up." }, "settings": { "enabled": { "name": "Enabled", "required": false, "requires_restart": true, "type": "bool", "value": false, "description": "Enable signup verification through Telegram and the sending of notifications through it.\nSee the jfa-go wiki for setting up a bot." }, "show_on_reg": { "name": "Show on user registration", "required": false, "requires_restart": true, "type": "bool", "depends_true": "enabled", "value": true, "description": "Allow users to link their Telegram on the registration page." }, "required": { "name": "Require on sign-up", "required": false, "required_restart": true, "depends_true": "enabled", "type": "bool", "value": false, "description": "Require telegram connection on sign-up." }, "require_unique": { "name": "Require unique user", "required": false, "requires_restart": true, "type": "bool", "value": false, "description": "Disables using the same user on multiple Jellyfin accounts." }, "token": { "name": "API Token", "required": false, "requires_restart": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Telegram Bot API Token." }, "language": { "name": "Language", "required": false, "requires_restart": false, "depends_true": "enabled", "type": "select", "options": [ ["en-us", "English (US)"] ], "value": "en-us", "description": "Default telegram message language. Visit weblate if you'd like to translate." } } }, "matrix": { "order": [], "meta": { "name": "Matrix", "description": "Settings for Matrix invites/signup/notifications. See the jfa-go wiki for info on setting this up." }, "settings": { "enabled": { "name": "Enabled", "required": false, "requires_restart": true, "type": "bool", "value": false, "description": "Enable signup verification through Matrix and the sending of notifications through it.\nSee the jfa-go wiki for setting up a bot." }, "show_on_reg": { "name": "Show on user registration", "required": false, "requires_restart": true, "type": "bool", "depends_true": "enabled", "value": true, "description": "Allow users to link their Matrix on the registration page." }, "required": { "name": "Require on sign-up", "required": false, "required_restart": true, "depends_true": "enabled", "type": "bool", "value": false, "description": "Require Matrix connection on sign-up." }, "require_unique": { "name": "Require unique user", "required": false, "requires_restart": true, "type": "bool", "value": false, "description": "Disables using the same user on multiple Jellyfin accounts." }, "homeserver": { "name": "Home Server URL", "required": false, "requires_restart": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Matrix Home server URL." }, "token": { "name": "Access Token", "required": false, "requires_restart": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Matrix Bot API Token." }, "user_id": { "name": "Bot User ID", "required": false, "requires_restart": true, "depends_true": "enabled", "type": "text", "value": "", "description": "User ID of bot account (Example: @jfa-bot:riot.im)" }, "topic": { "name": "Chat topic", "required": false, "requires_restart": true, "depends_true": "enabled", "type": "text", "value": "Jellyfin notifications", "description": "Topic of Matrix private chats." }, "language": { "name": "Language", "required": false, "requires_restart": false, "depends_true": "enabled", "type": "select", "options": [ ["en-us", "English (US)"] ], "value": "en-us", "description": "Default Matrix message language. Visit weblate if you'd like to translate." }, "encryption": { "name": "End-to-end encryption (experimental)", "required": false, "requires_restart": true, "depends_true": "enabled", "advanced": true, "type": "bool", "value": false, "description": "Enable end-to-end encryption for messages. Very experimental, currently does not support receiving commands (e.g !lang)." } } }, "password_resets": { "order": [], "meta": { "name": "Password Resets", "description": "Settings for the password reset handler.", "depends_true": "messages|enabled" }, "settings": { "enabled": { "name": "Enabled", "required": false, "requires_restart": true, "type": "bool", "value": true, "description": "Enable to store provided email addresses, monitor Jellyfin directory for pw-resets, and send reset pins" }, "watch_directory": { "name": "Jellyfin directory", "required": false, "requires_restart": true, "depends_true": "enabled", "type": "text", "value": "/path/to/jellyfin", "description": "Path to the folder Jellyfin puts password-reset files." }, "link_reset": { "name": "Use reset link instead of PIN (Required for Ombi)", "required": false, "requires_restart": true, "depends_true": "enabled", "type": "bool", "value": false, "description": "Send users a link to reset their password instead of a PIN. Must be enabled to reset Ombi password at the same time as the Jellyfin password." }, "set_password": { "name": "Set password through link", "required": false, "requires_restart": true, "depends_true": "link_reset", "type": "bool", "value": false, "description": "Instead of automatically setting the user's password to the PIN, allow them to set a new password through the reset link." }, "url_base": { "name": "URL Base", "required": true, "requires_restart": false, "depends_true": "link_reset", "type": "text", "value": "http://accounts.jellyf.in:8056", "description": "Base URL for jfa-go. You can leave this if you have one set in \"Invite Emails\". This is necessary because using a reverse proxy means the program has no way of knowing the URL itself." }, "language": { "name": "Default reset link language", "required": false, "requires_restart": true, "depends_true": "link_reset", "type": "select", "options": [ ["en-us", "English (US)"] ], "value": "en-us", "description": "Default language for password reset success screen." }, "email_html": { "name": "Custom email (HTML)", "required": false, "requires_restart": false, "advanced": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Path to custom email html" }, "email_text": { "name": "Custom email (plaintext)", "required": false, "requires_restart": false, "advanced": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Path to custom email in plain text" }, "subject": { "name": "Email subject", "required": false, "requires_restart": false, "depends_true": "enabled", "type": "text", "value": "", "description": "Subject of password reset emails." } } }, "invite_emails": { "order": [], "meta": { "name": "Invite emails", "description": "Settings for sending invites directly to users.", "depends_true": "email|method" }, "settings": { "enabled": { "name": "Enabled", "required": false, "requires_restart": false, "type": "bool", "value": true }, "email_html": { "name": "Custom email (HTML)", "required": false, "requires_restart": false, "advanced": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Path to custom email HTML" }, "email_text": { "name": "Custom email (plaintext)", "required": false, "requires_restart": false, "advanced": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Path to custom email in plain text" }, "subject": { "name": "Email subject", "required": true, "requires_restart": false, "depends_true": "enabled", "type": "text", "value": "", "description": "Subject of invite emails." }, "url_base": { "name": "URL Base", "required": true, "requires_restart": false, "depends_true": "enabled", "type": "text", "value": "http://accounts.jellyf.in:8056", "description": "Base URL for jfa-go. This is necessary because using a reverse proxy means the program has no way of knowing the URL itself." } } }, "template_email": { "order": [], "meta": { "name": "Custom email template", "description": "Settings for the template used for announcements & custom messages. HTML should include {{ .text }}, Plaintext should include {{ .plaintext }}, and either can have {{ .message }} to include the contact message.", "advanced": true }, "settings": { "email_html": { "name": "Custom template email (HTML)", "required": false, "requires_restart": false, "advanced": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Path to custom email HTML template for announcements/custom messages." }, "email_text": { "name": "Custom template email (plaintext)", "required": false, "requires_restart": false, "advanced": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Path to custom email text template for announcements/custom messages." } } }, "notifications": { "order": [], "meta": { "name": "Notifications", "description": "Notification related settings.", "depends_true": "messages|enabled" }, "settings": { "enabled": { "name": "Enabled", "required": "false", "requires_restart": true, "type": "bool", "value": true, "description": "Enabling adds optional toggles to invites to notify on expiry and user creation." }, "expiry_html": { "name": "Expiry email (HTML)", "required": false, "requires_restart": false, "advanced": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Path to expiry notification email HTML." }, "expiry_text": { "name": "Expiry email (Plaintext)", "required": false, "requires_restart": "false", "advanced": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Path to expiry notification email in plaintext." }, "created_html": { "name": "User created email (HTML)", "required": false, "requires_restart": false, "advanced": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Path to user creation notification email HTML." }, "created_text": { "name": "User created email (Plaintext)", "required": false, "requires_restart": false, "advanced": true, "depends_true": "enabled", "type": "text", "value": "", "description": "Path to user creation notification email in plaintext." } } }, "ombi": { "order": [], "meta": { "name": "Ombi Integration", "description": "Connect to Ombi to automatically create both Ombi and Jellyfin accounts for new users. You'll need to add a ombi template to an existing User Profile for accounts to be created, which you can do by refreshing then checking Settings > User Profiles. To handle password resets for Ombi & Jellyfin, enable \"Use reset link instead of PIN\"." }, "settings": { "enabled": { "name": "Enabled", "required": false, "requires_restart": true, "type": "bool", "value": false, "description": "Enable to create an Ombi account for new Jellyfin users" }, "server": { "name": "URL", "required": false, "requires_restart": true, "type": "text", "value": "localhost:5000", "depends_true": "enabled", "description": "Ombi server URL, including http(s)://." }, "api_key": { "name": "API Key", "required": false, "requires_restart": true, "type": "text", "value": "", "depends_true": "enabled", "description": "API Key. Get this from the first tab in Ombi settings." } } }, "welcome_email": { "order": [], "meta": { "name": "Welcome Message", "description": "Optionally send a welcome message to new users with the Jellyfin URL and their username.", "depends_true": "messages|enabled" }, "settings": { "enabled": { "name": "Enabled", "required": false, "requires_restart": true, "type": "bool", "value": false, "description": "Enable to send welcome emails to new users." }, "subject": { "name": "Email subject", "required": false, "requires_restart": false, "type": "text", "value": "", "description": "Subject of welcome emails." }, "email_html": { "name": "Custom email (HTML)", "required": false, "requires_restart": false, "advanced": true, "type": "text", "value": "", "description": "Path to custom email html" }, "email_text": { "name": "Custom email (plaintext)", "required": false, "requires_restart": false, "advanced": true, "type": "text", "value": "", "description": "Path to custom email in plain text" } } }, "email_confirmation": { "order": [], "meta": { "name": "Email confirmation", "description": "If enabled, a user will be sent an email confirmation link to ensure their password is right before they can make an account.", "depends_true": "email|method" }, "settings": { "enabled": { "name": "Enabled", "required": false, "requires_restart": true, "type": "bool", "value": false }, "subject": { "name": "Email subject", "required": false, "requires_restart": false, "type": "text", "value": "", "description": "Subject of email confirmation emails." }, "email_html": { "name": "Custom email (HTML)", "required": false, "requires_restart": false, "advanced": true, "type": "text", "value": "", "description": "Path to custom email html" }, "email_text": { "name": "Custom email (plaintext)", "required": false, "requires_restart": false, "advanced": true, "type": "text", "value": "", "description": "Path to custom email in plain text" } } }, "user_expiry": { "order": [], "meta": { "name": "User Expiry", "description": "When set on an invite, users will be deleted or disabled a specified amount of time after they create their account." }, "settings": { "behaviour": { "name": "Behaviour", "required": false, "requires_restart": false, "type": "select", "options": [ ["delete_user", "Delete user"], ["disable_user", "Disable user"] ], "value": "disable_user", "description": "Whether to delete or disable users on expiry." }, "send_email": { "name": "Send email", "required": false, "requires_restart": false, "type": "bool", "value": true, "depends_true": "messages|enabled", "description": "Send an email when a user's account expires." }, "subject": { "name": "Email subject", "required": false, "requires_restart": false, "depends_true": "messages|enabled", "type": "text", "value": "", "description": "Subject of user expiry emails." }, "email_html": { "name": "Custom email (HTML)", "required": false, "requires_restart": false, "advanced": true, "depends_true": "messages|enabled", "type": "text", "value": "", "description": "Path to custom email html" }, "email_text": { "name": "Custom email (plaintext)", "required": false, "requires_restart": false, "advanced": true, "depends_true": "messages|enabled", "type": "text", "value": "", "description": "Path to custom email in plain text" } } }, "disable_enable": { "order": [], "meta": { "name": "Account Disabling/Enabling", "description": "Subject/email files for account disabling/enabling emails.", "depends_true": "messages|enabled" }, "settings": { "subject_disabled": { "name": "Email subject (Disabled)", "required": false, "requires_restart": false, "type": "text", "value": "", "description": "Subject of account disabling emails." }, "subject_enabled": { "name": "Email subject (Enabled)", "required": false, "requires_restart": false, "type": "text", "value": "", "description": "Subject of account enabling emails." }, "disabled_html": { "name": "Custom disabling email (HTML)", "required": false, "requires_restart": false, "advanced": true, "type": "text", "value": "", "description": "Path to custom email html" }, "disabled_text": { "name": "Custom disabling email (plaintext)", "required": false, "requires_restart": false, "advanced": true, "type": "text", "value": "", "description": "Path to custom email in plain text" }, "enabled_html": { "name": "Custom enabling email (HTML)", "required": false, "requires_restart": false, "advanced": true, "type": "text", "value": "", "description": "Path to custom email html" }, "enabled_text": { "name": "Custom enabling email (plaintext)", "required": false, "requires_restart": false, "advanced": true, "type": "text", "value": "", "description": "Path to custom email in plain text" } } }, "deletion": { "order": [], "meta": { "name": "Account Deletion", "description": "Subject/email files for account deletion emails.", "depends_true": "messages|enabled" }, "settings": { "subject": { "name": "Email subject", "required": false, "requires_restart": false, "type": "text", "value": "", "description": "Subject of account deletion emails." }, "email_html": { "name": "Custom email (HTML)", "required": false, "requires_restart": false, "advanced": true, "type": "text", "value": "", "description": "Path to custom email html" }, "email_text": { "name": "Custom email (plaintext)", "required": false, "requires_restart": false, "advanced": true, "type": "text", "value": "", "description": "Path to custom email in plain text" } } }, "files": { "order": [], "meta": { "name": "File Storage", "description": "Optional settings for changing storage locations.", "advanced": true }, "settings": { "invites": { "name": "Invite Storage", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "Location of stored invites (json)." }, "password_resets": { "name": "Password Resets", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "Location of stored non-Jellyfin password resets (json)." }, "emails": { "name": "Email Addresses", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "Location of stored email addresses (json)." }, "users": { "name": "User storage", "required": false, "requires_restart": false, "type": "text", "value": "", "description": "Stores users temporarily when a user expiry is set." }, "ombi_template": { "name": "Ombi user template", "required": false, "requires_restart": false, "type": "text", "value": "", "description": "Location of stored Ombi user template." }, "user_profiles": { "name": "User Profiles", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "Location of stored user profiles (encompasses template and configuration and displayprefs) (json)" }, "html_templates": { "name": "Custom HTML Template Directory", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "Path to directory containing custom versions of web ui pages. See wiki for more info." }, "lang_files": { "name": "Custom language files directory", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "The path to a directory which following the same form as the internal 'lang/' directory. See GitHub for more info." }, "custom_emails": { "name": "Custom email content", "required": false, "requires_restart": false, "type": "text", "value": "", "description": "JSON file generated by program in settings, different from email_html/email_text. See wiki for more info." }, "telegram_users": { "name": "Telegram users", "required": false, "requires_restart": false, "type": "text", "value": "", "description": "Stores telegram user IDs and language preferences." }, "matrix_users": { "name": "Matrix users", "required": false, "requires_restart": false, "type": "text", "value": "", "description": "Stores matrix user IDs and language preferences." }, "matrix_sql": { "name": "Matrix encryption DB", "required": false, "requires_restart": false, "type": "text", "value": "", "description": "Stores cryptographic material for Matrix end-to-end encryption." }, "discord_users": { "name": "Discord users", "required": false, "requires_restart": false, "type": "text", "value": "", "description": "Stores discord user IDs and language preferences." }, "announcements": { "name": "Announcement templates", "required": false, "requires_restart": false, "type": "text", "value": "", "description": "Stores custom announcement templates." } } } } }