mirror of
https://github.com/hrfee/jellyfin-accounts.git
synced 2024-12-22 09:00:14 +00:00
Remove config from readme, bump to 0.2.5
This commit is contained in:
parent
8e94f04d5a
commit
0bb54d1c45
133
README.md
133
README.md
@ -68,146 +68,23 @@ optional arguments:
|
|||||||
## Setup
|
## Setup
|
||||||
#### New user template
|
#### New user template
|
||||||
* You may want to restrict a user from accessing certain libraries (e.g 4K Movies), display their account on the login screen by default, or set a default homecrseen layout. Jellyfin stores these settings in the user's policy, configuration and displayPreferences.
|
* You may want to restrict a user from accessing certain libraries (e.g 4K Movies), display their account on the login screen by default, or set a default homecrseen layout. Jellyfin stores these settings in the user's policy, configuration and displayPreferences.
|
||||||
* Make a temporary account and change its settings, then run `jf-accounts --get_defaults`. Choose your user, and this data will be stored at the location you set in `user_template`, `user_configuration` and `user_displayprefs` (or their default locations), and used for all subsequent new accounts.
|
* Make a temporary account and configure it, then in the web UI, go into "Settings => Set new account defaults". Choose the account, and its configuration will be stored for future use.
|
||||||
#### Emails/Password Resets
|
#### Emails/Password Resets
|
||||||
* When someone initiates forget password on Jellyfin, a file named `passwordreset*.json` is created in its configuration directory. This directory is monitored and when created, the program reads the username, expiry time and PIN, puts it into a template and sends it to whatever address is specified in `emails.json`.
|
* When someone initiates forget password on Jellyfin, a file named `passwordreset*.json` is created in its configuration directory. This directory is monitored and when created, the program reads the username, expiry time and PIN, puts it into a template and sends it to whatever address is specified in `emails.json`.
|
||||||
* **The default forget password popup references the `passwordreset*.json` file created. This is confusing for users, so a quick fix is to edit the `MessageForgotPasswordFileCreated` string in Jellyfin's language folder.**
|
* **The default forget password popup references the `passwordreset*.json` file created. This is confusing for users, so a quick fix is to edit the `MessageForgotPasswordFileCreated` string in Jellyfin's language folder.**
|
||||||
* Currently, jellyfin-accounts supports generic SSL/TLS or STARTTLS secured SMTP, and the [mailgun](https://mailgun.com) REST API.
|
* Currently, jellyfin-accounts supports generic SSL/TLS or STARTTLS secured SMTP, and the [mailgun](https://mailgun.com) REST API.
|
||||||
* Email html is created using [mjml](https://mjml.io), and [jinja](https://github.com/pallets/jinja) templating is used. If you wish to create your own, ensure you use the same jinja expressions (`{{ pin }}`, etc.) as used in `data/email.mjml` or `invite-email.mjml`, and also create plain text versions for legacy email clients.
|
* Email html is created using [mjml](https://mjml.io), and [jinja](https://github.com/pallets/jinja) templating is used. If you wish to create your own, ensure you use the same jinja expressions (`{{ pin }}`, etc.) as used in `data/email.mjml` or `invite-email.mjml`, and also create plain text versions for legacy email clients.
|
||||||
|
|
||||||
### Donations
|
|
||||||
I strongly suggest you send your money to [Jellyfin](https://opencollective.com/jellyfin) or a good charity, but for those who want to help me out, a Paypal link is below.
|
|
||||||
|
|
||||||
[Donate](https://www.paypal.me/hrfee)
|
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
* Note: Make sure to put this behind a reverse proxy with HTTPS.
|
* Note: Make sure to put this behind a reverse proxy with HTTPS.
|
||||||
|
|
||||||
On first run, access the setup wizard at `0.0.0.0:8056`. When finished, restart the program.
|
On first run, access the setup wizard at `0.0.0.0:8056`. When finished, restart the program.
|
||||||
|
|
||||||
The configuration is stored at `~/.jf-accounts/config.ini`.
|
The configuration is stored at `~/.jf-accounts/config.ini`. Settings can be changed through the web UI, or by manually editing the file.
|
||||||
|
|
||||||
For detailed descriptions of each setting, see [setup](https://github.com/hrfee/jellyfin-accounts/wiki/Setup).
|
For detailed descriptions of each setting, see [setup](https://github.com/hrfee/jellyfin-accounts/wiki/Setup).
|
||||||
|
|
||||||
|
### Donations
|
||||||
|
I strongly suggest you send your money to [Jellyfin](https://opencollective.com/jellyfin) or a good charity, but for those who want to help me out, a Paypal link is below.
|
||||||
|
|
||||||
```
|
[Donate](https://www.paypal.me/hrfee)
|
||||||
[jellyfin]
|
|
||||||
; It is reccommended to create a limited admin account for this program.
|
|
||||||
username = username
|
|
||||||
password = password
|
|
||||||
; Jellyfin server address. Can be public, or local for security purposes.
|
|
||||||
server = http://jellyfin.local:8096
|
|
||||||
; Publicly accessible Jellyfin address, used on invite form.
|
|
||||||
; Leave blank to use the same address as above.
|
|
||||||
public_server = https://jellyf.in:443
|
|
||||||
client = jf-accounts
|
|
||||||
version = 0.1
|
|
||||||
device = jf-accounts
|
|
||||||
device_id = jf-accounts-0.1
|
|
||||||
|
|
||||||
[ui]
|
|
||||||
; Set 0.0.0.0 to run localhost
|
|
||||||
host = 0.0.0.0
|
|
||||||
port = 8056
|
|
||||||
; Enable this to use Jellyfin users instead of the below username and pw.
|
|
||||||
jellyfin_login = true
|
|
||||||
; Allows only admin users on Jellyfin to access admin page.
|
|
||||||
admin_only = true
|
|
||||||
; Username to use on admin page... (leave blank if using jellyfin_login)
|
|
||||||
username = your username
|
|
||||||
; ..and its corresponding password (leave blank if using jellyfin_login)
|
|
||||||
password = your password
|
|
||||||
|
|
||||||
debug = false
|
|
||||||
|
|
||||||
; Displayed at the bottom of all pages except admin
|
|
||||||
contact_message = Need help? contact me.
|
|
||||||
; Displayed at top of form page.
|
|
||||||
help_message = Enter your details to create an account.
|
|
||||||
; Displayed when an account is created.
|
|
||||||
success_message = Your account has been created. Click below to continue to Jellyfin.
|
|
||||||
|
|
||||||
[password_validation]
|
|
||||||
; Enables password validation.
|
|
||||||
enabled = true
|
|
||||||
; Min. password length
|
|
||||||
min_length = 8
|
|
||||||
; Min. number of uppercase characters
|
|
||||||
upper = 1
|
|
||||||
; Min. number of lowercase characters
|
|
||||||
lower = 0
|
|
||||||
; Min. number of numbers
|
|
||||||
number = 1
|
|
||||||
; Min. number of special characters
|
|
||||||
special = 0
|
|
||||||
|
|
||||||
[email]
|
|
||||||
; When true, disables username input on invite form and sets the Jellyfin username to the email address
|
|
||||||
no_username = false
|
|
||||||
; Leave the rest of this section if you aren't using any email-related features.
|
|
||||||
use_24h = true
|
|
||||||
; Date format follows datetime's strftime.
|
|
||||||
date_format = %d/%m/%y
|
|
||||||
; Displayed at bottom of emails
|
|
||||||
message = Need help? contact me.
|
|
||||||
; Mail methods: mailgun, smtp
|
|
||||||
method = smtp
|
|
||||||
; Address to send from
|
|
||||||
address = jellyfin@jellyf.in
|
|
||||||
; The name of the sender
|
|
||||||
from = Jellyfin
|
|
||||||
|
|
||||||
[password_resets]
|
|
||||||
; Enable to store provided email addresses, monitor jellyfin directory for pw-resets, and send pin
|
|
||||||
enabled = true
|
|
||||||
; Directory to monitor for passwordReset*.json files. Usually the jellyfin config directory
|
|
||||||
watch_directory = /path/to/jellyfin
|
|
||||||
; Path to custom email html. If blank, uses the internal template.
|
|
||||||
email_html =
|
|
||||||
; Path to alternate plaintext email. If blank, uses the internal template.
|
|
||||||
email_text =
|
|
||||||
; Subject of emails
|
|
||||||
subject = Password Reset - Jellyfin
|
|
||||||
|
|
||||||
[invite_emails]
|
|
||||||
; If enabled, allows one to send an invite directly to an email address.
|
|
||||||
enabled = true
|
|
||||||
; Path to custom email html. If blank, uses the internal template.
|
|
||||||
email_html =
|
|
||||||
; Path to alternate plaintext email. If blank, uses the internal template.
|
|
||||||
email_text =
|
|
||||||
subject = Invite - Jellyfin
|
|
||||||
; Base url for jf-accounts. This necessary because most will use a reverse proxy, so the program has no other way of knowing what URL to send.
|
|
||||||
url_base = http://accounts.jellyf.in:8056/invite
|
|
||||||
|
|
||||||
[mailgun]
|
|
||||||
|
|
||||||
api_url = https://api.mailgun.net...
|
|
||||||
api_key = your api key
|
|
||||||
|
|
||||||
[smtp]
|
|
||||||
; Choose between ssl_tls and starttls. Your provider should tell you which to use, but generally SSL/TLS is 465, STARTTLS 587
|
|
||||||
encryption = starttls
|
|
||||||
server = smtp.jellyf.in
|
|
||||||
; Uses SMTP_SSL, so make sure the port is for this, not starttls.
|
|
||||||
port = 465
|
|
||||||
password = smtp password
|
|
||||||
|
|
||||||
[files]
|
|
||||||
; When the below paths are left blank, files are stored in ~/.jf-accounts/.
|
|
||||||
|
|
||||||
; Path to store valid invites.
|
|
||||||
invites =
|
|
||||||
; Path to store emails addresses in JSON
|
|
||||||
emails =
|
|
||||||
; Path to the user policy template. Can be acquired with get-defaults (jf-accounts -g).
|
|
||||||
user_template =
|
|
||||||
; Path to the user configuration template (part of homescreen layout). Can be acquired with get-defaults (jf-accounts -g).
|
|
||||||
user_configuration =
|
|
||||||
; Path to the user display preferences template (part of homescreen layout). Can be acquired with get-defaults (jf-accounts -g).
|
|
||||||
user_displayprefs =
|
|
||||||
; Path to custom bootstrap.css
|
|
||||||
custom_css =
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,9 +9,9 @@ server = http://jellyfin.local:8096
|
|||||||
public_server = https://jellyf.in:443
|
public_server = https://jellyf.in:443
|
||||||
; this and below settings will show on the jellyfin dashboard when the program connects. you may as well leave them alone.
|
; this and below settings will show on the jellyfin dashboard when the program connects. you may as well leave them alone.
|
||||||
client = jf-accounts
|
client = jf-accounts
|
||||||
version = 0.2.4
|
version = 0.2.5
|
||||||
device = jf-accounts
|
device = jf-accounts
|
||||||
device_id = jf-accounts-0.2.4
|
device_id = jf-accounts-0.2.5
|
||||||
|
|
||||||
[ui]
|
[ui]
|
||||||
; settings related to the ui and program functionality.
|
; settings related to the ui and program functionality.
|
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
__version__ = "0.2.2"
|
__version__ = "0.2.5"
|
||||||
|
|
||||||
import secrets
|
import secrets
|
||||||
import configparser
|
import configparser
|
||||||
@ -56,7 +56,7 @@ if data_dir.exists() is False or (data_dir / "config.ini").exists() is False:
|
|||||||
from jellyfin_accounts.generate_ini import generate_ini
|
from jellyfin_accounts.generate_ini import generate_ini
|
||||||
|
|
||||||
default_path = local_dir / "config-default.ini"
|
default_path = local_dir / "config-default.ini"
|
||||||
generate_ini(config_base_path, default_path)
|
generate_ini(config_base_path, default_path, __version__)
|
||||||
shutil.copy(str(default_path), str(config_path))
|
shutil.copy(str(default_path), str(config_path))
|
||||||
print("Setup through the web UI, or quit and edit the configuration manually.")
|
print("Setup through the web UI, or quit and edit the configuration manually.")
|
||||||
first_run = True
|
first_run = True
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
"required": true,
|
"required": true,
|
||||||
"requires_restart": true,
|
"requires_restart": true,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
"value": "0.2.4"
|
"value": "{version}"
|
||||||
},
|
},
|
||||||
"device": {
|
"device": {
|
||||||
"name": "Device Name",
|
"name": "Device Name",
|
||||||
@ -62,7 +62,7 @@
|
|||||||
"required": true,
|
"required": true,
|
||||||
"requires_restart": true,
|
"requires_restart": true,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
"value": "jf-accounts-0.2.4"
|
"value": "jf-accounts-{version}"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ui": {
|
"ui": {
|
||||||
|
@ -3,7 +3,7 @@ import json
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
def generate_ini(base_file, ini_file):
|
def generate_ini(base_file, ini_file, version):
|
||||||
"""
|
"""
|
||||||
Generates .ini file from config-base file.
|
Generates .ini file from config-base file.
|
||||||
"""
|
"""
|
||||||
@ -25,6 +25,11 @@ def generate_ini(base_file, ini_file):
|
|||||||
value = str(value)
|
value = str(value)
|
||||||
ini.set(section, entry, value)
|
ini.set(section, entry, value)
|
||||||
|
|
||||||
|
ini["jellyfin"]["version"] = version
|
||||||
|
ini["jellyfin"]["device_id"] = ini["jellyfin"]["device_id"].replace(
|
||||||
|
"{version}", version
|
||||||
|
)
|
||||||
|
|
||||||
with open(Path(ini_file), "w") as config_file:
|
with open(Path(ini_file), "w") as config_file:
|
||||||
ini.write(config_file)
|
ini.write(config_file)
|
||||||
return True
|
return True
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "jellyfin-accounts"
|
name = "jellyfin-accounts"
|
||||||
version = "0.2.4"
|
version = "0.2.5"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
description = "A simple account management system for Jellyfin"
|
description = "A simple account management system for Jellyfin"
|
||||||
authors = ["Harvey Tindall <harveyltindall@gmail.com>"]
|
authors = ["Harvey Tindall <harveyltindall@gmail.com>"]
|
||||||
|
Loading…
Reference in New Issue
Block a user