bolt Valebyte VPS от $4/мес — NVMe, запуск за 60 секунд.

Получить VPS arrow_forward

Flarum на VPS: установка, настройка и обслуживание

calendar_month 21 июня 2026 schedule 20 мин. чтения visibility 17 просмотров
person
Valebyte Team
Flarum на VPS: установка, настройка и обслуживание

Flarum на VPS — это современная платформа для создания форумов, которую можно установить и настроить на виртуальном частном сервере (VPS) для полного контроля над производительностью, безопасностью и масштабируемостью, что обеспечивает гибкое и эффективное решение для вашего сообщества.

Что такое Flarum и почему стоит выбрать VPS для его развертывания?

Flarum — это элегантный, быстрый и современный форумный движок, разработанный с нуля для простоты использования и расширяемости. Он написан на PHP с использованием фреймворка Laravel и React для фронтенда, что обеспечивает динамичный и отзывчивый пользовательский интерфейс. Flarum отличается минималистичным дизайном, интуитивно понятным управлением и мощной системой плагинов, позволяющей адаптировать функциональность под любые нужды. В отличие от тяжеловесных решений прошлого, Flarum стремится быть легким и быстрым, предлагая современный подход к созданию онлайн-сообществ.

Преимущества Flarum для сообщества

Выбор Flarum для вашего онлайн-сообщества предоставляет ряд значительных преимуществ:

  • Современный интерфейс: Flarum предлагает чистый, отзывчивый и интуитивно понятный дизайн, который отлично выглядит на любом устройстве. Это повышает вовлеченность пользователей и упрощает навигацию по форуму.
  • Высокая производительность: Оптимизированная архитектура и использование современных технологий обеспечивают быструю загрузку страниц и плавное взаимодействие, что критически важно для удержания пользователей.
  • Простота использования: Как для администраторов, так и для рядовых пользователей, Flarum максимально прост в освоении. Управление контентом, модерация и участие в дискуссиях не вызывают затруднений.
  • Расширяемость: Благодаря мощной системе плагинов, Flarum легко расширяется. Вы можете добавлять новые функции, интегрировать сторонние сервисы и настраивать форум под специфические требования вашего сообщества.
  • Активное развитие: Проект Flarum активно развивается сообществом, регулярно выходят обновления, исправляются ошибки и добавляются новые возможности.

Почему Flarum self-hosted на VPS — оптимальный выбор?

Хотя существуют облачные платформы для хостинга форумов, Flarum self-hosted на VPS предлагает непревзойденный уровень контроля и гибкости. Размещение Flarum на собственном виртуальном частном сервере от Valebyte.com позволяет:

  • Полный контроль: Вы полностью контролируете серверную среду, установленное программное обеспечение, настройки безопасности и данные. Это критически важно для проектов с высокими требованиями к конфиденциальности и кастомизации.
  • Масштабируемость: По мере роста вашего сообщества, вы можете легко масштабировать ресурсы VPS (CPU, RAM, хранилище) без необходимости миграции на другую платформу. Это обеспечивает плавный рост и стабильную работу при любой нагрузке.
  • Оптимизация производительности: Вы можете тонко настроить серверное окружение (веб-сервер, PHP, базу данных) для максимальной производительности Flarum, исходя из специфики вашего трафика и использования.
  • Экономическая эффективность: В долгосрочной перспективе, хостинг на VPS часто оказывается более выгодным, чем подписки на специализированные облачные платформы, особенно при росте аудитории.
  • Безопасность: Вы самостоятельно управляете мерами безопасности, устанавливаете фаерволы, системы обнаружения вторжений и регулярно обновляете программное обеспечение, что обеспечивает высокий уровень защиты данных.
  • Интеграция: На VPS проще интегрировать Flarum с другими вашими сервисами или приложениями, будь то единая система авторизации (SSO), аналитика или кастомные инструменты.

Использование Docker для развертывания Flarum на VPS дополнительно упрощает процесс, изолируя приложение и его зависимости, что повышает стабильность и облегчает управление.

Системные требования для Flarum на сервере

Прежде чем приступить к установке Flarum на сервере, важно убедиться, что ваш VPS соответствует минимальным системным требованиям. Flarum, как современное PHP-приложение, имеет определенные зависимости, которые должны быть удовлетворены для его корректной работы.

Минимальные и рекомендуемые характеристики VPS

