feat: first version of installation script
This commit is contained in:
62
scripts/install.sh
Normal file
62
scripts/install.sh
Normal 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
|
||||
Reference in New Issue
Block a user