From 68ab36fa302726e1a66a30a4485bb19b9e9c15a7 Mon Sep 17 00:00:00 2001 From: Chris Fulljames Date: Sun, 19 Jan 2025 10:47:40 -0500 Subject: [PATCH] Add systemd service files --- main.py | 4 ++-- requirements.txt | 1 + service/prod.service | 12 ++++++++++++ service/run.sh | 7 +++++++ service/test.service | 12 ++++++++++++ 5 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 service/prod.service create mode 100644 service/run.sh create mode 100644 service/test.service diff --git a/main.py b/main.py index 5bdf722..fca4eef 100644 --- a/main.py +++ b/main.py @@ -20,7 +20,7 @@ from flask import Flask, render_template, request, redirect, g, session, abort, send_from_directory, flash, get_flashed_messages from werkzeug.utils import secure_filename -DATA_DIR = Path(".") +DATA_DIR = Path(os.environ["DATA_DIR"]) if "DATA_DIR" in os.environ else Path(".") ################################################################################ # Logging @@ -38,7 +38,7 @@ root_logger.addHandler(handler) ################################################################################ app = Flask(__name__) -app.secret_key = "dev" +app.secret_key = os.environ["SECRET_KEY"] if "SECRET_KEY" in os.environ else "dev" app.config["MAX_CONTENT_LENGTH"] = 50 * 1024 * 1024 app.logger.addHandler(handler) diff --git a/requirements.txt b/requirements.txt index d9c96ab..6d89524 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ bcrypt bleach[css] flask +gunicorn diff --git a/service/prod.service b/service/prod.service new file mode 100644 index 0000000..9fcc4cc --- /dev/null +++ b/service/prod.service @@ -0,0 +1,12 @@ +[Unit] +Description=Little Song Place Production Server +After=multi-user.target + +[Service] +WorkingDirectory=/var/www/littlesongplace +ExecStart=/var/www/littlesongplace/service/run.sh 8080 /var/www/littlesongplace-data +Restart=always + +[Install] +WantedBy=multi-user.target + diff --git a/service/run.sh b/service/run.sh new file mode 100644 index 0000000..c6a4a53 --- /dev/null +++ b/service/run.sh @@ -0,0 +1,7 @@ +#!/bin/bash +PORT=$1 +export DATA_DIR=$2 +export SECRET_KEY=$(< "$DATA_DIR/secret.key") +. venv/bin/activate +gunicorn -w 4 -b 127.0.0.1:$PORT 'main:app' + diff --git a/service/test.service b/service/test.service new file mode 100644 index 0000000..ff2f783 --- /dev/null +++ b/service/test.service @@ -0,0 +1,12 @@ +[Unit] +Description=Little Song Place Test Server +After=multi-user.target + +[Service] +WorkingDirectory=/var/www/littlesongplace-test +ExecStart=/var/www/littlesongplace-test/service/run.sh 8081 /var/www/littlesongplace-test-data +Restart=always + +[Install] +WantedBy=multi-user.target + -- 2.39.5