Встановлення Linkwarden на VPS: самокерований менеджер закладок з тегами та колекціями
TL;DR
У цьому докладному посібнику ми крок за кроком налаштуємо Linkwarden — потужний самокерований менеджер закладок — на вашому Virtual Private Server (VPS). Ви дізнаєтеся, як підготувати сервер на базі Ubuntu 24.04 LTS, встановити Docker, розгорнути Linkwarden за допомогою Docker Compose, налаштувати безпечний доступ через HTTPS з використанням Caddy та реалізувати стратегію резервного копіювання для захисту ваших даних.
- Налаштування Linkwarden на VPS для повного контролю над вашими закладками.
- Використання Docker та Docker Compose для легкого встановлення та керування.
- Забезпечення безпеки за допомогою HTTPS (Caddy) та базового захисту сервера.
- Розгортання на Ubuntu 24.04 LTS з актуальними версіями ПЗ на 2026 рік.
- Впровадження системи резервного копіювання для збереження даних.
- Отримання повноцінного менеджера закладок з тегами, колекціями та пошуком.
Що ми налаштовуємо і навіщо
Ми будемо встановлювати Linkwarden — це відкрите та самокероване рішення для збереження, організації та архівування веб-посилань. У світі, де інформація постійно змінюється, а статті та сайти зникають, Linkwarden дозволяє вам зберігати не тільки посилання, але й повні копії веб-сторінок, забезпечуючи їх постійну доступність. Це ідеальний інструмент для тих, хто активно працює з інформацією, проводить дослідження, збирає корисні ресурси або просто хоче мати надійний архів своїх улюблених сайтів.
У підсумку, ви отримаєте повністю функціональний, приватний менеджер закладок, доступний з будь-якої точки світу через ваш власний домен. Він буде оснащений потужним пошуком, можливістю додавати теги та створювати колекції, а також функцією архівації сторінок, щоб контент не зникав. Це означає повний контроль над вашими даними та відсутність залежності від сторонніх сервісів, які можуть змінити свою політику або припинити існування.
Альтернативи та чому self-hosted на VPS
Існує безліч рішень для керування закладками. До них відносяться хмарні сервіси, такі як Pocket, Raindrop.io, Instapaper, а також інші self-hosted варіанти, наприклад, Wallabag або Shaarli.
- Хмарні сервіси: Зручні, не вимагають налаштування, але ви довіряєте свої дані третій стороні, і функціонал часто обмежений платними підписками. Ви не контролюєте зберігання даних та їх конфіденційність.
- Інші self-hosted рішення: Wallabag та Shaarli також є чудовими проєктами, але Linkwarden виділяється сучасним інтерфейсом, активною розробкою та набором функцій, які часто більш орієнтовані на "архівацію" та "керування знаннями", ніж просто на "збереження для читання пізніше".
Вибір self-hosted рішення на VPS дає вам повний суверенітет над вашими даними. Ви самі вирішуєте, де і як зберігаються ваші закладки, хто має до них доступ, і які функції ви використовуєте. Це особливо важливо для розробників, дослідників, команд, яким потрібна приватна база знань, або будь-кого, хто цінує конфіденційність та контроль. VPS надає необхідну гнучкість та масштабованість для такого роду застосунків, дозволяючи вам за необхідності легко збільшувати ресурси або додавати інші сервіси на той самий сервер.
Який VPS-конфіг потрібен для цього завдання
Linkwarden — відносно легковажний застосунок, особливо для індивідуального використання або невеликої команди. Однак, чим більше посилань ви зберігаєте і чим частіше використовуєте функцію архівації сторінок (яка зберігає повний HTML та медіа), тим більше ресурсів знадобиться.
Мінімальні вимоги (для 1-5 користувачів, до 1000 посилань):
- CPU: 1 vCPU (сучасний процесор, наприклад, Intel Xeon E5 або AMD EPYC).
- RAM: 2 ГБ (для стабільної роботи Docker, Linkwarden та бази даних).
- Диск: 40-60 ГБ SSD (для операційної системи, Docker-образів, бази даних Linkwarden та архівованих сторінок. SSD значно прискорює роботу).
- Мережа: 100 Мбіт/с (достатньо для більшості завдань, якщо немає інтенсивного завантаження/вивантаження архівованих даних).
Рекомендований конфіг (для 5-20 користувачів, до 10000 посилань або активної архівації):
- CPU: 2 vCPU.
- RAM: 4 ГБ.
- Диск: 80-120 ГБ SSD (або NVMe для максимальної продуктивності).
- Мережа: 1 Гбіт/с.
Для оренди VPS з такими характеристиками можна розглянути VPS із зазначеними характеристиками, що підходить для більшості завдань з розгортання Linkwarden.
Коли потрібен dedicated, а не VPS
Dedicated сервер може знадобитися, якщо:
- Ви плануєте використовувати Linkwarden для дуже великої команди (сотні користувачів).
- Ви будете архівувати величезну кількість сторінок (терабайти даних), що вимагає значних обсягів сховища та високої швидкості введення/виведення.
- На сервері розміщуватимуться інші ресурсомісткі сервіси, крім Linkwarden.
- Вам необхідна максимальна продуктивність та ізоляція, які VPS не може забезпечити через спільну інфраструктуру.
- Потрібні специфічні апаратні конфігурації, недоступні на VPS (наприклад, RAID-масиви, спеціалізовані мережеві карти).
Локація: на що впливає
Вибір локації VPS впливає на кілька факторів:
- Затримка (Latency): Чим ближче сервер до вас та ваших основних користувачів, тим нижча затримка та швидшою буде відповідь веб-інтерфейсу.
- Юридичні аспекти: Законодавство країни, де розташований сервер, може впливати на приватність та обробку даних. Враховуйте це, якщо ваші дані чутливі.
- Доступність мережі: У деяких регіонах мережева інфраструктура більш розвинена та стабільна.
- Вартість: Ціни на VPS можуть варіюватися залежно від регіону.
Для більшості користувачів Linkwarden достатньо вибрати локацію, яка географічно близька до основної аудиторії, щоб забезпечити мінімальну затримку.
Підготовка сервера
Перед встановленням Linkwarden необхідно виконати базове налаштування безпеки та встановити необхідні утиліти на ваш VPS. Ми будемо використовувати Ubuntu 24.04 LTS (Noble Numbat) як основну операційну систему, оскільки вона є однією з найпопулярніших та добре підтримуваних платформ для серверів.
Підключіться до вашого VPS по SSH, використовуючи дані, надані вашим провайдером. Зазвичай це виглядає так:
ssh root@ВАШ_IP_АДРЕС
1. Оновлення системи
Насамперед, оновіть список пакетів та встановлені пакети до актуальних версій.
sudo apt update # Оновити список доступних пакетів
sudo apt upgrade -y # Оновити встановлені пакети
sudo apt autoremove -y # Видалити непотрібні пакети
2. Створення нового користувача з правами sudo
Працювати під обліковим записом root небезпечно. Створіть нового користувача та надайте йому права sudo.
sudo adduser linkwardenuser # Створити нового користувача з іменем linkwardenuser
sudo usermod -aG sudo linkwardenuser # Додати користувача до групи sudo
Після створення користувача, вийдіть із сесії root та увійдіть під новим користувачем:
exit
ssh linkwardenuser@ВАШ_IP_АДРЕС
3. Налаштування SSH-ключів (рекомендується)
Для підвищення безпеки рекомендується використовувати SSH-ключі замість паролів. Якщо у вас ще немає SSH-ключа, згенеруйте його на вашій локальній машині:
ssh-keygen -t rsa -b 4096 # Генерувати новий SSH-ключ (на локальній машині)
Потім скопіюйте публічний ключ на ваш VPS:
ssh-copy-id linkwardenuser@ВАШ_IP_АДРЕС # Скопіювати публічний ключ на сервер
Після цього можна відключити автентифікацію за паролем у файлі /etc/ssh/sshd_config, змінивши PasswordAuthentication yes на PasswordAuthentication no та перезапустивши службу SSH. Це значно підвищить безпеку.
4. Налаштування брандмауера (UFW)
Увімкніть Uncomplicated Firewall (UFW) та дозвольте лише необхідні порти: SSH (22), HTTP (80) та HTTPS (443).
sudo apt install ufw -y # Встановити UFW, якщо не встановлено
sudo ufw allow OpenSSH # Дозволити SSH-з'єднання
sudo ufw allow http # Дозволити HTTP (порт 80)
sudo ufw allow https # Дозволити HTTPS (порт 443)
sudo ufw enable # Увімкнути брандмауер
sudo ufw status # Перевірити статус брандмауера
Підтвердіть увімкнення, натиснувши 'y'.
5. Встановлення Fail2Ban
Fail2Ban допомагає захистити сервер від атак методом підбору пароля, блокуючи IP-адреси, з яких відбуваються численні невдалі спроби входу.
sudo apt install fail2ban -y # Встановити Fail2Ban
sudo systemctl enable fail2ban # Увімкнути автозапуск Fail2Ban
sudo systemctl start fail2ban # Запустити Fail2Ban
Можна створити файл конфігурації /etc/fail2ban/jail.local для тонкого налаштування, але базова установка вже забезпечує хороший захист SSH.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Переконайтеся, що секція [sshd] активна (enabled = true).
6. Встановлення базових утиліт
Встановіть корисні утиліти, які можуть знадобитися в процесі встановлення та налагодження.
sudo apt install curl wget git htop unzip -y # Встановити curl, wget, git, htop та unzip
Тепер ваш сервер готовий до встановлення Linkwarden.
Встановлення ПЗ — покроково
Linkwarden найкраще розгортати з використанням Docker та Docker Compose, що забезпечує ізоляцію, переносимість та простоту керування. Ми встановимо Docker Engine та Docker Compose, а потім розгорнемо Linkwarden.
1. Встановлення Docker Engine (актуально для 2026 року)
Для Ubuntu 24.04 LTS рекомендується встановлювати Docker з офіційного репозиторію Docker.
# Видалити старі версії Docker, якщо вони є
for pkg in docker.io docker-doc docker-compose docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; do sudo apt remove $pkg -y; done
# Встановити необхідні пакети для використання репозиторію HTTPS
sudo apt update
sudo apt install ca-certificates curl gnupg -y
# Додати офіційний GPG ключ Docker
sudo install -m 0755 -d /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 \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Оновити список пакетів з урахуванням нового репозиторію
sudo apt update
# Встановити Docker Engine, Docker CLI та Containerd (версії будуть актуальні на 2026 рік, наприклад, Docker 26.x)
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
# Додати поточного користувача до групи docker, щоб не використовувати sudo для команд docker
sudo usermod -aG docker $USER
# Застосувати зміни групи (необхідно вийти та знову увійти в SSH сесію)
# Для цього вийдіть з поточної SSH-сесії та увійдіть заново: exit, потім ssh linkwardenuser@ВАША_IP_АДРЕСА
Після повторного входу в SSH-сесію перевірте встановлення Docker:
docker run hello-world # Запустити тестовий контейнер для перевірки встановлення Docker
Ви повинні побачити повідомлення "Hello from Docker!".
2. Встановлення Docker Compose (якщо не встановлено як плагін)
Починаючи з Docker Engine 20.10, Docker Compose включено як плагін docker compose. Якщо ви встановили його за допомогою docker-compose-plugin, окреме встановлення не потрібне. Ви можете перевірити його наявність:
docker compose version # Перевірити версію Docker Compose плагіна (наприклад, v2.24.x)
Якщо команда docker compose version працює, то Docker Compose встановлено. Якщо ні, або ви віддаєте перевагу старому синтаксису docker-compose, встановіть його окремо:
# Завантажити актуальну версію Docker Compose (наприклад, 2.24.x для 2026 року)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# Надати права на виконання
sudo chmod +x /usr/local/bin/docker-compose
# Створити символічне посилання (опціонально, для зручності)
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# Перевірити версію
docker-compose --version # Перевірити версію Docker Compose (наприклад, Docker Compose version 2.24.5)
3. Створення директорії для Linkwarden
Створіть директорію, де зберігатимуться файли конфігурації Linkwarden.
mkdir ~/linkwarden # Створити директорію linkwarden у домашній папці користувача
cd ~/linkwarden # Перейти до створеної директорії
4. Завантаження файлу docker-compose.yml
Linkwarden надає офіційний файл docker-compose.yml. Завантажте його.
wget https://raw.githubusercontent.com/linkwarden/linkwarden/main/docker-compose.yml # Завантажити файл docker-compose.yml
Відкрийте файл docker-compose.yml для ознайомлення. Він міститиме сервіси linkwarden (сам застосунок) та db (база даних PostgreSQL).
5. Створення файлу .env
Створіть файл .env для зберігання змінних оточення та секретів. Це найкращий спосіб керувати конфігурацією без зміни основного файлу docker-compose.yml.
nano .env # Створити та відкрити файл .env для редагування
Вставте наступний вміст, змінивши значення на свої:
# Налаштування застосунку Linkwarden
# -----------------------------
# Ви ПОВИННІ змінити SECRET_KEY на сильний, випадковий рядок.
# Згенеруйте його за допомогою openssl rand -base64 32 або подібного.
SECRET_KEY=ВАШ_СЕКРЕТНИЙ_КЛЮЧ_ТУТ # Обов'язково згенеруйте унікальний ключ!
NEXTAUTH_URL=https://linkwarden.ВАШ_ДОМЕН.ru # URL, за яким буде доступний Linkwarden
# Налаштування бази даних (PostgreSQL)
# -----------------------------
# Ви ПОВИННІ змінити POSTGRES_PASSWORD на сильний, випадковий пароль.
POSTGRES_USER=linkwardenuser
POSTGRES_PASSWORD=ВАШ_ПАРОЛЬ_БАЗИ_ДАНИХ_ТУТ # Обов'язково згенеруйте унікальний пароль!
POSTGRES_DB=linkwarden
# Docker Volumes для збереження даних
# ----------------------------------
# Вони визначають, де дані Linkwarden та PostgreSQL зберігатимуться на вашому хості.
# Переконайтеся, що ці шляхи існують і Docker має дозволи на запис до них.
LINKWARDEN_DATA_DIR=./linkwarden_data
POSTGRES_DATA_DIR=./postgres_data
# Опціонально: Часовий пояс для Linkwarden
# Знайдіть свій часовий пояс тут: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TZ=Europe/Moscow
# Опціонально: Увімкнути електронну пошту для відновлення облікового запису, запрошень тощо.
# SMTP_HOST=smtp.your-email-provider.com
# SMTP_PORT=587
# [email protected]
# SMTP_PASSWORD=YOUR_EMAIL_PASSWORD
# SMTP_FROM=Linkwarden
Важливо:
- Замініть
ВАШ_СЕКРЕТНИЙ_КЛЮЧ_ТУТна випадковий рядок. Ви можете згенерувати його командоюopenssl rand -base64 32. - Замініть
ВАШ_ПАРОЛЬ_БАЗИ_ДАНИХ_ТУТна надійний, складний пароль. - Вкажіть ваш домен у
NEXTAUTH_URL. - Переконайтеся, що
LINKWARDEN_DATA_DIRтаPOSTGRES_DATA_DIRвказують на існуючі або будуть створені директорії.
Збережіть файл (Ctrl+X, Y, Enter).
6. Створення директорій для даних
Створіть директорії, вказані в .env для зберігання даних Linkwarden та PostgreSQL.
mkdir linkwarden_data # Створити директорію для даних Linkwarden
mkdir postgres_data # Створити директорію для даних PostgreSQL
7. Запуск Linkwarden
Тепер ви готові запустити Linkwarden за допомогою Docker Compose.
docker compose up -d # Запустити сервіси Linkwarden та PostgreSQL у фоновому режимі
Ця команда завантажить необхідні Docker-образи (linkwarden/linkwarden та postgres), створить контейнери та запустить їх. Процес може зайняти кілька хвилин залежно від швидкості вашого інтернет-з'єднання.
8. Перевірка статусу контейнерів
Переконайтеся, що всі контейнери запущені та працюють коректно.
docker compose ps # Показати статус запущених контейнерів
Ви повинні побачити статус Up для обох сервісів. Якщо якийсь сервіс має статус Exited або Restarting, перевірте логи:
docker compose logs linkwarden # Переглянути логи контейнера linkwarden
docker compose logs db # Переглянути логи контейнера бази даних
На цьому етапі Linkwarden запущено на вашому сервері, але він доступний лише за внутрішніми портами (зазвичай 3000 для Linkwarden). Для доступу ззовні та забезпечення безпеки нам потрібно буде налаштувати зворотний проксі-сервер з HTTPS.