#!/bin/bash
#Progammer : Kurniawan. kurniawanajazenfone@gmail.com. xcode.or.id.
#X-code Media - xcode.or.id / xcode.co.id
#xcodehoster v12
echo "Xcodehoster 2026 v12 - 18 Maret 2026"
version=$(lsb_release -r | awk '{print $2}')
if [[ "$version" == "24.04" ]]; then
    echo "Versi Ubuntu anda didukung oleh aplikasi ini, Ubuntu $version"
sudo apt-get update
sudo apt -y install software-properties-common
sudo apt install apache2
apt install php
sudo cp support/phpinfo.php /var/www/html
sudo apt install mysql-server
echo -n "Masukkan ip publik server : "
read ipserver
echo -n "Masukkan password root yang akan dibuat : "
read passwordmysql
sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$passwordmysql';" 
sudo apt install phpmyadmin
sudo apt-get install zip unzip php-zip
sudo a2enmod ssl
service apache2 restart
sudo cp /etc/apache2/apache2.conf backup
sudo cp support/apache2.conf /etc/apache2/
echo -n "Masukkan nama domain : "
read domain
sed -i "s/xcodehoster.com/$domain/g" support/subdomain.conf
sed -i "s/sample.xcodehoster.com/$domain/g" support/domain.conf
sudo cp /etc/php/8.3/apache2/php.ini /etc/php/8.3/apache2/phpini.backup
sudo cp support/php.ini /etc/php/8.3/apache2
sudo mkdir /home/root
sudo touch /home/root/locked
sudo mkdir /home/pma
sudo touch /home/pma/locked
sudo mkdir /home/www
sudo touch /home/www/locked
sudo mkdir /home/datauser
sudo touch /home/datauser
sudo mkdir /home/xcodehoster
sudo touch /home/datauser/locked
sudo mkdir /home/datapengguna
sudo touch /home/datapengguna/locked
sudo mkdir /home/domain
sudo touch /home/domain/locked
sudo mkdir /home/checkdata
sudo touch /home/checkdata/locked
sudo mkdir /home/checkdata2
sudo touch /home/checkdata2/locked
sudo chmod 777 /home/datauser
sudo cp -r filemanager /home/filemanager
chmod -R 777 /home
sudo a2enmod cgi
sudo chmod 777 /usr/lib/cgi-bin
sudo chmod 777 /usr/lib/cgi-bin/*
sudo chmod 777 /home
sudo chmod 777 /etc/apache2/sites-available
sudo sed -i "/more/i\www-data ALL=(ALL) NOPASSWD: ALL" /etc/sudoers
sudo a2enmod ssl
sudo mkdir /etc/apache2/ssl
sudo chmod 777 /etc/apache2/ssl
sudo apt install jq
sudo sudo apt install imagemagick
passwordmysql="-p$passwordmysql"
sed -i "s/-ppasswordmysql/$passwordmysql/g" support/run.cgi
sed -i "s/xcodehoster.com/$domain/g" support/formdata.cgi
sed -i "s/xcodehoster.com/$domain/g" support/run.cgi
sed -i "s/xcodehoster.com/$domain/g" support/aktivasi3.cgi
sed -i "s/xcodehoster.com/$domain/g" support/panel.php
sed -i "s/xcodehoster.com/$domain/g" /home/filemanager/index.html
sed -i "s/xcodehoster.com/$domain/g" /home/filemanager/index.html
sed -i "s/xcodehoster.com.pem/$domain.pem/g" support/subdomain.conf
sed -i "s/xcodehoster.com.key/$domain.key/g" support/subdomain.conf
sed -i "s/xcodehoster.com.pem/$domain.pem/g" support/domain.conf
sed -i "s/xcodehoster.com/$domain/g" support/index.html
sed -i "s/-ppasswordmysql/$passwordmysql/g" support/run.cgi 
sudo cp support/formfree.cgi /usr/lib/cgi-bin
sudo cp support/run.cgi /usr/lib/cgi-bin
sudo cp support/aktivasi3.cgi /usr/lib/cgi-bin
sudo cp support/formdata.cgi /usr/lib/cgi-bin
sudo cp support/acak.txt /usr/lib/cgi-bin
sudo touch /usr/lib/cgi-bin/vouchers.txt
sudo chmod 777 /usr/lib/cgi-bin/acak.txt
sudo cp support/domain.conf /home/xcodehoster
sudo cp support/domain2.conf /home/xcodehoster
sudo cp support/subdomain.conf /home/xcodehoster
sudo cp support/index.html /home/xcodehoster
sudo cp support/panel.php /home/xcodehoster
sudo cp support/bootstrap.min.css /home/xcodehoster
sudo cp support/hosting.jpg /home/xcodehoster
sudo cp support/xcodehoster21x.png /home/xcodehoster
sudo cp support/coverxcodehoster.png /home/xcodehoster
sudo mkdir /etc/apache2/ssl
sudo touch /etc/apache2/ssl/$domain.pem
sudo touch /etc/apache2/ssl/$domain.key
cp /var/www/html/index.html /var/www/html/backup1.html
cp /home/xcodehoster/* /var/www/html
sudo service apache2 restart
sudo cp support/domain.conf /etc/apache2/sites-available/$domain.conf
sed -i "s/sample.$domain/$domain/g" /etc/apache2/sites-available/$domain.conf
sed -i "s/sample/xcodehoster/g" /etc/apache2/sites-available/$domain.conf
sed -i "s/xcodehoster.com.pem/$domain.pem/g" /etc/apache2/sites-available/$domain.conf
sed -i "s/xcodehoster.com.key/$domain.key/g" /etc/apache2/sites-available/$domain.conf
nano /etc/apache2/ssl/$domain.pem
nano /etc/apache2/ssl/$domain.key
a2ensite $domain.conf
for i in {1..1000}; do < /dev/urandom tr -dc 'A-Za-z0-9' | head -c 8; echo; done > /usr/lib/cgi-bin/vouchers.txt
sed -i "s/domain/$domain/g" /usr/lib/cgi-bin/aktivasi3.cgi
echo -n "Masukkan Zone ID cloudflare : "
read zoneid
sed -i "s/zoneid/$zoneid/g" support/aktivasi3.cgi
sed -i "s/zoneid/$zoneid/g" /usr/lib/cgi-bin/aktivasi3.cgi
echo -n "Masukkan e-mail cloudflare : "
read email
sed -i "s/email/$email/g" support/aktivasi3.cgi
sed -i "s/email/$email/g" /usr/lib/cgi-bin/aktivasi3.cgi
echo -n "Masukkan Global API Key cloudflare : "
read globalapikey
sed -i "s/globalapikey/$globalapikey/g" support/aktivasi3.cgi
sed -i "s/globalapikey/$globalapikey/g" /usr/lib/cgi-bin/aktivasi3.cgi
echo -n "Masukkan ip publik server : "
read ipserver
echo $ipserver > /usr/lib/cgi-bin/ip.txt
sed -i "s/ipserver/$ipserver/g" support/aktivasi3.cgi
sed -i "s/ipserver/$ipserver/g" /usr/lib/cgi-bin/aktivasi3.cgi
for i in {1..1000}; do < /dev/urandom tr -dc 'A-Za-z0-9' | head -c 8; echo; done > /usr/lib/cgi-bin/vouchers.txt
random_number=$(printf "%03d" $((RANDOM % 1000)))
cp /usr/lib/cgi-bin/vouchers.txt /home/xcodehoster/vouchers${random_number}.txt
echo "https://$domain/vouchers${random_number}.txt"
service apache2 restart
echo "Instalasi selesai, untuk pengujian silahkan web hosting diakses di alamat" $domain
echo "Alamat vouchers: https://$domain/vouchers${random_number}.txt"
else
 echo "Aplikasi ini tidak mendukung distro Linux Anda, atau Anda menggunakan Ubuntu tapi versinya tidak sesuai. Install pada ubuntu versi 24.04"
fi