Выбор VPS-конфигурации зависит от ожидаемой нагрузки и количества активных пользователей. Для начала работы с небольшим сообществом подойдут минимальные требования, но для растущего или уже активного форума потребуется более мощный сервер.

Минимальные требования для Flarum (до 50-100 активных пользователей):

  • Процессор (CPU): 1 vCPU с частотой 2.0+ GHz.
  • Оперативная память (RAM): 1 GB. Этого достаточно для работы PHP-FPM, базы данных и веб-сервера при невысокой нагрузке.
  • Дисковое пространство: 10-20 GB NVMe SSD. NVMe значительно ускоряет операции ввода-вывода, что важно для базы данных и кэширования.
  • Пропускная способность: 500 GB - 1 TB/месяц.
  • Операционная система: Ubuntu 22.04 LTS, Debian 11/12 или CentOS 8/Stream.

Рекомендуемые требования для Flarum (100-500 активных пользователей):

  • Процессор (CPU): 2 vCPU с частотой 2.5+ GHz.
  • Оперативная память (RAM): 2-4 GB. Позволяет лучше кэшировать данные и обрабатывать больше одновременных запросов.
  • Дисковое пространство: 50 GB NVMe SSD. Обеспечивает достаточный объем для данных, логов и потенциального роста.
  • Пропускная способность: 2-4 TB/месяц.
  • Операционная система: Ubuntu 22.04 LTS, Debian 12.

Для очень крупных сообществ с тысячами активных пользователей потребуется более мощные конфигурации, возможно, с отдельными серверами для базы данных и веб-сервера, а также балансировкой нагрузки. Однако для большинства случаев VPS среднего уровня будет достаточно.

Необходимое программное обеспечение

Для успешной установки Flarum на VPS, помимо операционной системы, вам потребуется следующее программное обеспечение. Использование Docker значительно упрощает управление этими зависимостями.

  • Docker Engine: Основной компонент для запуска контейнеров.
  • Docker Compose: Инструмент для определения и запуска многоконтейнерных Docker-приложений.
  • Веб-сервер: Nginx или Apache (для работы Flarum нужен PHP-FPM, который будет взаимодействовать с веб-сервером). В нашей статье мы будем использовать Nginx в качестве обратного прокси для Docker-контейнера.
  • База данных: MySQL 5.6+ / MariaDB 10.0.5+. Flarum хранит все свои данные в реляционной базе данных.
  • PHP: PHP 8.1+ с расширениями:
    • php-fpm (для Nginx)
    • php-mysql
    • php-json
    • php-gd
    • php-dom
    • php-mbstring
    • php-tokenizer
    • php-zip
    • php-xml
    • php-bcmath
    • php-gmp

    При использовании Docker, все эти PHP-расширения уже включены в официальный образ Flarum.

  • Composer: PHP-менеджер зависимостей (хотя при использовании Docker, он часто не требуется для конечного пользователя, так как используется внутри контейнера).
  • Git: Для клонирования репозиториев (полезно, но не строго обязательно для Docker-установки).

В этой статье мы сосредоточимся на установке Flarum с использованием Docker и Docker Compose, что значительно упрощает управление всеми этими зависимостями, так как они будут инкапсулированы в контейнерах.

Ищете надёжный сервер для ваших проектов?

VPS от $10/мес и выделенные серверы от $9/мес с NVMe, DDoS-защитой и поддержкой 24/7.

Смотреть предложения →

Подготовка VPS к установке Flarum Docker: Базовые шаги

Перед тем как приступить к установке Flarum, необходимо подготовить ваш VPS. Эти шаги являются стандартными для большинства Linux-серверов и обеспечивают безопасную и стабильную основу для вашего приложения.

Обновление системы и установка Docker Engine

Первым делом, подключитесь к вашему VPS по SSH как пользователь root или с правами sudo. Рекомендуется использовать пользователя с sudo-правами для повседневной работы, но для установки Docker часто удобнее временно использовать root.

Обновите список пакетов и установленные пакеты до актуальных версий:

sudo apt update && sudo apt upgrade -y

Установите необходимые пакеты для Docker:

sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release

Добавьте официальный GPG-ключ Docker:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Добавьте репозиторий Docker в APT-источники:

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Снова обновите список пакетов и установите Docker Engine, Docker CLI и Containerd:

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Проверьте, что Docker установлен и работает:

sudo docker run hello-world

Вы должны увидеть сообщение "Hello from Docker!".

