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

Отримати VPS arrow_forward
eco Початковий Туторіал

Встановлення Authentik

calendar_month Jun 11, 2026 schedule 21 хв. читання visibility 47 переглядів
Установка Authentik на VPS: SSO, MFA и централизованная аутентификация
info

Потрібен сервер для цього гайду? Ми пропонуємо виділені сервери та VPS у 50+ країнах з миттєвим налаштуванням.

Потрібен сервер для цього гайду?

Розгорніть VPS або виділений сервер за хвилини.

Встановлення Authentik на VPS: SSO, MFA та централізована автентифікація

TL;DR

У цьому докладному посібнику ми крок за кроком налаштуємо Authentik — потужне Open Source рішення для керування ідентифікацією та доступом (IAM) на вашому власному VPS. Ви отримаєте централізовану систему єдиного входу (SSO) та багатофакторної автентифікації (MFA), готову до інтеграції з вашими веб-додатками, що значно підвищить безпеку та спростить керування користувачами.

  • Authentik буде встановлено з використанням Docker Compose для легкого розгортання та керування.
  • Як базу даних буде використано зовнішню PostgreSQL 16 для кращої продуктивності та масштабованості.
  • Ми налаштуємо Caddy як зворотний проксі-сервер з автоматичним отриманням TLS/HTTPS сертифікатів від Let's Encrypt.
  • Будуть розглянуті базові кроки щодо захисту сервера, включаючи фаєрвол та SSH-ключі.
  • Ви дізнаєтеся, як налаштувати резервні копії та підтримувати систему в актуальному стані.

Що ми налаштовуємо і навіщо

Схема: Що ми налаштовуємо і навіщо
Схема: Що ми налаштовуємо і навіщо

У сучасному цифровому світі керування обліковими записами користувачів та забезпечення їхнього безпечного доступу до безлічі додатків стало критично важливим завданням. Authentik пропонує елегантне та потужне рішення цієї проблеми, виступаючи в ролі централізованого постачальника ідентифікації.

Authentik — це Open Source платформа для керування ідентифікацією та доступом (Identity and Access Management, IAM), яка дозволяє реалізувати єдиний вхід (Single Sign-On, SSO) та багатофакторну автентифікацію (Multi-Factor Authentication, MFA) для всіх ваших додатків. Замість того, щоб створювати та керувати окремими обліковими записами для кожного сервісу (GitLab, Mattermost, Nextcloud, Grafana тощо), користувачі проходитимуть автентифікацію один раз через Authentik, а потім отримуватимуть безшовний доступ до всіх інтегрованих додатків.

У підсумку, після завершення цього посібника, ви отримаєте повністю налаштовану систему Authentik на вашому VPS, яка слугуватиме центральною точкою автентифікації. Це значно підвищить безпеку за рахунок примусового використання MFA та централізованого керування паролями, а також покращить користувацький досвід, усуваючи необхідність запам'ятовувати безліч логінів та паролів.

Існують різні підходи до вирішення завдань IAM. Серед хмарних керованих сервісів можна виділити Okta, Auth0 або Azure AD, які пропонують високу доступність та мінімальні витрати на адміністрування, але при цьому вимагають щомісячних платежів та передбачають передачу контролю над даними третій стороні. З іншого боку, існують інші самохостингові рішення, такі як Keycloak або FreeIPA, які також надають можливості SSO та MFA, але можуть бути складнішими у розгортанні та налаштуванні порівняно з Authentik, особливо для невеликих та середніх інсталяцій.

Вибір самохостингового рішення на VPS, такого як Authentik, зумовлений кількома ключовими перевагами. По-перше, це повний контроль над вашими даними та інфраструктурою, що особливо важливо для дотримання конфіденційності та регуляторних вимог. По-друге, це значна економія витрат порівняно з хмарними аналогами, особливо в довгостроковій перспективі. І, нарешті, це гнучкість та можливість глибокого налаштування під ваші унікальні потреби, що робить його ідеальним вибором для розробників, соло-фаундерів SaaS-проектів та всіх, хто цінує незалежність та безпеку.

Який VPS-конфіг потрібен для цього завдання

Схема: Який VPS-конфіг потрібен для цього завдання
Схема: Який VPS-конфіг потрібен для цього завдання

Правильний вибір конфігурації VPS є ключовим для стабільної та продуктивної роботи Authentik. Нижче представлені мінімальні та рекомендовані вимоги, актуальні на 2026 рік, з урахуванням зростання функціональності та оптимізації Authentik.

