| #!/bin/bash |
| set -e |
|
|
| |
| 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 "==========================================" |
|
|
| |
| |
| |
| 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" |
|
|
| |
| |
| |
| if [ -f /data/mysql/*.pid ]; then |
| echo "[1/7] Nettoyage PID MariaDB residuel..." |
| rm -f /data/mysql/*.pid |
| echo " Nettoye." |
| fi |
|
|
| |
| |
| |
| 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 |
|
|
| |
| |
| |
| 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" |
|
|
| |
| 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 |
|
|
| |
| |
| |
| 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 |
|
|
| |
| |
| |
| 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 |
|
|
| |
| 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" |
|
|
| |
| |
| |
| 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 |
|
|
| |
| |
| |
| 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 |
|
|
| |
| touch /data/.setup_done |
|
|
| echo "==========================================" |
| echo " Lancement des services via Supervisor" |
| echo "==========================================" |
| exec supervisord -c /etc/supervisor/conf.d/supervisord.conf |
|
|