This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
authentik/passbook/core/management/commands/web.py

37 lines
1.1 KiB
Python
Raw Normal View History

2019-02-08 13:57:59 +00:00
"""passbook Webserver management command"""
from logging import getLogger
import cherrypy
from django.conf import settings
2019-02-08 13:57:59 +00:00
from django.core.management.base import BaseCommand
2019-04-11 11:43:49 +00:00
from passbook.lib.config import CONFIG
from passbook.root.wsgi import application
2019-02-08 13:57:59 +00:00
LOGGER = getLogger(__name__)
class Command(BaseCommand):
"""Run CherryPy webserver"""
def handle(self, *args, **options):
"""passbook cherrypy server"""
cherrypy.config.update(CONFIG.get('web'))
cherrypy.tree.graft(application, '/')
# Mount NullObject to serve static files
cherrypy.tree.mount(None, settings.STATIC_URL, config={
'/': {
'tools.staticdir.on': True,
'tools.staticdir.dir': settings.STATIC_ROOT,
'tools.expires.on': True,
'tools.expires.secs': 86400,
'tools.gzip.on': True,
}
})
cherrypy.engine.start()
for file in CONFIG.loaded_file:
cherrypy.engine.autoreload.files.add(file)
LOGGER.info("Added '%s' to autoreload triggers", file)
cherrypy.engine.block()