lesavka/scripts/install-server.sh

40 lines
1.0 KiB
Bash
Raw Normal View History

2025-06-01 13:31:22 -05:00
#!/usr/bin/env bash
set -euo pipefail
sudo pacman --needed --noconfirm -S git rustup protobuf gcc
rustup toolchain install stable
WORK=/opt/navka
if [ ! -d "$WORK" ]; then sudo git clone ssh://git@scm.bstein.dev:2242/brad_stein/navka.git "$WORK"; fi
cd "$WORK" && sudo git pull
cargo build --release --manifest-path server/Cargo.toml
sudo install -Dm755 target/release/navka-server /usr/local/bin/navka-server
sudo install -Dm755 gadget/navka-gadget.sh /usr/local/bin/navka-gadget.sh
cat <<'EOF' | sudo tee /etc/systemd/system/navka-server.service
[Unit]
After=network.target navka-gadget.service
[Service]
ExecStart=/usr/local/bin/navka-server
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF
cat <<'EOF' | sudo tee /etc/systemd/system/navka-gadget.service
[Unit]
Description=USB Gadget
[Service]
Type=oneshot
ExecStart=/usr/local/bin/navka-gadget.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now navka-gadget.service navka-server.service
echo "navka-server installed."