Мінімальні вимоги (для невеликих команд до 50 користувачів)

  • CPU: 2 vCPU (сучасний процесор x86-64, наприклад, Intel Xeon E3/E5 або AMD EPYC).
  • RAM: 4 ГБ (цього достатньо для операційної системи, Authentik та PostgreSQL).
  • Диск: 80-100 ГБ NVMe SSD. Швидкість дискової підсистеми критична для продуктивності бази даних та загального відгуку системи. NVMe значно перевершує звичайні SATA SSD.
  • Мережа: 1 Гбіт/с uplink. Публічна IPv4 адреса обов'язкова для доступу до Authentik з інтернету.

Рекомендований VPS-план (для команд до 200-300 користувачів)

Для більш комфортної роботи, із запасом на масштабування та інтеграцію кількох десятків додатків, рекомендується наступний конфіг:

  • CPU: 4 vCPU.
  • RAM: 8 ГБ.
  • Диск: 160-200 ГБ NVMe SSD.
  • Мережа: 1 Гбіт/с uplink, публічна IPv4.

Для оренди VPS із зазначеними характеристиками, ви можете розглянути пропозиції різних провайдерів, які відповідають цим параметрам. Переконайтеся, що обраний тариф включає NVMe SSD та достатній обсяг оперативної пам'яті.

Коли потрібен dedicated, а не VPS

Хоча VPS є чудовим вибором для більшості сценаріїв, є ситуації, коли виділений сервер (dedicated server) буде більш кращим:

  • Дуже високе навантаження: Якщо ви очікуєте тисячі активних користувачів, сотні запитів на автентифікацію за секунду або інтеграцію з критично важливими корпоративними системами, dedicated сервер надасть вам усю міць фізичного обладнання без віртуалізації.
  • Суворі вимоги до продуктивності: Для додатків, де затримка навіть у мілісекунди критична, dedicated сервер може запропонувати більш передбачувану та стабільну продуктивність.
  • Специфічні вимоги до безпеки/комплаєнсу: Деякі регуляторні норми або внутрішні політики компанії можуть вимагати повного контролю над апаратним забезпеченням, що найкраще досягається на dedicated сервері.
  • Великі обсяги даних: Якщо Authentik зберігатиме значні обсяги користувацьких даних, логів або інтегруватиметься з дуже великими директоріями, велика дискова підсистема dedicated сервера буде доречною.

Локація VPS: на що впливає

Вибір географічного розташування вашого VPS має кілька важливих аспектів:

  • Затримка (Latency): Розміщуйте VPS якомога ближче до основної маси ваших користувачів. Чим менша відстань, тим швидшими будуть відповіді сервера, що критично для інтерактивних веб-додатків та загального користувацького досвіду.
  • Законодавство про дані: Якщо ви працюєте з персональними даними, переконайтеся, що локація VPS відповідає вимогам GDPR, HIPAA або іншим місцевим законам про зберігання та обробку даних.
  • Доступність мережі: Вибирайте локації з хорошими мережевими зв'язками та пірингом з основними провайдерами, щоб забезпечити стабільний та швидкий доступ.

Підготовка сервера

Схема: Підготовка сервера
Схема: Підготовка сервера

Перед тим як приступити до встановлення Authentik, необхідно виконати базове налаштування вашого VPS для забезпечення безпеки та стабільності. Ми будемо використовувати Ubuntu Server 24.04 LTS як операційну систему, оскільки вона є однією з найпопулярніших та добре підтримуваних платформ для серверів.

1. Підключення до сервера

Підключіться до вашого VPS по SSH, використовуючи облікові дані, надані провайдером (зазвичай логін root та пароль, або користувач з SSH-ключем).


ssh root@ВАШ_IP_АДРЕС

2. Оновлення системи

Насамперед оновіть усі пакети до актуальних версій. Це забезпечить безпеку та стабільність системи.


sudo apt update && sudo apt upgrade -y

3. Створення нового користувача та налаштування sudo

Робота під користувачем root не рекомендується для повсякденних завдань. Створіть нового користувача з обмеженими правами та додайте його до групи sudo.


# Замініть 'youruser' на бажане ім'я користувача
sudo adduser youruser
sudo usermod -aG sudo youruser

Вийдіть із сесії root та увійдіть під новим користувачем:


exit
ssh youruser@ВАШ_IP_АДРЕС

4. Налаштування SSH-доступу за ключами (рекомендується)

Для підвищення безпеки рекомендується використовувати SSH-ключі замість паролів. Якщо ви вже використовуєте ключі, переконайтеся, що ваш публічний ключ додано до файлу ~/.ssh/authorized_keys нового користувача.

На локальній машині:


# Якщо у вас немає SSH-ключа, згенеруйте його
ssh-keygen -t rsa -b 4096

# Скопіюйте публічний ключ на сервер (замініть youruser та ВАШ_IP_АДРЕС)
ssh-copy-id youruser@ВАШ_IP_АДРЕС

На сервері: вимкніть вхід за паролем та для root-користувача.


sudo nano /etc/ssh/sshd_config

