Современный подход к управлению личными финансами
В эпоху, когда Docker стал стандартом для контейнеризации, Red Hat и сообщество Alma Linux предлагают современную альтернативу — Podman. В отличие от Docker, Podman не требует запущенного демона, работает с rootless контейнерами «из коробки» и имеет встроенную интеграцию с systemd. Alma Linux 9 — один из первых дистрибутивов, где Podman полностью интегрирован в систему, что делает его идеальным выбором для развертывания веб-сервисов без лишних телодвижений.
Что такое Firefly III?
Firefly III — это мощный и красивый менеджер личных финансов с открытым исходным кодом. Он позволяет:
- Вести учет доходов и расходов
- Создавать бюджеты и категории
- Анализировать финансовые потоки через графики и отчеты
- Импортировать операции из банковских файлов
- Сохранять финансовую приватность (ваши данные остаются только у вас)
Подготовка системы
Подключитесь к вашему VPS с Alma Linux 9 и обновите систему:
sudo dnf update -y
Установите Podman (если не установлен по умолчанию):
sudo dnf install podman -y
Проверьте версию Podman:
podman --version
Создание сети для контейнеров
Создадим изолированную сеть для контейнеров:
podman network create firefly-network
Установка базы данных PostgreSQL
Запускаем контейнер с PostgreSQL. При первом запуске Podman предложит выбрать источник образа — выберите docker.io/library/postgres:15
:
podman run -d \
--name firefly-db \
--network firefly-network \
-e POSTGRES_USER=firefly \
-e POSTGRES_PASSWORD=your_secure_password_here \
-e POSTGRES_DB=firefly \
-v firefly-db-data:/var/lib/postgresql/data \
postgres:15
your_secure_password_here
на надежный пароль.
Установка Firefly III
Запускаем основной контейнер Firefly III. При первом запуске выберите docker.io/fireflyiii/core:latest
:
podman run -d \
--name firefly-app \
--network firefly-network \
-p 8080:8080 \
-e DB_CONNECTION=pgsql \
-e DB_HOST=firefly-db \
-e DB_PORT=5432 \
-e DB_DATABASE=firefly \
-e DB_USERNAME=firefly \
-e DB_PASSWORD=your_secure_password_here \
-e APP_KEY=SomeRandomStringOf32CharsExactly \
-e APP_ENV=local \
-e APP_DEBUG=false \
-v firefly-storage:/var/www/html/storage/upload \
fireflyiii/core:latest
DB_PASSWORD
совпадает с паролем, указанным для PostgreSQL. Также замените SomeRandomStringOf32CharsExactly
на уникальный ключ из 32 символов.
Генерация уникального APP_KEY
APP_KEY — это ключ шифрования Laravel, используемый Firefly III. Он должен быть уникальным для каждой установки. Можно сгенерировать через OpenSSL:
openssl rand -base64 32
Проверка работы контейнеров
# Просмотр запущенных контейнеров
podman ps
# Просмотр логов приложения (если есть ошибки)
podman logs firefly-app
Настройка автозапуска через systemd
Сгенерируем systemd unit файлы для контейнеров:
# Генерируем unit файлы для базы данных
podman generate systemd --new --files --name firefly-db
# Генерируем unit файлы для приложения
podman generate systemd --new --files --name firefly-app
Скопируем созданные файлы в системную директорию:
sudo cp container-firefly-db.service /etc/systemd/system/
sudo cp container-firefly-app.service /etc/systemd/system/
Перезагрузим systemd и включим автозапуск:
sudo systemctl daemon-reload
sudo systemctl enable container-firefly-db.service
sudo systemctl enable container-firefly-app.service
Запустим сервисы:
sudo systemctl start container-firefly-db.service
sudo systemctl start container-firefly-app.service
Проверим статус:
sudo systemctl status container-firefly-db.service
sudo systemctl status container-firefly-app.service
Первоначальная настройка Firefly III
Откройте в браузере адрес вашего сервера с портом 8080:
http://ваш_IP:8080
Пройдите первоначальную настройку:
- Выберите язык
- Укажите валюту по умолчанию
- Создайте первого пользователя
- Настройте почтовые параметры (опционально)
Настройка обратного прокси через Nginx
Для использования стандартного порта 80 установим и настроим Nginx:
# Устанавливаем Nginx
sudo dnf install nginx -y
# Запускаем и включаем автозапуск
sudo systemctl enable --now nginx
# Проверяем статус
sudo systemctl status nginx
nano
может не быть установлен по умолчанию. Установите его командой: sudo dnf install nano -y
По умолчанию в Alma Linux 9 может быть активен брандмауэр firewalld
, который блокирует входящие соединения. Необходимо разрешить трафик HTTP (порт 80):
# Открываем порт 80 (HTTP) в firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload # Применяем изменения
# Проверяем, что правило добавлено
sudo firewall-cmd --list-all
В выводе команды firewall-cmd --list-all
в списке services
теперь должен появиться http
.
Создайте файл конфигурации /etc/nginx/conf.d/firefly.conf
:
server {
listen 80;
server_name firefly.icelake.ru; # Замените на ваш домен
location / {
proxy_pass http://localhost:8080;
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_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
send_timeout 300;
}
}
Важно: Замените firefly.icelake.ru
в директиве server_name
на ваш реальный домен.
Перезагрузите Nginx:
# Проверяем конфигурацию
sudo nginx -t
# Перезагружаем Nginx
sudo systemctl reload nginx
Управление системой
Для управления контейнерами используйте стандартные команды:
# Просмотр запущенных контейнеров
podman ps
# Просмотр всех контейнеров (включая остановленные)
podman ps -a
# Просмотр логов
podman logs firefly-app
# Остановка/запуск сервисов через systemd
sudo systemctl stop firefly-app.service
sudo systemctl start firefly-app.service
# Перезапуск сервисов
sudo systemctl restart firefly-app.service
Преимущества такого подхода
- Безопасность: Rootless контейнеры снижают риски безопасности
- Надежность: systemd обеспечивает автоматический перезапуск сервисов
- Простота управления: Все контейнеры управляются через стандартные systemd команды
- Интеграция: Полная интеграция с SELinux и другими механизмами безопасности Alma Linux
Заключение
Alma Linux 9 с Podman предлагает современный и безопасный способ развертывания веб-приложений без необходимости установки Docker. Firefly III — отличный пример приложения, которое можно легко установить и управлять им как полноценным системным сервисом.
Этот подход идеально подходит для тех, кто ценит:
- Приватность своих финансовых данных
- Современные технологии контейнеризации
- Простоту управления и надежность системы
Теперь у вас есть мощный инструмент для управления личными финансами, работающий на современной и безопасной платформе Alma Linux 9.
© 2025 BigGratz.ru
Полезные ссылки
Скриншоты установки Firefly III




