mirror of
https://github.com/MikroWizard/mikroman.git
synced 2025-07-19 18:24:32 +02:00
MikroWizard Initial commit | MikroMan Welcome to the world :)
This commit is contained in:
commit
8c49b9a55d
96 changed files with 12274 additions and 0 deletions
82
py/config.py
Normal file
82
py/config.py
Normal file
|
@ -0,0 +1,82 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# config.py: configuration data of this app
|
||||
# MikroWizard.com , Mikrotik router management solution
|
||||
# Author: sepehr.ha@gmail.com thanks to Tomi.Mickelsson@iki.fi
|
||||
|
||||
import os
|
||||
import redis
|
||||
import json
|
||||
import time
|
||||
|
||||
# first load config from a json file,
|
||||
srvconf = json.load(open(os.environ["PYSRV_CONFIG_PATH"]))
|
||||
|
||||
# then override with env variables
|
||||
for k, v in os.environ.items():
|
||||
if k.startswith("PYSRV_"):
|
||||
print("env override ", k)
|
||||
srvconf[k] = v
|
||||
|
||||
# grand switch to production!
|
||||
IS_PRODUCTION = bool(srvconf['PYSRV_IS_PRODUCTION'] or False)
|
||||
|
||||
# local dev flag
|
||||
IS_LOCAL_DEV = os.environ.get("FLASK_ENV") == "development" and not IS_PRODUCTION
|
||||
# IS_LOCAL_DEV = False
|
||||
|
||||
print("\nCONFIG: prod={},localdev={} ({})\n".format(
|
||||
IS_PRODUCTION, IS_LOCAL_DEV, srvconf["name"]))
|
||||
|
||||
# database config
|
||||
DATABASE_HOST = srvconf['PYSRV_DATABASE_HOST']
|
||||
DATABASE_PORT = srvconf['PYSRV_DATABASE_PORT']
|
||||
DATABASE_NAME = srvconf['PYSRV_DATABASE_NAME']
|
||||
DATABASE_USER = srvconf['PYSRV_DATABASE_USER']
|
||||
DATABASE_PASSWORD = srvconf['PYSRV_DATABASE_PASSWORD']
|
||||
CRYPT_KEY = srvconf['PYSRV_CRYPT_KEY']
|
||||
BACKUP_DIR = srvconf['PYSRV_BACKUP_FOLDER']
|
||||
FIRM_DIR = srvconf['PYSRV_FIRM_FOLDER']
|
||||
IS_SQLITE = DATABASE_HOST.startswith("/")
|
||||
|
||||
# Flask + session config
|
||||
# http://flask.pocoo.org/docs/1.0/config/
|
||||
# https://pythonhosted.org/Flask-Session/
|
||||
redishost = srvconf['PYSRV_REDIS_HOST']
|
||||
|
||||
flask_config = dict(
|
||||
# app config
|
||||
TESTING = IS_LOCAL_DEV,
|
||||
SECRET_KEY = None, # we have server-side sessions
|
||||
|
||||
# session config - hardcoded to Redis
|
||||
SESSION_TYPE = 'redis',
|
||||
SESSION_REDIS = redis.from_url('redis://{}'.format(redishost)),
|
||||
SESSION_COOKIE_NAME = "Session-Id",
|
||||
SESSION_COOKIE_SECURE = srvconf['PYSRV_COOKIE_HTTPS_ONLY'] if not IS_LOCAL_DEV else False, # require https?
|
||||
SESSION_COOKIE_HTTPONLY = True, # don't allow JS cookie access
|
||||
SESSION_KEY_PREFIX = 'mikrowizard::',
|
||||
PERMANENT_SESSION_LIFETIME = 60*60*24*30, # 1 month
|
||||
SESSION_COOKIE_DOMAIN = srvconf['PYSRV_DOMAIN_NAME'] or None if not IS_LOCAL_DEV else None,
|
||||
)
|
||||
|
||||
# dump sql statements in log file?
|
||||
PYSRV_LOG_SQL = srvconf.get('PYSRV_LOG_SQL')
|
||||
|
||||
# allow API access to this domain
|
||||
CORS_ALLOW_ORIGIN = srvconf.get('PYSRV_CORS_ALLOW_ORIGIN', '*')
|
||||
|
||||
START_TIME = int(time.time())
|
||||
|
||||
|
||||
def started_ago(as_string=False):
|
||||
"""Returns how many seconds ago the server was started. Or as a string."""
|
||||
|
||||
ago = int(time.time()) - START_TIME
|
||||
if as_string:
|
||||
return "{}d {:02d}:{:02d}:{:02d}".format(int(ago/60/60/24),
|
||||
int(ago/60/60)%24, int(ago/60)%60, ago%60)
|
||||
else:
|
||||
return ago
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue