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

Установка Linkding на Ubuntu 22.04 через Docker и Nginx

• 7 min read • DevOps • Обновлено 26 Nov 2025
Linkding на Ubuntu 22.04: Docker, Nginx и SSL
Linkding на Ubuntu 22.04: Docker, Nginx и SSL

Ноутбук на столе с чашкой кофе и бумажной заметкой.

Ссылка Linkding — это простой и гибкий веб-менеджер закладок для Linux. Похожий на офлайн-менеджеры закладок, он позволяет создавать и аннотировать накопленные веб-ссылки. Это руководство объясняет, как установить Linkding на Ubuntu 22.04 с помощью Docker и Docker Compose и как создать обычного (не‑администратора) пользователя в инстансе.

Оглавление

  • Зачем размещать собственный менеджер закладок
  • Требования и подготовка (Docker, Docker Compose)
  • Развёртывание контейнера Linkding
  • Настройка Nginx как обратного прокси и получение SSL
  • Создание и управление пользователями в Linkding
  • Резервное копирование и миграция данных
  • Безопасность и эксплуатация
  • Проверки и критерии приёмки
  • Часто задаваемые вопросы

Зачем размещать собственный менеджер закладок

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

Скриншот работоспособной установки Linkding с интерфейсом закладок.

Важно: Linkding ориентирован на простоту — он хранит данные в SQLite по умолчанию, что удобно для небольших инстансов и для быстрой установки.

Требования и подготовка

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

  • Сервер с Ubuntu 22.04 (можно виртуальная машина или VPS).
  • Доступ с правами sudo.
  • Открытый порт 80/443 (если планируете публичный доступ).
  • Назначенное доменное имя для SSL (если требуется публичный доступ).

Минимальные пакеты и команды для подготовки (корректные команды для терминала):

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
sudo nano /etc/apt/sources.list.d/docker.list

В файл /etc/apt/sources.list.d/docker.list вставьте:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable

Обновите пакеты и установите Docker, плагин Docker Compose и Nginx:

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

Примечание: команды выше исправлены для корректной работы в типичной среде Ubuntu 22.04.

Развёртывание контейнера Linkding

  1. Создайте каталог для проекта и перейдите в него:
mkdir -p ~/linkding && cd ~/linkding
  1. Создайте файл docker-compose.yml (например, через nano):
nano ./docker-compose.yml

Вставьте следующий корректный compose-файл:

version: "3"
services:
  linkding:
    container_name: ${LD_CONTAINER_NAME:-linkding}
    image: sissbruecker/linkding:latest
    ports:
      - ${LD_HOST_PORT:-9090}:9090
    volumes:
      - ${LD_HOST_DATA_DIR:-./data}:/etc/linkding/data
    env_file:
      - .env
    restart: unless-stopped
  1. Создайте файл .env с переменными окружения:
nano ~/linkding/.env

Пример содержимого .env (обязательно замените логин/пароль на надёжные значения):

LD_CONTAINER_NAME="linkding"
LD_HOST_PORT="9090"
LD_HOST_DATA_DIR="./data"
LD_SUPERUSER_NAME="linkding" # ЗАМЕНИТЕ НА БЕЗОПАСНОЕ ИМЯ
LD_SUPERUSER_PASSWORD="linkding" # ЗАМЕНИТЕ НА НАДЁЖНЫЙ ПАРОЛЬ
LD_DISABLE_BACKGROUND_TASKS="False"
LD_DISABLE_URL_VALIDATION="False"
LD_ENABLE_AUTH_PROXY="False"
LD_CSRF_TRUSTED_ORIGINS="https://linkding.your-domain-name.here"
  1. Запустите контейнеры в фоновом режиме:
docker compose up -d

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

docker ps --filter name=linkding

Если контейнер запущен, Linkding доступен по адресу http://localhost:9090 на сервере.

Настройка Nginx как обратного прокси и получение SSL

Чтобы сделать сервис доступным публично и включить шифрование TLS, настроим обратный прокси Nginx.

  1. Создайте новый конфиг сайта:
sudo nano /etc/nginx/sites-available/linkding

Вставьте следующий корректный блок:

server {
    listen 80;
    listen [::]:80;

    root /var/www/html;
    server_name linkding.your-domain-name.here;

    location / {
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://localhost:9090;
    }
}
  1. Удалите включение дефолтного сайта и создайте символьную ссылку:
