From 7233e8c235ffb0f65ee9f623536c6412120d29e1 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 8 Jan 2022 18:08:24 +1100 Subject: [PATCH] Download the latest configuration template file when building - So we don't have to manually copy it all the time! --- _includes/config.yaml | 84 +++++++++++++++++++++++++++++++++++++++++++ docs/faq.md | 3 +- main.py | 16 +++++++++ 3 files changed, 101 insertions(+), 2 deletions(-) diff --git a/_includes/config.yaml b/_includes/config.yaml index 443adcf..3472a37 100644 --- a/_includes/config.yaml +++ b/_includes/config.yaml @@ -14,6 +14,7 @@ database: # --- Available options: --- # ENGINE: Database engine. Selection from: + # - sqlite3 # - mysql # - postgresql # NAME: Database name @@ -22,6 +23,10 @@ database: # HOST: Database host address (if required) # PORT: Database host port (if required) + # --- Example Configuration - sqlite3 --- + # ENGINE: sqlite3 + # NAME: '/home/inventree/database.sqlite3' + # --- Example Configuration - MySQL --- #ENGINE: mysql #NAME: inventree @@ -63,6 +68,19 @@ currencies: # Email backend configuration # Ref: https://docs.djangoproject.com/en/dev/topics/email/ +# Available options: +# host: Email server host address +# port: Email port +# username: Account username +# password: Account password +# prefix: Email subject prefix +# tls: Enable TLS support +# ssl: Enable SSL support + +# Alternatively, these options can all be set using environment variables, +# with the INVENTREE_EMAIL_ prefix: +# e.g. INVENTREE_EMAIL_HOST / INVENTREE_EMAIL_PORT / INVENTREE_EMAIL_USERNAME +# Refer to the InvenTree documentation for more information email: # backend: 'django.core.mail.backends.smtp.EmailBackend' @@ -78,11 +96,33 @@ email: # Use the environment variable INVENTREE_DEBUG debug: True +# Set debug_toolbar to True to enable a debugging toolbar for InvenTree +# Note: This will only be displayed if DEBUG mode is enabled, +# and only if InvenTree is accessed from a local IP (127.0.0.1) +debug_toolbar: False + # Configure the system logging level # Use environment variable INVENTREE_LOG_LEVEL # Options: DEBUG / INFO / WARNING / ERROR / CRITICAL log_level: WARNING +# Allowed hosts (see ALLOWED_HOSTS in Django settings documentation) +# A list of strings representing the host/domain names that this Django site can serve. +# Default behaviour is to allow all hosts (THIS IS NOT SECURE!) +allowed_hosts: + - '*' + +# Cross Origin Resource Sharing (CORS) settings (see https://github.com/ottoyiu/django-cors-headers) +# Following parameters are +cors: + # CORS_ORIGIN_ALLOW_ALL - If True, the whitelist will not be used and all origins will be accepted. + allow_all: True + + # CORS_ORIGIN_WHITELIST - A list of origins that are authorized to make cross-site HTTP requests. Defaults to [] + # whitelist: + # - https://example.com + # - https://sub.example.com + # MEDIA_ROOT is the local filesystem location for storing uploaded files # By default, it is stored under /home/inventree/data/media # Use environment variable INVENTREE_MEDIA_ROOT @@ -92,3 +132,47 @@ media_root: '/home/inventree/data/media' # By default, it is stored under /home/inventree/data/static # Use environment variable INVENTREE_STATIC_ROOT static_root: '/home/inventree/data/static' + +# Optional URL schemes to allow in URL fields +# By default, only the following schemes are allowed: ['http', 'https', 'ftp', 'ftps'] +# Uncomment the lines below to allow extra schemes +#extra_url_schemes: +# - mailto +# - git +# - ssh + +# Login configuration +# How long do confirmation mail last? +# Use environment variable INVENTREE_LOGIN_CONFIRM_DAYS +#login_confirm_days: 3 +# How many wrong login attempts are permitted? +# Use environment variable INVENTREE_LOGIN_ATTEMPTS +#login_attempts: 5 + +# Permit custom authentication backends +#authentication_backends: +# - 'django.contrib.auth.backends.ModelBackend' + +# Custom middleware, sometimes needed alongside an authentication backend change. +#middleware: +# - 'django.middleware.security.SecurityMiddleware' +# - 'django.contrib.sessions.middleware.SessionMiddleware' +# - 'django.middleware.locale.LocaleMiddleware' +# - 'django.middleware.common.CommonMiddleware' +# - 'django.middleware.csrf.CsrfViewMiddleware' +# - 'corsheaders.middleware.CorsMiddleware' +# - 'django.contrib.auth.middleware.AuthenticationMiddleware' +# - 'django.contrib.messages.middleware.MessageMiddleware' +# - 'django.middleware.clickjacking.XFrameOptionsMiddleware' +# - 'InvenTree.middleware.AuthRequiredMiddleware' + +# Add SSO login-backends +# social_backends: +# - 'allauth.socialaccount.providers.keycloak' + +# Add specific settings +# social_providers: +# keycloak: +# KEYCLOAK_URL: 'https://keycloak.custom/auth' +# KEYCLOAK_REALM: 'master' + diff --git a/docs/faq.md b/docs/faq.md index 7cec9df..ba68ccf 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -47,5 +47,4 @@ invoke worker ``` !!! info "Supervisor" - -A better option is to manage the background worker process using a process manager such as supervisor. Refer to the [production server guide](./start/production.md). + A better option is to manage the background worker process using a process manager such as supervisor. Refer to the [production server guide](./start/production.md). diff --git a/main.py b/main.py index 4da2d6a..9f913bd 100644 --- a/main.py +++ b/main.py @@ -1,8 +1,24 @@ import os from posixpath import dirname +from urllib import request + + def define_env(env): + # Ensure that the config template is always up to date + CFG_URL = "https://raw.githubusercontent.com/inventree/InvenTree/master/InvenTree/config_template.yaml" + + response = request.urlopen(CFG_URL) + print(f"Reading config template from GitHub: Response {response.status}") + + if response.status == 200: + data = response.read() + + if len(data) > 0: + with open("_includes/config.yaml", "w") as f: + f.write(str(data.decode())) + @env.macro def listimages(subdir): """