Перейти к содержанию

Обзор развертывания 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.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×