Гид по технологиям

Установка Lemmy на Ubuntu 22.04 — пошаговое руководство

8 min read Sysadmin Обновлено 21 Nov 2025
Lemmy на Ubuntu 22.04 — установка и настройка
Lemmy на Ubuntu 22.04 — установка и настройка

Lemmy — открытая платформа-агрегатор в стиле Reddit для федеративной сети (fediverse). В этом руководстве вы по шагам установите Lemmy на сервер с Ubuntu 22.04: настроите ufw, Docker и Docker Compose, скачаете файлы, настроите PostgreSQL и pictrs, поднимете контейнеры, настроите Nginx и SSL через Certbot, а также получите инструкции по обновлению, бэкапу и восстановлению. В конце — проверенные рекомендации по безопасности, отладке и альтернативные подходы.

Схема установки Lemmy

Lemmy — это открытый аналог Reddit с поддержкой ActivityPub (взаимодействует с Mastodon, Pleroma, Peertube и др.). Вы можете использовать публичные инстансы или запустить собственный сервер для друзей и сообщества. Руководство рассчитано на Ubuntu 22.04 и покрывает базовую установку, настройку HTTPS и операции по обслуживанию.

Важно: перед началом имейте FQDN (например example.com), пользователя с sudo (не root) и доступ к консоли сервера.

Что потребуется

  • Сервер с Ubuntu 22.04.
  • Ненулевой sudo-пользователь.
  • Полное доменное имя (FQDN), например example.com.
  • Обновлённая система. Выполните:
$ sudo apt update
$ sudo apt upgrade
  • Небольшой набор пакетов (могут быть уже установлены):
$ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y

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

Важные понятия (1‑строчная дефиниция)

  • Docker: контейнеризация приложений.
  • Docker Compose: менеджер многоконтейнерных приложений через docker compose файлы.
  • pictrs: сервис для хранения изображений, используемый Lemmy.
  • Certbot: инструмент получения бесплатных SSL-сертификатов Let’s Encrypt.

Шаг 1 — настройка брандмауэра (ufw)

Ubuntu поставляется с ufw (Uncomplicated Firewall). Убедитесь, что не заблокируете SSH при включении.

Проверить статус:

$ sudo ufw status

Пример вывода:

Status: inactive

Разрешите SSH:

$ sudo ufw allow OpenSSH

Разрешите HTTP и HTTPS:

$ sudo ufw allow http
$ sudo ufw allow https

Включите ufw:

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

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

$ sudo ufw status

Ожидаемый вывод (пример):

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Важно: если вы используете нестандартный SSH-порт — разрешите именно его.

Шаг 2 — установка Docker и Docker Compose

Ubuntu 22.04 может включать старую версию Docker. Установим актуальную официальную сборку.

Импорт ключа Docker:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg

Создайте файл репозитория Docker:

$ echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/usr/share/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:

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

Проверьте статус службы Docker:

$ sudo systemctl status docker
? docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-08-04 07:48:20 UTC; 4min 29s ago
TriggeredBy: ? docker.socket
       Docs: https://docs.docker.com
   Main PID: 2372 (dockerd)
      Tasks: 8
     Memory: 23.9M
        CPU: 295ms
     CGroup: /system.slice/docker.service
             ??2372 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Если вы не хотите использовать sudo перед каждой командой docker, добавьте пользователя в группу docker:

$ sudo usermod -aG docker $(whoami)

Потом разлогиньтесь и зайдите снова или выполните:

$ su - ${USER}

Проверьте группы:

$ groups
navjot wheel docker

Примечание: добавление в группу docker даёт широкие права — относитесь к этому как к эквиваленту управления контейнерами от имени root и применяйте только для доверенных пользователей.

Шаг 3 — создание рабочей директории и загрузка файлов Lemmy

Создайте папку для проекта и переключитесь в неё:

$ mkdir ~/lemmy
$ cd ~/lemmy

Скачайте кастомный nginx-шаблон для работы с Docker:

$ wget https://raw.githubusercontent.com/LemmyNet/lemmy-ansible/main/templates/nginx_internal.conf

Скачайте docker-compose.yml:

$ wget https://raw.githubusercontent.com/LemmyNet/lemmy-ansible/main/templates/docker-compose.yml

Создайте папку для pictrs и задайте права:

$ mkdir -p volumes/pict-rs
$ sudo chown -R 991:991 volumes/pict-rs

Примечание: UID 991 — это рекомендуемый пользователь pictrs внутри контейнера; сохраняйте эту настройку для корректной работы.

Шаг 4 — настройка файлов Lemmy

Откройте docker-compose.yml для редактирования:

$ nano docker-compose.yml

Внесите изменения согласно инструкции (замены переменных в файле):

  • Замените {{ lemmy_port }} на 8536.
  • Замените {{ lemmy_docker_image }} на dessalines/lemmy:0.18.3 (или актуальную версию — смотрите Docker Hub или релизы GitHub).
  • Замените {{ lemmy_docker_ui_image }} на dessalines/lemmy-ui:0.18.3 (версия UI должна соответствовать версии Lemmy).
  • Сгенерируйте API-ключ для pict-rs:
$ openssl rand -base64 32
lRLcaM5rovxzmztlDvtkGijJyBtg4KlEKC6HRb3dn7s=

Замените значение PICTRS__API_KEY (если там указан {{ postgres_password }}) на сгенерированный ключ.

  • Замените {{ domain }} на ваш FQDN (example.com).
  • Задайте надёжный пароль для PostgreSQL вместо {{ postgres_password }}.
  • Обновите переменные окружения RUST_LOG и добавьте RUST_BACKTRACE=full, например:
- RUST_LOG="warn,lemmy_server=debug,lemmy_api=debug,lemmy_api_common=debug,lemmy_api_crud=debug,lemmy_apub=debug,lemmy_db_schema=debug,lemmy_db_views=debug,lemmy_db_views_actor=debug,lemmy_db_views_moderator=debug,lemmy_routes=debug,lemmy_utils=debug,lemmy_websocket=debug"
- RUST_BACKTRACE=full
  • Добавьте секцию command/ports под PostgreSQL, чтобы настроить preload и перенаправление порта хоста 5433 на контейнер 5432 (чтобы избежать конфликтов с локальной БД):
command:
  [
    "postgres",
    "-c",
    "session_preload_libraries=auto_explain",
    "-c",
    "auto_explain.log_min_duration=5ms",
    "-c",
    "auto_explain.log_analyze=true",
    "-c",
    "track_activity_query_size=1048576",
  ]
ports:
  # use a different port so it doesnt conflict with potential postgres db running on the host
  - "5433:5432"

Сохраните файл (Ctrl+X, Y).

Далее создайте файл конфигурации lemmy.hjson:

$ nano lemmy.hjson

Вставьте примерный конфиг (замените пароли, домен и ключ pictrs на свои значения):

{
  # for more info about the config, check out the documentation
  # https://join-lemmy.org/docs/en/administration/configuration.html

  database: {
    host: "postgres"
    user: "lemmy"
    password: "yourpsqlpassword"
    database: "lemmy"
    port: 5432
  }
  hostname: "example.com"
  pictrs: {
    url: "http://pictrs:8080/"
     # Set a custom pictrs API key. ( Required for deleting images )
    api_key: "lRLcaM5rovxzmztlDvtkGijJyBtg4KlEKC6HRb3dn7s="
  }
  email: {
    smtp_server: "email-smtp.us-west-2.amazonaws.com:465"
    smtp_login: "AmazonSESUserID"
    smtp_password:"AmazonSESPassword"
    smtp_from_address: "[email protected]"
    # Whether or not smtp connections should use tls. Can be none, tls, or starttls
    tls_type: "tls"
  }
  setup: {
    # Username for the admin user
    admin_username: "admin"
    # Password for the admin user. It must be at least 10 characters.
    admin_password: "tf6HHDS4RolWfFhk4Rq9"
    # Name of the site (can be changed later)
    site_name: "Howtoforge Lemmy"
    # Email for the admin user (optional, can be omitted and set later through the website)
    admin_email: "[email protected]"
  }
}

Сохраните файл (Ctrl+X, Y).

Оптимизация PostgreSQL

Для базы данных удобно сгенерировать параметры с помощью PGTune. Перейдите на сайт PGTune, введите характеристики сервера и нажмите Generate.

PGTune сайт

Скопируйте результат и создайте файл customPostgresql.conf:

$ nano customPostgresql.conf

Пример содержимого (получен из PGTune на конкретную конфигурацию):

# DB Version: 15
# OS Type: linux
# DB Type: web
# Total Memory (RAM): 2 GB
# CPUs num: 2
# Connections num: 100
# Data Storage: ssd

max_connections = 100
shared_buffers = 512MB
effective_cache_size = 1536MB
maintenance_work_mem = 128MB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 2621kB
min_wal_size = 1GB
max_wal_size = 4GB

Сохраните файл.

Шаг 5 — запуск Lemmy (Docker Compose)

Когда файлы готовы, запустите контейнеры:

$ docker compose up -d

Проверьте список процессов Docker:

$ docker ps
CONTAINER ID   IMAGE                        COMMAND                  CREATED          STATUS          PORTS                                               NAMES
75443bb3db3e   nginx:1-alpine               "/docker-entrypoint.…"   32 seconds ago   Up 29 seconds   80/tcp, 0.0.0.0:8536->8536/tcp, :::8536->8536/tcp   lemmy-proxy-1
8393c8d625af   dessalines/lemmy-ui:0.18.1   "docker-entrypoint.s…"   32 seconds ago   Up 30 seconds   1234/tcp                                            lemmy-lemmy-ui-1
ea743c8279f7   dessalines/lemmy:0.18.1      "/app/lemmy"             32 seconds ago   Up 26 seconds                                                       lemmy-lemmy-1
78855ae7871e   postgres:15-alpine           "docker-entrypoint.s…"   33 seconds ago   Up 31 seconds   5432/tcp                                            lemmy-postgres-1
9556b57afdb9   asonix/pictrs:0.4.0          "/sbin/tini -- /usr/…"   33 seconds ago   Up 31 seconds   6669/tcp, 8080/tcp                                  lemmy-pictrs-1

Или с помощью docker compose ps:

$ docker compose ps
NAME                IMAGE                        COMMAND                  SERVICE             CREATED              STATUS              PORTS
lemmy-lemmy-1       dessalines/lemmy:0.18.1      "/app/lemmy"             lemmy               About a minute ago   Up About a minute
lemmy-lemmy-ui-1    dessalines/lemmy-ui:0.18.1   "docker-entrypoint.s…"   lemmy-ui            About a minute ago   Up About a minute   1234/tcp
lemmy-pictrs-1      asonix/pictrs:0.4.0          "/sbin/tini -- /usr/…"   pictrs              About a minute ago   Up About a minute   6669/tcp, 8080/tcp
lemmy-postgres-1    postgres:15-alpine           "docker-entrypoint.s…"   postgres            About a minute ago   Up About a minute   5432/tcp
lemmy-proxy-1       nginx:1-alpine               "/docker-entrypoint.…"   proxy               About a minute ago   Up About a minute   80/tcp, 0.0.0.0:8536->8536/tcp, :::8536->8536/tcp

Проверьте в браузере http://:8536/ — должна открыться главная Lemmy.

Шаг 6 — установка Nginx

Для проксирования и HTTPS используем Nginx. Установим стабильную версию из официального репозитория.

Импорт ключа:

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Добавьте репозиторий:

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Установите Nginx:

$ sudo apt update
$ sudo apt install nginx

Проверьте версию и запустите сервис:

$ nginx -v
nginx version: nginx/1.24.0
$ sudo systemctl start nginx
$ sudo systemctl status nginx

Шаг 7 — SSL через Certbot (Let’s Encrypt)

Мы установим Certbot через snap (актуальная версия).

Обновите snap core:

$ sudo snap install core && sudo snap refresh core

Установите Certbot:

$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Запросите сертификат (замените e‑mail и домен):

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d example.com

Сертификат окажется в /etc/letsencrypt/live/example.com.

Сгенерируйте Diffie-Hellman параметры:

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Проверьте расписание обновлений snap.certbot.renew.timer:

$ sudo systemctl list-timers

Тестовый прогон автообновления:

$ sudo certbot renew --dry-run

Если ошибок нет — автоматическое обновление сертификата настроено.

Шаг 8 — конфигурация Nginx для Lemmy

Создайте файл /etc/nginx/conf.d/lemmy.conf:

$ sudo nano /etc/nginx/conf.d/lemmy.conf

Вставьте конфигурацию (замените example.com на ваш домен):

limit_req_zone $binary_remote_addr zone=example.com_ratelimit:10m rate=1r/s;

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    # Hide nginx version
    server_tokens off;
    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name example.com;

    access_log  /var/log/nginx/lemmy.access.log;
    error_log   /var/log/nginx/lemmy.error.log;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers off;
    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:DHE-RSA-CHACHA20-POLY1305;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    # use https://blog.cloudflare.com/announcing-1111 Cloudfare+Apnic labs, It is free and secure
    resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] valid=300s;

    # Hide nginx version
    server_tokens off;

    # Enable compression for JS/CSS/HTML bundle, for improved client load times.
    # It might be nice to compress JSON, but leaving that out to protect against potential
    # compression+encryption information leak attacks like BREACH.
    gzip on;
    gzip_types text/css application/javascript image/svg+xml;
    gzip_vary on;

    # Various content security headers
    add_header Referrer-Policy "same-origin";
    add_header X-Content-Type-Options "nosniff";
    add_header X-Frame-Options "DENY";
    add_header X-XSS-Protection "1; mode=block";


    location / {
      proxy_pass http://localhost:8536;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Обратите внимание — root директория публичных файлов Lemmy: /var/www/html/Lemmy/public/ (если понадобится менять).

Добавьте в /etc/nginx/nginx.conf строку перед включением конфигураций:

server_names_hash_bucket_size  64;

Проверьте синтаксис и перезапустите Nginx:

$ sudo nginx -t
$ sudo systemctl restart nginx

Шаг 9 — доступ к Lemmy

Откройте https://example.com — вы должны увидеть домашнюю страницу Lemmy.

Главная Lemmy

Нажмите Login, введите учётные данные, заданные в lemmy.hjson (admin_username/admin_password), и войдите.

Страница входа Lemmy

После входа вы попадёте на главный экран как администратор.

Лемми после входа

Шаг 10 — обновление Lemmy

Обновление выполняется путём изменения версий в docker-compose.yml и перезапуска контейнеров.

$ cd ~/lemmy
$ nano docker-compose.yml

Измените версии образов (lemmy, lemmy-ui, pictrs), сохраните и выполните:

$ docker compose down --remove-orphan
$ docker compose up -d

Проверяйте совместимость версий Lemmy и UI — несовпадение может вызывать ошибки.

Шаг 11 — бэкап и восстановление Lemmy

Резервное копирование состоит из дампа базы и копии volumes/.

Создание дампа БД:

$ cd ~/lemmy
$ docker compose exec postgres pg_dumpall -c -U lemmy | gzip > lemmy_dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.gz

Резервирование volumes:

$ sudo rsync -avP volumes ~/backup/lemmy

Пример скрипта для удалённого создания бэкапа (локально запускаете скрипт, он подключается по SSH и сохраняет дамп):

#!/bin/sh
# DB Backup
ssh USERNAME@SERVER_IP "docker-compose exec postgres pg_dumpall -c -U lemmy" | gzip > ~/BACKUP_LOCATION/INSTANCE_NAME_dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.gz

# Volumes folder Backup
rsync -avP -zz --rsync-path="sudo rsync" USERNAME@SERVER_IP:/LEMMY_LOCATION/volumes ~/BACKUP_LOCATION/FOLDERNAME

Восстановление базы на новой установке:

# Start only the PostgreSQL container first
$ docker compose up -d postgres

# Restore from the .sql.gz backup
$ gunzip < db_dump.sql  |  docker-compose exec -T postgres psql -U lemmy

# Note: You may need to change the permissions on the postgres directory, depending on your system.
$ chown -R $USER volumes
$ docker compose restart postgres

# Continue with the startup
$ docker compose up -d

Если вы случайно уже запустили Lemmy и база заполнена, можно очистить схему public и затем восстановить:

# Drop the existing DB
docker exec -i FOLDERNAME-postgres-1 psql -U lemmy -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;"

# This also might be necessary when doing a db import with a different password.
docker exec -i FOLDERNAME-postgres-1 psql -U lemmy -c "alter user lemmy with password 'bleh'"

Итоги

Вы установили и настроили Lemmy на Ubuntu 22.04, подняли контейнеры, настроили Nginx и HTTPS, и узнали, как делать бэкапы, обновлять и восстанавливать систему.

Важно: храните пароли и API‑ключи в защищённом месте и применяйте обновления безопасности.


Дополнения и советы администраторам (ценные практики)

Краткая таблица ключевых портов и файлов

  • HTTP: 80
  • HTTPS: 443
  • Проксируемый порт Lemmy в примере: 8536
  • PostgreSQL внутри контейнера: 5432 (внешне сопоставлен с 5433 в примере)
  • Каталог проекта: ~/lemmy
  • Важные файлы: docker-compose.yml, lemmy.hjson, customPostgresql.conf

Рекомендации по ресурсам

Минимальные требования зависят от нагрузки. Для небольшой приватной инстанции под сообщество из нескольких десятков активных пользователей подойдёт VPS с 2 ядрами и 2–4 ГБ ОЗУ. Для публичной или растущей инстанции планируйте больше CPU и RAM, а также быстрые SSD.

(Не указываем конкретных гарантий производительности — планирование зависит от трафика и поведения пользователей.)

Быстрый чеклист администратора (роль‑ориентированный)

Для администратора при первой установке:

  • Убедиться, что DNS A/AAAA указывает на сервер.
  • Проверить, что ufw разрешает SSH/HTTP/HTTPS.
  • Задать надёжные пароли для PostgreSQL и администратора Lemmy.
  • Сгенерировать и сохранить ключ PICTRS__API_KEY.
  • Установить Certbot и получить сертификат.
  • Настроить автоматические бэкапы и проверку восстановления (restore test).

Для мониторинга и обслуживания:

  • Настроить логирование и хранение логов (rotate).
  • Проверять доступность контейнеров (docker ps / docker compose ps).
  • Регулярно обновлять образы и проверять совместимость версий.
  • Тестировать certbot renew –dry-run.

Быстрые сценарии отладки (когда что-то не работает)

  1. Ничего не доступно по HTTPS:

    • Проверить, запущен ли Nginx: sudo systemctl status nginx
    • Проверить доступность контейнера proxy: docker ps | grep proxy
    • Просмотреть логи Nginx: sudo tail -n 200 /var/log/nginx/lemmy.error.log
    • Проверить наличие сертификатов в /etc/letsencrypt/live/
  2. Ошибки соединения с базой:

    • Убедиться, что контейнер postgres запущен.
    • Проверить переменные в lemmy.hjson (host, user, password).
    • Проверить, не занят ли порт 5432 на хосте; если да — используйте внешний сопоставленный порт (5433).
  3. Изображения не загружаются/нельзя удалить:

    • Проверить работу сервиса pictrs (docker logs lemmy-pictrs-1).
    • Убедиться, что PICTRS__API_KEY в docker-compose.yml совпадает с api_key в lemmy.hjson.
  4. UI не загружается или пустая страница:

    • Проверить контейнер lemmy-lemmy-ui и его логи.
    • Проверить соответствие версий UI и сервера Lemmy.

Альтернативные подходы установки

  • Ansible-плейбук от официального проекта Lemmy (подходит для автоматизированных развёртываний и обновлений).
  • Установка из исходников (не рекомендуется для новичков — требует управления зависимостями Rust и окружением).
  • Использование управляемых хостингов или готовых образов (например в облаке) — быстрее, но менее гибко.

Практики безопасности

  • Храните секреты вне репозитория (например, используйте vault или переменные окружения на хосте).
  • Отключайте доступ к PostgreSQL снаружи (используйте сетевые политики Docker или только локальный доступ через Unix-сокеты/прокси).
  • Настройте регулярные обновления безопасности для хоста и контейнеров.
  • Ограничьте доступ к административным интерфейсам (включая доступ к порту 8536) через firewall или IP‑белые списки.
  • Регулярно проверяйте логи на аномалии.

Бэкап‑плейбук (микро‑SOP)

  1. Остановить критичные задачи на время бэкапа (по необходимости).
  2. Сделать дамп всех баз: pg_dumpall (см. команду выше).
  3. Синхронизировать volumes с удалённым хранилищем (rsync/s3).
  4. Проверить целостность файлов (gzip -t для архивов).
  5. Тестовое восстановление на отдельной машине минимум раз в квартал.

Критерии приёмки установки

  • По HTTPS открывается главная страница Lemmy для домена.
  • Можно войти под admin и увидеть панель управления.
  • Загружаются изображения (pictrs), и удаление изображений работает с API‑ключом.
  • Certbot успешно проходит dry-run для автоматического обновления.
  • Создан и проверен хотя бы один бэкап и выполнено тестовое восстановление.

Короткая галерея крайних случаев

  • Если у вас уже запущен PostgreSQL на хосте (порт 5432), измените сопоставление портов контейнера на 5433:5432 и обновите lemmy.hjson.
  • Если Let’s Encrypt ограничивает выдачу (rate limits), используйте тестовый сервер ACME при проверках и планируйте запросы осторожно.

Однострочные определения (глоссарий)

  • FQDN — полное доменное имя (например example.com).
  • PICTRS — сервис хранения изображений для Lemmy.
  • Certbot — клиент Let’s Encrypt для получения SSL‑сертификатов.

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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как сохранить маршрут Google Maps на ПК
Руководство

Как сохранить маршрут Google Maps на ПК

Голосовой ввод на Chromebook — как включить
Chromebook

Голосовой ввод на Chromebook — как включить

Как создать и управлять рабочим пространством Slack
Производительность

Как создать и управлять рабочим пространством Slack

Image Clipper в Samsung Gallery: как вырезать объект
Мобильные советы

Image Clipper в Samsung Gallery: как вырезать объект

Как быстро включить фонарик на Android
Android.

Как быстро включить фонарик на Android

Как делиться экраном в Discord — руководство
Руководство

Как делиться экраном в Discord — руководство