{ "jellyfin": { "meta": { "name": "Jellyfin", "description": "Settings for connecting to Jellyfin" }, "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, "type": "text", "value": "jf-accounts", "description": "This and below settings will show on the Jellyfin dashboard when the program connects. You may as well leave them alone." }, "version": { "name": "Version Number", "required": true, "requires_restart": true, "type": "text", "value": "{version}" }, "device": { "name": "Device Name", "required": true, "requires_restart": true, "type": "text", "value": "jf-accounts" }, "device_id": { "name": "Device ID", "required": true, "requires_restart": true, "type": "text", "value": "jf-accounts-{version}" } }, "ui": { "meta": { "name": "General", "description": "Settings related to the UI and program functionality." }, "theme": { "name": "Look", "required": false, "requires_restart": true, "type": "select", "options": [ "Bootstrap (Light)", "Jellyfin (Dark)", "Custom CSS" ], "value": "Jellyfin (Dark)", "description": "Choose the look of jellyfin-accounts." }, "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." }, "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)" }, "debug": { "name": "Debug logging", "required": false, "requires_restart": true, "type": "bool", "value": false }, "contact_message": { "name": "Contact message", "required": false, "requires_restart": true, "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": true, "type": "text", "value": "Enter your details to create an account.", "description": "Display at top of invite form." }, "success_message": { "name": "Success message", "required": false, "requires_restart": true, "type": "text", "value": "Your account has been created. Click below to continue to Jellyfin.", "description": "Displayed when a user creates an account" }, "bs5": { "name": "Use Bootstrap 5", "required": false, "requires_restart": true, "type": "bool", "value": false, "description": "Use Bootstrap 5 (currently in alpha). This also removes the need for jQuery, so the page should load faster." } }, "password_validation": { "meta": { "name": "Password Validation", "description": "Password validation (minimum length, etc.)" }, "enabled": { "name": "Enabled", "required": false, "requires_restart": true, "type": "bool", "value": true }, "min_length": { "name": "Minimum Length", "requires_restart": true, "depends_true": "enabled", "type": "text", "value": "8" }, "upper": { "name": "Minimum uppercase characters", "requires_restart": true, "depends_true": "enabled", "type": "text", "value": "1" }, "lower": { "name": "Minimum lowercase characters", "requires_restart": true, "depends_true": "enabled", "type": "text", "value": "0" }, "number": { "name": "Minimum number count", "requires_restart": true, "depends_true": "enabled", "type": "text", "value": "1" }, "special": { "name": "Minimum number of special characters", "requires_restart": true, "depends_true": "enabled", "type": "text", "value": "0" } }, "email": { "meta": { "name": "Email", "description": "General email settings. Ignore if not using email features." }, "no_username": { "name": "Use email addresses as username", "required": false, "requires_restart": true, "depends_true": "method", "type": "bool", "value": false, "description": "Use email address from invite form as username on Jellyfin." }, "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, "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." }, "method": { "name": "Email method", "required": false, "requires_restart": false, "type": "select", "options": [ "smtp", "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" } }, "password_resets": { "meta": { "name": "Password Resets", "description": "Settings for the password reset handler." }, "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." }, "email_html": { "name": "Custom email (HTML)", "required": false, "requires_restart": false, "depends_true": "enabled", "type": "text", "value": "", "description": "Path to custom email html" }, "email_text": { "name": "Custom email (plaintext)", "required": false, "requires_restart": false, "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": "Password Reset - Jellyfin", "description": "Subject of password reset emails." } }, "invite_emails": { "meta": { "name": "Invite emails", "description": "Settings for sending invites directly to users." }, "enabled": { "name": "Enabled", "required": false, "requires_restart": true, "type": "bool", "value": true }, "email_html": { "name": "Custom email (HTML)", "required": false, "requires_restart": false, "depends_true": "enabled", "type": "text", "value": "", "description": "Path to custom email HTML" }, "email_text": { "name": "Custom email (plaintext)", "required": false, "requires_restart": false, "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": "Invite - Jellyfin", "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/invite", "description": "Base URL for jf-accounts. This is necessary because using a reverse proxy means the program has no way of knowing the URL itself." } }, "mailgun": { "meta": { "name": "Mailgun (Email)", "description": "Mailgun API connection 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": { "meta": { "name": "SMTP (Email)", "description": "SMTP Server connection settings." }, "encryption": { "name": "Encryption Method", "required": false, "requires_restart": false, "type": "select", "options": [ "ssl_tls", "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" } }, "files": { "meta": { "name": "File Storage", "description": "Optional settings for changing storage locations." }, "invites": { "name": "Invite Storage", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "Location of stored invites (json)." }, "emails": { "name": "Email Addresses", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "Location of stored email addresses (json)." }, "user_template": { "name": "User Template", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "Location of stored user policy template (json)." }, "user_configuration": { "name": "userConfiguration", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "Location of stored user configuration template (used for setting homescreen layout) (json)" }, "user_displayprefs": { "name": "displayPreferences", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "Location of stored displayPreferences template (also used for homescreen layout) (json)" }, "custom_css": { "name": "Custom CSS", "required": false, "requires_restart": true, "type": "text", "value": "", "description": "Location of custom bootstrap CSS." } } }