sudo rm -f /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/linkding /etc/nginx/sites-enabled/linkding
  1. Перезапустите Nginx и включите его при загрузке:
sudo systemctl restart nginx
sudo systemctl enable --now nginx

Включение SSL через Certbot (Let’s Encrypt)

Убедитесь, что snapd установлен и обновлён, затем установите Certbot и получите сертификат:

sudo snap install core
sudo snap install certbot --classic
sudo certbot register --agree-tos -m ramces@email.invalid
sudo certbot --nginx -d linkding.your-domain-name.here

После успешного выполнения certbot автоматически настроит перенаправление HTTP → HTTPS и установит сертификаты. Проверьте в браузере https://linkding.your-domain-name.here

Скриншот страницы входа Linkding с формой логина.

Важно: если вы используете нестандартный порт или дополнительную защиту (WAF, CDN), убедитесь, что Certbot может подтвердить владение доменом по HTTP.

Создание и управление пользователями в Linkding

  1. Войдите в интерфейс Linkding, используя суперпользователя, заданного в .env.

  2. Откройте Settings → Admin (Настройки → Админ) для доступа в панель администратора.

Форма входа Linkding с заполненными полями логина.

  1. Чтобы добавить пользователя: в разделе Authentication and Authorization (Аутентификация и авторизация) нажмите Add рядом с Users, введите имя и пароль, затем нажмите Save.

Выделенная ссылка «Settings» в правом верхнем углу интерфейса Linkding.

Вкладка Admin в настройках Linkding, где видна панель администратора.

После создания нового пользователя проверьте вход в новом окне браузера.

Кнопка Add в разделе пользователей админ-панели Linkding.

Отключение существующего пользователя

  1. В админ-панели выберите Users.
  2. Кликните нужное имя пользователя, в разделе Permissions снимите галочку Active и сохраните.

Ссылка Users в админ-панели Linkding выделена.

Чекбокс Active в профиле пользователя Linkding.

Резервное копирование и миграция данных

Linkding использует SQLite (db.sqlite3) по умолчанию. Есть два способа получить резервную копию:

  1. Через интерфейс: Settings → General → Export → Download — экспортирует данные текущего пользователя в формате, пригодном для импорта.
  2. Файловая копия: скопируйте файл db.sqlite3 из каталога данных контейнера (по умолчанию ~/linkding/data):
# Остановите контейнер перед копированием для согласованности
docker compose down
cp ~/linkding/data/db.sqlite3 ~/backups/linkding-db-$(date +%F).sqlite3

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

Советы по миграции:

  • При переносе на другой сервер просто скопируйте папку data и .env, затем выполните docker compose up на новом хосте.
  • При миграции на более крупную СУБД (Postgres) потребуется изменить конфигурацию и выполнить миграции — это продвинутый сценарий, требующий тестирования.

Безопасность и эксплуатация

