Files
slic/install_elog.sh
T
tligui_y 5f3e29f7fd
Run CI Tests / test (push) Successful in 2m7s
Update install_elog.sh
2025-08-15 15:50:05 +02:00

133 lines
3.1 KiB
Bash

#!/bin/bash
set -e
PREFIX="/usr/local"
INSTANCE_DIR="$PREFIX/elog"
PASSWORD="testpassword"
# =======================
# 1. Installer dépendances
# =======================
sudo apt update
sudo apt install -y make gcc git curl openssl whois python3-full python3-venv
# =======================
# 2. Télécharger et compiler ELOG
# =======================
rm -rf /tmp/elog-src
mkdir -p /tmp/elog-src
cd /tmp/elog-src
git clone --recursive https://bitbucket.org/ritt/elog
cd elog
make -j"$(nproc)"
sudo mkdir -p "$PREFIX/sbin" "$INSTANCE_DIR/logbooks/demo"
sudo cp elogd "$PREFIX/sbin/"
# =======================
# 4. Créer users.xml avec mot de passe encodé
# =======================
sudo tee "$INSTANCE_DIR/users.xml" > /dev/null <<EOF
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- created by MXML on $(date) -->
<list>
<user>
<name>robot</name>
<password encoding="SHA256">me1T.2jUUqQNa1wNuey9zNBOmOa4eILOaPb.ZSZjpn4</password>
<full_name>Robot User</full_name>
<last_logout>0</last_logout>
<last_activity>0</last_activity>
<email>robot@example.com</email>
</user>
</list>
EOF
sudo chmod 644 "$INSTANCE_DIR/users.xml"
# =======================
# 5. Créer configuration elogd.cfg
# =======================
sudo tee "$INSTANCE_DIR/elogd.cfg" > /dev/null <<EOF
[global]
Port = 8080
Logbook dir = $INSTANCE_DIR/logbooks
Resource dir = $INSTANCE_DIR
Allow HTML = 1
Password file = $INSTANCE_DIR/users.xml
Admin user = robot
Self register = 0
Encrypt passwords = 0
[demo]
Subdir = demo
Preset Author = robot
Login user = robot
Required Attributes = Author
EOF
# =======================
# 6. Script init simple
# =======================
sudo tee /etc/init.d/elogd > /dev/null <<'EOF'
#!/bin/sh
case "$1" in
start)
echo "Starting elogd..."
/usr/local/sbin/elogd -D -c /usr/local/elog/elogd.cfg > /dev/null 2>&1 &
echo $! > /var/run/elogd.pid
;;
stop)
echo "Stopping elogd..."
kill $(cat /var/run/elogd.pid)
rm -f /var/run/elogd.pid
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
EOF
sudo chmod +x /etc/init.d/elogd
# =======================
# 7. Fix permissions pour éviter erreurs d’écriture
# =======================
sudo chmod -R 777 "$INSTANCE_DIR/logbooks"
# =======================
# 8. Lancer ELOG
# =======================
sudo service elogd restart
sleep 3
echo "✅ ELOG démarré sur http://localhost:8080"
echo " → Utilisateur : robot"
echo " → Mot de passe (clair) : $PASSWORD"
echo " → Mot de passe encodé : me1T.2jUUqQNa1wNuey9zNBOmOa4eILOaPb.ZSZjpn4"
# =======================
# 9. Test connexion
# =======================
COOKIEJAR=$(mktemp)
curl -s -L --max-time 5 -c "$COOKIEJAR" \
-d "cmd=Login" \
-d "unm=robot" \
-d "pwd=$PASSWORD" \
http://localhost:8080/demo > /dev/null
PAGE_RESP=$(curl -s -L --max-time 5 -b "$COOKIEJAR" http://localhost:8080/demo)
if [[ "$PAGE_RESP" == *"List of Messages"* ]]; then
echo "✅ Auth OK"
else
echo "❌ Auth FAIL"
echo "=== DEBUG HTML ==="
echo "$PAGE_RESP"
fi