📊 Развертывание Firefly III для семейного бюджета
Руководство по установке полностью автономной, приватной системы учета семейных финансов Firefly III на сервере Debian с помощью Docker Compose. Все данные хранятся локально в папке проекта, что гарантирует конфиденциальность и максимально упрощает резервное копирование.
🚀 Быстрый запуск
-
Создайте на сервере директорию для проекта и перейдите в неё:
mkdir -p ~/firefly-iii && cd ~/firefly-iii -
Создайте две подпапки для базы данных и загрузок:
mkdir -p db_data uploads -
Сгенерируйте уникальный ключ шифрования длиной 32 символа:
head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32 -
Создайте файл
docker-compose.yml, вставьте в него код ниже, заменивAPP_KEYна сгенерированный ключ, а также указав свои надежные пароли.
📄 Файл конфигурации: docker-compose.yml
# ==============================================================================
# СЕМЕЙНЫЙ БЮДЖЕТ: FIREFLY III С ЛОКАЛЬНЫМ ХРАНЕНИЕМ ДАННЫХ И РУССКОЙ ЛОКАЛИЗАЦИЕЙ
# ==============================================================================
version: '3.3'
services:
# --- База данных MariaDB ---
firefly_db:
image: mariadb:10
container_name: firefly_iii_db
environment:
- MYSQL_RANDOM_ROOT_PASSWORD=yes
- MYSQL_USER=firefly
# !!! ОБЯЗАТЕЛЬНО замените этот пароль на свой собственный !!!
# Он должен полностью совпадать с переменной DB_PASSWORD в блоке приложения ниже.
- MYSQL_PASSWORD=super_secret_db_pass_123
- MYSQL_DATABASE=firefly
volumes:
# Локальное хранение: база данных сохраняется в папку ./db_data прямо внутри вашей папки firefly-iii.
# Это делает проект переносимым — достаточно скопировать родительскую папку для бэкапа.
- ./db_data:/var/lib/mysql
restart: always
# --- Основное приложение Firefly III ---
firefly_app:
image: fireflyiii/core:latest
container_name: firefly_iii_app
ports:
# Порт, на котором будет доступен веб-интерфейс (http://IP_сервера:8080)
# Вы можете изменить внешний порт 8080 на любой свободный в вашей системе.
- "8080:8080"
environment:
# Ключ шифрования. Должен быть СТРОГО длиной 32 символа (только буквы и цифры).
# Вставьте сюда ключ, сгенерированный на шаге 3.
- APP_KEY=32_character_random_string_here!!!
# Настройки окружения (production отключает вывод лишних отладочных логов)
- APP_ENV=production
- APP_DEBUG=false
# Настройки подключения к базе данных
- DB_CONNECTION=mysql
- DB_HOST=firefly_db
- DB_PORT=3306
- DB_DATABASE=firefly
- DB_USERNAME=firefly
# Должен строго совпадать с паролем MYSQL_PASSWORD из блока базы данных выше.
- DB_PASSWORD=super_secret_db_pass_123
# --- РУССКАЯ ЛОКАЛИЗАЦИЯ И ВРЕМЕННАЯ ЗОНА ---
# TZ задает системное время. По умолчанию установлен часовой пояс Екатеринбурга (+5 UTC).
- TZ=Asia/Yekaterinburg
- DEFAULT_LANGUAGE=ru_RU
- DEFAULT_LOCALE=ru_RU
# Настройка регистрации.
# true позволяет зарегистрировать первый (совместный семейный) аккаунт.
# БЕЗОПАСНОСТЬ: После создания профиля рекомендуется изменить это значение на false
# и обновить контейнеры (docker compose up -d), чтобы закрыть регистрацию для посторонних.
- ALLOW_REGISTRATION=true
volumes:
# Локальное хранение: загруженные чеки, сканы и файлы будут сохраняться в подпапку ./uploads.
- ./uploads:/var/www/html/storage/upload
restart: always
# Гарантирует, что контейнер приложения не начнет запуск раньше, чем поднимется контейнер базы данных
depends_on:
- firefly_db
⚙️ Запуск и обслуживание
-
Запуск контейнеров в фоновом режиме:
docker compose up -d(Флаг
-dзапускает процесс в фоне, позволяя закрыть терминал без остановки сервера). -
Просмотр логов (если что-то пошло не так):
docker compose logs -f -
Остановка сервиса:
docker compose down
💾 Резервное копирование и перенос
Поскольку в конфигурации используются относительные пути (./db_data и ./uploads), вся база данных, файлы, чеки и настройки лежат «в одном месте» — в папке ~/firefly-iii.
Для создания полной резервной копии или переноса на другой диск/сервер:
Все данные, включая учетную запись и историю трат, восстановятся в первозданном виде автоматически!
Нет комментариев для отображения
Нет комментариев для отображения