Authentik на VPS — это развертывание современной open-source платформы для управления идентификацией и доступом (IAM) на собственном виртуальном сервере, обеспечивающее централизованную аутентификацию и авторизацию пользователей для множества приложений, а его установка, настройка и обслуживание через Docker Compose позволяет гибко контролировать всю инфраструктуру.
В современном цифровом ландшафте управление доступом к приложениям и сервисам становится одной из ключевых задач для компаний любого размера. От небольших стартапов до крупных предприятий, все сталкиваются с необходимостью обеспечить безопасный и удобный доступ для своих сотрудников и клиентов. Именно здесь на помощь приходит Authentik – мощная и гибкая платформа для управления идентификацией и доступом (Identity and Access Management, IAM), которая позволяет централизовать аутентификацию, авторизацию, управление пользователями и многое другое.
Развертывание Authentik на VPS (Virtual Private Server) открывает перед вами широкие возможности. Вы получаете полный контроль над своей IAM-инфраструктурой, обеспечиваете высокий уровень безопасности, гибкость в настройке и масштабировании, а также избегаете привязки к конкретным провайдерам облачных услуг. В этой статье мы подробно рассмотрим, что такое Authentik, для чего он нужен, какие системные требования предъявляет, а также проведем вас через полный процесс установки Authentik на сервере с использованием Docker и Docker Compose, настройки reverse proxy с HTTPS и обсудим вопросы обслуживания, включая бэкапы и обновления. Мы также дадим рекомендации по выбору оптимального VPS-конфига под реальную нагрузку, чтобы ваша платформа всегда работала стабильно и эффективно.
Что такое Authentik и зачем он нужен на VPS?
Authentik — это современная, с открытым исходным кодом, платформа для управления идентификацией и доступом (IAM), которая предоставляет широкий спектр функций для централизованного управления аутентификацией и авторизацией пользователей. По сути, это единая точка входа (Single Sign-On, SSO) и мощный механизм для реализации многофакторной аутентификации (MFA), управления пользователями и группами, а также интеграции с различными приложениями и протоколами.
Основная идея Authentik заключается в том, чтобы упростить и обезопасить процесс доступа к вашим сервисам. Вместо того чтобы пользователи запоминали десятки логинов и паролей для каждого приложения, они аутентифицируются один раз в Authentik, а затем получают бесшовный доступ ко всем интегрированным системам. Это не только повышает удобство для пользователей, но и значительно улучшает общую безопасность, позволяя применять строгие политики паролей, MFA и другие механизмы защиты централизованно.
Ключевые возможности Authentik
- Единый вход (Single Sign-On, SSO): Пользователи входят один раз и получают доступ ко всем подключенным приложениям без повторного ввода учетных данных.
- Многофакторная аутентификация (MFA): Поддержка TOTP, WebAuthn (FIDO2), SMS, Email, Duo, а также возможность создания собственных провайдеров MFA.
- Управление пользователями и группами: Централизованное создание, изменение и удаление учетных записей, а также управление членством в группах.
- Протоколы аутентификации: Поддержка OAuth2, OpenID Connect (OIDC), SAML, LDAP, RADIUS, SCIM, что обеспечивает широкую совместимость с существующими приложениями.
- Интеграция с каталогами: Синхронизация пользователей и групп с внешними каталогами, такими как Active Directory, LDAP, Azure AD.
- Политики доступа: Гибкие политики для контроля доступа на основе групп, IP-адресов, времени суток и других параметров.
- Аудит и логирование: Подробные логи всех событий аутентификации и авторизации для обеспечения соответствия требованиям безопасности.
- Self-service портал: Пользователи могут самостоятельно управлять своими учетными записями, сбрасывать пароли и настраивать MFA.
Преимущества Authentik self-hosted на VPS
Развертывание Authentik self-hosted на VPS предоставляет ряд значительных преимуществ по сравнению с использованием облачных IAM-сервисов или разрозненных систем аутентификации:
- Полный контроль и суверенитет данных: Ваши данные и логи аутентификации остаются полностью под вашим контролем. Вы не зависите от политик и инфраструктуры сторонних провайдеров. Это особенно важно для компаний с строгими требованиями к конфиденциальности и регуляторным соответствием.
- Гибкость и кастомизация: Вы можете настроить Authentik в точном соответствии с вашими уникальными потребностями, интегрировать его с любой вашей инфраструктурой и адаптировать пользовательский интерфейс.
- Экономия затрат в долгосрочной перспективе: Хотя начальная установка Authentik на VPS требует усилий, в долгосрочной перспективе это может быть значительно дешевле, чем ежемесячная плата за коммерческие IAM-решения, особенно при росте числа пользователей.
- Производительность: Вы контролируете ресурсы вашего VPS, что позволяет оптимизировать производительность Authentik под ваши конкретные нагрузки, избегая "соседского эффекта" на общих хостингах.
- Безопасность: Вы самостоятельно управляете безопасностью сервера, устанавливаете свои правила фаервола, проводите аудиты и обновления, что позволяет создать максимально защищенную среду.
- Отсутствие привязки к вендору: Будучи open-source решением, Authentik не привязывает вас к конкретному поставщику, давая свободу выбора и миграции.
Выбор VPS для развертывания Authentik особенно актуален для тех, кто ценит независимость, контроль и эффективность. Self-managed VPS от Valebyte.com идеально подходит для таких задач, предоставляя мощные ресурсы и полный доступ для установки и настройки любых приложений, включая Authentik.
Системные требования для Authentik: какой VPS выбрать?
Прежде чем приступить к установке Authentik, важно убедиться, что ваш VPS соответствует минимальным и рекомендуемым системным требованиям. Authentik, как и многие современные приложения, активно использует базу данных (PostgreSQL) и кэширование (Redis), поэтому производительность дисковой подсистемы и объем оперативной памяти играют ключевую роль. Поскольку мы будем использовать Authentik Docker, это также накладывает определенные требования к ресурсам.
Минимальные требования для небольших развертываний (до 50 активных пользователей / 5-10 приложений)
- Операционная система: Ubuntu 20.04+, Debian 11+, CentOS 7+/Rocky Linux 8+. Рекомендуется Ubuntu Server LTS за простоту использования и широкую поддержку.
- Процессор (CPU): 2 vCPU. Для небольших нагрузок этого будет достаточно, но чем выше частота ядра, тем лучше.
- Оперативная память (RAM): 4 GB. Authentik сам по себе потребляет около 1-2 GB, плюс PostgreSQL и Redis также требуют памяти. Docker-контейнеры также используют ресурсы.
- Дисковое пространство: 50 GB NVMe SSD. Крайне рекомендуется NVMe из-за высокой скорости операций ввода-вывода, что критично для базы данных. HDD или SATA SSD могут значительно замедлить работу.
- Сетевой интерфейс: 100 Мбит/с или 1 Гбит/с.
- Публичный IP-адрес: Необходим для доступа к Authentik извне и работы HTTPS.
Рекомендуемые требования для средних развертываний (до 500 активных пользователей / 20-50 приложений)
- Процессор (CPU): 4 vCPU.
- Оперативная память (RAM): 8 GB.
- Дисковое пространство: 100 GB NVMe SSD.
- Сетевой интерфейс: 1 Гбит/с.
Рекомендуемые требования для крупных развертываний (более 500 активных пользователей / 50+ приложений)
Для крупных развертываний Authentik, особенно если вы ожидаете высокую одновременную нагрузку, потребуется более мощный VPS или даже выделенный сервер. В этом случае имеет смысл рассмотреть масштабирование базы данных и Redis на отдельные инстансы или использование кластеров.
- Процессор (CPU): 8+ vCPU.
- Оперативная память (RAM): 16+ GB.
- Дисковое пространство: 200+ GB NVMe SSD (с возможностью расширения).
- Сетевой интерфейс: 1 Гбит/с с гарантированной пропускной способностью.
Важное замечание по дискам: NVMe SSD не просто рекомендация, а почти требование для стабильной и быстрой работы Authentik, особенно при большом количестве операций с базой данных (логи, сессии, синхронизация). Разница в производительности между NVMe и обычными SSD или HDD может быть колоссальной.
При выборе VPS от Valebyte.com, обратите внимание на тарифы с NVMe SSD и достаточным объемом RAM. Если вы не уверены, какой тариф выбрать, лучше начать с немного более мощного и при необходимости масштабироваться вниз, чем столкнуться с проблемами производительности из-за недостатка ресурсов.
Ищете надёжный сервер для ваших проектов?
VPS от $10/мес и выделенные серверы от $9/мес с NVMe, DDoS-защитой и поддержкой 24/7.
Смотреть предложения →Пошаговая установка Authentik на VPS с Docker Compose
Установка Authentik на VPS будет производиться с использованием Docker и Docker Compose. Это позволяет легко развернуть все необходимые компоненты (Authentik, PostgreSQL, Redis) в изолированных контейнерах, обеспечивая простоту управления, обновления и масштабирования. Этот метод идеально подходит для Authentik self-hosted решений.
Подготовка VPS к установке Authentik
Прежде чем приступать к развертыванию, необходимо подготовить ваш VPS. Мы предполагаем, что вы используете операционную систему Ubuntu Server 22.04 LTS.
- Обновление системы:
Подключитесь к вашему VPS по SSH и обновите все системные пакеты:
sudo apt update && sudo apt upgrade -y - Установка Docker:
Установите Docker Engine. Рекомендуется использовать официальный скрипт для стабильной установки:
sudo apt install ca-certificates curl gnupg lsb-release -y sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg 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 sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -yДобавьте текущего пользователя в группу
docker, чтобы не использоватьsudoпри работе с Docker:sudo usermod -aG docker $USER newgrp dockerПроверьте установку Docker:
docker run hello-world - Установка Docker Compose (если не установлен как плагин):
Если вы установили
docker-compose-plugin, тоdocker composeуже доступен. Если нет, или вы предпочитаете старую версиюdocker-compose:sudo apt install docker-compose -yВ данной статье мы будем использовать новый синтаксис
docker compose(без дефиса). - Настройка доменного имени и DNS:
Убедитесь, что у вас есть зарегистрированное доменное имя (например,
auth.yourdomain.com), и A-запись для этого домена указывает на публичный IP-адрес вашего VPS. Это критически важно для работы HTTPS и Let's Encrypt. - Открытие портов фаервола:
Настройте фаервол (например, UFW) для разрешения входящих соединений на порты 80 (HTTP) и 443 (HTTPS), а также 22 (SSH).
sudo ufw allow ssh sudo ufw allow http sudo ufw allow https sudo ufw enableПодтвердите включение фаервола, нажав
y.
Развертывание Authentik с Docker Compose
Теперь, когда VPS готов, можно приступить к развертыванию Authentik. Мы создадим файл docker-compose.yml, который определит все необходимые сервисы.
- Создание каталога для Authentik:
Создайте отдельный каталог для всех файлов Authentik:
mkdir authentik && cd authentik - Создание файла
.env:Authentik использует переменные окружения для настройки. Создайте файл
.envв каталогеauthentik:nano .envИ добавьте следующее содержимое, заменив
your.domain.comна ваш домен и сгенерировав надежные пароли/секреты:AUTHENTIK_SECRET_KEY=your_very_long_and_random_secret_key_for_authentik AUTHENTIK_HOST=https://auth.yourdomain.com PG_PASS=your_strong_postgres_password PG_HOST=authentik-database PG_NAME=authentik PG_USER=authentik REDIS_HOST=authentik-redis REDIS_PORT=6379Важно:
AUTHENTIK_SECRET_KEYдолжен быть очень длинным и случайным (минимум 50 символов). Вы можете сгенерировать его, например, командойopenssl rand -base64 48. - Создание файла
docker-compose.yml:Создайте файл
docker-compose.ymlв том же каталоге:nano docker-compose.ymlИ добавьте следующее содержимое:
version: '3.9' services: authentik-database: image: postgres:15-alpine restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -d $$PG_NAME -U $$PG_USER"] start_period: 20s interval: 30s retries: 5 timeout: 5s volumes: - database-data:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: ${PG_PASS} POSTGRES_USER: ${PG_USER} POSTGRES_DB: ${PG_NAME} authentik-redis: image: redis:7-alpine restart: unless-stopped healthcheck: test: ["CMD-SHELL", "redis-cli ping"] start_period: 20s interval: 30s retries: 5 timeout: 5s volumes: - redis-data:/data authentik-server: image: ghcr.io/goauthentik/authentik:2023.10.3 # Используйте актуальную версию restart: unless-stopped command: server environment: AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY} AUTHENTIK_HOST: ${AUTHENTIK_HOST} AUTHENTIK_DATABASE__HOST: ${PG_HOST} AUTHENTIK_DATABASE__NAME: ${PG_NAME} AUTHENTIK_DATABASE__USER: ${PG_USER} AUTHENTIK_DATABASE__PASSWORD: ${PG_PASS} AUTHENTIK_REDIS__HOST: ${REDIS_HOST} volumes: - media:/media - custom-templates:/templates ports: - "9000:9000" # HTTP - "9443:9443" # HTTPS (для встроенного прокси, мы будем использовать Nginx/Caddy) authentik-worker: image: ghcr.io/goauthentik/authentik:2023.10.3 # Используйте актуальную версию restart: unless-stopped command: worker environment: AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY} AUTHENTIK_HOST: ${AUTHENTIK_HOST} AUTHENTIK_DATABASE__HOST: ${PG_HOST} AUTHENTIK_DATABASE__NAME: ${PG_NAME} AUTHENTIK_DATABASE__USER: ${PG_USER} AUTHENTIK_DATABASE__PASSWORD: ${PG_PASS} AUTHENTIK_REDIS__HOST: ${REDIS_HOST} volumes: - media:/media - custom-templates:/templates # Нет необходимости открывать порты для worker, он общается через внутреннюю сеть Docker volumes: database-data: redis-data: media: custom-templates:Примечание: Замените
2023.10.3на самую актуальную стабильную версию Authentik. Проверить актуальную версию можно на GitHub-странице Authentik. - Запуск Authentik:
Сохраните
docker-compose.ymlи запустите все сервисы:docker compose up -dОпция
-dзапускает контейнеры в фоновом режиме. Дождитесь, пока все контейнеры запустятся. Вы можете проверить их статус:docker compose psУбедитесь, что все сервисы имеют статус
runningи ихhealthтакже в порядке. - Инициализация Authentik и создание суперпользователя:
После первого запуска Authentik необходимо инициализировать базу данных и создать первого администратора. Authentik сам выполнит миграции при первом запуске, но вам нужно создать суперпользователя. Это делается через worker-контейнер:
docker compose exec authentik-worker authentik shell > from authentik.core.models import User > User.objects.create_superuser('akadmin', '[email protected]', 'your_super_strong_password') > exit()Замените
akadmin,[email protected]иyour_super_strong_passwordна желаемые учетные данные. Используйте очень надежный пароль!
На этом этапе Authentik запущен и доступен на вашем VPS по портам 9000 (HTTP) и 9443 (HTTPS) внутри Docker-сети. Однако, чтобы получить к нему доступ извне через доменное имя с HTTPS, нам потребуется настроить reverse proxy.
Ищете сервер, который просто работает?
Valebyte VPS — NVMe, поддержка 24/7, развёртывание за 60 секунд.
Настройка Reverse Proxy и HTTPS для Authentik
Прямой доступ к Authentik по IP-адресу и нестандартным портам нежелателен с точки зрения безопасности и удобства. Для этого мы используем reverse proxy (обратный прокси-сервер), который будет принимать все входящие запросы на стандартные порты (80 и 443), перенаправлять их на Authentik и обеспечивать HTTPS-шифрование с помощью Let's Encrypt. Мы рассмотрим два популярных варианта: Nginx и Caddy.
Настройка Nginx как Reverse Proxy
Nginx — это высокопроизводительный веб-сервер и обратный прокси, широко используемый для таких задач.
- Установка Nginx:
sudo apt install nginx -y - Создание конфигурационного файла Nginx для Authentik:
Создайте новый файл конфигурации для вашего домена:
sudo nano /etc/nginx/sites-available/authentik.confИ добавьте следующее содержимое, заменив
auth.yourdomain.comна ваш домен:server { listen 80; listen [::]:80; server_name auth.yourdomain.com; location / { return 301 https://$host$request_uri; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name auth.yourdomain.com; ssl_certificate /etc/letsencrypt/live/auth.yourdomain.com/fullchain.pem; # Будет создан Certbot ssl_certificate_key /etc/letsencrypt/live/auth.yourdomain.com/privkey.pem; # Будет создан Certbot ssl_trusted_certificate /etc/letsencrypt/live/auth.yourdomain.com/chain.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; location / { proxy_pass http://127.0.0.1:9000; # Authentik HTTP порт 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; } # Для WebSocket connections (Live updates, etc.) location /ws { proxy_pass http://127.0.0.1:9000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 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; } } - Активация конфигурации:
sudo ln -s /etc/nginx/sites-available/authentik.conf /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx - Установка Certbot для Let's Encrypt:
Certbot автоматизирует получение и обновление SSL-сертификатов Let's Encrypt.
sudo apt install certbot python3-certbot-nginx -y - Получение SSL-сертификата:
Запустите Certbot, указав ваш домен:
sudo certbot --nginx -d auth.yourdomain.comСледуйте инструкциям на экране. Certbot автоматически настроит Nginx для использования HTTPS и добавит необходимые директивы. Возможно, потребуется выбрать "Redirect" для автоматического перенаправления HTTP на HTTPS.
- Проверка:
Откройте ваш домен (например,
https://auth.yourdomain.com) в браузере. Вы должны увидеть страницу входа Authentik. Войдите с созданным ранее суперпользователем.
Настройка Caddy как Reverse Proxy
Caddy — это современный веб-сервер, который упрощает настройку HTTPS благодаря встроенной автоматизации Let's Encrypt.
- Установка 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 - Создание файла Caddyfile для Authentik:
Caddy использует файл
Caddyfileдля конфигурации. Создайте или отредактируйте файл:sudo nano /etc/caddy/CaddyfileИ добавьте следующее содержимое, заменив
auth.yourdomain.comна ваш домен:auth.yourdomain.com { reverse_proxy 127.0.0.1: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} header_up Upgrade {http.request.header.Upgrade} header_up Connection {http.request.header.Connection} } }Caddy автоматически получит и обновит SSL-сертификаты для
auth.yourdomain.com. Он также автоматически перенаправит HTTP на HTTPS. - Проверка и запуск Caddy:
sudo caddy validate sudo systemctl restart caddy - Проверка:
Откройте ваш домен (например,
https://auth.yourdomain.com) в браузере. Вы должны увидеть страницу входа Authentik.
Оба варианта (Nginx и Caddy) отлично справляются с ролью reverse proxy. Caddy часто выбирают за его простоту и автоматическую настройку HTTPS, в то время как Nginx предлагает более тонкую настройку и широкие возможности, что может быть важно для более сложных инфраструктур.
Базовое обслуживание Authentik: бэкапы и обновления
Поддержка работоспособности и безопасности Authentik на сервере требует регулярного обслуживания, включающего резервное копирование данных и своевременное обновление программного обеспечения. Это критически важные аспекты для любого self-hosted приложения.
Стратегии резервного копирования Authentik
Ваши данные Authentik включают в себя базу данных PostgreSQL (пользователи, приложения, политики, логи) и медиа-файлы/шаблоны. Резервное копирование должно охватывать обе эти части.
- Резервное копирование базы данных PostgreSQL:
Наиболее важная часть — это база данных. Используйте утилиту
pg_dumpдля создания дампа базы данных. Рекомендуется выполнять это регулярно, например, ежедневно.# Перейдите в каталог Authentik cd /path/to/your/authentik # Остановите Authentik для согласованного бэкапа (опционально, но рекомендуется для больших систем) # docker compose stop authentik-server authentik-worker # Выполните бэкап базы данных docker compose exec authentik-database pg_dump -U $PG_USER -d $PG_NAME > authentik_db_backup_$(date +%Y%m%d%H%M%S).sql # Если вы останавливали сервисы, запустите их снова # docker compose start authentik-server authentik-workerЗамените
$PG_USERи$PG_NAMEна значения из вашего файла.env. Для упрощения можно создать скрипт, который будет читать эти переменные. Файл бэкапа.sqlбудет создан в текущем каталоге (каталоге Authentik). - Резервное копирование томов Docker (Volumes):
Помимо базы данных, Authentik хранит медиа-файлы и кастомные шаблоны в томах Docker:
media: для пользовательских изображений, логотипов и других медиа-файлов.custom-templates: для любых модифицированных шаблонов Authentik.database-data: данные PostgreSQL.redis-data: данные Redis.
Вы можете создать tar-архивы этих томов. Пример для тома
media:docker run --rm --volumes-from authentik-server -v $(pwd):/backup ubuntu tar cvf /backup/authentik_media_backup_$(date +%Y%m%d%H%M%S).tar /mediaЭтот подход требует, чтобы контейнер
authentik-serverбыл запущен, так как он "владеет" томомmedia. Повторите дляcustom-templates.Более надежный подход: используйте инструменты для бэкапа Docker-томов или просто бэкапируйте весь каталог
/var/lib/docker/volumes/(после остановки Docker) или используйте специализированные инструменты для бэкапа файловой системы, которые могут работать с живыми томами. - Автоматизация и хранение бэкапов:
- Cron: Настройте задачи cron для ежедневного выполнения скриптов бэкапа.
- Удаленное хранилище: Никогда не храните бэкапы на том же VPS, что и рабочая система. Используйте удаленные хранилища (S3-совместимые хранилища, SCP на другой сервер, Google Drive, Dropbox) для обеспечения отказоустойчивости.
- Ротация бэкапов: Реализуйте политику ротации (например, хранить 7 ежедневных, 4 еженедельных, 3 ежемесячных бэкапа).
Обновление Authentik
Обновление Authentik в Docker Compose — относительно простой процесс, который сводится к получению новых образов и перезапуску контейнеров. Всегда проверяйте официальную документацию Authentik перед обновлением, так как могут быть специфические инструкции для мажорных версий.
- Проверка актуальной версии:
Посетите GitHub-репозиторий Authentik или их официальный сайт, чтобы узнать последнюю стабильную версию.
- Обновление файла
docker-compose.yml:Отредактируйте
docker-compose.ymlи измените тег образа дляauthentik-serverиauthentik-workerна новую версию (например, с2023.10.3на2023.12.0):# ... authentik-server: image: ghcr.io/goauthentik/authentik:2023.12.0 # Обновленная версия # ... authentik-worker: image: ghcr.io/goauthentik/authentik:2023.12.0 # Обновленная версия # ... - Выполнение обновления:
Перейдите в каталог Authentik и выполните команды:
# Создайте бэкап перед обновлением (ОБЯЗАТЕЛЬНО!) cd /path/to/your/authentik # ... выполните команды бэкапа, как описано выше ... # Остановите и удалите старые контейнеры docker compose down # Получите новые образы и запустите контейнеры docker compose pull docker compose up -ddocker compose pullзагрузит новые версии образов.docker compose up -dпересоздаст контейнеры с новыми образами, сохраняя при этом данные в томах. Authentik автоматически выполнит необходимые миграции базы данных при запуске. - Проверка после обновления:
После запуска убедитесь, что все контейнеры работают, и Authentik доступен через ваш домен. Проверьте логи на наличие ошибок.
Регулярные бэкапы и своевременные обновления — залог стабильной, безопасной и актуальной работы вашей Authentik установки на VPS. Не пренебрегайте этими процедурами.
Оптимальный VPS-конфиг для Authentik под реальную нагрузку
Выбор правильного VPS-конфига для Authentik критически важен для обеспечения стабильной производительности и отзывчивости вашей IAM-платформы. "Реальная нагрузка" может сильно варьироваться в зависимости от количества пользователей, частоты аутентификаций, количества интегрированных приложений и использования таких функций, как синхронизация с внешними каталогами или сложными политиками. Здесь мы рассмотрим типовые сценарии и предложим соответствующие конфигурации.
Факторы, влияющие на требования к VPS
- Количество активных пользователей: Сколько пользователей будет регулярно аутентифицироваться?
- Количество интегрированных приложений: Чем больше приложений использует Authentik для SSO, тем выше нагрузка.
- Частота аутентификаций: Пиковые нагрузки (например, утро понедельника) или постоянный поток запросов.
- Использование MFA: Некоторые методы MFA могут требовать больше ресурсов или внешних сервисов.
- Синхронизация каталогов: Частая синхронизация с большими LDAP/AD каталогами может быть ресурсоемкой.
- Логирование и аудит: Большие объемы логов требуют больше дискового пространства и IOPS.
- Использование API: Если Authentik активно используется через API, это также увеличивает нагрузку.
Таблица рекомендаций по VPS-конфигурациям для Authentik
Представленные ниже конфигурации являются общими рекомендациями. Для критически важных систем или очень больших развертываний может потребоваться более детальный анализ и тестирование.
| Сценарий нагрузки | Активные пользователи / Приложения | vCPU | RAM (GB) | Диск (NVMe SSD) | Сетевой интерфейс | Примерная стоимость (USD/мес) |
|---|---|---|---|---|---|---|
| Начальный / Тестовый | 10-50 / 5-10 | 2 | 4 | 50 GB | 1 Гбит/с | $10 - $20 |
| Малый бизнес / Отдел | 50-200 / 10-25 | 4 | 8 | 100 GB | 1 Гбит/с | $20 - $40 |
| Средний бизнес / Организация | 200-500 / 25-50 | 6 | 16 | 200 GB | 1 Гбит/с | $40 - $80 |
| Крупный бизнес / Предприятие | 500+ / 50+ | 8+ | 32+ | 400+ GB | 1 Гбит/с (гарантированный) | $80 - $150+ |
Пояснения к таблице:
- vCPU: Authentik хорошо масштабируется по ядрам. Больше ядер означает лучшую параллельную обработку запросов.
- RAM: Authentik, PostgreSQL и Redis являются основными потребителями памяти. Недостаток RAM приведет к активному использованию свопа и резкому падению производительности. 8 GB RAM — это разумный минимум для продакшн-среды.
- Диск (NVMe SSD): Это один из самых критичных параметров. PostgreSQL активно записывает на диск, и медленный диск станет узким местом. NVMe SSD обеспечивает значительно более высокую скорость IOPS по сравнению с SATA SSD или, тем более, HDD. Для сценариев с высокой нагрузкой или большим количеством логов, NVMe — обязателен.
- Сетевой интерфейс: 1 Гбит/с — стандарт для современных VPS. Для очень больших развертываний убедитесь, что провайдер гарантирует высокую пропускную способность, а не "до 1 Гбит/с".
- Примерная стоимость: Цены могут сильно варьироваться в зависимости от провайдера, локации и дополнительных услуг. Valebyte.com предлагает конкурентные тарифы с NVMe SSD, которые идеально подходят для Authentik.
Дополнительные рекомендации:
- Мониторинг: После развертывания настройте систему мониторинга (например, Netdata, Prometheus с Grafana) для отслеживания загрузки CPU, RAM, дисковых IOPS и сетевого трафика. Это поможет вам понять реальные потребности вашей системы и своевременно масштабировать VPS.
- Масштабирование: Если вы ожидаете значительный рост, рассмотрите возможность использования более крупных VPS или даже выделенных серверов. В некоторых случаях, для очень больших развертываний, может быть целесообразно вынести базу данных и Redis на отдельные, оптимизированные для них инстансы.
- Резервное копирование: Убедитесь, что ваш план бэкапов соответствует вашим требованиям к восстановлению (RTO/RPO).
- Безопасность: Регулярно обновляйте ОС, Docker и Authentik, используйте сложные пароли и настройте фаервол.
Выбор оптимального VPS-конфига для Authentik — это инвестиция в стабильность и безопасность вашей инфраструктуры. Начните с разумного минимума, основываясь на ваших текущих потребностях, и будьте готовы к масштабированию по мере роста нагрузки. Valebyte.com предлагает гибкие тарифы VPS, которые могут быть адаптированы под любые требования Authentik, от тестовых сред до высоконагруженных продакшн-систем.
Ищете сервер, который просто работает?
Valebyte VPS — NVMe, поддержка 24/7, развёртывание за 60 секунд.
Часто задаваемые вопросы об Authentik на сервере
При развертывании и эксплуатации Authentik на сервере, особенно при использовании подхода Authentik Docker, возникает ряд типовых вопросов. Ниже мы собрали ответы на самые распространенные из них, чтобы помочь вам в процессе установки, настройки и обслуживания.
1. Можно ли использовать Authentik без Docker?
Теоретически, да, Authentik можно установить и без Docker, вручную настраивая все зависимости (Python, PostgreSQL, Redis и т.д.). Однако такой подход значительно сложнее, требует больше времени на настройку и поддержку, а также усложняет процесс обновления. Разработчики Authentik активно рекомендуют и поддерживают только развертывание через Docker/Docker Compose из-за его простоты, переносимости и изоляции компонентов.
2. Как изменить пароль суперпользователя Authentik, если я его забыл?
Вы можете сбросить пароль суперпользователя, используя команду authentik shell внутри контейнера authentik-worker:
cd /path/to/your/authentik
docker compose exec authentik-worker authentik shell
> from authentik.core.models import User
> user = User.objects.get(username='akadmin') # Замените akadmin на ваше имя пользователя
> user.set_password('your_new_super_strong_password')
> user.save()
> exit()
Обязательно используйте надежный пароль.
3. Какие порты Authentik использует по умолчанию?
Внутри Docker-контейнера Authentik по умолчанию использует порт 9000 для HTTP и 9443 для HTTPS (встроенный прокси). Однако, как мы рассмотрели, для внешнего доступа рекомендуется использовать reverse proxy (Nginx или Caddy), который будет слушать стандартные порты 80 и 443 и перенаправлять запросы на внутренний порт 9000 Authentik.
4. Как настроить Authentik для работы с несколькими доменными именами?
Если вам нужно, чтобы Authentik был доступен по нескольким доменным именам, вы можете настроить ваш reverse proxy (Nginx или Caddy) для обработки этих доменов. Для Nginx это будет означать добавление дополнительных блоков server_name и, возможно, отдельных SSL-сертификатов. В самом Authentik, переменная AUTHENTIK_HOST в файле .env должна содержать основное доменное имя, но Authentik обычно корректно работает с запросами, приходящими через reverse proxy, независимо от Host заголовка, если он правильно проксируется.
5. Что делать, если Authentik не запускается после обновления?
Если после обновления Authentik не запускается, выполните следующие шаги:
- Проверьте логи контейнеров:
cd /path/to/your/authentik docker compose logs authentik-server authentik-workerИщите ошибки, особенно связанные с базой данных или конфигурацией.
- Проверьте статус контейнеров:
docker compose psУбедитесь, что все контейнеры имеют статус
runningиhealth. - Проверьте файл
.envиdocker-compose.yml: Убедитесь, что все переменные окружения и конфигурации корректны и не были случайно изменены. - Восстановитесь из бэкапа: Если ничего не помогает, это та причина, по которой вы всегда делаете бэкапы перед обновлением. Восстановите базу данных и тома из последнего рабочего бэкапа.
6. Как увеличить производительность Authentik?
Для повышения производительности Authentik:
- Масштабируйте VPS: Увеличьте количество vCPU, RAM и, самое главное, обеспечьте быстрый NVMe SSD.
- Оптимизируйте PostgreSQL: Если у вас очень высокая нагрузка, рассмотрите тонкую настройку PostgreSQL или вынесение его на отдельный, более мощный инстанс.
- Настройте Redis: Убедитесь, что Redis работает эффективно и имеет достаточно памяти.
- Оптимизируйте Reverse Proxy: Убедитесь, что Nginx или Caddy настроены оптимально для обработки большого количества соединений.
- Распределите нагрузку: Для очень больших развертываний можно рассмотреть использование нескольких экземпляров Authentik за балансировщиком нагрузки.
7. Могу ли я использовать Authentik для аутентификации в Windows AD или LDAP?
Да, Authentik имеет встроенную поддержку интеграции с LDAP и Active Directory. Вы можете настроить провайдеры источников пользователей (User Sources) для синхронизации пользователей и групп из вашего AD/LDAP, что позволяет использовать Authentik как единую точку аутентификации для вашей существующей инфраструктуры.
8. Где хранятся данные Authentik?
Основные данные Authentik хранятся в следующих местах:
- База данных PostgreSQL: Содержит всю информацию о пользователях, приложениях, политиках, сессиях и логах. Хранится в томе
database-data. - Redis: Используется для кэширования и сессий. Хранится в томе
redis-data. - Медиа-файлы: Пользовательские аватары, логотипы приложений и другие медиа-данные хранятся в томе
media. - Кастомные шаблоны: Если вы изменяли шаблоны UI Authentik, они хранятся в томе
custom-templates.
Все эти тома создаются Docker Compose и находятся в каталоге /var/lib/docker/volumes/ на вашем VPS.
Надеемся, эти ответы помогут вам увереннее работать с Authentik на вашем сервере.
Выводы
Развертывание Authentik на VPS — это мощное и гибкое решение для централизованного управления идентификацией и доступом, обеспечивающее полный контроль над вашей инфраструктурой безопасности. Следуя пошаговым инструкциям по установке Authentik через Docker Compose, настройке reverse proxy с HTTPS и регулярному обслуживанию, вы получите надежную и масштабируемую платформу.
Для обеспечения оптимальной производительности и безопасности вашего Authentik-инстанса, крайне важно выбрать VPS с достаточными ресурсами, особенно с NVMe SSD. Valebyte.com предлагает высокопроизводительные VPS с NVMe-дисками, которые идеально подходят для размещения Authentik и других критически важных приложений, обеспечивая стабильность и скорость работы вашей IAM-системы.
Готовы выбрать сервер?
VPS и выделенные серверы в 72+ странах с мгновенной активацией и полным root-доступом.
Начать сейчас →