Как бесплатно разместить сайт на старом ноутбуке (Ubuntu Server, WordPress и Cloudflared)

Если вы планируете запустить сайт, но не хотите платить ежемесячную или годовую плату за хостинг, можно использовать старый ноутбук или настольный ПК и раздавать сайт бесплатно. Это хороший способ дать вторую жизнь устройству вместо списания или утилизации.
В этом материале мы настроим сервисы на нашем 10-летнем ноутбуке под управлением Ubuntu Server, чтобы разместить WordPress, Joomla или кастомный HTML/PHP-сайт с бесплатным SSL-сертификатом через Cloudflare Tunnel.
Что понадобится для домашнего хостинга сайта
Короткий список требований перед началом:
- Старый ноутбук или ПК с установленным Ubuntu Server.
- Зарегистрированное доменное имя (например, example.ru).
- Кабель Ethernet для стабильного и быстрого соединения с роутером (рекомендуется).
- Аккаунт в Cloudflare для использования «cloudflared» и получения HTTPS через туннель.
- Базовые знания командной строки Linux и SSH-доступ к серверу.
Шаг 1: Обновите пакеты и систему
После установки Ubuntu Server выполните обновление списка пакетов и обновление системы. Подключитесь по SSH (например, с помощью терминала macOS/Linux или PuTTY в Windows) и выполните:
sudo apt update && sudo apt upgrade -yПроцесс может занять несколько минут. Дождитесь завершения.
Важно: периодически повторяйте обновления пакетов, чтобы получать исправления безопасности.
Шаг 2: Установка Apache
Apache — надёжный веб-сервер с поддержкой PHP. Установите его командой:
sudo apt install apache2 -yПри подсказке подтвердите установку нажатием Y и Enter. После установки проверьте статус службы:
systemctl status apache2Если всё в порядке, вы увидите статус active (running). Чтобы проверить визуально, откройте браузер и перейдите по локальному IP вашего сервера или http://localhost.
Шаг 3: Установка MariaDB (MySQL совместимый сервер)
MariaDB — свободная реализация MySQL, широко используемая для CMS. Установите сервер и клиент:
sudo apt install mariadb-server mariadb-client -yПодтвердите установку. Затем выполните встроенную утилиту для первоначальной настройки и усиления безопасности:
sudo mysql_secure_installationОтветьте на вопросы утилиты так:
- Set root password? — Y — введите сложный пароль для root.
- Remove anonymous users? — Y
- Disallow root login remotely? — Y (если не требуется удалённый root-доступ)
- Remove test database and access to it? — Y
- Reload privilege tables now? — Y
Эти шаги закроют базовые дыры в конфигурации по умолчанию.
Шаг 4: Установка PHP
PHP обрабатывает динамический контент сайта, подключается к базе данных и запускает плагины WordPress. Установите PHP и модуль для работы с MariaDB:
sudo apt install php php-mysql libapache2-mod-php -yСоздайте тестовый файл для проверки установки PHP:
sudo nano /var/www/html/test.phpВставьте содержимое:
Сохраните (CTRL+X, Y, Enter). Откройте в браузере http://IP-адрес/ тестового сервера/test.php — вы должны увидеть страницу с информацией о PHP.
Шаг 5: Создание базы данных и пользователя для сайта
Подключитесь к серверу баз данных под root:
sudo mysql -u root -pВведите пароль root, затем выполните команды для создания базы и пользователя (замените имена и пароли на свои):
CREATE DATABASE mysite;
CREATE USER 'siteuser'@'localhost' IDENTIFIED BY 'YourStrongPassword';
GRANT ALL PRIVILEGES ON mysite.* TO 'siteuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;Это создаст базу mysite и пользователя siteuser с полными правами.
Шаг 6: Загрузка и настройка WordPress
Перейдите в корневую папку веб-сайта и скачайте последнюю версию WordPress:
cd /var/www/html/
sudo wget https://wordpress.org/latest.tar.gz
sudo tar xf latest.tar.gzПосле распаковки вы получите папку wordpress. Установите правильные права:
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;Откройте в браузере http://IP-адрес/wordpress и следуйте мастеру установки. При запросе укажите:
- Database Name: mysite
- Username: siteuser
- Password: пароль, который вы задали
- Database Host: localhost
- Table Prefix: оставить по умолчанию
Затем заполните заголовок сайта и создайте администратора WordPress (логин и пароль для wp-admin).
Шаг 7: Настройка Cloudflare и загрузка cloudflared
Чтобы открыть сайт внешнему миру и получить HTTPS без настройки проброса портов на роутере, используйте Cloudflare Tunnel (cloudflared). Для этого зарегистрируйте аккаунт в Cloudflare и добавьте домен. Затем скачайте пакет cloudflared на сервер:
sudo wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.debЕсли dpkg выдаст зависимости, установите их:
sudo apt --fix-broken install -yШаг 8: Создание туннеля и включение HTTPS
Авторизуйте cloudflared для вашей учётной записи Cloudflare:
cloudflared tunnel loginКоманда выведет URL — откройте его в браузере и подтвердите доступ к домену. Затем создайте туннель с понятным именем (например, mysite):
cloudflared tunnel create mysiteСохраните путь к файлу с учётными данными (credentials-file) и tunnel ID. Создайте конфигурационный файл:
sudo nano ~/.cloudflared/config.ymlПример содержимого (замените tunnel и пути на ваши значения, а также hostname и локальный адрес сервера):
tunnel: a2efc6dg1-2c75-45f8-b529d3ee
credentials-file: /home/youruser/.cloudflared/a2efc6dg1-2c75-45f8-b529d3ee.json
ingress:
- hostname: yoursite.example.ru
service: http://127.0.0.1:80
- service: http_status:404Сохраните файл. Создайте запись DNS в Cloudflare, использующую маршрут туннеля:
cloudflared tunnel route dns mysite yoursite.example.ruЗапустите туннель:
cloudflared tunnel run mysiteПосле этого ваш домен должен открывать контент, который обслуживает Apache на вашем локальном сервере. Если внешне сайт доступен, но дизайн ломается (CSS не загружается), проверьте в админ-панели WordPress настройки URL.
Откройте https://yoursite.example.ru/wp-admin, перейдите в Settings > General и задайте оба URL в формате https://yoursite.example.ru или https://yoursite.example.ru/wordpress в зависимости от расположения файлов.
В Cloudflare в разделе SSL/TLS выберите уровень шифрования Flexible или Full. Для большей безопасности используйте Full (strict) вместе с Origin Certificate от Cloudflare или собственным сертификатом на сервере.
Безопасность и защитные меры
Ключевые рекомендации для защиты домашнего сервера:
- Всегда обновляйте систему и пакеты: sudo apt update && sudo apt upgrade -y.
- Ограничьте SSH-доступ: используйте аутентификацию по ключам, отключите вход по паролю, смените порт SSH при необходимости.
- Создайте отдельного пользователя без прав root для повседневных задач.
- Включите fail2ban для защиты от грубой силы: sudo apt install fail2ban.
- Настройте ufw (firewall):
sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'
sudo ufw enable- Регулярно делайте резервные копии базы данных и файлов wp-content (плагины, темы, загрузки).
- Если вы используете Cloudflare Tunnel, по возможности ограничьте прямые входящие соединения на уровне роутера/маршрутизатора.
- Ограничьте доступ к phpMyAdmin (если установлен) по IP или через авторизацию.
Резервное копирование и восстановление
Простая стратегия резервного копирования:
- Файлы сайта: /var/www/html/wordpress — создавайте tar-архивы и копируйте их на внешний диск или облако.
- База данных:
mysqldump -u siteuser -p mysite > /root/backups/mysite_$(date +%F).sql- Храните как минимум 2–4 актуальные копии: ежедневную (7 дней назад), недельную и месячную копии.
- Тестируйте восстановление, чтобы избежать сюрпризов.
Оценка затрат и потребления электроэнергии
Домашний хостинг бесплатен в части платы за хостинг, но не бесплатен по электричеству. На что обращать внимание:
- Ноутбуки обычно потребляют порядка 30–65 Вт при полной нагрузке. Настольные ПК потребляют значительно больше.
- Чем старее и мощнее железо, тем выше потребление и шум вентилятора.
- Если планируете работать 24/7, учтите ежемесячные расходы на электроэнергию в своём регионе.
- Энергоэффективная альтернатива — Raspberry Pi (типичный блок питания 15 Вт).
Важно: реальные значения зависят от конкретной модели и нагрузки.
Когда домашний хостинг не подойдёт
Контрпримеры и ограничения модели:
- Производительность: высокий трафик и пиковые нагрузки (много одновременных посетителей) лучше обслуживает коммерческий VPS или облачный хостинг.
- Надёжность: домашный интернет может иметь прерывания, а динамический IP усложняет доступ (обход — туннели или динамический DNS).
- Безопасность и соответствие требованиям: сайты, обрабатывающие чувствительные данные или платежи, часто требуют сертифицированного хостинга и резервных инфраструктур.
- Сложность поддержки: если у вас нет времени на обслуживание и обновления, дешевый VPS с управлением будет удобнее.
Альтернативные подходы
- Raspberry Pi 4/400 — энергосберегающая платформа для небольших сайтов.
- Дешёвый VPS (1–2 vCPU, 1–2 ГБ RAM) — от небольших провайдеров, обеспечивает стабильный внешний IP и SLA.
- PaaS / managed WordPress — для тех, кто не хочет заниматься администрированием.
Миграция на платный хост
Если сайт перерос домашний хостинг, подготовьте план миграции:
- Сделайте полную резервную копию файлов и дамп базы данных.
- На новой платформе создайте БД и пользователя с правами.
- Загрузите файлы и выполните импорт дампа через mysql или phpMyAdmin.
- Проверьте URL, права доступа и настройки SSL.
- Тестируйте на staging (предварительном) домене перед переключением DNS.
Проверки и критерии приёмки
Критерии приёмки для рабочего домашнего хоста:
- Сайт доступен по домену через HTTPS.
- WordPress работает: авторизация в /wp-admin успешна.
- CSS и изображения загружаются корректно.
- Резервные копии базы и файлов созданы и восстановлены успешно в тестовой среде.
- Автоматический запуск cloudflared настроен (systemd-сервис) и перезапускается после сбоя.
Пример systemd unit для cloudflared:
[Unit]
Description=Cloudflare Tunnel
After=network.target
[Service]
Type=simple
User=youruser
ExecStart=/usr/local/bin/cloudflared tunnel run mysite
Restart=on-failure
[Install]
WantedBy=multi-user.targetСохраните как /etc/systemd/system/cloudflared.service, затем:
sudo systemctl daemon-reload
sudo systemctl enable --now cloudflared.serviceШаблон чеклиста для ролей
Администратор:
- Установить Ubuntu Server и обновить систему.
- Настроить SSH с ключами.
- Установить Apache, MariaDB, PHP.
- Настроить firewall и fail2ban.
Владелец сайта/контент-менеджер:
- Проверить контент и медиа.
- Настроить резервные копии и расписание.
- Проверить плагин безопасности и обновления темы.
Разработчик:
- Проверить работоспособность плагинов и кода.
- Провести нагрузочное тестирование в пределах допустимого.
- Проверить кроссбраузерность и адаптивность.
Тестовые сценарии и приёмо-сдаточные тесты
- Открытие главной страницы по HTTPS — 200 OK и корректная верстка.
- Авторизация администратора — успешный вход и переход в Dashboard.
- Создание записи и отображение на фронтенде.
- Резервная копия базы и восстановление в чистой среде.
- Перезапуск cloudflared и проверка авто-подключения.
Устранение неисправностей
Частые проблемы и решения:
- CSS не загружается: проверьте в WP Settings корректность Site Address и WordPress Address, проверьте mixed-content (http/https), включите правильный уровень SSL в Cloudflare.
- Tunnel не запускается: проверьте правильность credentials-file и tunnel id в config.yml, проверьте логи systemd.
- 502/504 ошибки: проверьте, что Apache слушает локально на порту 80 и сервисы работают.
Краткая методология развертывания (mini-methodology)
- Подготовить аппарат и установить Ubuntu Server.
- Установить LAMP-стек (Apache, MariaDB, PHP).
- Настроить базу данных и загрузить CMS (WordPress).
- Настроить Cloudflare и создать туннель для HTTPS и внешнего доступа.
- Обеспечить безопасность, резервное копирование и мониторинг.
Фактбокс с ключевыми числами
- Энергопотребление ноутбука: обычно 30–65 Вт при полной нагрузке.
- Raspberry Pi: около 15 Вт типичное потребление.
- Рекомендуемые права для директорий: директории 755, файлы 644.
- Рекомендуемые частоты резервного копирования: база — ежедневно; файлы — еженощно или по требованию.
Короткий словарь терминов
- LAMP: Linux, Apache, MySQL/MariaDB, PHP — классический набор для веб-хостинга.
- Cloudflare Tunnel: сервис для безопасного доступа к локальному сервису без проброса портов.
- SSL/TLS: криптография для защищённого HTTPS-соединения.
Резюме и рекомендации
Разворачивание сайта на старом ноутбуке — полезный и недорогой старт для демонстрации проектов, разработки и небольших сайтов. Использование cloudflared упрощает выход в интернет и получение HTTPS без сложной настройки роутера. Однако при росте трафика, требованиях надёжности или соблюдении стандартов лучше рассмотреть VPS или управляемый хостинг.
Важно
- Следите за обновлениями безопасности и резервными копиями.
- Оценивайте потребление электроэнергии и шума, если сервер будет работать 24/7.
- Периодически тестируйте процедуры восстановления.
Ключевые шаги ещё раз: подготовить сервер → установить LAMP → установить WordPress → настроить Cloudflare Tunnel → включить резервные копии и безопасность.
Дополнительная помощь
Если нужно, могу подготовить:
- systemd unit для автостарта cloudflared с примерными параметрами под вашу учётную запись;
- пошаговый чеклист миграции с примерами команд для конкретных версий Ubuntu;
- краткий план перехода с домашного сервера на коммерческий VPS.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone