mirror of
https://github.com/hrfee/jfa-go.git
synced 2024-12-23 01:20:11 +00:00
1467 lines
60 KiB
JSON
1467 lines
60 KiB
JSON
{
|
|
"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."
|
|
},
|
|
"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": "URL Base",
|
|
"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."
|
|
}
|
|
}
|
|
},
|
|
"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."
|
|
}
|
|
}
|
|
},
|
|
"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."
|
|
}
|
|
}
|
|
},
|
|
"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."
|
|
},
|
|
"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."
|
|
},
|
|
"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."
|
|
},
|
|
"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."
|
|
},
|
|
"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."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|