Tube / init.sh
madibaalbert's picture
Upload 6 files
f5a29cc verified
#!/bin/bash
set -e
# Si un setup a deja ete fait, on lance juste Supervisor
if [ -f /data/.setup_done ]; then
echo "[OMNITUBE] Setup deja effectue. Lancement des services..."
exec supervisord -c /etc/supervisor/conf.d/supervisord.conf
fi
echo "=========================================="
echo " OMNITUBE (AVideo) - Initialisation"
echo "=========================================="
# -----------------------------------------------------------------------------
# 0. FIX PERMISSIONS + CREATION DOSSIERS
# -----------------------------------------------------------------------------
echo "[0/7] Preparation du volume /data..."
mkdir -p /data/mysql /data/videos/cache /data/videos/session \
/data/videos/logs /data/videos/userPhoto /data/videos/thumbs \
/data/videos/chart /data/videos/configuration /var/run/mysqld
chown -R mysql:mysql /data/mysql /var/run/mysqld
chown -R www-data:www-data /data/videos /var/www/html
chmod -R 777 /data/videos /var/run/mysqld
chmod 755 /data
echo " OK"
# -----------------------------------------------------------------------------
# 1. NETTOYAGE PID MariaDB
# -----------------------------------------------------------------------------
if [ -f /data/mysql/*.pid ]; then
echo "[1/7] Nettoyage PID MariaDB residuel..."
rm -f /data/mysql/*.pid
echo " Nettoye."
fi
# -----------------------------------------------------------------------------
# 2. INITIALISATION MARIADB si premier demarrage
# -----------------------------------------------------------------------------
NEED_INIT=false
if [ ! -d /data/mysql/mysql ]; then
echo "[2/7] Premier demarrage detecte - Initialisation MariaDB..."
mysql_install_db --user=mysql --datadir=/data/mysql --auth-root-authentication-method=normal
NEED_INIT=true
else
echo "[2/7] MariaDB deja initialise."
fi
# -----------------------------------------------------------------------------
# 3. DEMARRAGE TEMPORAIRE MARIADB
# -----------------------------------------------------------------------------
if [ "$NEED_INIT" = "true" ]; then
echo "[3/7] Demarrage temporaire MariaDB..."
mysqld_safe --user=mysql --datadir=/data/mysql &
until mysqladmin ping -h localhost -u root --silent 2>/dev/null; do
echo " Attente MariaDB..."
sleep 1
done
echo " MariaDB OK"
# Setup root + DB avideo + DB encoder
mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}'; CREATE DATABASE IF NOT EXISTS ${MYSQL_DATABASE} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER IF NOT EXISTS '${MYSQL_USER}'@'localhost' IDENTIFIED BY '${MYSQL_PASSWORD}'; GRANT ALL PRIVILEGES ON ${MYSQL_DATABASE}.* TO '${MYSQL_USER}'@'localhost'; CREATE DATABASE IF NOT EXISTS avideo_encoder CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER IF NOT EXISTS 'avideo_encoder'@'localhost' IDENTIFIED BY 'encoder123!'; GRANT ALL PRIVILEGES ON avideo_encoder.* TO 'avideo_encoder'@'localhost'; FLUSH PRIVILEGES;"
echo " Bases de donnees creees."
fi
# -----------------------------------------------------------------------------
# 4. IMPORT DATABASE.SQL (premier boot uniquement)
# -----------------------------------------------------------------------------
if [ "$NEED_INIT" = "true" ]; then
echo "[4/7] Import schema AVideo..."
if [ -f /var/www/html/install/database.sql ]; then
mysql -u root -p${MYSQL_ROOT_PASSWORD} ${MYSQL_DATABASE} < /var/www/html/install/database.sql
echo " Schema AVideo importe."
else
echo " WARNING: database.sql non trouve"
fi
if [ -f /var/www/html/upload/install/database.sql ]; then
mysql -u root -p${MYSQL_ROOT_PASSWORD} avideo_encoder < /var/www/html/upload/install/database.sql
echo " Schema Encoder importe."
fi
fi
# -----------------------------------------------------------------------------
# 5. CONFIGURATION AVIDEO (configuration.php)
# -----------------------------------------------------------------------------
echo "[5/7] Configuration AVideo..."
if [ -z "$OMNITUBE_SALT" ] || [ "$OMNITUBE_SALT" = "__CHANGE_ME__" ]; then
SALT=$(openssl rand -hex 16)
echo " SALT genere automatiquement"
else
SALT=$OMNITUBE_SALT
echo " SALT fourni"
fi
WEBURL="https://${OMNITUBE_WEBSERVER_HOSTNAME}/"
cat <<EOF > /data/videos/configuration.php
<?php
\$global['disableAdvancedConfigurations'] = 0;
\$global['videoStorageLimitPerGroup'] = 0;
\$global['videoStorageLimitPerUser'] = 0;
\$global['disableTimeFix'] = 0;
\$global['logfile'] = '/data/videos/logs/avideo.log';
\$mysqlHost = 'localhost';
\$mysqlUser = '${MYSQL_USER}';
\$mysqlPass = '${MYSQL_PASSWORD}';
\$mysqlDatabase = '${MYSQL_DATABASE}';
\$mysqlPort = '3306';
\$global['webSiteRootURL'] = '${WEBURL}';
\$global['systemRootPath'] = '/var/www/html/';
\$global['salt'] = '${SALT}';
EOF
# Liaison videos -> /data/videos
rm -rf /var/www/html/videos
ln -s /data/videos /var/www/html/videos
chown -R www-data:www-data /var/www/html /data/videos
chmod -R 777 /data/videos
chmod 644 /data/videos/configuration.php
chmod 777 /var/www/html/.htaccess /var/www/html/upload/.htaccess
echo " OK"
# -----------------------------------------------------------------------------
# 6. VERIFICATION VARIABLES CRITIQUES
# -----------------------------------------------------------------------------
echo "[6/7] Verification des variables..."
MISSING=0
if [ -z "$OMNITUBE_WEBSERVER_HOSTNAME" ] || [ "$OMNITUBE_WEBSERVER_HOSTNAME" = "__CHANGE_ME__" ]; then
echo " ⚠️ OMNITUBE_WEBSERVER_HOSTNAME non configure !"
MISSING=1
fi
if [ -z "$OMNITUBE_ADMIN_PASSWORD" ] || [ "$OMNITUBE_ADMIN_PASSWORD" = "__CHANGE_ME__" ]; then
echo " ⚠️ OMNITUBE_ADMIN_PASSWORD non configure !"
MISSING=1
fi
if [ $MISSING -eq 1 ]; then
echo ""
echo " ⚠️ DES VARIABLES SONT MANQUANTES."
echo " Va dans Settings → Variables d'environnement de ton Space HF"
echo " et remplace tous les __CHANGE_ME__."
echo ""
fi
# -----------------------------------------------------------------------------
# 7. ARRET MARIADB + LANCEMENT SUPERVISOR
# -----------------------------------------------------------------------------
echo "[7/7] Finalisation..."
if [ "$NEED_INIT" = "true" ]; then
mysqladmin shutdown -u root -p${MYSQL_ROOT_PASSWORD} 2>/dev/null || true
echo " MariaDB temporaire arrete."
fi
# Marque le setup comme fait
touch /data/.setup_done
echo "=========================================="
echo " Lancement des services via Supervisor"
echo "=========================================="
exec supervisord -c /etc/supervisor/conf.d/supervisord.conf