New Caddy Installer, final

#!/bin/bash
###############################################################################
# 📦 One-Click caddy Installer Script is based on,
# wget https://raw.githubusercontent.com/hosteons/lamp-lemp-oneclick-installer/main/lamp_lemp_installer.sh
# nano caddy-installer.sh  //Paste this script
# chmod +x caddy-installer.sh
# bash ./caddy-installer.sh
###############################################################################
set -e
echo "============================================"
echo " One-Click LAMP/LEMP/Caddy Installer Script"
echo " by JangSeo | MIT Licensed"
echo "============================================"
if [[ "$EUID" -ne 0 ]]; then
  echo "❌ Please run this script as root"
  exit 1
fi

if [ -f /etc/os-release ]; then
    . /etc/os-release
    OS=$ID
    VER=$VERSION_ID
else
    echo "❌ Unsupported OS"
    exit 1
fi

if [[ "$OS" != "ubuntu" && "$OS" != "debian" ]]; then
    echo "❌ Only Ubuntu and Debian are supported."
    exit 1
fi

apt update && apt upgrade -y
apt-get install nano wget perl curl sudo -y
PHP_PACKAGES="php php-mysql php-cli php-curl php-gd php-mbstring php-xml libmcrypt-dev mcrypt php-mysql php-cgi php-zip php-pear unzip"
apt install -y $PHP_PACKAGES
curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh 
sh setup-repos.sh 
apt -y install webmin --install-recommends 
echo "✅ Webmin configured."
read -t 10 -p "Press Enter to skip or wait 10 seconds..."
echo "🔧 Installing Caddy stack..."
apt -y install -y gnupg debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
chmod o+r /etc/apt/sources.list.d/caddy-stable.list
apt -y update
apt -y install caddy
apt install -y mariadb-server
echo "hello, caddy!" > /usr/share/caddy/info.php
echo "✅ Caddy installed successfully!"
echo "🔗 Visit http://YOUR_SERVER_IP/ to verify PHP is working."
apt -y purge Apache2* bind* exim* ufw firewalld libapache2-mod-php*
apt -y autoremove
systemctl start caddy mariadb
systemctl enable --now caddy
echo "✅ Caddy, webmin, mariadb installed successfully!"

######################Making Website#####################################################
$ sudo mkdir /usr/share/caddy/domain1
$ nano /usr/share/caddy/domain1/index.php
Working with CaddyFile
$ nano /etc/caddy/Caddyfile    //caddyfile holds all the domain info.
domain {
    tls xxx@xxx.com
    root * /usr/share/caddy/domain1
    file_server browse
    encode zstd gzip
    php_fastcgi unix//run/php/php8.4-fpm.sock
    log {
        output file /var/log/caddy/access.log
        format console
    }
}

$ caddy run
$ systemctl reload caddy
================MySql==========================================
$ mariadb-secure-installation (for Debian 13)
$ mysql -u root -p
--Enter password:
Maria DB [(none)]>
> CREATE DATABASE rome;
> CREATE USER 'user_name'@localhost IDENTIFIED BY 'password';
> GRANT ALL PRIVILEGES ON *.* TO 'db_name'@localhost IDENTIFIED BY 'password';
> FLUSH PRIVILEGES;
> SHOW GRANTS FOR 'db_name'@localhost;
> SHOW DATABASES;
> Exit;


Posted : Friday 15th of May 2026 @ 05:13 AM— Tags : new-caddy