diff --git a/.idea/.idea.ProjectLighthouse/.idea/indexLayout.xml b/.idea/.idea.ProjectLighthouse/.idea/indexLayout.xml index 022ac2e7..46037895 100644 --- a/.idea/.idea.ProjectLighthouse/.idea/indexLayout.xml +++ b/.idea/.idea.ProjectLighthouse/.idea/indexLayout.xml @@ -14,6 +14,7 @@ create-migration.sh docker-compose.yml global.json + scripts-and-tools .idea/.idea.ProjectLighthouse/.idea/workspace.xml diff --git a/scripts-and-tools/build.sh b/scripts-and-tools/build.sh new file mode 100644 index 00000000..8be9cefb --- /dev/null +++ b/scripts-and-tools/build.sh @@ -0,0 +1,14 @@ +# Build script for production +# +# No arguments +# Called manually + +cd project-lighthouse || (echo "Source directory not found, pls clone properly~" && exit 1) + +echo "Pulling latest changes..." +git pull + +echo "Building..." +dotnet build -c Release + +exit $? # Expose error code from build command \ No newline at end of file diff --git a/create-migration.sh b/scripts-and-tools/create-migration.sh similarity index 100% rename from create-migration.sh rename to scripts-and-tools/create-migration.sh diff --git a/scripts-and-tools/project-lighthouse-api.service b/scripts-and-tools/project-lighthouse-api.service new file mode 100644 index 00000000..b2b73a49 --- /dev/null +++ b/scripts-and-tools/project-lighthouse-api.service @@ -0,0 +1,13 @@ +[Unit] +Description=Project Lighthouse API - a clean-room, open-source custom server for LBP +Documentation=https://github.com/LBPUnion/ProjectLighthouse + +[Service] +Type=simple +ExecStart=/srv/lighthouse/start.sh API +TimeoutStopSec=15 +User=lighthouse + +[Install] +Alias=lighthouse-api +WantedBy=multi-user.target \ No newline at end of file diff --git a/scripts-and-tools/project-lighthouse-gameserver.service b/scripts-and-tools/project-lighthouse-gameserver.service new file mode 100644 index 00000000..8729c991 --- /dev/null +++ b/scripts-and-tools/project-lighthouse-gameserver.service @@ -0,0 +1,13 @@ +[Unit] +Description=Project Lighthouse GameServer - a clean-room, open-source custom server for LBP +Documentation=https://github.com/LBPUnion/ProjectLighthouse + +[Service] +Type=simple +ExecStart=/srv/lighthouse/start.sh GameServer +TimeoutStopSec=15 +User=lighthouse + +[Install] +Alias=lighthouse-website +WantedBy=multi-user.target \ No newline at end of file diff --git a/scripts-and-tools/project-lighthouse-website.service b/scripts-and-tools/project-lighthouse-website.service new file mode 100644 index 00000000..d2c5d5c1 --- /dev/null +++ b/scripts-and-tools/project-lighthouse-website.service @@ -0,0 +1,13 @@ +[Unit] +Description=Project Lighthouse Website - a clean-room, open-source custom server for LBP +Documentation=https://github.com/LBPUnion/ProjectLighthouse + +[Service] +Type=simple +ExecStart=/srv/lighthouse/start.sh Website +TimeoutStopSec=15 +User=lighthouse + +[Install] +Alias=lighthouse-website +WantedBy=multi-user.target \ No newline at end of file diff --git a/scripts-and-tools/start.sh b/scripts-and-tools/start.sh new file mode 100644 index 00000000..10d2803a --- /dev/null +++ b/scripts-and-tools/start.sh @@ -0,0 +1,13 @@ +# Startup script for production +# +# $1: Server to start; case sensitive!!!!! +# Called from systemd units + +cd "$HOME"/data || (echo "Data directory not found, pls create one~" && exit 1) + +echo "Running..." + +# Normally this requires ASPNETCORE_URLS but we override that in the configuration +dotnet ../project-lighthouse/ProjectLighthouse.Servers."$1"/bin/Release/net6.0/LBPUnion.ProjectLighthouse.Servers."$1".dll + +exit $? # Expose error code from dotnet command \ No newline at end of file