Бесплатный безлимитный* веб сервер\хостинг

Сразу хотелось бы немного объяснить что значит звёздочка в заголовке статьи. По поводу "Бесплатный" сразу оговорюсь что из расходов может потребоваться покупка доменного имени, если не удастся разжиться бесплатным доменом. Значение "Безлимитный" ограничивается вашим железом, и ограничениями Cloudflare. В моём же случае максимум на что мне приходится тратить деньги это на интернет.

О Чем речь?

В гайде я расскажу о том, как я переехал на свой портативный и легкий веб сервер, который работает везде, где есть интернет. Для его работы не нужен статический IP адрес, не нужен динамический DNS (DDNS), не нужен белый IP, не нужно даже пробрасывать порты. Сервер будет работать даже на 3G/4G/5G интернете. В моём случае как раз используется 5G безлимитный интернет с серым (CG-NAT) IP адресом.
Настройка такой машинки займёт около получаса времени, и то по большей мере из-за скачки OSpanel-и.

Что нужно?

Для быстрого запуска сервера понадобится:







Приступим.

Первое что я сделал это подготовил старый ноут, который давно лежал без дела. Для удобства я отрезал часть места диска под нужны сервера. Это делать не обязательно, но мне так удобно.
Следующий шаг это загрузка OSpanel и cloudflared.exe.
В статье я опишу как настраивал на open server panel 6.3.5, т.к. с 6 версии панель кардинально изменилась, и гайдов по ней не так много, а пользоваться версией 5-х не вижу смысла.

Для начала скачиваем панель с оф. сайта или GitHub и устанавливаем в подготовленное место. У меня получилось D:\OSPanel. После установки возможно потребуется перезагрузка для запуска сервера.

Следующим шагом создадим проект, подключим php, ngnix и MySQL.
В новой версии панели проекты лежат по адресу D:\OSPanel\home. Сам проект представляет собой директорию с вложенной папкой .osp в которой лежит файл конфигурации проекта project.ini

image

Для удобства я так же создал папку www в которой будет храниться код проекта, а поддомены будут в соответствующих папках рядом с www.

image

Файл конфигурации должен иметь в себе следующее:

[saxar.local] - Название проекта (будет отображаться в панели)
php_engine = PHP-8.4 - Версия php
aliases = saxar.pp.ua - Алиас
public_dir = {base_dir}/www - Папка с кодом проекта

[m.saxar.local] - Название проекта для поддомена
php_engine = PHP-8.4 Версия php
aliases = m.saxar.pp.ua - Алиас
public_dir = {base_dir}/m - Папка с кодом проекта

[ОСТАЛЬНЫЕ ПОДДОМЕНЫ]...

Так же не забываем создать index.php в папке www чтоб мы могли увидеть работу php.
<?php
echo "php";
?>

После создания проекта перезапускаем сервер с помощью иконки в трее.

image

И в меню в пункте проекты появятся ваши домены.
Далее в меню Модули включаем php нужной версии и MySQL если это нужно. Я же включил php 8.4 MySQL 8.4 и ngnix 1.28. Если нужно можно по быстрому установить phpmyadmin по инструкции из ЭТОЙ статьи. Если вкратце то по аналогии с предыдущим пунктом создаем проект с названием например pma, далее в папку www распаковываем архив, переименуйте файл config.sample.inc.php в config.inc.php и редактируем несколько строк кода в конфиге. Далее авторизуемся в pma с логином root без пароля и меняем пароль на свой в настройках пользователя. Проверяем чтоб все работало и переходим к следующему шагу. Если в итоге мы получили рабочий проект с работающим php и MySQL можем перейти к настройке туннеля.

СloudFlared туннель.

Для следующего шага нам понадобится ранее скачанный файл cloudflared.exe и несколько команд. Для удобства я положил файл по пути D:\Server\cloudflared.exe. Не имеет значения расположение файла, но чтоб просто копировать и вставлять команды в консоль советую сделать так же.
Для настройки туннеля открываем PowerShell и вписываем команду:

D:\Server\cloudflared.exe tunnel login


после чего в браузере откроется страница авторизации на cloudflare. Авторизуемся и выбирем припаркованный домен.
Далее прописываем команду для создания туннеля

D:\Server\cloudflared.exe tunnel create saxar-tunnel

Создастся туннель и файл конфигурации config.yml по пути C:\Users\Admin\.cloudflared. Если его нет создаем вручную и вписываем в него

tunnel: saxar-tunnel (название вашего туннеля)
credentials-file: C:\Users\Admin\.cloudflared\ваш-конфиг.json (создастся автоматически)

ingress:
  - hostname: saxar.pp.ua - название хоста(ваш домен)
    service: http://saxar.local - адрес локального соответсвующего хоста
  - hostname: m.saxar.pp.ua - адрес поддомена если нужен
    service: http://m.saxar.local - локальный адрес поддомена
  - service: http_status:404

Все последующие хосты прописываем по аналогии.
Дальше нужно прописать

D:\Server\cloudflared.exe tunnel route dns saxar-tunnel saxar.pp.ua
и
D:\Server\cloudflared.exe tunnel route dns saxar-tunnel m.saxar.pp.ua

для домена и поддомена. При этом автоматически создадутся CNAME записи DNS в кабинете cloudflare.

Если в предыдущих пунктах вы не получили никаких ошибок то можем приступать к запуску туннеля

D:\Server\cloudflared.exe tunnel run saxar-tunnel

Если верить документации то туннель может работать 24/7 и нет ограничений по трафику.
Для нормальной работы так же нужно в настройках OSpanel поставить автозапуск при старте Windows и в планировщике заданий Windows создать запись для автозапуска туннеля. Для этого в поиск вписываем Планировщик заданий, далее в левой колонке выбираем Библиотека планировщика и в правой колонке нажимаем Создать простую задачу.

image

В появившемся окне вводим название задачи, нажимаем Далее Выбираем пункт При запуске компьютера, дальше выбираем Запустить программу и в последнем окне вводим

D:\Server\cloudflared.exe tunnel run saxar-tunnel

Программа предложит создать задание для запуска файла D:\Server\cloudflared.exe с аргументом tunnel run saxar-tunnel. Соглашаемся и завершаем создание. После этого туннель будет автостартовать при запуске винды вместе с OSpanel.

Итог
По итогу мы должны получить готовы работающий сайт с поддоменом, ssl без каких либо лишних затрат. Обязательно нужно позаботиться о безопасности, так что посетите раздел Security в Cloudflare и настройте все модули в OSpanel. Не обязательно использовать готовые решения, т.к. можно вручную настроить php, MySQL,ngnix,bind по инструкциям из интернета. Из минусов хочу отметить что настроить почту таким способом не получится (если вы знаете как - отпишитесь)

image
В статье не поднимаются вопросы настройки планов электропитания и всего остального, т.к. это ужи индивидуальные настройки каждого.

URL: http://saxar.pp.ua/articles/14