Знайдіть та змініть наступні рядки (або додайте, якщо відсутні):


# Вимкнути вхід для root
PermitRootLogin no

# Вимкнути вхід за паролем (після того, як переконаєтеся, що вхід за ключем працює!)
PasswordAuthentication no

# Переконайтеся, що автентифікація за ключами увімкнена
PubkeyAuthentication yes

Перезапустіть SSH-сервіс:


sudo systemctl restart sshd

5. Встановлення та налаштування Fail2Ban

Fail2Ban допомагає захиститися від атак підбору паролів, блокуючи IP-адреси, з яких відбуваються численні невдалі спроби входу.


sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Створіть файл локальної конфігурації:


sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

У секції [DEFAULT] можете встановити більш агресивні параметри, наприклад:


bantime = 1h    # Час блокування (1 година)
findtime = 10m  # Час, за який рахуються спроби (10 хвилин)
maxretry = 3    # Максимальна кількість спроб до блокування

Переконайтеся, що секція [sshd] активна (enabled = true).


sudo systemctl restart fail2ban

6. Налаштування брандмауера (UFW)

UFW (Uncomplicated Firewall) — це зручний інтерфейс для керування iptables. Налаштуємо його, щоб дозволити лише необхідний трафік.


sudo apt install ufw -y

# Заборонити весь вхідний трафік за замовчуванням
sudo ufw default deny incoming

# Дозволити весь вихідний трафік за замовчуванням
sudo ufw default allow outgoing

# Дозволити SSH (за замовчуванням порт 22)
sudo ufw allow ssh

# Дозволити HTTP (порт 80) та HTTPS (порт 443) для веб-сервера
sudo ufw allow http
sudo ufw allow https

# Увімкнути UFW
sudo ufw enable

Підтвердіть дію, ввівши y. Перевірте статус брандмауера:


sudo ufw status verbose

7. Встановлення базових утиліт

Встановіть кілька корисних утиліт, які можуть стати в нагоді в процесі встановлення та налагодження.


sudo apt install curl wget git htop net-tools -y

Тепер ваш сервер підготовлений та захищений для подальшого розгортання Authentik.

Встановлення ПЗ — покроково

Схема: Встановлення ПЗ — покроково
Схема: Встановлення ПЗ — покроково

Authentik розгортається з використанням Docker Compose, що значно спрощує керування його компонентами. Ми також будемо використовувати зовнішню базу даних PostgreSQL для кращої продуктивності та масштабованості.

1. Встановлення Docker Engine та Docker Compose Plugin (актуально на 2026)

Встановимо Docker Engine та Docker Compose Plugin, які є основою для запуску Authentik.


# 1. Обновление пакетов и установка необходимых зависимостей
sudo apt update && sudo apt install ca-certificates curl gnupg lsb-release -y

# 2. Добавление официального 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

# 3. Добавление репозитория Docker
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

# 4. Обновление индекса пакетов APT и установка Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

# 5. Добавление текущего пользователя в группу docker для выполнения команд без sudo
sudo usermod -aG docker $USER
newgrp docker # Примените изменения группы без перезапуска сессии

# 6. Проверка установки Docker
docker run hello-world

# 7. Проверка установки Docker Compose Plugin
docker compose version

Очікуваний вивід для версії Docker Compose буде приблизно Docker Compose version v2.24.x або вище.

2. Встановлення та налаштування PostgreSQL 16

Authentik використовує базу даних для зберігання своїх даних. Замість використання вбудованої бази даних у Docker-контейнері, ми встановимо PostgreSQL 16 безпосередньо на VPS для кращої продуктивності та керованості.


# 1. Установка PostgreSQL 16
sudo apt install postgresql-16 -y

# 2. Запуск и включение PostgreSQL
sudo systemctl enable postgresql
sudo systemctl start postgresql

# 3. Переключение на пользователя postgres для настройки базы данных
sudo -i -u postgres

# 4. Создание новой базы данных и пользователя для Authentik
psql -c "CREATE DATABASE authentik;"
psql -c "CREATE USER authentik_user WITH PASSWORD 'ВАШ_ОЧЕНЬ_СИЛЬНЫЙ_ПАРОЛЬ_ДЛЯ_БД';"
psql -c "GRANT ALL PRIVILEGES ON DATABASE authentik TO authentik_user;"

# 5. Выход из пользователя postgres
exit

Замініть 'ВАШ_ОЧЕНЬ_СИЛЬНЫЙ_ПАРОЛЬ_ДЛЯ_БД' на складний унікальний пароль. Запишіть його, він знадобиться для конфігурації Authentik.

3. Розгортання Authentik за допомогою Docker Compose

Тепер ми готові розгорнути Authentik, використовуючи його офіційні Docker-образи.


