lookyloo/bin/start_website.py

42 lines
1.2 KiB
Python
Raw Normal View History

2019-01-23 15:13:29 +01:00
#!/usr/bin/env python3
import logging
2022-11-23 15:54:22 +01:00
import logging.config
2019-01-23 15:13:29 +01:00
from subprocess import Popen
from typing import Optional
2021-10-18 13:06:43 +02:00
from lookyloo.default import get_config, get_homedir, AbstractManager
2022-11-23 15:54:22 +01:00
logging.config.dictConfig(get_config('logging'))
class Website(AbstractManager):
2024-01-12 17:15:41 +01:00
def __init__(self, loglevel: Optional[int]=None) -> None:
super().__init__(loglevel)
self.script_name = 'website'
2024-01-12 17:15:41 +01:00
self.process: Popen = self._launch_website() # type: ignore[type-arg]
self.set_running()
2024-01-12 17:15:41 +01:00
def _launch_website(self) -> Popen: # type: ignore[type-arg]
website_dir = get_homedir() / 'website'
ip = get_config('generic', 'website_listen_ip')
port = get_config('generic', 'website_listen_port')
return Popen(['gunicorn', '-w', '10',
'--graceful-timeout', '2', '--timeout', '300',
'-b', f'{ip}:{port}',
'--log-level', 'info',
2023-10-11 15:02:11 +02:00
'--max-requests', '10000',
'web:app'],
cwd=website_dir)
2019-01-23 15:13:29 +01:00
2024-01-12 17:15:41 +01:00
def main() -> None:
w = Website()
w.run(sleep_in_sec=10)
if __name__ == '__main__':
main()