P4: Production hardening — reconnect, auto-scene-load, service cleanup
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# OPLabs Mixer Backend — install / uninstall / restart / status
|
||||
|
||||
VENV := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))venv
|
||||
SERVICE := oplabs-mixer-backend.service
|
||||
SERVICE_PATH := /etc/systemd/system/$(SERVICE)
|
||||
UVICORN := $(VENV)/bin/uvicorn
|
||||
APP_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
|
||||
DAEMON_DIR := $(APP_DIR)../../oplabs-mixer-daemon
|
||||
|
||||
.PHONY: install uninstall restart status start stop logs deps deps-daemon dev
|
||||
|
||||
# Install systemd service and start it
|
||||
install: daemon-service-install
|
||||
sudo cp $(SERVICE) $(SERVICE_PATH)
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable $(SERVICE)
|
||||
sudo systemctl restart $(SERVICE)
|
||||
@echo "=== Service status ==="
|
||||
sudo systemctl status --no-pager $(SERVICE)
|
||||
|
||||
# Install the mixer daemon service (dependency for backend)
|
||||
daemon-service-install:
|
||||
@if [ -f $(DAEMON_DIR)/Makefile ]; then \
|
||||
echo "=== Installing mixer daemon service ==="; \
|
||||
$(MAKE) -C $(DAEMON_DIR) install; \
|
||||
else \
|
||||
echo "WARNING: mixer-daemon repo not found at $(DAEMON_DIR)"; \
|
||||
echo "Install the daemon service manually from its repo."; \
|
||||
fi
|
||||
sudo cp $(SERVICE) $(SERVICE_PATH)
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable $(SERVICE)
|
||||
sudo systemctl restart $(SERVICE)
|
||||
@echo "=== Service status ==="
|
||||
sudo systemctl status --no-pager $(SERVICE)
|
||||
|
||||
# Remove systemd service
|
||||
uninstall:
|
||||
sudo systemctl stop $(SERVICE) || true
|
||||
sudo systemctl disable $(SERVICE) || true
|
||||
sudo rm -f $(SERVICE_PATH)
|
||||
sudo systemctl daemon-reload
|
||||
|
||||
restart:
|
||||
sudo systemctl restart $(SERVICE)
|
||||
sudo systemctl status --no-pager $(SERVICE)
|
||||
|
||||
status:
|
||||
sudo systemctl status --no-pager $(SERVICE)
|
||||
|
||||
start:
|
||||
sudo systemctl start $(SERVICE)
|
||||
|
||||
stop:
|
||||
sudo systemctl stop $(SERVICE)
|
||||
|
||||
logs:
|
||||
sudo journalctl -u $(SERVICE) -n 100 -f
|
||||
|
||||
# Install Python deps
|
||||
deps:
|
||||
$(VENV)/bin/pip install -r requirements.txt
|
||||
|
||||
# Run dev server (no systemd, hot-reload)
|
||||
dev:
|
||||
$(UVICORN) app:app --host 0.0.0.0 --port 8081 --reload --log-level info
|
||||
Reference in New Issue
Block a user