# 1. Создание директории для Authentik и переход в нее
mkdir ~/authentik
cd ~/authentik

# 2. Загрузка файлов docker-compose.yml и .env из официального репозитория Authentik
# Для примера используем актуальную версию на 2024 год, которая будет актуальна и для 2026 с небольшими обновлениями
# Всегда проверяйте актуальный URL на официальном сайте Authentik (goauthentik.io)
wget https://goauthentik.io/docker-compose.yml
wget https://goauthentik.io/docker-compose.env
mv docker-compose.env .env # Переименовываем файл .env

# 3. Генерация уникального секретного ключа для Authentik
# Этот ключ используется для шифрования данных и должен быть надежным.
# Замените его на свой сгенерированный ключ.
AUTHENTIK_SECRET_KEY=$(python3 -c 'import secrets; print(secrets.token_urlsafe(64))')
echo "AUTHENTIK_SECRET_KEY=$AUTHENTIK_SECRET_KEY" >> .env
echo "Секретный ключ Authentik сгенерирован и добавлен в .env"

Важливо: переконайтеся, що ви використовуєте актуальні версії файлів docker-compose.yml та .env з офіційного сайту Authentik. Команди вище використовують загальнодоступні посилання, але у 2026 році можуть бути зміни.

4. Налаштування файлу .env

Відредагуйте файл .env, щоб Authentik міг підключитися до вашої зовнішньої бази даних PostgreSQL та використовувати правильний домен.


nano .env

Знайдіть наступні рядки та змініть їх відповідно до вашої конфігурації:

  • AUTHENTIK_HOST=https://your.domain.com/: Замініть your.domain.com на ваше реальне доменне ім'я, через яке буде доступний Authentik.
  • AUTHENTIK_POSTGRESQL__HOST=localhost: Вказуємо, що PostgreSQL знаходиться на тому ж сервері.
  • AUTHENTIK_POSTGRESQL__NAME=authentik: Ім'я бази даних, яку ми створили.
  • AUTHENTIK_POSTGRESQL__USER=authentik_user: Ім'я користувача бази даних.
  • AUTHENTIK_POSTGRESQL__PASSWORD=ВАШ_ОЧЕНЬ_СИЛЬНЫЙ_ПАРОЛЬ_ДЛЯ_БД: Пароль користувача бази даних.
  • AUTHENTIK_REDIS__HOST=redis: Залиште як є, якщо використовуєте внутрішній Redis від Docker Compose.

Приклад відредагованих рядків у .env:


AUTHENTIK_HOST=https://auth.example.com/ # Ваше доменне ім'я
AUTHENTIK_SECRET_KEY=ВАШ_СГЕНЕРИРОВАННЫЙ_КЛЮЧ # Він вже має бути там
AUTHENTIK_POSTGRESQL__HOST=localhost
AUTHENTIK_POSTGRESQL__NAME=authentik
AUTHENTIK_POSTGRESQL__USER=authentik_user
AUTHENTIK_POSTGRESQL__PASSWORD=ВАШ_ОЧЕНЬ_СИЛЬНЫЙ_ПАРОЛЬ_ДЛЯ_БД
AUTHENTIK_REDIS__HOST=redis

Збережіть зміни (Ctrl+O, Enter, Ctrl+X).

5. Запуск Authentik

Тепер, коли все налаштовано, запустіть Authentik за допомогою Docker Compose.


# Загрузка образов Docker
docker compose pull

# Запуск контейнеров Authentik в фоновом режиме
docker compose up -d

Перевірте статус запущених контейнерів:


docker compose ps

Ви маєте побачити контейнери authentik_server, authentik_worker та redis у статусі running.

6. Створення суперкористувача Authentik

Для першого входу в Authentik необхідно створити обліковий запис суперкористувача.


docker compose exec authentik sh -c "python3 manage.py createsuperuser"

