cat << 'EOF_MAIN' > instalador_completo_ramdisk.sh
#!/bin/bash

clear
echo "======================================================="
echo "🚀 INSTALADOR DEFINITIVO - Office Xtream (Raiz VPS)"
echo "   Limpeza + PHP 8.1 + FFmpeg + RAM Disk Otimizada"
echo "======================================================="
sleep 2

# === LINKS E CREDENCIAIS FIXAS ===
ZIP_URL="https://paineloffice.tvsbr.top/painelofficextream.zip"
SQL_URL="https://paineloffice.tvsbr.top/painelofficextream.sql"

DB_NAME="officextream"
DB_USER="user_officextream"
DB_PASS="pass_officextream"
ROOT_DB_PASS="root123"

# === COLETA DE DADOS AUTOMÁTICA ===
# Pega o IP público principal automaticamente (Forçando IPv4 para não puxar IPv6)
DOMAIN=$(curl -4 -s ifconfig.me)
if [ -z "$DOMAIN" ]; then
    DOMAIN=$(curl -4 -s icanhazip.com)
fi
if [ -z "$DOMAIN" ]; then
    DOMAIN=$(hostname -I | awk '{print $1}')
fi

# Configurações do Sistema
PHP_VERSION="8.1"
WWW_DIR="/var/www/html"

echo -e "\n⏳ Iniciando FAXINA e INSTALAÇÃO em 3 segundos..."
echo -e "🌐 IP Detectado Automaticamente: $DOMAIN"
sleep 3
export DEBIAN_FRONTEND=noninteractive

# ==============================================================================
# 🧹 PASSO 0: FAXINA PROFUNDA (APAGA TUDO ANTES DE COMEÇAR)
# ==============================================================================
echo "🧹 Passo 0/8: Limpando instalações antigas e conflitos..."

# Para serviços e remove Nginx
systemctl stop nginx apache2 mariadb >/dev/null 2>&1
apt-get remove --purge nginx nginx-common -y >/dev/null 2>&1
fuser -k 80/tcp >/dev/null 2>&1

# Desmonta RAM Disk antiga se existir, para não dar erro
umount ${WWW_DIR}/streams >/dev/null 2>&1

# Apaga arquivos antigos do painel e phpMyAdmin
rm -rf ${WWW_DIR}/*
rm -rf /usr/share/phpmyadmin
rm -f /etc/apache2/conf-available/phpmyadmin.conf

# Tenta apagar o banco de dados antigo (tentando sem senha primeiro e depois com senha)
systemctl start mariadb >/dev/null 2>&1
mariadb -u root -e "DROP DATABASE IF EXISTS ${DB_NAME};" >/dev/null 2>&1 || mariadb -u root -p"${ROOT_DB_PASS}" -e "DROP DATABASE IF EXISTS ${DB_NAME};" >/dev/null 2>&1

# ==============================================================================
# 📦 PASSO 1: DEPENDÊNCIAS, FFMPEG E PHP 8.1
# ==============================================================================
echo "🔧 Passo 1/8: Atualizando sistema e instalando dependências base..."
apt-get update -y && apt-get upgrade -y >/dev/null 2>&1
apt-get install -y software-properties-common ca-certificates lsb-release apt-transport-https unzip wget curl ufw mariadb-server ffmpeg >/dev/null 2>&1

echo "📦 Adicionando repositório do PHP 8.1 e instalando pacotes..."
LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php -y >/dev/null 2>&1
apt-get update -y >/dev/null 2>&1
apt-get install -y apache2 php${PHP_VERSION} php${PHP_VERSION}-cli php${PHP_VERSION}-mysql php${PHP_VERSION}-curl php${PHP_VERSION}-xml php${PHP_VERSION}-mbstring php${PHP_VERSION}-zip php${PHP_VERSION}-gd libapache2-mod-php${PHP_VERSION} >/dev/null 2>&1

# Força o Apache a usar EXCLUSIVAMENTE o PHP 8.1
a2dismod php* >/dev/null 2>&1
a2enmod php${PHP_VERSION} rewrite >/dev/null 2>&1

# ==============================================================================
# ⚙️ PASSO 2: CONFIGURAÇÃO DO PHP E MARIADB GIGANTE
# ==============================================================================
echo "⚙️ Passo 2/8: Otimizando o PHP e Banco (Uploads Gigantes e Desempenho)..."
PHP_INI="/etc/php/${PHP_VERSION}/apache2/php.ini"
sed -i "s/upload_max_filesize = .*/upload_max_filesize = 1024M/" $PHP_INI
sed -i "s/post_max_size = .*/post_max_size = 1024M/" $PHP_INI
sed -i "s/memory_limit = .*/memory_limit = 2048M/" $PHP_INI
sed -i "s/max_execution_time = .*/max_execution_time = 3600/" $PHP_INI
sed -i "s/max_input_time = .*/max_input_time = 3600/" $PHP_INI

# Libera o MariaDB para processar pacotes gigantes (Obrigatório para arquivos .sql de 500MB+)
echo -e "[mysqld]\nmax_allowed_packet = 1G" > /etc/mysql/mariadb.conf.d/99-max-allowed.cnf
systemctl restart mariadb

# ==============================================================================
# 🗄️ PASSO 3: BANCO DE DADOS (MARIADB)
# ==============================================================================
echo "🗄️ Passo 3/8: Criando Banco de Dados e importando SQL Gigante..."
systemctl start mariadb
systemctl enable mariadb >/dev/null 2>&1

