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

Отримати VPS arrow_forward

Lemmy на VPS: встановлення, налаштування та обслуговування

calendar_month June 16, 2026 schedule 16 хв. читання visibility 23 переглядів
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
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]

# Налаштування бази даних
LEMMY_DATABASE_NAME=lemmy
LEMMY_DATABASE_USER=lemmy_user
LEMMY_DATABASE_PASSWORD=YOUR_STRONG_DB_PASSWORD_HERE

# Налаштування Pictrs (завантаження зображень)
PICTRS_HOSTNAME=your.lemmy.domain.com # Should be the same as LEMMY_HOSTNAME
PICTRS_API_KEY=YOUR_STRONG_PICTRS_API_KEY_HERE

# Налаштування SMTP (для верифікації електронної пошти, скидання паролів)
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

# Інші налаштування
# ... (інші параметри, як в оригінальному файлі)

Обов'язково замініть 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; # Дозволити великі завантаження
    }

    # 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; # Дозволити великі завантаження
    }

    # Pictrs (завантаження зображень)
    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; # Дозволити великі завантаження
    }

    # Websockets (для оновлень у реальному часі)
    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 (завантаження зображень)
    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 (для оновлень у реальному часі)
    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.