Added separate public & private jellyfin address option

This commit is contained in:
Harvey Tindall 2020-06-03 12:17:29 +01:00
parent cb07cbb5bf
commit 78de153557
4 changed files with 20 additions and 11 deletions

View File

@ -93,8 +93,11 @@ For detailed descriptions of each setting, see [setup](https://github.com/hrfee/
; It is reccommended to create a limited admin account for this program. ; It is reccommended to create a limited admin account for this program.
username = username username = username
password = password password = password
; Server will also be used in the invite form, so make sure it's publicly accessible. ; Jellyfin server address. Can be public, or local for security purposes.
server = https://jellyf.in:443 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 client = jf-accounts
version = 0.1 version = 0.1
device = jf-accounts device = jf-accounts

View File

@ -2,8 +2,11 @@
; It is reccommended to create a limited admin account for this program. ; It is reccommended to create a limited admin account for this program.
username = username username = username
password = password password = password
; Server will also be used in the invite form, so make sure it's publicly accessible. ; Jellyfin server address. Can be public, or local for security purposes.
server = https://jellyf.in:443 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 client = jf-accounts
version = 0.1 version = 0.1
device = jf-accounts device = jf-accounts

View File

@ -60,7 +60,7 @@ def inviteProxy(path):
contactMessage=config['ui']['contact_message'], contactMessage=config['ui']['contact_message'],
helpMessage=config['ui']['help_message'], helpMessage=config['ui']['help_message'],
successMessage=config['ui']['success_message'], successMessage=config['ui']['success_message'],
jfLink=config['jellyfin']['server'], jfLink=config['jellyfin']['public_server'],
validate=config.getboolean( validate=config.getboolean(
'password_validation', 'password_validation',
'enabled'), 'enabled'),

View File

@ -102,7 +102,7 @@ def default_css():
css = {} css = {}
css = default_css() css = default_css()
if 'custom_css' in config['files']: if 'custom_css' in config['files']:
if config['files']['custom_css'] != '': if config['files']['custom_css'] != '':
try: try:
shutil.copy(config['files']['custom_css'], shutil.copy(config['files']['custom_css'],
@ -113,8 +113,8 @@ if 'custom_css' in config['files']:
css['crossorigin'] = '' css['crossorigin'] = ''
except FileNotFoundError: except FileNotFoundError:
log.error(f'Custom CSS {config["files"]["custom_css"]} not found, using default.') log.error(f'Custom CSS {config["files"]["custom_css"]} not found, using default.')
if ('email_html' not in config['password_resets'] or if ('email_html' not in config['password_resets'] or
config['password_resets']['email_html'] == ''): config['password_resets']['email_html'] == ''):
log.debug('Using default password reset email HTML template') log.debug('Using default password reset email HTML template')
@ -134,6 +134,9 @@ if ('email_text' not in config['invite_emails'] or
log.debug('Using default invite email plaintext template') log.debug('Using default invite email plaintext template')
config['invite_emails']['email_text'] = str(local_dir / config['invite_emails']['email_text'] = str(local_dir /
'invite-email.txt') 'invite-email.txt')
if ('public_server' not in config['jellyfin'] or
config['jellyfin']['public_server'] == ''):
config['jellyfin']['public_server'] = config['jellyfin']['server']
if args.get_policy: if args.get_policy:
import json import json
@ -163,13 +166,13 @@ else:
def signal_handler(sig, frame): def signal_handler(sig, frame):
print('Quitting...') print('Quitting...')
sys.exit(0) sys.exit(0)
signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler) signal.signal(signal.SIGTERM, signal_handler)
app = Flask(__name__, root_path=str(local_dir)) app = Flask(__name__, root_path=str(local_dir))
app.config['DEBUG'] = config.getboolean('ui', 'debug') app.config['DEBUG'] = config.getboolean('ui', 'debug')
app.config['SECRET_KEY'] = secrets.token_urlsafe(16) app.config['SECRET_KEY'] = secrets.token_urlsafe(16)
if __name__ == '__main__': if __name__ == '__main__':
from waitress import serve from waitress import serve
if first_run: if first_run:
@ -180,7 +183,7 @@ else:
serve(app, serve(app,
host=host, host=host,
port=port) port=port)
else: else:
import jellyfin_accounts.web_api import jellyfin_accounts.web_api
import jellyfin_accounts.web import jellyfin_accounts.web
host = config['ui']['host'] host = config['ui']['host']