Last active
August 27, 2025 08:11
-
-
Save szabbenjamin/b91f20d533dd3986d4700f2d8c0dd593 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# A script root jogosultságot igényel. Ellenőrizzük, hogy a felhasználó root-ként futtatja-e. | |
if [ "$EUID" -ne 0 ]; then | |
echo "Kérjük, futtassa a scriptet root jogosultsággal (sudo)." | |
exit | |
fi | |
echo "--- Interaktív Cloudflare Tunnel telepítő script ---" | |
echo "" | |
# --- VÁLTOZÓK INTERAKTÍV BEKÉRÉSE --- | |
read -p "Adja meg a Cloudflare-hez hozzáadott domain nevét (pl. 'example.com'): " DOMAIN | |
read -p "Adja meg a használni kívánt aldomain nevét (pl. 'cfteszt'): " SUBDOMAIN | |
read -p "Adja meg a helyi szerver címét és portját (pl. 'http://localhost:80'): " APACHE_SERVICE | |
# --- VÁLTOZÓK BEÁLLÍTÁSA --- | |
# A tunnel neve a megadott aldomain alapján jön létre. | |
TUNNEL_NAME="${SUBDOMAIN}" | |
FULL_HOSTNAME="${SUBDOMAIN}.${DOMAIN}" | |
echo "" | |
echo "A következő beállításokkal dolgozunk:" | |
echo "Tunnel neve: ${TUNNEL_NAME}" | |
echo "Teljes domain: ${FULL_HOSTNAME}" | |
echo "Helyi szolgáltatás: ${APACHE_SERVICE}" | |
echo "" | |
# --- 1. CLOUDFLARED TELEPÍTÉSE --- | |
echo "1. Cloudflared telepítése..." | |
# Ellenőrizzük, hogy a cloudflared már telepítve van-e | |
if command -v cloudflared &> /dev/null; then | |
echo "A Cloudflared már telepítve van, kihagyjuk a telepítést." | |
else | |
apt-get update && apt-get install -y wget sudo htop mc -y | |
# Letöltjük a legújabb cloudflared deb csomagot és telepítjük. | |
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb | |
sudo dpkg -i cloudflared-linux-amd64.deb | |
rm cloudflared-linux-amd64.deb | |
echo "Cloudflared sikeresen telepítve." | |
fi | |
# A 1.2. RENDSZERBEÁLLÍTÁSOK A QUIC PROTOKOLHOZ szakasz eltávolítva a konténeres környezetben jelentkező hibák miatt. | |
# --- 2. CLOUDFLARE BEJELENTKEZÉS ÉS TUNNEL LÉTREHOZÁSA --- | |
echo "" | |
echo "2. Cloudflare fiók bejelentkezés..." | |
echo "Egy böngészőablak megnyílik. Kérjük, válassza ki a ${DOMAIN} domaint, és engedélyezze a hozzáférést." | |
cloudflared tunnel login | |
# Létrehozzuk a tunnelt. A credentials fájl a ~/.cloudflared/ mappába kerül. | |
echo "" | |
echo "3. Cloudflare Tunnel létrehozása..." | |
cloudflared tunnel create "${TUNNEL_NAME}" | |
# A tunnel JSON fájl elérési útjának kinyerése | |
TUNNEL_JSON_PATH=$(find ~/.cloudflared/ -type f -name "*.json" | head -n 1) | |
TUNNEL_ID=$(cat "${TUNNEL_JSON_PATH}" | grep "TunnelID" | awk -F'"' '{print $4}') | |
echo "Létrehozott Tunnel ID: ${TUNNEL_ID}" | |
# --- 3. KONFIGURÁCIÓS FÁJL LÉTREHOZÁSA ÉS ÁTMÁSOLÁSA --- | |
echo "" | |
echo "4. Konfigurációs fájl létrehozása és másolása a service-hez..." | |
# A konfigurációs fájl tartalmát egy változóba mentjük. | |
CONFIG_FILE_CONTENT="tunnel: ${TUNNEL_ID} | |
credentials-file: /etc/cloudflared/${TUNNEL_ID}.json | |
ingress: | |
- hostname: ${FULL_HOSTNAME} | |
service: ${APACHE_SERVICE} | |
- service: http_status:404" | |
# Eltároljuk a konfigurációs fájlt a megfelelő helyen. | |
mkdir -p /etc/cloudflared | |
echo "${CONFIG_FILE_CONTENT}" | tee /etc/cloudflared/config.yml > /dev/null | |
echo "A '/etc/cloudflared/config.yml' sikeresen létrehozva." | |
# Átmásoljuk a credentials fájlt, hogy a service hozzáférjen. | |
cp "${TUNNEL_JSON_PATH}" /etc/cloudflared/"${TUNNEL_ID}".json | |
echo "A credentials fájl sikeresen átmásolva." | |
# --- 4. DNS REKORD BEÁLLÍTÁSA --- | |
echo "" | |
echo "5. DNS rekord beállítása a Cloudflare-en..." | |
# A DNS rekord automatikus létrehozása a Cloudflare-en. | |
cloudflared tunnel route dns "${TUNNEL_NAME}" "${FULL_HOSTNAME}" | |
echo "A DNS rekord sikeresen beállítva a Cloudflare-en." | |
# --- 5. SZOLGÁLTATÁS BEÁLLÍTÁSA ÉS INDÍTÁSA --- | |
echo "" | |
echo "6. Cloudflared szolgáltatás beállítása és indítása..." | |
# Létrehozzuk a cloudflared systemd service-t | |
cat << EOF | tee /etc/systemd/system/cloudflared.service >/dev/null | |
[Unit] | |
Description=Cloudflare Tunnel | |
After=network-online.target | |
[Service] | |
ExecStart=cloudflared tunnel run ${TUNNEL_NAME} | |
Restart=on-failure | |
RestartSec=10 | |
StandardOutput=journal | |
StandardError=journal | |
User=root | |
[Install] | |
WantedBy=multi-user.target | |
EOF | |
# Frissítjük a systemd-t és elindítjuk a szolgáltatást | |
systemctl daemon-reload | |
systemctl start cloudflared | |
# Engedélyezzük a szolgáltatást, hogy automatikusan elinduljon a boot-kor. | |
systemctl enable cloudflared | |
echo "A Cloudflared szolgáltatás elindult és be van állítva az automatikus indításra." | |
echo "" | |
echo "--- TELEPÍTÉS KÉSZ! ---" | |
echo "A Cloudflare Tunnel most már fut a '${TUNNEL_NAME}' néven, és a '${FULL_HOSTNAME}' címen keresztül eléred a helyi szolgáltatásodat." | |
echo "Ellenőrizheted a service státuszát a 'sudo systemctl status cloudflared' paranccsal." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment