10

Cloudflare tunnel, как ngrock только Cloudflare

Cloudflare tunnel, как ngrock только Cloudflare

Не так давно я прикупил себе неттоп dell optiplex 3070 micro на авито и решил поставить его у себя на работе, что бы захостить на нем все свои пет проекты.

Если посчитать сумму которую я плачу за хостинг, то этот неттоп окупается за год, но по производительности на порядки мощнее всех vds за которые я плачу.

Проблема только в том, что на работе у меня нет белого ip и пробрасывать порты мне ни кто не будет, вот я и решил воспользоваться cloudflare tunnel.

Для начала необходимо создать аккаунт в cloudflare и привязать домен.

Инструкция https://developers.cloudflare.com/cloudflare-one/connections...

Docker https://hub.docker.com/r/cloudflare/cloudflared

Моя структура папок.

~/docker

mysql

docker-compose.yml - compose файл

cloudflare

_conf - конфиги cloudflare

docker-compose.yml - compose файл

Авторизация

cd ~/docker/cloudflare

mkdir _conf

chmod 0777 _conf

docker run -v ./_conf/:/home/nonroot/.cloudflared/ cloudflare/cloudflared:latest tunnel login

Создание

docker run -v ./_conf/:/home/nonroot/.cloudflared/ cloudflare/cloudflared:latest tunnel create mytunnelname

Список

docker run -v ./_conf/:/home/nonroot/.cloudflared/ cloudflare/cloudflared:latest tunnel list

Создаем конфиг файл _conf/config.yml

url: http://phpmyadmin

tunnel: <Tunnel-UUID>

credentials-file: /root/.cloudflared/<Tunnel-UUID>.json

Добавление записи DNS

docker run -v ./_conf/:/home/nonroot/.cloudflared/ cloudflare/cloudflared:latest tunnel route dns mytunnelname mytunnelname.topsicretdomain.ru

Для тестирования запуска я создам контейнер с phpMyAdmin ~/docker/mysql/docker-compose.yml

version: '3.9'

services:

mysql:

container_name: "mysql"

image: "mysql:8-debian"

restart: unless-stopped

volumes:

- ./data:/var/lib/mysql

- ./sql:/app

environment:

- MYSQL_ROOT_PASSWORD=root

- TZ=Europe/Moscow

phpmyadmin:

image: phpmyadmin

restart: unless-stopped

environment:

- PMA_HOST=mysql

ports:

- "8080:80"

networks:

default:

name: web

Запуск  phpMyAdmin

cd ~/docker/mysql/

docker compose up -d

Теперь можно запустить наш compose файл для cloudflare tunnel

version: '3.9'

services:

tunnel:

image: cloudflare/cloudflared:latest

container_name: cloudflare_tunnel

restart: unless-stopped

command: tunnel run mytunnelname

volumes:

- ./conf/:/home/nonroot/.cloudflared/

extra_hosts:

- "parent:host-gateway"

networks:

default:

name: web

cd ~/docker/cloudflare

docker compose up -d

Готово.  

Важно. Что бы все корректно работало необходимо запускать phpMyAdmin и cloudflared в одной docker сети

networks:

default:

name: web

Web-технологии

535 постов5.8K подписчиков

Правила сообщества

1. Не оскорблять других пользователей

2. Не пытаться продвигать свои услуги под видом тематических постов

3. Не заниматься рекламой

4. Никакой табличной верстки

5. Тег сообщества(не обязателен) pikaweb

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества