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

Получить VPS arrow_forward

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

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

Установка Lemmy на VPS включает развертывание экземпляра через Docker Compose, настройку веб-сервера (Nginx или Caddy) для обратного прокси и безопасного HTTPS-соединения, а также последующее обслуживание и регулярное обновление для стабильной работы вашего децентрализованного сообщества.

Что такое Lemmy и почему стоит его развернуть на VPS?

Lemmy — это свободная и с открытым исходным кодом платформа для создания самохостинговых, децентрализованных агрегаторов новостей и форумов, работающая по протоколу ActivityPub. Проще говоря, это альтернатива Reddit, где каждый может запустить свой собственный сервер (инстанс), который затем может взаимодействовать с другими инстансами в рамках единой федеративной сети, известной как Fediverse. Пользователи могут подписываться на сообщества, публиковать посты, комментировать и голосовать, как на традиционных платформах, но при этом сохраняется независимость и контроль над данными.

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

Преимущества Lemmy self-hosted на VPS

  • Полный контроль: Вы владеете всеми данными, управляете настройками сервера и модерацией без вмешательства третьих сторон.
  • Гибкость и масштабируемость: VPS позволяет легко масштабировать ресурсы (CPU, RAM, дисковое пространство) по мере роста вашего сообщества, обеспечивая стабильную работу даже при высокой нагрузке.
  • Приватность: Вы самостоятельно определяете политику конфиденциальности и можете гарантировать защиту данных пользователей.
  • Уникальный домен: Возможность использовать свой собственный домен для инстанса Lemmy, повышая узнаваемость и доверие.
  • Доступность и производительность: Качественный VPS от Valebyte.com с NVMe-дисками и быстрыми процессорами обеспечивает высокую скорость загрузки страниц и отзывчивость интерфейса Lemmy.

Архитектура Lemmy: что под капотом?

Lemmy состоит из нескольких ключевых компонентов, которые обычно разворачиваются в виде контейнеров Docker:

  • Backend (lemmy-server): Основное приложение, написанное на Rust, которое обрабатывает логику сервера, взаимодействие с базой данных и ActivityPub.
  • Frontend (lemmy-ui): Пользовательский интерфейс, написанный на TypeScript/React, который предоставляет веб-интерфейс для пользователей.
  • База данных (PostgreSQL): Хранит все данные инстанса: пользователей, посты, комментарии, сообщества и т.д.
  • Обработчик изображений (Pictrs): Сервис для загрузки и обработки изображений, прикрепляемых к постам и комментариям.
  • Redis (опционально): Используется для кэширования и фоновых задач, повышая производительность.

Именно эта модульная архитектура делает установку Lemmy через Docker такой удобной и рекомендуемой.

Системные требования для Lemmy на VPS: какой конфиг выбрать?

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

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

  • Процессор (CPU): Lemmy-server и PostgreSQL активно используют процессор. Для небольших инстансов (до 50-100 активных пользователей) достаточно 2 vCPU. Для средних (несколько сотен) — 4 vCPU. Для крупных (тысячи и более) — 6-8+ vCPU. Частота ядер также важна; предпочтительны современные процессоры с высокой тактовой частотой.
  • Оперативная память (RAM): PostgreSQL является основным потребителем RAM. Для минимального инстанса потребуется 2 GB RAM, но 4 GB RAM — это гораздо более комфортный минимум, особенно с учетом операционной системы и Docker. Для средних инстансов рекомендуется 8 GB RAM, для крупных — 16 GB RAM и более.
  • Дисковое пространство: NVMe-диски обязательны для хорошей производительности базы данных. Минимально 40-60 GB для ОС и начального объема данных. Однако, учитывая рост базы данных, кэш изображений Pictrs и логи, рекомендуется начинать со 100-200 GB NVMe. Для активных инстансов с большим количеством изображений и видео потребуется 500 GB или 1 TB.
  • Пропускная способность сети: Для федерации и отдачи контента пользователям требуется стабильный канал. Минимально 100 Мбит/с, но 1 Гбит/с — это стандарт для большинства VPS-провайдеров, включая Valebyte.com, что обеспечивает отличную скорость.

Оценка нагрузки и масштабирование Lemmy инстанса

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

При росте нагрузки вы можете столкнуться с узкими местами:

  • CPU: Медленная обработка запросов, высокая задержка.
  • RAM: PostgreSQL начинает активно использовать своп, что резко замедляет работу.
  • Диск: Медленные операции чтения/записи приводят к задержкам при работе с базой данных и изображениями.

Благодаря модульной архитектуре и Lemmy Docker, можно относительно легко масштабировать отдельные компоненты или перенести их на более мощные серверы при необходимости. Например, можно вынести базу данных на отдельный VPS с большим объемом RAM и IOPS.

Рекомендации по тарифам Valebyte.com для Lemmy

Valebyte.com предлагает широкий спектр VPS-тарифов, которые отлично подходят для хостинга Lemmy. Вот примерные рекомендации:

Размер инстанса CPU RAM NVMe Диск Примерный тариф Valebyte.com Приблизительная цена/мес.
Минимальный (до 50-100 пользователей) 2 vCPU 4 GB 100 GB Valebyte-Medium от $15
Средний (100-500 пользователей) 4 vCPU 8 GB 200 GB Valebyte-Large от $30
Крупный (500-2000+ пользователей) 6-8 vCPU 16-32 GB 400-800 GB Valebyte-XLarge / Custom от $60

Для мониторинга производительности вашего VPS и Lemmy-инстанса, рекомендуем обратить внимание на статью о Netdata на VPS. Этот инструмент поможет вам выявлять узкие места и своевременно реагировать на рост нагрузки.

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

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

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

Подготовка VPS к установке Lemmy: базовые шаги

Перед тем как приступить к установке Lemmy, необходимо подготовить ваш VPS. Мы будем использовать операционную систему Ubuntu Server 22.04 LTS, так как она является одной из самых популярных и хорошо документированных для развертывания серверных приложений.

Выбор ОС и первичная настройка

После получения доступа к вашему VPS (обычно через SSH), выполните следующие базовые шаги:

  1. Обновление системы: Всегда начинайте с обновления пакетного менеджера и установленных пакетов.
    sudo apt update && sudo apt upgrade -y
  2. Создание нового пользователя (необязательно, но рекомендуется): Работа под root напрямую не всегда безопасна.
    sudo adduser lemmyuser
    sudo usermod -aG sudo lemmyuser
    Затем выйдите из root и зайдите под lemmyuser.
  3. Настройка файрвола (UFW): Откройте только необходимые порты. Для Lemmy это обычно 80 (HTTP), 443 (HTTPS) и 22 (SSH).
    sudo ufw allow OpenSSH
    sudo ufw allow http
    sudo ufw allow https
    sudo ufw enable
    Подтвердите включение файрвола.

Установка Docker и Docker Compose

Lemmy Docker — это самый простой и рекомендуемый способ развертывания. Docker Compose позволяет управлять многоконтейнерными приложениями с помощью одного конфигурационного файла.

  1. Установка Docker Engine:

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

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

    Добавьте официальный 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

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

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

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

    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io -y
  2. Добавление пользователя в группу Docker: Чтобы выполнять команды Docker без sudo.
    sudo usermod -aG docker ${USER}

    Выйдите из SSH-сессии и зайдите снова, чтобы изменения вступили в силу, или выполните newgrp docker.

  3. Установка Docker Compose:

    Docker Compose теперь поставляется как плагин для Docker. Установите его:

    sudo apt install docker-compose-plugin -y

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

    docker compose version

    Вы должны увидеть версию Docker Compose, например, Docker Compose version v2.x.x.

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

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

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

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

Установка Lemmy на VPS с помощью Docker Compose: пошаговое руководство

Теперь, когда ваш VPS готов, приступаем к основной части — установка Lemmy. Мы будем использовать официальные Docker-образы и docker-compose.yml файл.

Создание директории для Lemmy и получение конфигурации

Создайте директорию, где будут храниться все файлы Lemmy, и скачайте пример файла docker-compose.yml и файл конфигурации.

mkdir -p ~/lemmy
cd ~/lemmy
wget https://raw.githubusercontent.com/LemmyNet/lemmy/main/docker/docker-compose.yml
wget https://raw.githubusercontent.com/LemmyNet/lemmy/main/docker/lemmy.env

Эти файлы будут служить отправной точкой для вашей установки Lemmy. Обратите внимание, что файл docker-compose.yml может содержать ссылки на самые свежие версии образов Lemmy.

Настройка переменных окружения в lemmy.env

Файл lemmy.env содержит важные переменные окружения для настройки Lemmy. Откройте его для редактирования:

nano lemmy.env

Вам нужно будет изменить следующие параметры:

  • LEMMY_HOSTNAME: Укажите ваш домен, например, lemmy.example.com. Это критически важно для федерации.
  • LEMMY_DATABASE_NAME, LEMMY_DATABASE_USER, LEMMY_DATABASE_PASSWORD: Установите надежные, уникальные пароли для базы данных.
  • LEMMY_SMTP_SERVER, LEMMY_SMTP_PORT, LEMMY_SMTP_USERNAME, LEMMY_SMTP_PASSWORD, LEMMY_SMTP_FROM_ADDRESS: Настройте параметры для отправки электронной почты (подтверждение регистрации, сброс пароля). Это необязательно для первого запуска, но необходимо для полноценной работы. Если у вас нет SMTP-сервера, вы можете использовать сторонние сервисы, такие как SendGrid или Mailgun, или развернуть свой, например, Postfix.
  • LEMMY_FEDERATION_SIGNING_PRIVATE_KEY_PATH: Обычно не требуется изменять, но убедитесь, что путь корректен.

Пример отредактированного lemmy.env (с заполнителями для паролей и домена):

# Lemmy Instance Settings
LEMMY_HOSTNAME=your.lemmy.domain.com
LEMMY_SITE_NAME=My Awesome Lemmy Instance
LEMMY_SITE_DESCRIPTION="A place for awesome discussions."
[email protected]
[email protected]

# Database Settings
LEMMY_DATABASE_NAME=lemmy
LEMMY_DATABASE_USER=lemmy_user
LEMMY_DATABASE_PASSWORD=YOUR_STRONG_DB_PASSWORD_HERE

# Pictrs Settings (Image Uploads)
PICTRS_HOSTNAME=your.lemmy.domain.com # Should be the same as LEMMY_HOSTNAME
PICTRS_API_KEY=YOUR_STRONG_PICTRS_API_KEY_HERE

# SMTP Settings (for email verification, password resets)
LEMMY_SMTP_SERVER=smtp.example.com
LEMMY_SMTP_PORT=587
LEMMY_SMTP_USERNAME=smtp_user
LEMMY_SMTP_PASSWORD=YOUR_SMTP_PASSWORD_HERE
[email protected]
LEMMY_SMTP_SECURITY=tls # or ssl or none

# Other settings
# ... (остальные параметры, как в оригинальном файле)

Обязательно замените YOUR_STRONG_DB_PASSWORD_HERE, YOUR_STRONG_PICTRS_API_KEY_HERE, your.lemmy.domain.com и SMTP-данные на свои значения. Для генерации надежных паролей можно использовать онлайн-генераторы или команду openssl rand -base64 32.

Первый запуск Lemmy

После настройки lemmy.env можно запускать Lemmy. Убедитесь, что вы находитесь в директории ~/lemmy, где находится docker-compose.yml.

docker compose up -d

Эта команда загрузит все необходимые Docker-образы (Lemmy, PostgreSQL, Pictrs, Redis) и запустит их в фоновом режиме (-d). Процесс может занять несколько минут в зависимости от скорости вашего интернет-соединения и производительности VPS.

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

docker compose ps

Вы должны увидеть все контейнеры в состоянии running. Если какой-то контейнер не запускается, проверьте логи:

docker compose logs [имя_сервиса]

Например, docker compose logs lemmy или docker compose logs postgres.

После успешного запуска, Lemmy будет доступен по адресу http://localhost:8536 (для frontend) и http://localhost:8537 (для backend) изнутри VPS. Однако, чтобы получить доступ извне через доменное имя, нам потребуется настроить обратный прокси.

Настройка обратного прокси (Nginx или Caddy) и HTTPS для Lemmy

Для безопасного и удобного доступа к вашему инстансу Lemmy из интернета, необходимо настроить обратный прокси-сервер и обеспечить HTTPS-соединение с помощью Let's Encrypt. Это также позволяет использовать ваш собственный домен, что является ключевым для Lemmy self-hosted.

Вариант 1: Настройка Nginx в качестве обратного прокси

Nginx — это мощный и широко используемый веб-сервер, который отлично подходит для роли обратного прокси. Если вы ранее работали с Nginx, этот вариант будет для вас привычен.

Установка Nginx

sudo apt install nginx -y

Настройка Nginx для Lemmy

Создайте новый конфигурационный файл для вашего домена:

sudo nano /etc/nginx/sites-available/your.lemmy.domain.com.conf

Вставьте следующую конфигурацию, заменив your.lemmy.domain.com на ваш домен:

server {
    listen 80;
    listen [::]:80;
    server_name your.lemmy.domain.com;

    # Redirect HTTP to HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name your.lemmy.domain.com;

    ssl_certificate /etc/letsencrypt/live/your.lemmy.domain.com/fullchain.pem; # Будет создан Certbot
    ssl_certificate_key /etc/letsencrypt/live/your.lemmy.domain.com/privkey.pem; # Будет создан Certbot
    ssl_trusted_certificate /etc/letsencrypt/live/your.lemmy.domain.com/chain.pem; # Будет создан Certbot

    # Рекомендуемые настройки SSL
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
    ssl_prefer_server_ciphers off;
    ssl_stapling on;
    ssl_stapling_verify on;
    add_header Strict-Transport-Security "max-age=63072000" always;
    add_header X-Content-Type-Options "nosniff";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Frame-Options "SAMEORIGIN";
    add_header Referrer-Policy "no-referrer-when-downgrade";

    # Frontend (UI)
    location / {
        proxy_pass http://localhost:8536;
        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;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_buffering off;
        proxy_read_timeout 900s;
        client_max_body_size 0; # Allow large uploads
    }

    # Backend (API)
    location /api {
        proxy_pass http://localhost:8537;
        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;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_buffering off;
        proxy_read_timeout 900s;
        client_max_body_size 0; # Allow large uploads
    }

    # Pictrs (Image Uploads)
    location /pictrs {
        proxy_pass http://localhost:8538;
        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;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_buffering off;
        proxy_read_timeout 900s;
        client_max_body_size 0; # Allow large uploads
    }

    # Websockets (for real-time updates)
    location /wss {
        proxy_pass http://localhost:8536/wss;
        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;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 900s;
        proxy_send_timeout 900s;
        proxy_http_version 1.1;
    }
}

Активируйте конфигурацию и проверьте синтаксис:

sudo ln -s /etc/nginx/sites-available/your.lemmy.domain.com.conf /etc/nginx/sites-enabled/
sudo nginx -t

Если ошибок нет, перезапустите Nginx:

sudo systemctl restart nginx

Вариант 2: Настройка Caddy в качестве обратного прокси

Caddy — это современный веб-сервер, который автоматически получает и обновляет SSL-сертификаты Let's Encrypt, что делает его настройку гораздо проще, чем Nginx. Он идеально подходит для Lemmy на сервере, если вы цените простоту.

Установка Caddy

Установите Caddy, следуя официальным инструкциям для вашей ОС. Для Ubuntu:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy -y

Настройка Caddy для Lemmy

Создайте или отредактируйте файл /etc/caddy/Caddyfile:

sudo nano /etc/caddy/Caddyfile

Удалите все существующие строки и вставьте следующую конфигурацию, заменив your.lemmy.domain.com на ваш домен:

