Стартирайте професионален WordPress сайт на Ubuntu за 15 минути с Docker, автоматичен SSL и безплатен Cloudflare Tunnel. Включва готов docker-compose.yml файл и стъпка по стъпка инструкции - без нужда от порт forwarding или статичен IP адрес! 🎯
Искали ли сте някога да стартирате WordPress сайт от вкъщи, но сте се отказвали заради сложната настройка на портове и SSL сертификати? 🤔 Тази статия ще ви покаже как да направите това за 15 минути с помощта на Docker и Cloudflare Tunnel - напълно безплатно!
🎯 Какво ще постигнем
✅ Работещ WordPress сайт с MySQL база данни
✅ Автоматичен SSL сертификат
✅ Достъп от интернет без порт forwarding
✅ Професионален домейн (безплатен от Cloudflare)
✅ Автоматични backup-и
✅ Лесно мащабиране и поддръжка
🛠️ Необходими неща
Ubuntu 20.04+ сървър или desktop
Домейн (може да бъде безплатен от Freenom)
Cloudflare акаунт (безплатен)
10-15 минути свободно време
📋 Стъпка 1: Подготовка на системата
🔄 Обновяване на Ubuntu
sudo apt update && sudo apt upgrade -y
sudo apt install curl wget git nano -y
📁 Създаване на работна директория
mkdir ~/wordpress-docker
cd ~/wordpress-docker
🐳 Стъпка 2: Инсталиране на Docker
📥 Автоматична инсталация
# Свалете официалния Docker скрипт
curl -fsSL https://get.docker.com -o get-docker.sh
# Инсталирайте Docker
sudo sh get-docker.sh
# Добавете потребителя си към docker групата
sudo usermod -aG docker $USER
# Излезте и влезте отново в терминала или изпълнете:
newgrp docker
# Проверете инсталацията
docker --version
docker-compose --version
✅ Тест на Docker
docker run hello-world
Ако видите "Hello from Docker!", всичко е наред! 🎉
🗄️ Стъпка 3: Създаване на Docker Compose файл
Създайте файл docker-compose.yml:
services:
# 🗄️ MySQL база данни
mysql:
image: mysql:8.0
container_name: wordpress_mysql
restart: unless-stopped
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: secure_password_123
MYSQL_ROOT_PASSWORD: root_password_456
volumes:
- mysql_data:/var/lib/mysql
networks:
- wordpress_network
# 🌐 WordPress
wordpress:
image: wordpress:latest
container_name: wordpress_site
restart: unless-stopped
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: secure_password_123
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
depends_on:
- mysql
networks:
- wordpress_network
# 🔧 phpMyAdmin (опционално)
phpmyadmin:
image: phpmyadmin:latest
container_name: wordpress_phpmyadmin
restart: unless-stopped
ports:
- "8081:80"
environment:
PMA_HOST: mysql
MYSQL_ROOT_PASSWORD: root_password_456
depends_on:
- mysql
networks:
- wordpress_network
volumes:
mysql_data:
wordpress_data:
networks:
wordpress_network:
driver: bridge
🚀 Стъпка 4: Стартиране на WordPress
▶️ Стартиране на контейнерите
# Стартирайте всички услуги
docker-compose up -d
# Проверете статуса
docker-compose ps
🌐 Първоначална настройка
Отворете браузър и идете на http://localhost:8080
Изберете език и попълнете данните:
Заглавие на сайта: Моя WordPress сайт
Потребителско име: admin
Парола: (използвайте силна парола)
Email: your-email@example.com
☁️ Стъпка 5: Настройка на Cloudflare Tunnel
🔐 Създаване на Cloudflare акаунт
Идете на cloudflare.com и създайте безплатен акаунт
Добавете вашия домейн
Променете nameserver-ите към Cloudflare
📥 Инсталиране на cloudflared
# Свалете cloudflared
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
# Инсталирайте го
sudo dpkg -i cloudflared-linux-amd64.deb
# Влезте в Cloudflare акаунта си
cloudflared tunnel login
🛤️ Създаване на tunnel
# Създайте tunnel
cloudflared tunnel create wordpress-tunnel
# Запишете Tunnel ID-то (ще го видите в изхода)
# Пример: Created tunnel wordpress-tunnel with id: 12345678-1234-1234-1234-123456789012
⚙️ Конфигуриране на tunnel
Създайте файл ~/.cloudflared/config.yml:
tunnel: wordpress-tunnel
credentials-file: /home/YOUR_USERNAME/.cloudflared/12345678-1234-1234-1234-123456789012.json
ingress:
- hostname: yourdomain.com
service: http://localhost:8080
- hostname: admin.yourdomain.com
service: http://localhost:8081
- service: http_status:404
⚠️ Не забравяйте да замените:
YOUR_USERNAME с вашето потребителско име
12345678-1234-1234-1234-123456789012 с вашето Tunnel ID
yourdomain.com с вашия домейн
🌐 DNS настройки
# Добавете DNS записи
cloudflared tunnel route dns wordpress-tunnel yourdomain.com
cloudflared tunnel route dns wordpress-tunnel admin.yourdomain.com
▶️ Стартиране на tunnel
# Стартирайте tunnel-а
cloudflared tunnel run wordpress-tunnel
# За да работи постоянно, създайте systemd service
sudo cloudflared service install
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
🔒 Стъпка 6: SSL и сигурност
🛡️ Cloudflare SSL настройки
В Cloudflare Dashboard → SSL/TLS
Изберете "Full (strict)" режим
Активирайте "Always Use HTTPS"
Активирайте "HTTP Strict Transport Security (HSTS)"
🔧 WordPress SSL настройки
Добавете в wp-config.php файла:
# Влезте в WordPress контейнера
docker exec -it wordpress_site bash
# Редактирайте wp-config.php
nano wp-config.php
Добавете тези редове преди /* That's all, stop editing! */:
php// 🔒 SSL настройки за Cloudflare
if (isset($_SERVER['HTTP_CF_VISITOR']) &&
strpos($_SERVER['HTTP_CF_VISITOR'], 'https')) {
$_SERVER['HTTPS'] = 'on';
}
define('FORCE_SSL_ADMIN', true);
define('WP_HOME','https://yourdomain.com');
define('WP_SITEURL','https://yourdomain.com');
📊 Стъпка 7: Полезни Docker команди
🔍 Мониторинг
# Преглед на логовете
docker-compose logs -f wordpress
docker-compose logs -f mysql
# Статус на контейнерите
docker-compose ps
# Използвани ресурси
docker stats
🛠️ Поддръжка
# Спиране на услугите
docker-compose stop
# Стартиране на услугите
docker-compose start
# Рестартиране
docker-compose restart
# Обновяване на images
docker-compose pull
docker-compose up -d
🗑️ Почистване
# Премахване на контейнерите (БЕЗ данните)
docker-compose down
# Премахване на контейнерите И данните
docker-compose down -v
🔧 WordPress оптимизации
W3 Total Cache - за кеширане
WP Rocket - премиум кеширане (препоръчително)
Smush - оптимизация на изображения
Cloudflare - интеграция с Cloudflare
📋 Checklist за успешна инсталация
Ubuntu е обновен
Docker е инсталиран и работи
docker-compose.yml файлът е създаден
WordPress контейнерите са стартирани
WordPress е достъпен на localhost:8080
Cloudflare акаунт е създаден
Домейнът е добавен в Cloudflare
cloudflared е инсталиран
Tunnel е създаден и конфигуриран
DNS записите са добавени
SSL е активиран (Full strict)
WordPress е достъпен през домейна
Backup скриптът е създаден
Health check скриптът работи
🎯 Заключение
Поздравления! 🎉 Вече имате напълно функционален WordPress сайт с:
✅ Професионален домейн с SSL сертификат
✅ Cloudflare защита и ускорение
✅ Автоматични backup-и
✅ Лесна поддръжка с Docker
✅ Мащабируемост при нужda
🚀 Следващи стъпки
Изберете тема за вашия сайт
Инсталирайте нужните плъгини
Настройте SEO с Yoast или RankMath
Добавете Google Analytics
Създайте първите си страници/публикации
📚 Полезни ресурси
🐳 Docker Documentation
☁️ Cloudflare Docs
🌐 WordPress Codex
🔧 Docker Compose Reference
💡 Съвети за поддръжка
Редовно обновявайте Docker images
Мониторирайте ресурсите с docker stats
Проверявайте backup-ите ежемесечно
Следете Cloudflare алертите
Използвайте staging среда за тестове
🎯 Успех! Вашият WordPress сайт е готов за света! Споделете в коментарите какво ще градите с тази настройка! 💪
Top comments (0)