diff --git a/config.json b/config.json index e72eab1..8aff6e8 100644 --- a/config.json +++ b/config.json @@ -1 +1 @@ -{"TITLE": "pyShelf E-Book Server", "VERSION": "0.7.0", "BOOKPATH": "", "DB_HOST": "localhost", "DB_PORT": "5432", "DATABASE": "pyshelf", "USER": "pyshelf", "PASSWORD": "pyshelf", "BOOKSHELF": "data/shelf.json", "ALLOWED_HOSTS": "*", "SECRET": "", "BUILD_MODE": "production"} +{"TITLE": "pyShelf E-Book Server", "VERSION": "0.7.0", "BOOKPATH": "/books", "DB_HOST": "localhost", "DB_PORT": "5432", "DATABASE": "pyshelf", "USER": "pyshelf", "PASSWORD": "pyshelf", "BOOKSHELF": "data/shelf.json", "ALLOWED_HOSTS": ["localhost", "127.0.0.1", "[::1]", "0.0.0.0"], "SECRET": "", "BUILD_MODE": "production"} diff --git a/docker-compose.yml b/docker-compose.yml index 189eac1..41c9655 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,15 +3,16 @@ version: "3.7" services: db: image: "postgres" + restart: always environment: - "POSTGRES_PASSWORD=pyshelf" - "POSTGRES_USER=pyshelf" - "POSTGRES_DB=pyshelf" volumes: - "db_data:/var/lib/postgresql/data/" - pyshelf: image: "pyshelf/pyshelf" + restart: always ports: - "8000:8000" - "1337:1337" @@ -19,6 +20,5 @@ services: - "${LOCAL_BOOK_DIR}:/books" depends_on: - db - volumes: db_data: diff --git a/docker/config.json b/docker/config.json index 809bd56..8aff6e8 100644 --- a/docker/config.json +++ b/docker/config.json @@ -1,14 +1 @@ -{ - "TITLE": "pyShelf E-Book Server", - "VERSION": "0.6.0 Docker", - "BOOKPATH": "/books", - "DB_HOST": "db", - "DB_PORT": "5432", - "DATABASE": "pyshelf", - "USER": "pyshelf", - "PASSWORD": "pyshelf", - "BOOKSHELF": "data/shelf.json", - "ALLOWED_HOSTS": "*", - "SECRET": "", - "BUILD_MODE": "production" -} +{"TITLE": "pyShelf E-Book Server", "VERSION": "0.7.0", "BOOKPATH": "/books", "DB_HOST": "localhost", "DB_PORT": "5432", "DATABASE": "pyshelf", "USER": "pyshelf", "PASSWORD": "pyshelf", "BOOKSHELF": "data/shelf.json", "ALLOWED_HOSTS": ["localhost", "127.0.0.1", "[::1]", "0.0.0.0"], "SECRET": "", "BUILD_MODE": "production"} diff --git a/src/backend/lib/config.py b/src/backend/lib/config.py index 43722d4..86fc816 100755 --- a/src/backend/lib/config.py +++ b/src/backend/lib/config.py @@ -1,7 +1,7 @@ import json import pathlib import re - +import os from loguru import logger @@ -14,6 +14,7 @@ class Config: Initialize main configuration options """ self.root = root + env = os.environ.copy() self._fp = "config.json" self._cp = pathlib.Path.joinpath(root, self._fp) self._data = self.open_file() @@ -21,23 +22,23 @@ class Config: self.logger except AttributeError: self.logger = self.get_logger() - self.book_path = self._data["BOOKPATH"] - self.TITLE = self._data["TITLE"] - self.VERSION = self._data["VERSION"] + self.book_path = env.get("BOOKPATH", self._data["BOOKPATH"]) + self.TITLE = env.get("TITLE", self._data["TITLE"]) + self.VERSION = env.get("VERSION", self._data["VERSION"]) self.TITLE = self.TITLE + " ver " + self.VERSION - self.book_shelf = self._data["BOOKSHELF"] - self.catalogue_db = self._data["DATABASE"] + self.book_shelf = env.get("BOOKSHELF", self._data["BOOKSHELF"]) + self.catalogue_db = env.get("DATABASE", self._data["DATABASE"]) self.user = self._data["USER"] self.password = self._data["PASSWORD"] - self.db_host = self._data["DB_HOST"] - self.db_port = self._data["DB_PORT"] + self.db_host = env.get("DB_HOST", self._data["DB_HOST"]) + self.db_port = env.get("DB_PORT", self._data["DB_PORT"]) self.file_array = [self.book_shelf] self.auto_scan = True - self.allowed_hosts = self._data["ALLOWED_HOSTS"] - self.db_user = self._data["USER"] - self.db_pass = self._data["PASSWORD"] - self.SECRET = self._data["SECRET"] - self.build_mode = self._data["BUILD_MODE"] + self.allowed_hosts = env.get("ALLOWED_HOSTS", self._data["ALLOWED_HOSTS"]) + self.db_user = env.get("USER", self._data["USER"]) + self.db_pass = env.get("PASSWORD", self._data["PASSWORD"]) + self.SECRET = env.get("SECRET", self._data["SECRET"]) + self.build_mode = env.get("BUILD_MODE", self._data["BUILD_MODE"]) def get_logger(self): _logger = logger