your.lemmy.domain.com {
    # Автоматическая выдача и обновление SSL-сертификатов
    tls [email protected]

    # Frontend (UI)
    reverse_proxy / http://localhost:8536 {
        header_up Host {host}
        header_up X-Real-IP {remote_ip}
        header_up X-Forwarded-For {remote_ip}
        header_up X-Forwarded-Proto {scheme}
        header_up Upgrade {http.request.header.Upgrade}
        header_up Connection {http.request.header.Connection}
    }

    # Backend (API)
    reverse_proxy /api/* http://localhost:8537 {
        header_up Host {host}
        header_up X-Real-IP {remote_ip}
        header_up X-Forwarded-For {remote_ip}
        header_up X-Forwarded-Proto {scheme}
        header_up Upgrade {http.request.header.Upgrade}
        header_up Connection {http.request.header.Connection}
    }

    # Pictrs (Image Uploads)
    reverse_proxy /pictrs/* http://localhost:8538 {
        header_up Host {host}
        header_up X-Real-IP {remote_ip}
        header_up X-Forwarded-For {remote_ip}
        header_up X-Forwarded-Proto {scheme}
        header_up Upgrade {http.request.header.Upgrade}
        header_up Connection {http.request.header.Connection}
    }

    # Websockets (for real-time updates)
    reverse_proxy /wss http://localhost:8536 {
        header_up Host {host}
        header_up X-Real-IP {remote_ip}
        header_up X-Forwarded-For {remote_ip}
        header_up X-Forwarded-Proto {scheme}
        header_up Upgrade {http.request.header.Upgrade}
        header_up Connection {http.request.header.Connection}
    }

    # Настройки для больших файлов (опционально, если Pictrs не обрабатывает)
    # client_max_body_size 0; # Caddy по умолчанию не ограничивает размер
}

Проверьте конфигурацию Caddy:

sudo caddy validate --config /etc/caddy/Caddyfile

Если ошибок нет, перезапустите Caddy:

sudo systemctl restart caddy

Получение SSL-сертификатов с Let's Encrypt (для Nginx)

Если вы используете Nginx, вам понадобится Certbot для получения и автоматического обновления SSL-сертификатов. Caddy делает это автоматически.

  1. Установка Certbot:
    sudo apt install certbot python3-certbot-nginx -y
  2. Получение сертификата:
    sudo certbot --nginx -d your.lemmy.domain.com

    Следуйте инструкциям на экране. Certbot автоматически изменит ваш Nginx-конфиг для использования HTTPS. Убедитесь, что вы указали правильный email для уведомлений.

  3. Проверка автоматического продления:
    sudo systemctl status certbot.timer

    Таймер Certbot должен быть активен, чтобы автоматически продлевать сертификаты до их истечения.

После настройки обратного прокси и HTTPS, ваш инстанс Lemmy должен быть доступен по адресу https://your.lemmy.domain.com. Откройте его в браузере, зарегистрируйте первого пользователя (который станет администратором) и начните создавать сообщества!

Обслуживание, бэкапы и обновления Lemmy на VPS

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

Стратегии резервного копирования данных Lemmy

Резервное копирование — это ваша страховка от потери данных. Для Lemmy критически важны два типа данных: база данных PostgreSQL и загруженные файлы (изображения) Pictrs.

Бэкап базы данных PostgreSQL

Выполните дамп базы данных. Убедитесь, что вы используете правильные имя пользователя и пароль, которые вы указали в lemmy.env.

cd ~/lemmy
docker compose exec postgres pg_dumpall -U lemmy_user > lemmy_backup_$(date +%F).sql

Эта команда создаст файл .sql с полным дампом базы данных. Рекомендуется автоматизировать этот процесс с помощью cron-заданий.

Бэкап файлов Pictrs

Файлы Pictrs хранятся в томе Docker. Чтобы узнать путь к этому тому, выполните:

docker volume inspect lemmy_pictrs_data

В выводе найдите поле Mountpoint (например, /var/lib/docker/volumes/lemmy_pictrs_data/_data). Затем вы можете архивировать эту директорию:

sudo tar -czvf lemmy_pictrs_data_backup_$(date +%F).tar.gz /var/lib/docker/volumes/lemmy_pictrs_data/_data

Важно: Резервные копии должны храниться не только на том же VPS. Используйте удаленное хранилище (S3, Dropbox, другой VPS) или специализированные инструменты. Например, вы можете использовать Restic для бэкапов на VPS, чтобы безопасно и эффективно сохранять данные в облаке.

Процесс обновления Lemmy

Обновление Lemmy обычно сводится к обновлению Docker-образов и повторному запуску контейнеров. Всегда проверяйте официальные новости о релизах Lemmy на GitHub перед обновлением, так как иногда могут требоваться дополнительные шаги (например, миграция базы данных).

  1. Создайте резервную копию: Перед любым обновлением всегда делайте полный бэкап базы данных и Pictrs!
  2. Остановите Lemmy:
    cd ~/lemmy
    docker compose down
  3. Загрузите новые образы и обновите конфигурацию:

    Загрузите свежие версии docker-compose.yml и lemmy.env, сравнив их с вашими текущими. Иногда в новых версиях docker-compose.yml могут изменяться версии образов или добавляться новые сервисы. Поэтому лучше загрузить новые файлы и объединить их с вашими настройками (особенно lemmy.env):

    wget -O docker-compose.yml.new https://raw.githubusercontent.com/LemmyNet/lemmy/main/docker/docker-compose.yml
    wget -O lemmy.env.new https://raw.githubusercontent.com/LemmyNet/lemmy/main/docker/lemmy.env

    Сравните docker-compose.yml.new с вашим docker-compose.yml и lemmy.env.new с вашим lemmy.env, чтобы перенести необходимые изменения. Особое внимание уделите версиям Docker-образов в docker-compose.yml.

    После объединения удалите временные файлы:

    rm docker-compose.yml.new lemmy.env.new
  4. Обновите Docker-образы:
    docker compose pull

    Эта команда загрузит последние версии всех образов, указанных в вашем docker-compose.yml.

  5. Запустите Lemmy с миграцией:
    docker compose up -d

    Docker Compose запустит контейнеры. Lemmy-сервер автоматически выполнит все необходимые миграции базы данных при первом запуске новой версии.

  6. Проверьте работу: Откройте ваш инстанс Lemmy в браузере и убедитесь, что все работает корректно.

Мониторинг состояния Lemmy

Регулярный мониторинг поможет выявить проблемы до того, как они станут критическими. Используйте:

  • docker compose ps: Для быстрой проверки статуса контейнеров.
  • docker compose logs -f: Для просмотра логов в реальном времени.
  • htop или top: Для мониторинга загрузки CPU и RAM на VPS.
  • Prometheus/Grafana: Для более продвинутого мониторинга метрик Lemmy и VPS.

Поддерживайте операционную систему VPS в актуальном состоянии, регулярно применяя обновления безопасности: sudo apt update && sudo apt upgrade -y.

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

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

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

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

Продвинутые настройки и оптимизация Lemmy

После базовой установки Lemmy и обеспечения его стабильной работы, можно рассмотреть дополнительные шаги по оптимизации и расширению функциональности. Это особенно актуально для растущих инстансов Lemmy на сервере.

Оптимизация базы данных PostgreSQL

PostgreSQL является сердцем Lemmy, и его производительность напрямую влияет на скорость работы всего инстанса. Для оптимизации можно:

  1. Настройка postgresql.conf:

    Внутри контейнера PostgreSQL вы можете найти файл конфигурации. Для Lemmy Docker, обычно лучше не изменять его напрямую в контейнере, а использовать Docker-тома или переменные окружения. Однако, если вы вынесли PostgreSQL на отдельный хост, вы можете настроить параметры, такие как shared_buffers, work_mem, maintenance_work_mem в соответствии с объемом доступной RAM на вашем VPS.

    • shared_buffers: Обычно 25% от общей RAM сервера.
    • work_mem: Для каждой сессии, влияет на сортировку и хеш-таблицы.
    • maintenance_work_mem: Для операций VACUUM, CREATE INDEX.

    После изменения postgresql.conf требуется перезапустить контейнер PostgreSQL.

  2. Регулярная очистка (VACUUM):

    PostgreSQL использует MVCC, что означает, что старые версии строк остаются видимыми до тех пор, пока они не будут очищены. Регулярная команда VACUUM ANALYZE помогает поддерживать производительность, освобождая место и обновляя статистику планировщика запросов.

    docker compose exec postgres psql -U lemmy_user -d lemmy -c "VACUUM ANALYZE;"

    PostgreSQL имеет встроенный autovacuum демон, но иногда ручной запуск может быть полезен, особенно после крупных операций.

  3. Индексы: Убедитесь, что все необходимые индексы созданы и используются. Lemmy обычно создает их автоматически, но при анализе производительности можно проверить, какие запросы медленные и нуждаются в дополнительных индексах.

Настройка почтового сервера для уведомлений

Как упоминалось ранее, настройка SMTP-сервера в lemmy.env позволяет Lemmy отправлять электронные письма для подтверждения регистрации, сброса пароля и уведомлений. Если вы не хотите использовать сторонний сервис, вы можете настроить свой собственный почтовый сервер на VPS, например, Postfix.

Установка и настройка Postfix:

sudo apt install postfix -y

В процессе установки выберите "Internet Site" и укажите ваш домен. После этого настройте Postfix для отправки почты. Для более детальной настройки почтового сервера, можно обратиться к специализированным руководствам.

Убедитесь, что ваш VPS разрешен для отправки почты (проверьте записи SPF, DKIM, DMARC для вашего домена), чтобы письма не попадали в спам.

Использование Redis для кэширования

В стандартном docker-compose.yml для Lemmy уже включен сервис Redis. Он используется для кэширования данных и обработки фоновых задач, что значительно повышает производительность инстанса, особенно при высокой нагрузке. Убедитесь, что Redis работает и Lemmy к нему подключен (это обычно происходит автоматически).

Расширение функционала с помощью сторонних инструментов

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

Выводы

Установка Lemmy на VPS с использованием Docker Compose — это мощный и гибкий способ развернуть собственное децентрализованное сообщество. Вы получаете полный контроль над данными, высокую производительность благодаря NVMe-дискам и возможность масштабирования. Выбор правильной конфигурации VPS, тщательная настройка обратного прокси и регулярное обслуживание обеспечат стабильную и безопасную работу вашего инстанса Lemmy.

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

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.