Ключевые рекомендации по безопасности:

  • Используйте надёжные пароли для суперпользователя и админов.
  • Отключите публичный доступ к Docker сокету (unix:///var/run/docker.sock) для не‑админов.
  • Настройте брандмауэр (ufw) и разрешите только нужные порты:
sudo apt install ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
  • Включите автоматическое обновление Certbot и следите за сроком действия сертификатов.
  • Рассмотрите установку fail2ban для защиты панели от перебора паролей.
  • Делайте регулярные бэкапы db.sqlite3 и храните их вне сервера.

Дополнительные меры:

  • Разверните Linkding за VPN или в закрытой сети, если он предназначен только для внутреннего пользования.
  • Если ожидается большое количество пользователей, рассмотрите перевод на серверную СУБД (Postgres) для повышения масштабируемости.

Проверки и критерии приёмки

Критерии приёмки установки (что проверить перед сдачей):

  • Контейнер linkding запущен (docker ps показывает контейнер).
  • [ ] Сайт доступен по HTTPS (https://linkding.your-domain-name.here) и сертификат валиден.
  • Вход под суперпользователем работает.
  • Создание нового пользователя проходит и новый пользователь может войти с другого браузера.
  • Экспорт и копирование db.sqlite3 работают и файл не пустой.
  • Регулярное резервное копирование настроено (вручную или скриптом).

Тестовые сценарии (acceptance):

  • Попытка входа с неверным паролем должна не допустить доступа.
  • Добавление и последующий экспорт закладки: добавьте закладку, затем экспортируйте и убедитесь, что её данные присутствуют в файле экспорта.
  • Отключение пользователя: после снятия галочки Active пользователь не должен иметь доступа.

Практические решения и шаблоны

Шаблон команды для бэкапа и архивации (можно поместить в cron):

#!/bin/bash
TIMESTAMP=$(date +"%F_%H-%M")
SRC_DIR=~/linkding/data
DST_DIR=~/backups/linkding
mkdir -p "$DST_DIR"
cp "$SRC_DIR/db.sqlite3" "$DST_DIR/db.sqlite3.$TIMESTAMP"
find "$DST_DIR" -type f -mtime +30 -name 'db.sqlite3.*' -delete

Рекомендуемый план восстановления после сбоя:

  1. Остановить контейнеры: docker compose down
  2. Восстановить файл db.sqlite3 в ~/linkding/data
  3. Запустить контейнеры: docker compose up -d

Роль‑ориентированные чек‑листы:

  • Администратор:
    • Проверить статус контейнеров
    • Обновить образ Linkding и тестировать обновления на стенде
    • Делать и проверять бэкапы
  • Разработчик / Сисадмин:
    • Настроить CI для тестового развёртывания
    • Настроить мониторинг контейнера и логов
  • Обычный пользователь:
    • Создавать/удалять закладки
    • Экспортировать свои закладки при необходимости

Альтернативные подходы и когда этот метод не подходит

Когда Linkding с Docker — хорошее решение:

  • Нужен лёгкий приватный менеджер закладок для небольших команд.
  • Хотите быстрое развёртывание и простое хранение (SQLite).

Когда это не подходит:

  • Вам требуется масштабируемая система с высокой нагрузкой — лучше использовать приложение с серверной СУБД (Postgres) и более крупной архитектурой.
  • Нужны продвинутые возможности каталогизации/поиска на уровне корпоративной индексации — Linkding рассчитан на простоту.

Быстрая инструкция (SOP) — свод действий

  1. Подготовить сервер и установить Docker + Nginx.
  2. Создать ~/linkding, docker-compose.yml и .env с надёжными параметрами.
  3. docker compose up -d и убедиться, что контейнер запустился.
  4. Настроить Nginx, проверить локально по HTTP.
  5. Установить Certbot и получить сертификат для домена.
  6. Войти в Linkding, создать пользователей и проверить экспорт/бэкапы.

Мини‑модель принятия решения (Mermaid)

flowchart TD
  A[Нужен менеджер закладок?] --> B{Публичный доступ?}
  B -- Да --> C[Использовать Docker + Nginx + Certbot]
  B -- Нет --> D[Использовать Docker локально, выключить Nginx]
  C --> E{Много пользователей?}
  D --> E
  E -- Да --> F[Рассмотреть СУБД Postgres и масштабирование]
  E -- Нет --> G[SQLite 'стандартная конфигурация' подходит]

Часто задаваемые вопросы

Можно ли установить Linkding без Docker?

Нет. Разработчики Linkding ориентировали проект на контейнеризацию: приложение имеет зависимости, которые проще и безопаснее разворачивать в контейнерах.

Можно ли импортировать существующие закладки в Linkding?

Да. Linkding поддерживает импорт из форматов, экспортируемых большинством браузеров (например, HTML‑экспорт Chrome/Edge). Также в интерфейсе есть опции экспорта/импорта.

Как сделать бэкап базы Linkding вне Docker?

Да. Либо через интерфейс Settings → Export для отдельных пользователей, либо скопировав файл db.sqlite3 из ~/linkding/data — он содержит всю базу данных инстанса.

Краткое резюме

Linkding — удобный и быстрый способ получить приватный менеджер закладок на собственном сервере. Подход с Docker + Nginx + Certbot обеспечивает простоту установки и безопасный доступ по HTTPS. Для продакшна обязательно включайте регулярные бэкапы, настройте брандмауэр и контролируйте доступ к Docker сокету.

Иллюстрация админ-панели Linkding с кнопкой Add для добавления пользователя.

Автор фото (фон): Lauren Mancke via Unsplash. Логотип и скриншоты: Linkding Github. Изменения и скриншоты: Ramces Red.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро