feat: first version of installation script

This commit is contained in:
2025-12-17 16:54:07 +01:00
parent 8d6f2df942
commit 7d7360fc16

62
scripts/install.sh Normal file
View File

@@ -0,0 +1,62 @@
#!/bin/bash
# simple helper to deploy urupam
# fail-fast
set -euo pipefail
# get root or get out
if [[ $(id -u) != 0 ]]; then
echo "Please use sudo or run as root."
exit 1
fi
# check carton
if ! command -v carton &>/dev/null; then
echo "carton not found."
exit 1
fi
# check redis
if ! ss -ltn | grep -q ":6379"; then
echo "Redis isn't running, check README."
fi
# create urupam user
groupadd urupam
useradd -s /bin/bash -g urupam -d /opt/urupam urupam
# deploy code
cp -r bin lib cpan* /opt/urupam
chown -R urupam:urupam /opt/urupam
# install dependencies
su - urupam -c "cd /opt/urupam && carton install ."
# create systemd service
cat >>/etc/systemd/system/urupam.service <<EOF
[Unit]
Description=Urupam
After=network.target
[Service]
Type=simple
User=urupam
Group=urupam
WorkingDirectory=/opt/urupam
ExecStart=carton exec -- bin/urupam
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
# install documentation
mkdir -p /usr/share/doc/urupam
cp README.md LICENSE /usr/share/doc/urupam
# enable and start service
systemctl enable --now urupam
exit 0