From a02c47cfa1f49076202dce32684841e5485a2cfe Mon Sep 17 00:00:00 2001 From: Roland Date: Thu, 18 Dec 2025 18:01:45 -0700 Subject: [PATCH] Adding wrolpi-app-dev which runs frontend in dev mode. --- controller/defaults.py | 9 +++++++++ controller/test/test_defaults.py | 5 ++++- etc/raspberrypios/wrolpi-app-dev.service | 16 ++++++++++++++++ etc/raspberrypios/wrolpi-app.service | 1 + 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 etc/raspberrypios/wrolpi-app-dev.service diff --git a/controller/defaults.py b/controller/defaults.py index 9ced9c46..2f26021f 100644 --- a/controller/defaults.py +++ b/controller/defaults.py @@ -50,6 +50,15 @@ DEFAULT_CONFIG = { "use_https": False, "description": "React frontend", }, + { + "name": "wrolpi-app-dev", + "systemd_name": "wrolpi-app-dev", + "port": 3000, + "viewable": False, + "use_https": False, + "description": "React frontend (Development)", + "show_only_when_running": True, + }, { "name": "wrolpi-help", "systemd_name": "wrolpi-help", diff --git a/controller/test/test_defaults.py b/controller/test/test_defaults.py index e996d239..c91b15e3 100644 --- a/controller/test/test_defaults.py +++ b/controller/test/test_defaults.py @@ -57,12 +57,15 @@ class TestManagedServicesConfig: def test_managed_services_count(self): """Should have expected number of managed services.""" services = DEFAULT_CONFIG["managed_services"] - assert len(services) == 10 + assert len(services) == 12 @pytest.mark.parametrize("name,expected", [ ("wrolpi-api", {"systemd_name": "wrolpi-api", "port": 8081, "viewable": True, "description": "Python API (Sanic)"}), + ("wrolpi-api-dev", + {"systemd_name": "wrolpi-api-dev", "port": 8081, "viewable": True, "show_only_when_running": True}), ("wrolpi-app", {"port": 3000, "viewable": False}), + ("wrolpi-app-dev", {"port": 3000, "viewable": False, "show_only_when_running": True}), ("nginx", {"port": 80}), ("postgresql", {"port": 5432, "viewable": False}), ("wrolpi-upgrade", {"port": None, "viewable": False, "show_only_when_running": True}), diff --git a/etc/raspberrypios/wrolpi-app-dev.service b/etc/raspberrypios/wrolpi-app-dev.service new file mode 100644 index 00000000..01e6ca27 --- /dev/null +++ b/etc/raspberrypios/wrolpi-app-dev.service @@ -0,0 +1,16 @@ +[Unit] +Description=WROLPi React APP (Development) +Wants=wrolpi-api.service +PartOf=wrolpi.target +Conflicts=wrolpi-app.service + +[Service] +Environment=PORT=3000 +ExecStart=/usr/bin/npm start +Group=wrolpi +User=wrolpi +WorkingDirectory=/opt/wrolpi/app/ +Nice=6 + +[Install] +WantedBy=default.target diff --git a/etc/raspberrypios/wrolpi-app.service b/etc/raspberrypios/wrolpi-app.service index 51bc0bec..b9dd0e98 100644 --- a/etc/raspberrypios/wrolpi-app.service +++ b/etc/raspberrypios/wrolpi-app.service @@ -2,6 +2,7 @@ Description=WROLPi React APP Wants=wrolpi-api.service PartOf=wrolpi.target +Conflicts=wrolpi-app-dev.service [Service] # Use explicit `serve.json` so `epub.html` is not lost.