Дотримуйтесь інструкцій у терміналі, щоб створити користувача admin (або будь-яке інше ім'я) та встановити для нього надійний пароль. Запишіть ці облікові дані.

На цьому кроці Authentik встановлено та запущено. Далі ми налаштуємо доступ до нього через веб-інтерфейс з використанням зворотного проксі та HTTPS.

Конфігурація

Схема: Конфігурація
Схема: Конфігурація

Після встановлення Authentik нам необхідно налаштувати доступ до нього через веб-інтерфейс, забезпечити шифрування трафіку за допомогою HTTPS та перевірити його працездатність. Для цих цілей ми будемо використовувати Caddy — потужний та простий у налаштуванні веб-сервер, який автоматично керує сертифікатами Let's Encrypt.

1. Встановлення та налаштування Caddy

Caddy значно спрощує налаштування HTTPS, автоматично отримуючи та оновлюючи SSL-сертифікати. Встановимо його на VPS.


# 1. Установка необходимых зависимостей для добавления репозитория Caddy
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https

# 2. Добавление GPG ключа Caddy
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

# 3. Добавление репозитория Caddy
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list

# 4. Обновление индекса пакетов APT и установка Caddy
sudo apt update
sudo apt install caddy -y

# 5. Проверка статуса Caddy (он должен быть запущен автоматически)
sudo systemctl status caddy

Якщо Caddy не запущено, використовуйте sudo systemctl start caddy.

2. Налаштування Caddyfile для Authentik

Створіть або відредагуйте файл конфігурації Caddy (Caddyfile), щоб він виступав у ролі зворотного проксі для Authentik.


sudo nano /etc/caddy/Caddyfile

Видаліть існуючий вміст та додайте наступне:


your.domain.com {
    # Замініть 'your.domain.com' на ваше реальне доменне ім'я (наприклад, auth.example.com)

    # Увімкнути стиснення GZIP
    encode gzip

    # Налаштування зворотного проксі на Authentik
    reverse_proxy authentik:9000 {
        # Заголовки для правильної роботи проксіювання
        header_up Host {host}
        header_up X-Real-IP {remote_ip}
        header_up X-Forwarded-For {remote_ip}
        header_up X-Forwarded-Proto {scheme}
    }

    # Налаштування логів (опціонально, але корисно для налагодження)
    log {
        output file /var/log/caddy/access.log
    }
}

Важливо: замініть your.domain.com на ваш фактичний домен, який ви вказали у .env файлі Authentik (наприклад, auth.example.com). Переконайтеся, що DNS A-запис для цього домену вказує на IP-адресу вашого VPS.

Збережіть зміни (Ctrl+O, Enter, Ctrl+X) та перевірте конфігурацію Caddy:


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

Якщо конфігурація коректна, перезавантажте Caddy, щоб застосувати зміни:


sudo systemctl reload caddy

Caddy автоматично отримає SSL/TLS сертифікати від Let's Encrypt для вашого домену. Для цього переконайтеся, що порти 80 та 443 відкриті у фаєрволі (ми це зробили на етапі підготовки сервера).

3. Робота з секретами

Як було показано раніше, всі чутливі дані, такі як секретний ключ Authentik (AUTHENTIK_SECRET_KEY) та паролі до бази даних, зберігаються у файлі .env. Це стандартна практика для Docker-додатків. Ніколи не зберігайте ці дані безпосередньо у docker-compose.yml або у публічних репозиторіях.

Переконайтеся, що файл .env має обмежені права доступу, щоб лише власник міг його читати:


chmod 600 ~/authentik/.env

4. Перевірка працездатності

Після налаштування всіх компонентів, виконаємо кілька перевірок, щоб переконатися, що Authentik працює коректно.

  • Перевірка стану контейнерів Docker:
  • 
    docker compose ps
    

    Усі контейнери (authentik_server, authentik_worker, redis) мають бути у статусі running.

  • Перевірка логів Authentik:
  • 
    docker compose logs authentik_server
    docker compose logs authentik_worker
    

    Шукайте помилки або попередження. Нормальні логи мають показувати успішний запуск та ініціалізацію.

  • Перевірка стану Caddy:
  • 
    sudo systemctl status caddy
    sudo journalctl -u caddy --no-pager
    

    Переконайтеся, що Caddy запущено і в логах немає помилок, пов'язаних з отриманням сертифікатів або проксіюванням.

  • Перевірка доступу через curl:
  • 
    curl -I https://your.domain.com/
    

    Ви маєте отримати HTTP-статус 200 OK або 302 Found (перенаправлення на сторінку входу Authentik), що вказує на успішне підключення та роботу HTTPS.

  • Доступ через браузер:
  • Відкрийте у веб-браузері адресу https://your.domain.com/. Ви маєте побачити сторінку входу Authentik. Використовуйте облікові дані суперкористувача, створені раніше, для першого входу.

Вітаємо! Authentik успішно встановлено та налаштовано на вашому VPS з HTTPS. Тепер ви можете розпочати інтеграцію своїх додатків.

Резервні копії та обслуговування

Схема: Резервні копії та обслуговування
Схема: Резервні копії та обслуговування

Регулярні резервні копії та своєчасне обслуговування є критично важливими аспектами для будь-якої виробничої системи, і Authentik не виняток. У цьому розділі ми розглянемо, що потрібно резервувати, як автоматизувати процес і куди зберігати резервні копії.

1. Що резервувати

Для повного відновлення Authentik вам знадобляться наступні компоненти:

  • База даних PostgreSQL: Містить усі дані користувачів, конфігурації додатків, політики, логи та іншу критично важливу інформацію Authentik. Це найважливіший компонент для резервного копіювання.
  • Конфігураційні файли Authentik: Файл .env, що містить секретний ключ і параметри підключення до БД, а також docker-compose.yml.
  • Конфігурація зворотного проксі: Файл /etc/caddy/Caddyfile (або конфігурація Nginx).
  • Дані медіа-файлів Authentik (опціонально): Якщо ви завантажуєте зображення або інші медіа-файли через Authentik (наприклад, логотипи провайдерів), ці дані зберігаються в томі Docker. За замовчуванням, Authentik використовує іменований том authentik_media. Якщо цей том не примонтований до хостової системи, його вміст потрібно резервувати окремо.

2. Простий скрипт авторезервування

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


nano ~/backup_authentik.sh

Вставте наступний вміст:


#!/bin/bash

# --- Налаштування ---
DATE=$(date +%Y%m%d%H%M%S)
BACKUP_DIR="/var/backups/authentik" # Директорія для зберігання резервних копій
DB_NAME="authentik"                 # Ім'я бази даних Authentik
DB_USER="authentik_user"            # Користувач бази даних
DB_HOST="localhost"                 # Хост бази даних (наш VPS)
DB_PASSWORD="ВАШ_ОЧЕНЬ_СИЛЬНЫЙ_ПАРОЛЬ_ДЛЯ_БД" # Пароль до БД. У ПРОДАКШЕНІ ВИКОРИСТОВУЙТЕ .pgpass АБО SECRETS!

AUTHENTIK_ROOT_DIR="$HOME/authentik" # Шлях до директорії з docker-compose.yml та .env
CADDY_CONFIG_PATH="/etc/caddy/Caddyfile" # Шлях до Caddyfile

# --- Створення директорії для резервних копій, якщо її немає ---
mkdir -p "$BACKUP_DIR"

# --- 1. Резервне копіювання бази даних PostgreSQL ---
echo "Початок резервного копіювання бази даних PostgreSQL..."
export PGPASSWORD="$DB_PASSWORD" # Встановлюємо пароль для pg_dump
pg_dump -h "$DB_HOST" -U "$DB_USER" -d "$DB_NAME" > "$BACKUP_DIR/authentik_db_$DATE.sql"
unset PGPASSWORD # Видаляємо пароль зі змінних оточення
if [ $? -eq 0 ]; then
    echo "Резервна копія бази даних успішно створена: $BACKUP_DIR/authentik_db_$DATE.sql"
else
    echo "Помилка при створенні резервної копії бази даних."
fi

# --- 2. Резервне копіювання конфігураційних файлів Authentik ---
echo "Резервне копіювання конфігураційних файлів Authentik..."
cp "$AUTHENTIK_ROOT_DIR/.env" "$BACKUP_DIR/authentik_env_$DATE.env"
cp "$AUTHENTIK_ROOT_DIR/docker-compose.yml" "$BACKUP_DIR/authentik_compose_$DATE.yml"
echo "Конфігураційні файли Authentik зарезервовано."

# --- 3. Резервне копіювання Caddyfile ---
echo "Резервне копіювання Caddyfile..."
cp "$CADDY_CONFIG_PATH" "$BACKUP_DIR/Caddyfile_$DATE"
echo "Caddyfile зарезервовано."

# --- 4. Резервне копіювання Docker-тому 'authentik_media' (якщо він не примонтований до хосту) ---
# Якщо у вас том authentik_media примонтований до хосту, вам потрібно резервувати цю директорію безпосередньо.
# Інакше, якщо це іменований Docker-том, можна використовувати наступний підхід:
# Визначаємо шлях до тому Docker. Це може змінюватися залежно від версії Docker.
# VOLUME_PATH=$(docker volume inspect authentik_media --format '{{ .Mountpoint }}')
# if [ -d "$VOLUME_PATH" ]; then
#    echo "Резервне копіювання Docker-тому authentik_media..."
#    tar -czf "$BACKUP_DIR/authentik_media_$DATE.tar.gz" -C "$VOLUME_PATH" .
#    echo "Docker-том authentik_media зарезервовано."
# else
#    echo "Том authentik_media не знайдено або не примонтовано до хосту."
# fi

# --- 5. Очищення старих резервних копій (наприклад, зберігати резервні копії за останні 7 днів) ---
echo "Очищення старих резервних копій..."
find "$BACKUP_DIR" -type f -name 'authentik_db_.sql' -mtime +7 -delete
find "$BACKUP_DIR" -type f -name 'authentik_env_.env' -mtime +7 -delete
find "$BACKUP_DIR" -type f -name 'authentik_compose_.yml' -mtime +7 -delete
find "$BACKUP_DIR" -type f -name 'Caddyfile_' -mtime +7 -delete
# find "$BACKUP_DIR" -type f -name 'authentik_media_.tar.gz' -mtime +7 -delete # Якщо ви резервуєте медіа-том
echo "Старі резервні копії видалено."

echo "Автоматичне резервне копіювання Authentik завершено о $DATE."

Важливо: Замініть 'ВАШ_ОЧЕНЬ_СИЛЬНЫЙ_ПАРОЛЬ_ДЛЯ_БД' на реальний пароль до вашої БД. У виробничому середовищі вкрай не рекомендується зберігати паролі безпосередньо в скрипті. Замість цього використовуйте файл ~/.pgpass з обмеженими правами доступу (chmod 0600 ~/.pgpass) або змінні оточення, які безпечно завантажуються.

Зробіть скрипт виконуваним:


chmod +x ~/backup_authentik.sh

3. Автоматизація резервного копіювання за допомогою Cron

Додайте скрипт до планувальника Cron, щоб він запускався автоматично.


crontab -e

Додайте наступний рядок у кінець файлу, щоб скрипт запускався щодня о 3:00 ночі:


0 3    /home/youruser/backup_authentik.sh > /dev/null 2>&1

Замініть /home/youruser/backup_authentik.sh на повний шлях до вашого скрипту.

4. Куди зберігати резервні копії

Зберігання резервних копій на тому ж сервері, що й основний сервіс, є ризикованим. У разі виходу з ладу VPS, ви втратите і дані, і резервні копії. Рекомендується використовувати зовнішні сховища:

  • S3-сумісне сховище: Хмарні сервіси, такі як Amazon S3, DigitalOcean Spaces, Backblaze B2, пропонують надійне та недороге зберігання. Для завантаження резервних копій можна використовувати утиліти типу s3cmd або rclone.
  • Окремий VPS/Dedicated сервер: Ви можете налаштувати другий, дешевший VPS виключно для зберігання резервних копій та їх синхронізації за допомогою rsync або scp.
  • Локальне NAS/Мережеве сховище: Для домашнього використання або невеликих офісів можна використовувати власне мережеве сховище, доступне через VPN.

5. Оновлення Authentik та системи

Регулярні оновлення важливі для безпеки та отримання нових функцій.

  • Оновлення Authentik:

    Для оновлення Docker-контейнерів Authentik:

    
    cd ~/authentik
    docker compose pull # Завантаження нових образів
    docker compose down # Зупинка поточних контейнерів
    docker compose up -d # Запуск нових контейнерів
    

    Завжди перевіряйте офіційну документацію Authentik перед великими оновленнями (наприклад, при переході на нову мажорну версію), оскільки можуть знадобитися міграції бази даних або зміни у файлі docker-compose.yml.

  • Оновлення операційної системи та PostgreSQL:

    Регулярно оновлюйте ОС та всі встановлені пакети:

    
    sudo apt update && sudo apt upgrade -y
    sudo apt autoremove -y
    

    Для PostgreSQL оновлення зазвичай відбуваються разом із системними, але іноді мажорні версії вимагають ручної міграції даних. Завжди дотримуйтесь рекомендацій Ubuntu/PostgreSQL для таких випадків.

  • Планування обслуговування:

    Проводьте оновлення в заплановані вікна обслуговування, коли навантаження на сервер мінімальне, щоб мінімізувати можливий вплив на користувачів. Завжди робіть резервні копії перед великими оновленнями.

Вирішення проблем + FAQ

У цьому розділі ми розглянемо типові проблеми, які можуть виникнути під час встановлення та експлуатації Authentik, а також відповімо на поширені запитання.

Контейнери Authentik не запускаються.

Що перевірити: Перш за все, перевірте логи Docker Compose. Перейдіть до директорії Authentik (~/authentik) і виконайте docker compose logs. Це покаже вивід усіх контейнерів. Якщо проблема в конкретному контейнері (наприклад, authentik_server), можна переглянути його логи окремо: docker compose logs authentik_server.

Як виправити: Шукайте повідомлення про помилки в логах. Часті причини: неправильні параметри у файлі .env (особливо AUTHENTIK_SECRET_KEY або параметри БД), недоступність бази даних PostgreSQL (перевірте, чи запущено PostgreSQL: sudo systemctl status postgresql), конфлікти портів (якщо якийсь інший сервіс вже використовує порт 9000), або нестача ресурсів (RAM/CPU) на VPS.

Не можу підключитися до Authentik через браузер (502 Bad Gateway або Connection Refused).

Що перевірити:

  • DNS A-запис: Переконайтеся, що ваше доменне ім'я (наприклад, auth.example.com) правильно вказує на IP-адресу вашого VPS. Використовуйте dig your.domain.com або nslookup your.domain.com.
  • Статус Caddy/Nginx: Перевірте, чи запущено ваш зворотний проксі-сервер: sudo systemctl status caddy (або nginx).
  • Логи Caddy/Nginx: Вивчіть логи проксі-сервера. Для Caddy це sudo journalctl -u caddy --no-pager або файл, вказаний у Caddyfile (наприклад, /var/log/caddy/access.log). Для Nginx це зазвичай /var/log/nginx/error.log.
  • Фаєрвол: Переконайтеся, що порти 80 і 443 відкриті в UFW: sudo ufw status verbose.
  • Доступність Authentik зсередини: Спробуйте виконати curl http://localhost:9000 на самому VPS. Якщо це працює, проблема в проксі-сервері або його конфігурації.

Як виправити: Якщо проблема в DNS, оновіть A-запис у вашого реєстратора доменних імен. Якщо Caddy не запущено, спробуйте запустити його: sudo systemctl start caddy і перевірити Caddyfile на синтаксичні помилки. Переконайтеся, що в Caddyfile вказано правильну адресу для проксіювання (authentik:9000 або localhost:9000, залежно від мережевої конфігурації Docker).

Проблеми з TLS (сертифікати Let's Encrypt).

Що перевірити: Caddy автоматично отримує сертифікати. Основна причина проблем – неможливість Caddy зв'язатися з серверами Let's Encrypt. Переконайтеся, що:

  • Ваш домен доступний з інтернету за портами 80 і 443.
  • Немає інших сервісів, що займають ці порти.
  • DNS A-запис для домену налаштована правильно.

Як виправити: Перевірте логи Caddy на повідомлення про помилки під час отримання сертифікатів. Переконайтеся, що UFW дозволяє вхідний трафік на порти 80 і 443. Якщо ви щойно оновили DNS, дайте йому час на поширення (до кількох годин).

Який VPS-конфіг мінімально підійде?

Для невеликої команди (до 50 користувачів) та базових сценаріїв автентифікації, мінімально підійде VPS з 2 vCPU, 4 ГБ RAM та 80 ГБ NVMe SSD. Це забезпечить стабільну роботу Authentik та PostgreSQL, але без великого запасу на зростання або високе навантаження.

Що вибрати — VPS чи dedicated для цього завдання?

Для більшості сценаріїв, особливо для команд до кількох сотень користувачів, VPS буде оптимальним та економічно вигідним рішенням. Dedicated сервер варто розглядати при дуже високому навантаженні (тисячі активних користувачів, інтенсивні запити), суворих вимогах до продуктивності або необхідності повного контролю над апаратним забезпеченням. VPS пропонує достатню гнучкість та потужність для більшості потреб у централізованій автентифікації.

Як оновити Authentik?

Для оновлення Authentik необхідно оновити його Docker-образи. Перейдіть до директорії встановлення Authentik (~/authentik), потім виконайте: docker compose pull (для завантаження нових образів), docker compose down (для зупинки поточних контейнерів), і docker compose up -d (для запуску нових контейнерів). Завжди перевіряйте офіційну документацію Authentik перед великими оновленнями на предмет міграцій бази даних або змін у конфігурації, щоб уникнути проблем сумісності.

Як змінити пароль суперкористувача Authentik?

Якщо ви забули пароль суперкористувача, ви можете скинути його, виконавши команду всередині контейнера Authentik: docker compose exec authentik sh -c "python3 manage.py changepassword admin" (замініть admin на ім'я вашого суперкористувача). Система запропонує ввести новий пароль.

Висновки та наступні кроки

Схема: Висновки та наступні кроки
Схема: Висновки та наступні кроки

Ми успішно розгорнули та налаштували Authentik на вашому VPS, надавши потужне та гнучке рішення для централізованого керування ідентифікацією та доступом. Тепер у вас є власна платформа для єдиного входу (SSO) та багатофакторної автентифікації (MFA), здатна значно підвищити безпеку та зручність використання для ваших застосунків.

Подальші кроки допоможуть вам максимально використати потенціал Authentik та інтегрувати його у вашу інфраструктуру:

  • Інтеграція першого застосунку: Почніть з інтеграції одного з ваших веб-застосунків (наприклад, GitLab, Mattermost, Nextcloud, Grafana). Authentik підтримує безліч протоколів (OpenID Connect, SAML, LDAP) і має готові інтеграції.
  • Дослідження розширених функцій: Вивчіть такі можливості Authentik, як LDAP Outposts (для синхронізації з існуючими каталогами), створення складних політик MFA, налаштування різних джерел ідентифікації (наприклад, соціальних провайдерів) та керування користувачами/групами.
  • Впровадження моніторингу та сповіщень: Налаштуйте системи моніторингу (наприклад, Prometheus + Grafana) для відстеження стану Authentik, використання ресурсів VPS та активності автентифікації, щоб своєчасно реагувати на потенційні проблеми або інциденти безпеки.

Поділитися цим записом:

встановлення Authentik на VPS: SSO, MFA та централізована автентифікація
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.