urocibg ревизій цього gist . До ревизії
1 file changed, 72 insertions
install-cloudflared-docker.sh(файл створено)
@@ -0,0 +1,72 @@ | |||
1 | + | #!/bin/bash | |
2 | + | ||
3 | + | # Автор: Федя Серафиев | |
4 | + | # Сайт: https://urocibg.eu | |
5 | + | # Дата: $(date +%Y-%m-%d) | |
6 | + | ||
7 | + | # Установяване на Docker и Docker Compose (ако не са инсталирани) | |
8 | + | if ! command -v docker &> /dev/null; then | |
9 | + | echo "Инсталиране на Docker..." | |
10 | + | sudo apt update | |
11 | + | sudo apt install -y apt-transport-https ca-certificates curl software-properties-common | |
12 | + | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg | |
13 | + | echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | |
14 | + | sudo apt update | |
15 | + | sudo apt install -y docker-ce docker-ce-cli containerd.io | |
16 | + | sudo usermod -aG docker $USER | |
17 | + | fi | |
18 | + | ||
19 | + | if ! command -v docker-compose &> /dev/null; then | |
20 | + | echo "Инсталиране на Docker Compose..." | |
21 | + | sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
22 | + | sudo chmod +x /usr/local/bin/docker-compose | |
23 | + | fi | |
24 | + | ||
25 | + | # Създаване на директории за конфигурация | |
26 | + | mkdir -p ~/cloudflared/{config,logs} | |
27 | + | ||
28 | + | # Заявка за Cloudflare Token | |
29 | + | read -p "Въведете вашия Cloudflare Token: " CLOUDFLARED_TOKEN | |
30 | + | read -p "Въведете име за тунела (напр. 'my-tunnel'): " TUNNEL_NAME | |
31 | + | ||
32 | + | # Генериране на credentials.json (ако тунелът не е създаден предварително) | |
33 | + | if [ ! -f ~/cloudflared/config/credentials.json ]; then | |
34 | + | echo "Създаване на нов тунел..." | |
35 | + | docker run --rm cloudflare/cloudflared:latest tunnel create $TUNNEL_NAME | tee ~/cloudflared/config/credentials.json | |
36 | + | fi | |
37 | + | ||
38 | + | # Създаване на конфигурационен файл (config.yml) | |
39 | + | cat > ~/cloudflared/config/config.yml <<EOL | |
40 | + | tunnel: $TUNNEL_NAME | |
41 | + | credentials-file: /etc/cloudflared/credentials.json | |
42 | + | logging: | |
43 | + | level: info | |
44 | + | ingress: | |
45 | + | - hostname: "example.yourdomain.com" # Сменете с вашия домейн | |
46 | + | service: http://localhost:80 # Указател към вашия сервиз | |
47 | + | - service: http_status:404 | |
48 | + | EOL | |
49 | + | ||
50 | + | # Създаване на Docker Compose файл | |
51 | + | cat > ~/cloudflared/docker-compose.yml <<EOL | |
52 | + | version: '3.8' | |
53 | + | services: | |
54 | + | cloudflared: | |
55 | + | image: cloudflare/cloudflared:latest | |
56 | + | container_name: cloudflared-tunnel | |
57 | + | restart: unless-stopped | |
58 | + | environment: | |
59 | + | - TZ=Europe/Sofia | |
60 | + | volumes: | |
61 | + | - ~/cloudflared/config:/etc/cloudflared | |
62 | + | - ~/cloudflared/logs:/var/log/cloudflared | |
63 | + | command: tunnel --no-autoupdate run --token ${CLOUDFLARED_TOKEN} | |
64 | + | EOL | |
65 | + | ||
66 | + | # Стартиране на тунела | |
67 | + | cd ~/cloudflared | |
68 | + | docker-compose up -d | |
69 | + | ||
70 | + | echo "Инсталацията завърши! Тунелът сега работи в Docker." | |
71 | + | echo "За да добавите домейни, редактирайте ~/cloudflared/config/config.yml и рестартирайте тунела:" | |
72 | + | echo "docker-compose restart" |
Новіше
Пізніше