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