Files
2025-01-16 00:06:11 +04:00

104 lines
2.7 KiB
Bash

#!/usr/bin/env bash
systemctl disable --now unattended-upgrades
apt update -y
apt install curl net-tools iftop nload cron socat -y
apt autoremove --purge snapd -y
# Clean journal logs
journalctl --vacuum-size=5M
journalctl --verify
sed -i -e "s/#SystemMaxUse=/SystemMaxUse=5M/g" /etc/systemd/journald.conf
sed -i -e "s/#SystemMaxFileSize=/SystemMaxFileSize=1M/g" /etc/systemd/journald.conf
sed -i -e "s/#SystemMaxFiles=100/SystemMaxFiles=5/g" /etc/systemd/journald.conf
systemctl daemon-reload
systemctl restart systemd-journald
sleep 1
#### ENABLE BBRv2
enable_bbr() {
echo -e "${blue}Enable BBR${clear}"
if [[ ! "$(sysctl net.core.default_qdisc)" == *"= fq" ]]
then
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
fi
if [[ ! "$(sysctl net.ipv4.tcp_congestion_control)" == *"bbr" ]]
then
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
fi
}
enable_bbr
### WARP INSTALL on UBUNTU - 127.0.0.1:40000
bash <(curl -fsSL checkvpn.net/files/warp.sh) proxy
# IP VPS
IPVPS=`ip addr show $ETH | grep global | sed -En -e 's/.*inet ([0-9.]+).*/\1/p' | head -n1`
# Download env and fix pass.
cd /root/
curl -sL "https://checkvpn.net/files/.env.example" -o .env.example
cp -r .env.example env_marzban
# random password with 16 symbols
PASSMARZBAN=`openssl rand -hex 16`
# random port from
RANDPORT=`echo $(( ( RANDOM % 65535 ) + 1025 ))`
# get email
read -p "Введите вашу почту(admin@example.com): " EMAIL
curl https://get.acme.sh | sh -s email=$EMAIL
# get domain
read -p "Введите имя домена (example.com): " DOMAIN
mkdir -p /var/lib/marzban/certs/
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt --issue --standalone -d $DOMAIN \
--key-file /var/lib/marzban/certs/key.pem \
--fullchain-file /var/lib/marzban/certs/fullchain.pem
sed -i '1d' env_marzban
sed -i '1d' env_marzban
sed -i -e '1iUVICORN_PORT = "'$RANDPORT'" ' env_marzban
sed -i -e '1iUVICORN_HOST = "'$DOMAIN'" ' env_marzban
sed -i -e '1iXRAY_SUBSCRIPTION_URL_PREFIX = "https://'$DOMAIN':'$RANDPORT'" ' env_marzban
sed -i -e '1iSUDO_PASSWORD = "'$PASSMARZBAN'" ' env_marzban
sed -i -e '1iSUDO_USERNAME = "marzban" ' env_marzban
sed -i -e '1iUVICORN_SSL_CERTFILE = "'/var/lib/marzban/certs/fullchain.pem'" ' env_marzban
sed -i -e '1iUVICORN_SSL_KEYFILE = "'/var/lib/marzban/certs/key.pem'" ' env_marzban
# install marzban with fixed .env
bash -c "$(curl -sL https://checkvpn.net/files/marzban2.sh)" @ install
sleep 1
echo "------------------------------------------"
echo "WEB interface Marzban IP: https://"$DOMAIN":"$RANDPORT"/dashboard/login"
echo "WEB interface Marzban login: marzban"
echo "WEB interface Marzban password:" $PASSMARZBAN
sleep 10
marzban restart