diff options
| author | Shyam Sunder | 2018-07-11 23:30:13 -0400 |
|---|---|---|
| committer | rr- | 2018-07-25 13:39:57 +0200 |
| commit | 6a6c4dc822344df01af0b3849083bc3ceda148e9 (patch) | |
| tree | 3a05c302814485a686e07f5db8cf825e5ab139c7 /server/szurubooru/config.py | |
| parent | 9730aa5c050352736327a992f9a428b6bc82cd75 (diff) | |
build: add Docker functionality and documentation
Diffstat (limited to 'server/szurubooru/config.py')
| -rw-r--r-- | server/szurubooru/config.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/server/szurubooru/config.py b/server/szurubooru/config.py index 567b457..3ddbea5 100644 --- a/server/szurubooru/config.py +++ b/server/szurubooru/config.py @@ -1,6 +1,7 @@ from typing import Dict import os import yaml +from szurubooru import errors def merge(left: Dict, right: Dict) -> Dict: @@ -15,12 +16,43 @@ def merge(left: Dict, right: Dict) -> Dict: return left +def docker_config() -> Dict: + for key in [ + 'POSTGRES_USER', + 'POSTGRES_PASSWORD', + 'POSTGRES_HOST', + 'ESEARCH_HOST' + ]: + if not os.getenv(key, False): + raise errors.ConfigError(f'Environment variable "{key}" not set') + return { + 'debug': True, + 'show_sql': int(os.getenv('LOG_SQL', 0)), + 'data_url': os.getenv('DATA_URL', '/data/'), + 'data_dir': '/data/', + 'database': 'postgres://%(user)s:%(pass)s@%(host)s:%(port)d/%(db)s' % { + 'user': os.getenv('POSTGRES_USER'), + 'pass': os.getenv('POSTGRES_PASSWORD'), + 'host': os.getenv('POSTGRES_HOST'), + 'port': int(os.getenv('POSTGRES_PORT', 5432)), + 'db': os.getenv('POSTGRES_DB', os.getenv('POSTGRES_USER')) + }, + 'elasticsearch': { + 'host': os.getenv('ESEARCH_HOST'), + 'port': int(os.getenv('ESEARCH_PORT', 9200)), + 'index': os.getenv('ESEARCH_INDEX', 'szurubooru') + } + } + + def read_config() -> Dict: with open('../config.yaml.dist') as handle: ret = yaml.load(handle.read()) if os.path.exists('../config.yaml'): with open('../config.yaml') as handle: ret = merge(ret, yaml.load(handle.read())) + if os.path.exists('/.dockerenv'): + ret = merge(ret, docker_config()) return ret |