diff --git a/src/service/auracast-frontend.service b/src/service/auracast-frontend.service index 8d4d1c7..dca1b9e 100644 --- a/src/service/auracast-frontend.service +++ b/src/service/auracast-frontend.service @@ -1,11 +1,13 @@ [Unit] Description=Auracast Frontend HTTPS Server -After=network.target +# Ensure backend is running as a user service before starting frontend +After=auracast-server.service network.target +Wants=auracast-server.service [Service] Type=simple -WorkingDirectory=/home/caster/repos/bumble-auracast/src/auracast/server -ExecStart=/home/caster/repos/bumble-auracast/src/auracast/server/start_frontend_https.sh +WorkingDirectory=/home/caster/bumble-auracast/src/auracast/server +ExecStart=/home/caster/bumble-auracast/src/auracast/server/start_frontend_https.sh Restart=on-failure Environment=LOG_LEVEL=INFO diff --git a/src/service/auracast-server.service b/src/service/auracast-server.service index c33f3d3..23f8735 100644 --- a/src/service/auracast-server.service +++ b/src/service/auracast-server.service @@ -4,12 +4,11 @@ After=network.target [Service] Type=simple -WorkingDirectory=/home/caster/repos/bumble-auracast +WorkingDirectory=/home/caster/bumble-auracast ExecStart=/home/caster/.local/bin/poetry run python src/auracast/server/multicast_server.py Restart=on-failure -User=caster Environment=PYTHONUNBUFFERED=1 Environment=LOG_LEVEL=INFO [Install] -WantedBy=multi-user.target +WantedBy=default.target diff --git a/src/service/stop_server_and_frontend.sh b/src/service/stop_server_and_frontend.sh new file mode 100644 index 0000000..e6cf15b --- /dev/null +++ b/src/service/stop_server_and_frontend.sh @@ -0,0 +1,22 @@ +# This script stops and disables the auracast-server and auracast-frontend services +# Requires sudo privileges + +echo "Stopping auracast-server.service..." +systemctl --user stop auracast-server.service + +echo "Disabling auracast-server.service (user)..." +systemctl --user disable auracast-server.service + +echo "Stopping auracast-frontend.service ..." +sudo systemctl stop auracast-frontend.service + +echo "Disabling auracast-frontend.service ..." +sudo systemctl disable auracast-frontend.service + +echo "\n--- auracast-server.service status ---" +systemctl --user status auracast-server.service --no-pager + +echo "\n--- auracast-frontend.service status ---" +sudo systemctl status auracast-frontend.service --no-pager + +echo "auracast-server and auracast-frontend services stopped, disabled, and status printed successfully." diff --git a/src/service/update_and_run_server_and_frontend.sh b/src/service/update_and_run_server_and_frontend.sh new file mode 100644 index 0000000..5130bb2 --- /dev/null +++ b/src/service/update_and_run_server_and_frontend.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -e + +# This script installs, enables, and restarts the auracast-server and auracast-frontend services +# Requires sudo privileges + +# Copy system service file for frontend +sudo cp /home/caster/bumble-auracast/src/service/auracast-frontend.service /etc/systemd/system/auracast-frontend.service + +# Copy user service file for backend (now using WantedBy=default.target) +mkdir -p /home/caster/.config/systemd/user +cp /home/caster/bumble-auracast/src/service/auracast-server.service /home/caster/.config/systemd/user/auracast-server.service + +# Reload systemd for frontend +sudo systemctl daemon-reload +# Reload user systemd for server +systemctl --user daemon-reload + +# Enable frontend to start on boot (system) +sudo systemctl enable auracast-frontend.service +# Enable server to start on boot (user) +systemctl --user enable auracast-server.service + +# Restart both +sudo systemctl restart auracast-frontend.service +systemctl --user restart auracast-server.service + +echo "\n--- auracast-frontend.service status ---" +sudo systemctl status auracast-frontend.service --no-pager + +echo "\n--- auracast-server.service status---" +systemctl --user status auracast-server.service --no-pager +echo "auracast-server and auracast-frontend services updated, enabled, restarted, and status printed successfully."