Merge pull request #72 from k2patel/env-variables

Updating config file to look for env. variable, if not available use …
This commit is contained in:
th3r00t
2022-02-09 01:20:57 -05:00
committed by GitHub
4 changed files with 18 additions and 30 deletions

2
config.json vendored
View File

@@ -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"}

4
docker-compose.yml vendored
View File

@@ -3,15 +3,16 @@ version: "3.7"
services: services:
db: db:
image: "postgres" image: "postgres"
restart: always
environment: environment:
- "POSTGRES_PASSWORD=pyshelf" - "POSTGRES_PASSWORD=pyshelf"
- "POSTGRES_USER=pyshelf" - "POSTGRES_USER=pyshelf"
- "POSTGRES_DB=pyshelf" - "POSTGRES_DB=pyshelf"
volumes: volumes:
- "db_data:/var/lib/postgresql/data/" - "db_data:/var/lib/postgresql/data/"
pyshelf: pyshelf:
image: "pyshelf/pyshelf" image: "pyshelf/pyshelf"
restart: always
ports: ports:
- "8000:8000" - "8000:8000"
- "1337:1337" - "1337:1337"
@@ -19,6 +20,5 @@ services:
- "${LOCAL_BOOK_DIR}:/books" - "${LOCAL_BOOK_DIR}:/books"
depends_on: depends_on:
- db - db
volumes: volumes:
db_data: db_data:

15
docker/config.json vendored
View File

@@ -1,14 +1 @@
{ {"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"}
"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"
}

View File

@@ -1,7 +1,7 @@
import json import json
import pathlib import pathlib
import re import re
import os
from loguru import logger from loguru import logger
@@ -14,6 +14,7 @@ class Config:
Initialize main configuration options Initialize main configuration options
""" """
self.root = root self.root = root
env = os.environ.copy()
self._fp = "config.json" self._fp = "config.json"
self._cp = pathlib.Path.joinpath(root, self._fp) self._cp = pathlib.Path.joinpath(root, self._fp)
self._data = self.open_file() self._data = self.open_file()
@@ -21,23 +22,23 @@ class Config:
self.logger self.logger
except AttributeError: except AttributeError:
self.logger = self.get_logger() self.logger = self.get_logger()
self.book_path = self._data["BOOKPATH"] self.book_path = env.get("BOOKPATH", self._data["BOOKPATH"])
self.TITLE = self._data["TITLE"] self.TITLE = env.get("TITLE", self._data["TITLE"])
self.VERSION = self._data["VERSION"] self.VERSION = env.get("VERSION", self._data["VERSION"])
self.TITLE = self.TITLE + " ver " + self.VERSION self.TITLE = self.TITLE + " ver " + self.VERSION
self.book_shelf = self._data["BOOKSHELF"] self.book_shelf = env.get("BOOKSHELF", self._data["BOOKSHELF"])
self.catalogue_db = self._data["DATABASE"] self.catalogue_db = env.get("DATABASE", self._data["DATABASE"])
self.user = self._data["USER"] self.user = self._data["USER"]
self.password = self._data["PASSWORD"] self.password = self._data["PASSWORD"]
self.db_host = self._data["DB_HOST"] self.db_host = env.get("DB_HOST", self._data["DB_HOST"])
self.db_port = self._data["DB_PORT"] self.db_port = env.get("DB_PORT", self._data["DB_PORT"])
self.file_array = [self.book_shelf] self.file_array = [self.book_shelf]
self.auto_scan = True self.auto_scan = True
self.allowed_hosts = self._data["ALLOWED_HOSTS"] self.allowed_hosts = env.get("ALLOWED_HOSTS", self._data["ALLOWED_HOSTS"])
self.db_user = self._data["USER"] self.db_user = env.get("USER", self._data["USER"])
self.db_pass = self._data["PASSWORD"] self.db_pass = env.get("PASSWORD", self._data["PASSWORD"])
self.SECRET = self._data["SECRET"] self.SECRET = env.get("SECRET", self._data["SECRET"])
self.build_mode = self._data["BUILD_MODE"] self.build_mode = env.get("BUILD_MODE", self._data["BUILD_MODE"])
def get_logger(self): def get_logger(self):
_logger = logger _logger = logger