From 9a36724c6cb5bcdee037172d793b64ab39d87a45 Mon Sep 17 00:00:00 2001 From: Chelsea486MHz Date: Sun, 31 Dec 2023 14:59:41 +0100 Subject: [PATCH] update --- auth/Dockerfile | 1 - compute/Dockerfile | 2 -- compute/app.py | 10 +++++++--- compute/gunicorn_config.py | 14 ++++++++++++++ compute/requirements.txt | 4 ++++ deployments/docker-compose.yml | 25 ++++++++++++++----------- stargazer/config.py | 2 ++ 7 files changed, 41 insertions(+), 17 deletions(-) create mode 100644 compute/gunicorn_config.py create mode 100644 compute/requirements.txt create mode 100644 stargazer/config.py diff --git a/auth/Dockerfile b/auth/Dockerfile index 3626c38..7597d2b 100644 --- a/auth/Dockerfile +++ b/auth/Dockerfile @@ -22,7 +22,6 @@ FROM python:3.11 # App settings ENV DEBUG False WORKDIR /app -EXPOSE 5000 ENV PYTHONUNBUFFERED=1 # Install dependencies from the build image venv diff --git a/compute/Dockerfile b/compute/Dockerfile index 6c84884..7597d2b 100644 --- a/compute/Dockerfile +++ b/compute/Dockerfile @@ -22,8 +22,6 @@ FROM python:3.11 # App settings ENV DEBUG False WORKDIR /app -EXPOSE 5000 -ENV COQUI_TOS_AGREED=1 ENV PYTHONUNBUFFERED=1 # Install dependencies from the build image venv diff --git a/compute/app.py b/compute/app.py index f1c61a1..5c86b10 100644 --- a/compute/app.py +++ b/compute/app.py @@ -23,8 +23,12 @@ class Token(db.Model): token = db.Column(db.String(48), unique=True, nullable=False) -@app.route('/api/version') -def generate_step(): +@app.route('/api/common/type') +def api_common_type(): + return stargazer.common.version + +@app.route('/api/common/version') +def api_common_version(): print('Request received') # Check if the authorization token is included in the request headers @@ -40,7 +44,7 @@ def generate_step(): return 'Unauthorized', 401 print('Request authenticated') - return version + return stargazer.common.version if __name__ == '__main__': diff --git a/compute/gunicorn_config.py b/compute/gunicorn_config.py new file mode 100644 index 0000000..a93174b --- /dev/null +++ b/compute/gunicorn_config.py @@ -0,0 +1,14 @@ +import os + +# Restart Gunicorn every 950-1050 requests +# May mitigate memory leak attacks +max_requests = 1000 +max_requests_jitter = 50 + +listening_address = os.environ.get("LISTENING_ADDRESS", "0.0.0.0") +listening_port = os.environ.get("LISTENING_PORT", "5000") +bind = "{}:{}".format(listening_address, listening_port) + +# May thread starve /!\ +workers = 1 +timeout = 120 diff --git a/compute/requirements.txt b/compute/requirements.txt new file mode 100644 index 0000000..8ee0d5e --- /dev/null +++ b/compute/requirements.txt @@ -0,0 +1,4 @@ +gunicorn +flask +Flask-SQLAlchemy +PyMySQL \ No newline at end of file diff --git a/deployments/docker-compose.yml b/deployments/docker-compose.yml index afcb64e..d659fdd 100644 --- a/deployments/docker-compose.yml +++ b/deployments/docker-compose.yml @@ -1,22 +1,25 @@ version: '3' services: - compute-1: - build: ../compute - - compute-2: - build: ../compute - - compute-3: + compute: build: ../compute + restart: unless-stopped + depends_on: + - auth + - manager + environment: + TOKEN: 'Kq5AfYtpYkcGbPnm0z2I_SIRGRem-zKmXA5rnPguUIB7y2DNQTW1KIYouV9IaHH6' auth: build: ../auth + restart: unless-stopped + environment: + USER_TOKEN: 'DrERUGbWdDltQmkii0Mswney_dgDnUKFAwMC-TYB-C2zMnOuQeHgPtsHhBWzgoIg' manager: build: ../manager + restart: unless-stopped depends_on: - - compute-1 - - compute-2 - - compute-3 - - auth \ No newline at end of file + - auth + environment: + TOKEN: '3gEy0rWMRqXfJw9aLKzzSuhXggxGTLL4bYsTt-VdmFcmOWQ_ZCwTswvZM6kNVg2r' \ No newline at end of file diff --git a/stargazer/config.py b/stargazer/config.py new file mode 100644 index 0000000..24906b1 --- /dev/null +++ b/stargazer/config.py @@ -0,0 +1,2 @@ +version = "1.0" +type = "compute"