Обзор развертывания Akaunting на сервере¶
Предварительные требования и базовые условия¶
Для успешного развертывания Akaunting на сервере должны быть выполнены следующие требования:
-
Операционная система: Дистрибутив Linux, совместимый с Ansible и Docker.
-
Привилегии: Для настройки межсетевого экрана, установки служб и управления системными файлами требуется доступ root или sudo.
-
Настройка домена: Должно быть настроено действительное доменное имя, указывающее на IP-адрес сервера.
-
Порты: Следующие TCP-порты должны быть открыты и доступны:
-
Порт 22 для доступа по SSH.
-
Порт 80 для HTTP-трафика и валидации SSL-сертификатов.
-
Порт 443 для HTTPS-трафика.
-
Зависимости программного обеспечения: Для запуска контейнеров приложения должны быть установлены Docker и Docker Compose.
FQDN конечной панели¶
Приложение доступно по следующему формату полностью квалифицированного доменного имени (FQDN):
-
akaunting<Server ID>.hostkey.in -
Порт доступа по умолчанию — 443 (HTTPS).
Структура файлов и каталогов¶
Развертывание использует следующую структуру каталогов для конфигурации, данных и сертификатов:
-
Путь установки приложения:
/opt/akaunting -
Конфигурация Nginx:
/etc/nginx/sites-available/akaunting -
SSL-сертификаты:
/etc/letsencrypt/live/akaunting<Server ID>.hostkey.in/ -
Каталог для проверки Certbot:
/var/www/certbot
Процесс установки приложения¶
Приложение развертывается с использованием Docker-контейнеров на основе официального репозитория Akaunting.
-
Источник репозитория:
https://github.com/akaunting/docker.git -
Расположение установки: Файлы приложения и конфигурация Docker находятся в
/opt/akaunting. -
Версия PHP: Среда настроена на использование версии PHP 8.3.
Права доступа и безопасность¶
Безопасность обеспечивается с помощью межсетевого экрана Uncomplicated Firewall (UFW) и привилегий пользователей.
-
Правила межсетевого экрана: UFW включен и настроен на пропуск трафика только через определенные порты:
-
Порт 22 (SSH)
-
Порт 80 (HTTP)
-
Порт 443 (HTTPS)
-
Все остальные входящие соединения по умолчанию блокируются.
Базы данных¶
Приложение использует базу данных MySQL со следующей конфигурацией:
-
Имя базы данных:
akaunting_db -
Пользователь базы данных:
akaunting_user -
Пароль базы данных: Настраивается через переменную пароля SSH системы.
-
Метод подключения: Приложение подключается к службе базы данных, работающей внутри Docker-сети.
Docker-контейнеры и их развертывание¶
Приложение работает внутри Docker-контейнеров, управляемых через скрипт установки в /opt/akaunting.
-
Контейнер открывает приложение на внутреннем порту 8080.
-
Развертывание использует официальный Docker-образ Akaunting из репозитория GitHub.
Прокси-серверы¶
Nginx выступает в роли обратного прокси-сервера и терминатора SSL для приложения.
-
Файл конфигурации:
/etc/nginx/sites-available/akaunting -
Обработка HTTP:
-
Слушает порт 80.
-
Обрабатывает проверки ACME для Let's Encrypt по пути
/.well-known/acme-challenge/. -
Перенаправляет весь HTTP-трафик на HTTPS (перенаправление 301).
-
Обработка HTTPS:
-
Слушает порт 443 с включенным SSL.
-
Использует протоколы TLSv1.2 и TLSv1.3.
-
Проксирует запросы к контейнеру Akaunting по адресу
http://127.0.0.1:8080. -
SSL-сертификаты: Управляются через Let's Encrypt и хранятся в
/etc/letsencrypt/live/. -
Заголовки прокси: Nginx передает следующие заголовки на бэкенд:
-
Host -
X-Real-IP -
X-Forwarded-For -
X-Forwarded-Proto -
X-Forwarded-Host
Доступные порты для подключения¶
Следующие порты доступны для внешних и внутренних подключений:
-
Порт 22: Доступ по SSH для администрирования сервера.
-
Порт 80: HTTP (перенаправляет на HTTPS).
-
Порт 443: HTTPS (безопасный доступ к веб-интерфейсу Akaunting).
-
Порт 8080: Внутренний порт, используемый Docker-контейнером Akaunting (не открыт для внешнего доступа).
Запуск, остановка и обновление¶
Управление службами осуществляется через команды Docker, нацеленные на контейнеры, определенные в /opt/akaunting.
-
Запуск: Используйте
docker compose up -dв каталоге/opt/akaunting. -
Остановка: Используйте
docker compose downв каталоге/opt/akaunting. -
Обновление: Загрузите последние образы с помощью
docker compose pullи перезапустите службы с помощьюdocker compose up -d. -
Перезагрузка Nginx: После внесения изменений в конфигурацию перезагрузите Nginx с помощью
nginx -s reload.