+54
-34
@@ -1,49 +1,69 @@
|
||||
#!/bin/bash
|
||||
|
||||
# --------- CONFIGURATION ---------
|
||||
ELOG_VERSION="2.7.1"
|
||||
ELOG_DIR="/usr/local/elog"
|
||||
ELOG_URL="https://midas.psi.ch/elog/download/elog-${ELOG_VERSION}.tar.gz"
|
||||
echo "📦 Installation de ELOG..."
|
||||
|
||||
# --------- INSTALL ELOG SERVER ---------
|
||||
echo "📦 Téléchargement et installation de ELOG ${ELOG_VERSION}..."
|
||||
|
||||
mkdir -p /tmp/elog_install
|
||||
cd /tmp/elog_install
|
||||
|
||||
wget ${ELOG_URL} -O elog.tar.gz
|
||||
tar -xzf elog.tar.gz
|
||||
cd elog-${ELOG_VERSION}
|
||||
sudo apt update
|
||||
sudo apt install -y make gcc wget tar curl apache2-utils
|
||||
|
||||
# Télécharger ELOG
|
||||
wget https://downloads.sourceforge.net/project/elog/elog/2.7.1/elog-2.7.1-1.tar.gz
|
||||
tar -xvzf elog-2.7.1-1.tar.gz
|
||||
cd elog-2.7.1
|
||||
make
|
||||
sudo make install
|
||||
cd ..
|
||||
|
||||
# --------- SETUP REPERTOIRES ---------
|
||||
echo "⚙️ Configuration des dossiers d ELOG..."
|
||||
# Installer dans ~/.local/bin
|
||||
mkdir -p ~/.local/bin
|
||||
cp elog-2.7.1/elogd ~/.local/bin
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||
|
||||
sudo mkdir -p ${ELOG_DIR}/logbooks/demo
|
||||
sudo mkdir -p ${ELOG_DIR}/themes
|
||||
sudo mkdir -p ${ELOG_DIR}/resources
|
||||
# Créer une instance ELOG
|
||||
mkdir -p elog_instance/logbooks/demo
|
||||
|
||||
sudo cp elogd.cfg ${ELOG_DIR}/elogd.cfg
|
||||
sudo cp elogd ${ELOG_DIR}/elogd
|
||||
# Générer le fichier mot de passe
|
||||
htpasswd -cb elog_instance/elog.passwd robot testpassword
|
||||
|
||||
# --------- LANCER LE SERVEUR ---------
|
||||
echo "🚀 Lancement du serveur ELOG..."
|
||||
# Configuration avec accès restreint
|
||||
cat > elog_instance/elogd.cfg <<EOF
|
||||
[global]
|
||||
port = 8080
|
||||
logdir = logbooks
|
||||
allowposting = 1
|
||||
allowhtml = 1
|
||||
|
||||
cd ${ELOG_DIR}
|
||||
./elogd ${ELOG_DIR}/elogd.cfg &
|
||||
[demo]
|
||||
dir = logbooks/demo
|
||||
allow = robot
|
||||
passwdfile = elog.passwd
|
||||
EOF
|
||||
|
||||
sleep 2 # Laisser le serveur démarrer
|
||||
# Lancer le serveur
|
||||
~/.local/bin/elogd -c elog_instance/elogd.cfg &
|
||||
sleep 3
|
||||
|
||||
# --------- CREATION DU LOGBOOK ---------
|
||||
echo "📓 Création du logbook 'demo'..."
|
||||
# Vérification version
|
||||
echo "✅ elogd version:"
|
||||
~/.local/bin/elogd -h | head -n 1
|
||||
|
||||
curl -s -X POST "http://localhost:8080" \
|
||||
-F "cmd=Create" \
|
||||
-F "exp=demo" \
|
||||
-F "Title=Demo Logbook" \
|
||||
-F "Category=General"
|
||||
# Vérification lecture
|
||||
echo "📬 Accès test au logbook :"
|
||||
curl http://localhost:8080/demo/ || echo "Pas encore de logbook 'demo'"
|
||||
|
||||
echo "✅ Serveur ELOG lancé avec succès sur http://localhost:8080"
|
||||
# Test d'insertion d'une entrée (PUT)
|
||||
echo "📝 Test elog.put (via curl)..."
|
||||
response=$(curl -s -o /dev/null -w "%{http_code}" -u robot:testpassword \
|
||||
-F "Author=robot" \
|
||||
-F "Subject=Test via script" \
|
||||
-F "Category=General" \
|
||||
-F "Type=Note" \
|
||||
-F "Text=Message envoyé automatiquement depuis le script install_elog.sh" \
|
||||
"http://localhost:8080/demo/?cmd=Submit")
|
||||
|
||||
if [ "$response" == "200" ]; then
|
||||
echo "✅ Insertion réussie dans le logbook demo"
|
||||
else
|
||||
echo "❌ Échec de l'insertion (code HTTP: $response)"
|
||||
fi
|
||||
|
||||
echo "✅ ELOG setup terminé"
|
||||
|
||||
Reference in New Issue
Block a user