# Descobre se o banco exige senha (caso o instalador esteja rodando de novo)
if mariadb -u root -e "SELECT 1;" >/dev/null 2>&1; then
    MYSQL_CMD="mariadb -u root"
else
    MYSQL_CMD="mariadb -u root -p${ROOT_DB_PASS}"
fi

# Configura senha do root e cria novo banco usando a Chave Mestra
$MYSQL_CMD <<EOF
ALTER USER 'root'@'localhost' IDENTIFIED BY '${ROOT_DB_PASS}';
DROP USER IF EXISTS ''@'localhost';
FLUSH PRIVILEGES;
DROP DATABASE IF EXISTS ${DB_NAME};
CREATE DATABASE ${DB_NAME} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
DROP USER IF EXISTS '${DB_USER}'@'localhost';
CREATE USER '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASS}';
GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';
FLUSH PRIVILEGES;
EOF

# Baixa o SQL e força a importação bruta sem limite
wget -q ${SQL_URL} -O /tmp/database.sql

mariadb -u root -p"${ROOT_DB_PASS}" -e "
    SET GLOBAL max_allowed_packet=1073741824;
    SET default_storage_engine=InnoDB;
    SET FOREIGN_KEY_CHECKS=0; 
    SET UNIQUE_CHECKS=0;
    SET AUTOCOMMIT=0;
    USE ${DB_NAME}; 
    SOURCE /tmp/database.sql; 
    SET FOREIGN_KEY_CHECKS=1; 
    SET UNIQUE_CHECKS=1;
    SET AUTOCOMMIT=1;
    COMMIT;
" 2>/dev/null

rm -f /tmp/database.sql

# ==============================================================================
# 💻 PASSO 4: ARQUIVOS DO PAINEL
# ==============================================================================
echo "💻 Passo 4/8: Baixando e extraindo o Painel IPTV..."
wget -q ${ZIP_URL} -O /tmp/painel.zip
unzip -o /tmp/painel.zip -d ${WWW_DIR} >/dev/null 2>&1
chown -R www-data:www-data ${WWW_DIR}
chmod -R 755 ${WWW_DIR}
rm -f /tmp/painel.zip

cat <<EOF > /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
    ServerName ${DOMAIN}
    DocumentRoot ${WWW_DIR}
    <Directory ${WWW_DIR}>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
EOF

# ==============================================================================
# 🚀 PASSO 5: OTIMIZAÇÃO DE STREAMING (RAM DISK)
# ==============================================================================
echo "🚀 Passo 5/8: Configurando RAM Disk para o Modo Live..."
mkdir -p ${WWW_DIR}/streams

# Verifica se a regra já existe no fstab, se não, adiciona
if ! grep -q "${WWW_DIR}/streams" /etc/fstab; then
    echo "tmpfs ${WWW_DIR}/streams tmpfs defaults,noatime,nosuid,nodev,noexec,mode=1777,size=1G 0 0" >> /etc/fstab
fi

# Monta a memória RAM na pasta e aplica permissões de escrita máxima
mount -a
chown -R www-data:www-data ${WWW_DIR}/streams
chmod -R 777 ${WWW_DIR}/streams

# ==============================================================================
# 🧩 PASSO 6: PHPMYADMIN (VISUAL DO BANCO)
# ==============================================================================
echo "🧩 Passo 6/8: Instalando phpMyAdmin..."
wget -q https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip -O /tmp/pma.zip
unzip -q /tmp/pma.zip -d /usr/share/ >/dev/null 2>&1
mv /usr/share/phpMyAdmin-5.2.1-all-languages /usr/share/phpmyadmin
rm -f /tmp/pma.zip
chown -R www-data:www-data /usr/share/phpmyadmin

cat <<EOF > /etc/apache2/conf-available/phpmyadmin.conf
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All
    Require all granted
</Directory>
EOF
a2enconf phpmyadmin >/dev/null 2>&1

# ==============================================================================
# 🔒 PASSO 7: FIREWALL E REINÍCIO
# ==============================================================================
echo "🔒 Passo 7/8: Configurando o Firewall..."
ufw allow 22/tcp >/dev/null 2>&1
ufw allow 80/tcp >/dev/null 2>&1
ufw allow 443/tcp >/dev/null 2>&1
ufw allow 8080/tcp >/dev/null 2>&1
ufw --force enable >/dev/null 2>&1

echo "🔄 Passo 8/8: Reiniciando Apache e Banco de Dados..."
systemctl restart apache2
systemctl restart mariadb

clear
echo "======================================================"
echo "✅ INSTALAÇÃO COMPLETA FINALIZADA COM SUCESSO!"
echo "======================================================"
echo "🚀 Motor Live (FFmpeg): Instalado."
echo "⚡ RAM Disk Otimizada: Montada com 1GB em /streams."
echo "🧹 Faxina Prévia: Realizada."
echo ""
echo "🌍 Acessar o Painel IPTV:"
echo "   👉 http://${DOMAIN}"
echo ""
echo "🗄️ Acessar o phpMyAdmin:"
echo "   👉 http://${DOMAIN}/phpmyadmin"
echo "   👤 Usuário: root"
echo "   🔑 Senha: ${ROOT_DB_PASS}"
echo ""
echo "⚠️ ÚLTIMO AVISO: Edite as credenciais do banco no seu arquivo"
echo "de conexão (db.php/config.php) dentro de /var/www/html/ para:"
echo "Banco: ${DB_NAME} | User: ${DB_USER} | Senha: ${DB_PASS}"
echo "======================================================"
EOF_MAIN

chmod +x instalador_completo_ramdisk.sh
./instalador_completo_ramdisk.sh