Добавьте текущего пользователя в группу docker, чтобы не использовать sudo каждый раз при работе с Docker. Замените your_username на ваше имя пользователя:

sudo usermod -aG docker your_username
newgrp docker # Перезапустите сессию или выполните эту команду для применения изменений

Теперь установите Docker Compose (если он не был установлен как плагин):

sudo apt install -y docker-compose

Проверьте версию Docker Compose:

docker compose version

Настройка файрвола и создание пользователя

Для повышения безопасности вашего VPS, настройте файрвол (UFW - Uncomplicated Firewall) для разрешения только необходимых портов.

Разрешите SSH (порт 22), HTTP (порт 80) и HTTPS (порт 443):

sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

Подтвердите включение файрвола, введя y.

Проверьте статус файрвола:

sudo ufw status

Вы должны увидеть разрешенные порты.

Хотя вы можете работать как root, для безопасности и удобства рекомендуется создать отдельного пользователя с ограниченными правами и использовать sudo для выполнения административных задач. Если вы уже работаете под таким пользователем, пропустите этот шаг.

sudo adduser flarumuser
sudo usermod -aG sudo flarumuser
sudo usermod -aG docker flarumuser # Добавить пользователя в группу docker

Теперь вы можете выйти из root и войти под новым пользователем flarumuser.

exit

Затем снова войдите по SSH:

ssh flarumuser@your_vps_ip

После входа в систему, вы будете работать под flarumuser. Все команды, требующие прав root, выполняйте с sudo.

rocket_launch Быстрый выбор

Ищете сервер, который просто работает?

Valebyte VPS — NVMe, поддержка 24/7, развёртывание за 60 секунд.

Смотреть тарифы VPS arrow_forward

Пошаговая установка Flarum на VPS с помощью Docker Compose

Использование Docker Compose — наиболее рекомендуемый способ установки Flarum на VPS. Он позволяет определить все сервисы (Flarum, Nginx, MariaDB) и их зависимости в одном файле, упрощая развертывание и управление.

Создание файла docker-compose.yml для Flarum

Создайте директорию для вашего проекта Flarum и перейдите в нее:

mkdir flarum_forum
cd flarum_forum

Создайте файл docker-compose.yml:

nano docker-compose.yml

Вставьте следующее содержимое. Этот файл определяет три сервиса: flarum (само приложение), db (база данных MariaDB) и nginx (веб-сервер/обратный прокси).

version: '3.8'

services:
  flarum:
    image: flarum/flarum:1.8.0 # Используйте актуальную версию Flarum
    container_name: flarum_app
    restart: always
    volumes:
      - ./app:/app
    environment:
      - DB_HOST=db
      - DB_DATABASE=flarum
      - DB_USERNAME=flarum
      - DB_PASSWORD=your_db_password # Замените на надежный пароль
      - APP_URL=http://localhost:8000 # Временно, будет изменено на домен
      - PHP_MEMORY_LIMIT=256M # Рекомендуется увеличить при необходимости
    depends_on:
      - db

  db:
    image: mariadb:10.6
    container_name: flarum_db
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=your_root_db_password # Замените на надежный пароль
      - MYSQL_DATABASE=flarum
      - MYSQL_USER=flarum
      - MYSQL_PASSWORD=your_db_password # Должен совпадать с паролем Flarum
    volumes:
      - ./db_data:/var/lib/mysql

  nginx:
    image: nginx:stable-alpine
    container_name: flarum_nginx
    restart: always
    ports:
      - "80:80" # Открываем порт 80
      # - "443:443" # Будет активирован после настройки HTTPS
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./app:/var/www/flarum # Flarum assets для Nginx
    depends_on:
      - flarum

volumes:
  db_data:
  app:

Важные замечания:

  • Замените your_db_password и your_root_db_password на надежные уникальные пароли.
  • image: flarum/flarum:1.8.0 – убедитесь, что вы используете актуальную версию Flarum. Проверить можно на Docker Hub.
  • APP_URL=http://localhost:8000 – это временный URL. После настройки домена и HTTPS мы изменим его.
  • PHP_MEMORY_LIMIT=256M – для небольших форумов достаточно, но при активном использовании плагинов или большом количестве пользователей может потребоваться 512M или 1G.

Теперь создайте файл конфигурации Nginx nginx.conf в той же директории flarum_forum:

nano nginx.conf

Вставьте следующее содержимое:

