From af36e860595e688d2634df76766587a235aaa49e Mon Sep 17 00:00:00 2001 From: eneller Date: Fri, 21 Mar 2025 20:16:59 +0100 Subject: [PATCH] begin gunicorn --- pyproject.toml | 1 + src/gunicorn.py | 18 ++++++++++++++++++ uv.lock | 23 +++++++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 src/gunicorn.py diff --git a/pyproject.toml b/pyproject.toml index 52fb92d..4ad963c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,6 +8,7 @@ dependencies = [ "celery>=5.4.0", "django>=5.1.6", "epub2go", + "gunicorn>=23.0.0", "python-dotenv>=1.0.1", "pywatchman>=2.0.0", ] diff --git a/src/gunicorn.py b/src/gunicorn.py new file mode 100644 index 0000000..b4c4dd1 --- /dev/null +++ b/src/gunicorn.py @@ -0,0 +1,18 @@ +# Django WSGI application path in pattern MODULE_NAME:VARIABLE_NAME +wsgi_app = "epub2go_web.wsgi" +# The granularity of Error log outputs +loglevel = "debug" +# The number of worker processes for handling requests +workers = 4 +# The socket to bind +bind = "127.0.0.1:50000" +# Restart workers when code changes (development only!) +#reload = True +# Write access and error info to /var/log +#accesslog = errorlog = "/var/log/gunicorn/dev.log" +# Redirect stdout/stderr to log file +capture_output = True +# PID file so you can easily fetch process ID +#pidfile = "/var/run/gunicorn/dev.pid" +# Daemonize the Gunicorn process (detach & enter background) +#daemon = True diff --git a/uv.lock b/uv.lock index a6a0e00..1513c4a 100644 --- a/uv.lock +++ b/uv.lock @@ -201,6 +201,7 @@ dependencies = [ { name = "celery" }, { name = "django" }, { name = "epub2go" }, + { name = "gunicorn" }, { name = "python-dotenv" }, { name = "pywatchman" }, ] @@ -210,10 +211,23 @@ requires-dist = [ { name = "celery", specifier = ">=5.4.0" }, { name = "django", specifier = ">=5.1.6" }, { name = "epub2go", git = "https://github.com/eneller/epub2go.py" }, + { name = "gunicorn", specifier = ">=23.0.0" }, { name = "python-dotenv", specifier = ">=1.0.1" }, { name = "pywatchman", specifier = ">=2.0.0" }, ] +[[package]] +name = "gunicorn" +version = "23.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/34/72/9614c465dc206155d93eff0ca20d42e1e35afc533971379482de953521a4/gunicorn-23.0.0.tar.gz", hash = "sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec", size = 375031 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/7d/6dac2a6e1eba33ee43f318edbed4ff29151a49b5d37f080aad1e6469bca4/gunicorn-23.0.0-py3-none-any.whl", hash = "sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d", size = 85029 }, +] + [[package]] name = "idna" version = "3.10" @@ -237,6 +251,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/23/29/f4f109c490d3cab3cbbba53403895e6052c84a40f18c28f75cd4dd53f11d/kombu-5.5.0-py3-none-any.whl", hash = "sha256:526c6cf038c986b998639109a1eb762502f831e8da148cc928f1f95cd91eb874", size = 209313 }, ] +[[package]] +name = "packaging" +version = "24.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, +] + [[package]] name = "prompt-toolkit" version = "3.0.50"