mirror of https://github.com/hrfee/jfa-go
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
753 lines
24 KiB
753 lines
24 KiB
{
|
|
"order": [
|
|
"jellyfin",
|
|
"ui",
|
|
"password_validation",
|
|
"email",
|
|
"password_resets",
|
|
"invite_emails",
|
|
"notifications",
|
|
"mailgun",
|
|
"smtp",
|
|
"ombi",
|
|
"deletion",
|
|
"files"
|
|
],
|
|
"jellyfin": {
|
|
"order": [
|
|
"username",
|
|
"password",
|
|
"server",
|
|
"public_server",
|
|
"client",
|
|
"version",
|
|
"device",
|
|
"device_id"
|
|
],
|
|
"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": "jfa-go",
|
|
"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": "jfa-go"
|
|
},
|
|
"device_id": {
|
|
"name": "Device ID",
|
|
"required": true,
|
|
"requires_restart": true,
|
|
"type": "text",
|
|
"value": "jfa-go-{version}"
|
|
}
|
|
},
|
|
"ui": {
|
|
"order": [
|
|
"theme",
|
|
"host",
|
|
"port",
|
|
"jellyfin_login",
|
|
"admin_only",
|
|
"username",
|
|
"password",
|
|
"email",
|
|
"debug",
|
|
"contact_message",
|
|
"help_message",
|
|
"success_message",
|
|
"bs5"
|
|
],
|
|
"meta": {
|
|
"name": "General",
|
|
"description": "Settings related to the UI and program functionality."
|
|
},
|
|
"theme": {
|
|
"name": "Default Look",
|
|
"required": false,
|
|
"requires_restart": true,
|
|
"type": "select",
|
|
"options": [
|
|
"Bootstrap (Light)",
|
|
"Jellyfin (Dark)",
|
|
"Custom CSS"
|
|
],
|
|
"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"
|
|
},
|
|
"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": {
|
|
"order": [
|
|
"enabled",
|
|
"min_length",
|
|
"upper",
|
|
"lower",
|
|
"number",
|
|
"special"
|
|
],
|
|
"meta": {
|
|
"name": "Password Validation",
|
|
"description": "Password validation (minimum length, etc.)"
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"email": {
|
|
"order": [
|
|
"no_username",
|
|
"use_24h",
|
|
"date_format",
|
|
"message",
|
|
"method",
|
|
"address",
|
|
"from"
|
|
],
|
|
"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": false,
|
|
"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": {
|
|
"order": [
|
|
"enabled",
|
|
"watch_directory",
|
|
"email_html",
|
|
"email_text",
|
|
"subject"
|
|
],
|
|
"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": {
|
|
"order": [
|
|
"enabled",
|
|
"email_html",
|
|
"email_text",
|
|
"subject",
|
|
"url_base"
|
|
],
|
|
"meta": {
|
|
"name": "Invite emails",
|
|
"description": "Settings for sending invites directly to users."
|
|
},
|
|
"enabled": {
|
|
"name": "Enabled",
|
|
"required": false,
|
|
"requires_restart": false,
|
|
"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 jfa-go. This is necessary because using a reverse proxy means the program has no way of knowing the URL itself."
|
|
}
|
|
},
|
|
"notifications": {
|
|
"order": [
|
|
"enabled",
|
|
"expiry_html",
|
|
"expiry_text",
|
|
"created_html",
|
|
"created_text"
|
|
],
|
|
"meta": {
|
|
"name": "Notifications",
|
|
"description": "Notification related 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,
|
|
"depends_true": "enabled",
|
|
"type": "text",
|
|
"value": "",
|
|
"description": "Path to expiry notification email HTML."
|
|
},
|
|
"expiry_text": {
|
|
"name": "Expiry email (Plaintext)",
|
|
"required": false,
|
|
"requires_restart": "false",
|
|
"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,
|
|
"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,
|
|
"depends_true": "enabled",
|
|
"type": "text",
|
|
"value": "",
|
|
"description": "Path to user creation notification email in plaintext."
|
|
}
|
|
},
|
|
"mailgun": {
|
|
"order": [
|
|
"api_url",
|
|
"api_key"
|
|
],
|
|
"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": {
|
|
"order": [
|
|
"encryption",
|
|
"server",
|
|
"port",
|
|
"password"
|
|
],
|
|
"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"
|
|
}
|
|
},
|
|
"ombi": {
|
|
"order": [
|
|
"enabled",
|
|
"server",
|
|
"api_key"
|
|
],
|
|
"meta": {
|
|
"name": "Ombi Integration",
|
|
"description": "Connect to Ombi to automatically create a new user's account. You'll need to create an Ombi user template."
|
|
},
|
|
"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."
|
|
}
|
|
},
|
|
"deletion": {
|
|
"order": [
|
|
"subject",
|
|
"email_html",
|
|
"email_text"
|
|
],
|
|
"meta": {
|
|
"name": "Account Deletion",
|
|
"description": "Subject/email files for account deletion emails."
|
|
},
|
|
"subject": {
|
|
"name": "Email subject",
|
|
"required": false,
|
|
"requires_restart": false,
|
|
"type": "text",
|
|
"value": "Your account was deleted - Jellyfin",
|
|
"description": "Subject of account deletion emails."
|
|
},
|
|
"email_html": {
|
|
"name": "Custom email (HTML)",
|
|
"required": false,
|
|
"requires_restart": false,
|
|
"type": "text",
|
|
"value": "",
|
|
"description": "Path to custom email html"
|
|
},
|
|
"email_text": {
|
|
"name": "Custom email (plaintext)",
|
|
"required": false,
|
|
"requires_restart": false,
|
|
"type": "text",
|
|
"value": "",
|
|
"description": "Path to custom email in plain text"
|
|
}
|
|
},
|
|
"files": {
|
|
"order": [
|
|
"invites",
|
|
"emails",
|
|
"ombi_template",
|
|
"user_template",
|
|
"user_configuration",
|
|
"user_displayprefs",
|
|
"user_profiles",
|
|
"custom_css"
|
|
],
|
|
"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)."
|
|
},
|
|
"ombi_template": {
|
|
"name": "Ombi user template",
|
|
"required": false,
|
|
"requires_restart": false,
|
|
"type": "text",
|
|
"value": "",
|
|
"description": "Location of stored Ombi user template."
|
|
},
|
|
"user_template": {
|
|
"name": "User Template",
|
|
"required": false,
|
|
"requires_restart": true,
|
|
"type": "text",
|
|
"value": "",
|
|
"description": "Deprecated. Location of stored user policy template (json)."
|
|
},
|
|
"user_configuration": {
|
|
"name": "userConfiguration",
|
|
"required": false,
|
|
"requires_restart": true,
|
|
"type": "text",
|
|
"value": "",
|
|
"description": "Deprecated. 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": "Deprecated. Location of stored displayPreferences template (also used for homescreen layout) (json)"
|
|
},
|
|
"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)"
|
|
},
|
|
"custom_css": {
|
|
"name": "Custom CSS",
|
|
"required": false,
|
|
"requires_restart": true,
|
|
"type": "text",
|
|
"value": "",
|
|
"description": "Location of custom bootstrap CSS."
|
|
}
|
|
}
|
|
} |