#!/bin/bash
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
export NEEDRESTART_MODE=a

PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')

cat >/etc/apache2/sites-available/phpnuxbill.conf <<EOF
<VirtualHost *:80>
    ServerName billing.woyla.net
    ServerAlias 192.168.88.21 127.0.0.1 localhost
    DocumentRoot /var/www/phpnuxbill
    DirectoryIndex index.php index.html

    <Directory /var/www/phpnuxbill>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
        DirectoryIndex index.php
    </Directory>

    <FilesMatch \\.php$>
        SetHandler "proxy:unix:/run/php/php${PHP_VER}-fpm.sock|fcgi://localhost"
    </FilesMatch>

    ProxyTimeout 180
    Timeout 180

    ErrorLog \${APACHE_LOG_DIR}/phpnuxbill-error.log
    CustomLog \${APACHE_LOG_DIR}/phpnuxbill-access.log combined
</VirtualHost>
EOF

a2dissite 000-default >/dev/null 2>&1 || true
a2ensite phpnuxbill.conf >/dev/null 2>&1 || true
a2enmod proxy_fcgi setenvif rewrite headers expires >/dev/null
a2enconf php${PHP_VER}-fpm >/dev/null || true

# fallback rewrite if AllowOverride fails
cat >/var/www/phpnuxbill/.htaccess <<'HT'
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?_route=$1 [QSA,L]
</IfModule>
HT

chown www-data:www-data /var/www/phpnuxbill/.htaccess

cat >/etc/cron.d/phpnuxbill <<'CRON'
*/5 * * * * www-data cd /var/www/phpnuxbill/system && /usr/bin/php cron.php >/dev/null 2>&1
0 7 * * * www-data cd /var/www/phpnuxbill/system && /usr/bin/php cron_reminder.php >/dev/null 2>&1
CRON
chmod 644 /etc/cron.d/phpnuxbill

if ! command -v cloudflared >/dev/null; then
  curl -fsSL -o /tmp/cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
  dpkg -i /tmp/cloudflared.deb || apt-get install -f -y
fi

# ensure custom files if missing
if [ -d /tmp/woyla-deploy/nux-custom ]; then
  cp -a /tmp/woyla-deploy/nux-custom/. /var/www/phpnuxbill/
  chown -R www-data:www-data /var/www/phpnuxbill
fi

rm -rf /var/www/phpnuxbill/install || true
chmod 640 /var/www/phpnuxbill/config.php
chown www-data:www-data /var/www/phpnuxbill/config.php

systemctl restart php${PHP_VER}-fpm apache2
echo FINISH_OK
curl -sI http://127.0.0.1/ | head -n 12
echo '---'
curl -sI http://127.0.0.1/admin | head -n 12
echo '---'
ls /var/www/phpnuxbill/system/paymentgateway/mesomb-sdk/autoload.php
cloudflared --version | head -n 1