server {
    listen 80;
    server_name your_domain.com www.your_domain.com; # Замените на ваш домен

    root /var/www/flarum/public;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass flarum:9000; # Имя сервиса Flarum и порт PHP-FPM
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

Важное замечание: Замените your_domain.com www.your_domain.com на ваш реальный домен. Если у вас нет домена, пока можете использовать IP-адрес вашего VPS, но для полноценной работы и HTTPS домен необходим.

Запуск контейнеров и первоначальная настройка Flarum

После создания файлов docker-compose.yml и nginx.conf, вы готовы к запуску Flarum. Убедитесь, что вы находитесь в директории flarum_forum.

Запустите все сервисы Docker Compose в фоновом режиме:

docker compose up -d

Эта команда создаст и запустит контейнеры flarum_app, flarum_db и flarum_nginx. Процесс может занять некоторое время, так как Docker будет скачивать образы.

Проверьте статус запущенных контейнеров:

docker compose ps

Вы должны увидеть, что все три контейнера находятся в статусе "Up".

Теперь необходимо выполнить первоначальную установку Flarum внутри контейнера. Это делается с помощью команды php flarum install. Вам понадобятся данные, которые вы указали в docker-compose.yml:

  • Database Host: db (имя сервиса базы данных)
  • Database Name: flarum
  • Database Username: flarum
  • Database Password: your_db_password
  • Table Prefix: (можно оставить пустым)
  • Admin Username: (выберите имя для администратора)
  • Admin Email: (укажите почту администратора)
  • Admin Password: (выберите надежный пароль для администратора)
  • Base URL: http://your_domain.com (или IP вашего VPS, пока без HTTPS)

Выполните команду установки. Замените плейсхолдеры на свои значения:

docker compose exec flarum php flarum install \
  --database_host=db \
  --database_name=flarum \
  --database_user=flarum \
  --database_pass=your_db_password \
  --url=http://your_domain.com \
  --admin_user=admin_username \
  --admin_pass=admin_password \
  [email protected]

После успешного выполнения этой команды, Flarum будет установлен и инициализирован с базовой конфигурацией.

Теперь вы можете открыть ваш браузер и перейти по адресу http://your_domain.com (или IP вашего VPS). Вы должны увидеть установленный Flarum. Войдите в панель администратора, используя учетные данные, которые вы указали при установке.

На этом этапе Flarum работает на HTTP. Следующий шаг — настройка HTTPS для обеспечения безопасности.

Настройка Reverse Proxy и HTTPS для Flarum на сервере

Для обеспечения безопасности и доверия пользователей, а также для соответствия современным стандартам веб-разработки, крайне важно настроить HTTPS для вашего Flarum-форума. Мы рассмотрим два популярных варианта обратного прокси: Nginx (с ручной настройкой Let's Encrypt) и Caddy (с автоматическим HTTPS).

Интеграция Nginx в качестве Reverse Proxy с Let's Encrypt

Если вы используете Nginx как обратный прокси, как это было в нашем docker-compose.yml, вам потребуется настроить Let's Encrypt для получения и автоматического обновления SSL-сертификатов.

1. Установка Certbot

Certbot — это инструмент от Electronic Frontier Foundation (EFF), который упрощает получение и установку SSL-сертификатов Let's Encrypt.

sudo apt install -y certbot python3-certbot-nginx

2. Настройка Nginx для Certbot

Нам нужно, чтобы Nginx слушал порт 80 и был доступен Certbot для проверки домена. В файле nginx.conf, который мы создали, уже есть прослушивание порта 80. Убедитесь, что server_name соответствует вашему домену.

Если вы хотите, чтобы Nginx обрабатывал HTTPS, вам нужно будет изменить docker-compose.yml, чтобы Nginx прослушивал порт 443 и перенаправлял запросы на Flarum. Однако, более чистый подход — это использовать Nginx только как обратный прокси для внутреннего HTTP-трафика от Flarum, а SSL-терминацию выполнять на внешнем Nginx, который не находится в Docker-контейнере. Это более сложно, но дает больше контроля.

Для простоты, мы будем использовать Nginx внутри Docker-контейнера для обработки HTTPS. Для этого нам нужно изменить наш nginx.conf и docker-compose.yml.

Обновите docker-compose.yml:

Закомментируйте строку - "80:80" и раскомментируйте - "443:443", а также добавьте порт 80 для Certbot challenge.

services:
  nginx:
    # ...
    ports:
      - "80:80" # Для Certbot challenge и перенаправления на HTTPS
      - "443:443" # Для HTTPS трафика
    # ...

Перезапустите Docker Compose:

docker compose down
docker compose up -d

Обновите nginx.conf:

Вам потребуется добавить конфигурацию для HTTPS и перенаправление HTTP на HTTPS. Certbot автоматически сделает это для вас, но сначала нужно сгенерировать сертификат.

Временно уберите секцию location ~ \.php$ и location ~ /\.ht и location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ из nginx.conf для первого запуска Certbot, чтобы он мог создать временный файл для проверки домена. После получения сертификата, мы вернем их.

Временно, ваш nginx.conf может выглядеть так:

server {
    listen 80;
    server_name your_domain.com www.your_domain.com; # Замените на ваш домен

    location / {
        proxy_pass http://flarum:8000; # Направляем на Flarum
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Перезапустите Nginx-контейнер, чтобы применить изменения:

docker compose restart nginx

3. Получение SSL-сертификата с Certbot

Выполните команду Certbot. Замените your_domain.com на ваш домен и [email protected] на ваш адрес электронной почты:

sudo certbot --nginx -d your_domain.com -d www.your_domain.com --email [email protected] --agree-tos --no-eff-email

Certbot автоматически изменит ваш nginx.conf, добавив секции для HTTPS и перенаправление HTTP на HTTPS.

4. Финальная конфигурация Nginx

После того, как Certbot добавит HTTPS-конфигурацию, ваш nginx.conf будет содержать две секции server: одну для HTTP (перенаправляющую на HTTPS) и одну для HTTPS. Вам нужно будет модифицировать HTTPS-секцию, чтобы она правильно проксировала запросы к контейнеру Flarum.

Пример финального nginx.conf (часть, которая относится к HTTPS):

server {
    listen 443 ssl http2;
    server_name your_domain.com www.your_domain.com;

    ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem; # Путь к сертификату
    ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem; # Путь к приватному ключу

    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    root /var/www/flarum/public; # Путь к Flarum public директории
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass flarum:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
    }

    location ~ /\.ht {
        deny all;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

# Добавлено Certbot для перенаправления HTTP на HTTPS
server {
    listen 80;
    server_name your_domain.com www.your_domain.com;
    return 301 https://$host$request_uri;
}

Важно: Certbot по умолчанию помещает сертификаты в /etc/letsencrypt/live/your_domain.com/. Чтобы контейнер Nginx мог получить к ним доступ, вам нужно либо монтировать эту директорию в контейнер, либо скопировать сертификаты. Проще всего монтировать.

Обновите docker-compose.yml снова для монтирования сертификатов:

services:
  nginx:
    # ...
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./app:/var/www/flarum
      - /etc/letsencrypt:/etc/letsencrypt # Монтируем директорию с сертификатами

Перезапустите Docker Compose:

docker compose down
docker compose up -d

Теперь ваш Flarum должен быть доступен по HTTPS. Не забудьте обновить APP_URL в файле docker-compose.yml и в настройках Flarum (если есть) на https://your_domain.com.

Для автоматического обновления сертификатов Certbot создаст cron-задачу. Проверить ее можно командой sudo systemctl status certbot.timer.

Использование Caddy для автоматического HTTPS

Caddy — это мощный веб-сервер, который по умолчанию автоматически получает и обновляет SSL-сертификаты Let's Encrypt. Это значительно упрощает настройку HTTPS.

1. Изменение docker-compose.yml

Удалите сервис nginx из docker-compose.yml и добавьте сервис caddy:

version: '3.8'

services:
  flarum:
    image: flarum/flarum:1.8.0
    container_name: flarum_app
    restart: always
    volumes:
      - ./app:/app
    environment:
      - DB_HOST=db
      - DB_DATABASE=flarum
      - DB_USERNAME=flarum
      - DB_PASSWORD=your_db_password
      - APP_URL=https://your_domain.com # Сразу указываем HTTPS
      - PHP_MEMORY_LIMIT=256M
    depends_on:
      - db

  db:
    image: mariadb:10.6
    container_name: flarum_db
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=your_root_db_password
      - MYSQL_DATABASE=flarum
      - MYSQL_USER=flarum
      - MYSQL_PASSWORD=your_db_password
    volumes:
      - ./db_data:/var/lib/mysql

  caddy:
    image: caddy:latest
    container_name: flarum_caddy
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./site:/srv # Для статических файлов, если нужно
      - caddy_data:/data # Для хранения сертификатов Caddy
    environment:
      - CADDY_DOMAIN=your_domain.com # Передаем домен в Caddyfile
    depends_on:
      - flarum

volumes:
  db_data:
  app:
  caddy_data: # Объявляем volume для данных Caddy

Важное замечание: Обновите your_db_password, your_root_db_password и your_domain.com. Убедитесь, что APP_URL в Flarum сервисе теперь указывает на https://your_domain.com.

2. Создание Caddyfile

Создайте файл Caddyfile в той же директории flarum_forum:

nano Caddyfile

Вставьте следующее содержимое:

{env.CADDY_DOMAIN} {
    root * /srv/public # Если Flarum будет располагаться в /srv/public
    php_fastcgi flarum:9000 {
        root /app/public # Путь к public директории Flarum внутри flarum-контейнера
    }

    file_server

    # Дополнительные настройки для Flarum
    rewrite /api(.*) /api$1
    rewrite /flarum(.*) /flarum$1
    rewrite /assets(.*) /assets$1
    rewrite /vendor(.*) /vendor$1

    # Защита от доступа к конфиденциальным файлам
    @forbidden {
        path /.git/*
        path /.env
        path /composer.*
        path /storage/*
        path /vendor/*
    }
    respond @forbidden 403

    # Логирование (опционально)
    log {
        output stdout
        format json
    }
}

Важное замечание: php_fastcgi flarum:9000 { root /app/public } указывает Caddy, где искать public директорию Flarum внутри контейнера flarum. {env.CADDY_DOMAIN} будет заменено на ваш домен из переменной окружения Docker Compose.

3. Запуск Flarum с Caddy

Убедитесь, что вы находитесь в директории flarum_forum. Опустите старые контейнеры и запустите новые:

docker compose down
docker compose up -d

Caddy автоматически обнаружит ваш домен, получит SSL-сертификат от Let's Encrypt и настроит HTTPS. Это может занять несколько минут при первом запуске.

Проверьте статус контейнеров:

docker compose ps

Затем откройте ваш домен в браузере с https://. Ваш Flarum теперь должен работать по защищенному протоколу.

Caddy автоматически обновляет сертификаты, поэтому вам не нужно беспокоиться о ручном обновлении.

Обслуживание Flarum: бэкапы, обновления и мониторинг

Регулярное обслуживание Flarum на VPS критически важно для обеспечения его стабильности, безопасности и актуальности. Это включает в себя создание резервных копий, своевременные обновления и мониторинг производительности.

Стратегии резервного копирования Flarum на VPS

Бэкапы — это ваша страховка от потери данных. Для Flarum требуется резервное копирование двух основных компонентов: базы данных и файлов приложения.

1. Резервное копирование базы данных

База данных MariaDB содержит все сообщения, пользователей, настройки и другую важную информацию. Вы можете создать дамп базы данных с помощью mysqldump изнутри контейнера базы данных.

docker compose exec db sh -c "exec mariadb-dump -u flarum -pyour_db_password flarum > /tmp/flarum_db_backup.sql"

Эта команда создаст дамп базы данных внутри контейнера db. Теперь вам нужно скопировать его на хост-систему:

docker cp flarum_db:/tmp/flarum_db_backup.sql ./backups/flarum_db_backup_$(date +%F_%H-%M-%S).sql

Не забудьте создать директорию ./backups заранее.

Для автоматизации этого процесса, вы можете создать cron-задачу, которая будет выполнять эти команды регулярно.

2. Резервное копирование файлов приложения

Файлы приложения Flarum включают в себя ядро Flarum, плагины, загруженные файлы (аватары, вложения) и конфигурационные файлы. Поскольку мы монтируем директорию ./app из хоста в контейнер Flarum, резервное копирование этой директории на хосте достаточно.

tar -czvf ./backups/flarum_app_backup_$(date +%F_%H-%M-%S).tar.gz ./app

Эта команда создаст сжатый архив директории ./app.

3. Комплексный скрипт бэкапа и внешнее хранилище

Для надежности, рекомендуется создать скрипт, который будет выполнять обе операции и сохранять бэкапы в безопасное место, например, на удаленный сервер или в облачное хранилище. Рассмотрите использование инструментов вроде Restic для инкрементальных и зашифрованных бэкапов, или rsync для синхронизации с удаленным хранилищем.

#!/bin/bash

BACKUP_DIR="./backups"
DATE=$(date +%F_%H-%M-%S)
DB_USER="flarum"
DB_PASS="your_db_password"
DB_NAME="flarum"
APP_DIR="./app"
DB_CONTAINER="flarum_db"

mkdir -p $BACKUP_DIR

echo "Создание дампа базы данных..."
docker compose exec $DB_CONTAINER sh -c "exec mariadb-dump -u $DB_USER -p$DB_PASS $DB_NAME > /tmp/flarum_db_backup.sql"
docker cp $DB_CONTAINER:/tmp/flarum_db_backup.sql $BACKUP_DIR/flarum_db_backup_$DATE.sql
docker compose exec $DB_CONTAINER rm /tmp/flarum_db_backup.sql # Удаляем временный файл из контейнера
echo "Дамп базы данных создан: $BACKUP_DIR/flarum_db_backup_$DATE.sql"

echo "Архивирование файлов приложения..."
tar -czvf $BACKUP_DIR/flarum_app_backup_$DATE.tar.gz $APP_DIR
echo "Архив файлов приложения создан: $BACKUP_DIR/flarum_app_backup_$DATE.tar.gz"

# Пример отправки бэкапов на удаленный сервер (замените на свои данные)
# scp -r $BACKUP_DIR/* user@remote_server:/path/to/remote/backups/

echo "Бэкап завершен."

Сохраните этот скрипт как backup_flarum.sh, сделайте его исполняемым (chmod +x backup_flarum.sh) и добавьте в cron для ежедневного выполнения.

Процесс обновления Flarum и Docker-контейнеров

Обновления важны для получения новых функций, исправлений безопасности и улучшения производительности.

1. Обновление Docker-образов

Регулярно обновляйте Docker-образы до последних стабильных версий. Это можно сделать, изменив теги образов в docker-compose.yml (например, flarum/flarum:latest или конкретную новую версию) и затем выполнив:

docker compose pull # Загрузить новые версии образов
docker compose up -d # Пересоздать контейнеры с новыми образами

Перед обновлением всегда делайте бэкап!

2. Обновление Flarum

Если вы используете конкретную версию Flarum (например, flarum/flarum:1.8.0), то для обновления до новой версии 1.9.0 вам нужно будет изменить тег образа в docker-compose.yml. Однако, Flarum имеет также свою внутреннюю процедуру обновления, особенно для миграции базы данных и обновления плагинов.

После обновления образа Flarum в docker-compose.yml и перезапуска контейнеров, вам может потребоваться выполнить команду миграции Flarum:

docker compose exec flarum php flarum migrate
docker compose exec flarum php flarum cache:clear

Также не забудьте обновить плагины Flarum через панель администратора или при необходимости через Composer (если вы используете кастомные плагины, не включенные в основной образ).

Мониторинг производительности и ресурсов

Мониторинг вашего VPS и Flarum поможет выявить проблемы до того, как они станут критическими.

  • Использование ресурсов VPS: Используйте команды htop, free -h, df -h для отслеживания CPU, RAM и дискового пространства. Если вы видите постоянную высокую загрузку, возможно, пришло время масштабировать ваш VPS.
  • Логи Docker-контейнеров: Проверяйте логи Flarum, Nginx/Caddy и базы данных на наличие ошибок.
  • docker compose logs flarum
    docker compose logs nginx # или caddy
    docker compose logs db
  • Мониторинг Flarum: Установите плагины для мониторинга производительности, если они доступны. Следите за временем отклика страниц и количеством ошибок в панели администратора.
  • Uptime Monitoring: Используйте внешние сервисы для мониторинга доступности вашего сайта (например, UptimeRobot), чтобы получать уведомления, если ваш форум станет недоступен.

Регулярный мониторинг позволяет оперативно реагировать на проблемы и поддерживать ваш Flarum в оптимальном состоянии.

rocket_launch Быстрый выбор

Ищете сервер, который просто работает?

Valebyte VPS — NVMe, поддержка 24/7, развёртывание за 60 секунд.

Смотреть тарифы VPS arrow_forward

Оптимальный VPS-конфиг для Flarum под реальную нагрузку

Выбор подходящей конфигурации VPS для Flarum критически важен для обеспечения стабильной работы и быстрой загрузки страниц по мере роста вашего сообщества. Недооценка потребностей может привести к медленной работе, отказам и плохому пользовательскому опыту, тогда как избыточные ресурсы — к неоправданным затратам. Оптимальный VPS-конфиг зависит от количества активных пользователей, интенсивности их взаимодействия и количества установленных плагинов.

Подбор ресурсов в зависимости от количества пользователей

При подборе VPS для Flarum необходимо учитывать несколько ключевых факторов:

  • Количество активных пользователей: Это не общее число зарегистрированных пользователей, а количество тех, кто одновременно просматривает или взаимодействует с форумом.
  • Интенсивность использования: Форум, где пользователи в основном читают, будет менее требовательным, чем форум с частыми публикациями, загрузкой изображений и активным поиском.
  • Количество плагинов: Каждый плагин добавляет свою нагрузку на PHP и базу данных.
  • Объем контента: Большое количество тем, сообщений и вложений требует больше дискового пространства и может влиять на производительность базы данных.
  • Тип диска: NVMe SSD значительно превосходит обычные SSD и HDD по скорости операций ввода-вывода, что критично для базы данных и кэширования.

Valebyte.com предлагает высокопроизводительные VPS с NVMe-дисками, которые идеально подходят для таких требовательных к I/O приложений, как Flarum.

Таблица: Рекомендации по VPS для Flarum

Эта таблица поможет вам выбрать подходящий тарифный план Valebyte.com для вашего Flarum-форума, исходя из предполагаемой нагрузки.

Нагрузка (Активные пользователи) CPU (vCores) RAM (GB) Диск (NVMe SSD) Пропускная способность Ориентировочная стоимость ($/мес.) Примечания
Старт/Малый форум
(до 50-100)
1 1-2 20-40 GB 1-2 TB 5-10 Подходит для тестирования, личных проектов и небольших сообществ.
Средний форум
(100-300)
2 2-4 50-80 GB 2-4 TB 10-25 Оптимально для растущих сообществ с умеренной активностью.
Активный форум
(300-800)
4 4-8 100-160 GB 4-8 TB 25-50 Для форумов с высокой посещаемостью и активным взаимодействием.
Крупный форум
(800-2000+)
6-8+ 8-16+ 200-400+ GB 8-16+ TB 50-100+ Требует оптимизации базы данных и, возможно, кэширования (Redis/Memcached).

Дополнительные рекомендации:

  1. NVMe SSD: Всегда выбирайте VPS с NVMe SSD. Разница в скорости операций ввода-вывода по сравнению с обычными SSD или HDD огромна и критична для производительности базы данных Flarum.
  2. Расположение сервера: Выбирайте дата-центр, который географически близок к вашей основной аудитории для минимизации задержек.
  3. Кэширование: Для средних и крупных форумов рассмотрите интеграцию кэширующих систем, таких как Redis или Memcached, для Flarum. Это значительно снизит нагрузку на базу данных и ускорит загрузку страниц. Flarum имеет встроенную поддержку кэширования.
  4. PHP-FPM Workers: Оптимизируйте количество PHP-FPM воркеров в зависимости от доступной RAM и CPU. Слишком много воркеров могут привести к исчерпанию памяти, слишком мало — к задержкам.
  5. Оптимизация базы данных: Регулярно проводите оптимизацию таблиц MySQL/MariaDB и индексирование.
  6. CDN: Для форумов с большим количеством изображений и статических файлов рассмотрите использование CDN (Content Delivery Network) для ускорения их доставки пользователям по всему миру.

Начиная с меньшего тарифа и постепенно масштабируя ресурсы по мере роста, вы сможете эффективно управлять затратами и обеспечивать оптимальную производительность для вашего Flarum-форума на VPS от Valebyte.com.

Выводы

Развертывание Flarum на VPS с использованием Docker Compose представляет собой мощное и гибкое решение для создания современного онлайн-сообщества. Такой подход обеспечивает полный контроль над инфраструктурой, высокую производительность благодаря NVMe-дискам и легкую масштабируемость по мере роста вашего проекта. Выбирая VPS от Valebyte.com, вы получаете надежную основу для вашего форума, а следование рекомендациям по установке, настройке HTTPS и регулярному обслуживанию гарантирует стабильную и безопасную работу Flarum.

Готовы выбрать сервер?

VPS и выделенные серверы в 72+ странах с мгновенной активацией и полным root-доступом.

Начать сейчас →

Поделиться записью:

support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.