В прошлом я делал две попытки создать свою домашнюю бухгалтерию, первый вариант был консольный, на bash + MySQL, второй — более «продвинутый» — на Django. Вторым вариантом я пользовался очень долго, вплоть до начала 2017 года.
После этого пробовал сервисы типа
Вчера узнал о
Есть демо-версия —
Документация —
Написана на PHP, в качестве бекенда — MySQL.
Ниже описан процесс запуска и первоначальной минимальной настройки Firefly III на Debian из docker-образа, с базой на отдельном сервере MySQL, с NGINX и SSL от Let’s Encrypt.
Содержание
MySQL
Логинимся на сервер БД и создаём базу для сервиса:
Добавляем пользователя и права на эту базу:
NGINX
Добавляем каталог:
Создаём конфиг виртуалхоста /etc/nginx/conf.d/dev.money.domain.org.ua.conf
:
upstream firefly_iii_dev { server 127.0.0.1:9091; } server { listen 80; server_name dev.money.domain.org.ua; root /var/www/vhosts/dev.money.domain.org.ua; access_log /var/log/nginx/vhosts/dev.money.domain.org.ua-access.log main; error_log /var/log/nginx/vhosts/dev.money.domain.org.ua-error.log; location ~ /.well-known { allow all; } location / { allow 188.***.***7.114; auth_basic_user_file /var/www/vhosts/.htpasswd; auth_basic "Password-protected Area"; fastcgi_pass firefly_iii_dev; } }
Проверяем, перезагружаем файлы настроек:
SSL и Let’s Encrypt
Предполагается, что Let’s Encrypt уже установлен, получаем сертификат:
Возвращаемся к файлу /etc/nginx/conf.d/money.domain.org.ua.conf
, добавляем редирект с 80 на 443, SSL и приводим его к виду:
upstream firefly_iii_dev { server 127.0.0.1:9091; } server { listen 80; server_name dev.money.domain.org.ua; return 301 https://dev.money.domain.org.ua$request_uri; } server { listen 443 ssl; server_name dev.money.domain.org.ua; root /var/www/vhosts/dev.money.domain.org.ua; access_log /var/log/nginx/vhosts/dev.money.domain.org.ua-access.log main; error_log /var/log/nginx/vhosts/dev.money.domain.org.ua-error.log; ssl_certificate /etc/letsencrypt/live/dev.money.domain.org.ua/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/dev.money.domain.org.ua/privkey.pem; location ~ /.well-known { allow all; } location / { allow 188.***.***.114; auth_basic_user_file /var/www/vhosts/.htpasswd; auth_basic "Password-protected Area"; add_header X-Forwarded-Proto "https"; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://firefly_iii_dev; } }
Проверяем, перезагружаем файлы настроек:
Запуск Firefly III
Документация по запуску из Docker —
Запускать будем из образа, со своего Compose файла, создаём каталог:
Генерируем ключ длиной 32 символа:
Создаём docker-compose.yml
:
version: '3.2' services: firefly_iii_app_dev: image: jc5x/firefly-iii environment: - FF_DB_HOST=172.***.***.60 - FF_DB_NAME=firefly_iii_dev - FF_DB_USER=firefly_iii_dev - FF_DB_PASSWORD=password - FF_APP_KEY=Naes7oheisahga8ahp0aeshoof3OuFei - FF_APP_ENV=local - APP_URL=https://dev.money.domain.org.ua - TRUSTED_PROXIES=** ports: - "9091:80" volumes: - type: volume source: firefly_iii__dev_export target: /var/www/firefly-iii/storage/export - type: volume source: firefly_iii_dev_upload target: /var/www/firefly-iii/storage/upload volumes: firefly_iii_dev_export: firefly_iii_dev_upload:
Запускаем его:
Проверяем контейнер:
Проверяем в браузере:
«Be right back» — всё ОК, переходим к инициализации, выполняем:
Обновляем базу:
Проверяем её:
Проверяем таблицы:
И проверяем в браузере ещё раз:
Кликаем на «Register a new account«, регистрируемся и логинимся:
Добавление валюты
Что бы добавить валюту, например украинскую гривну — переходим в Currencies, кликаем Create new currency:
В целом — на этом всё.
Перевод на русский — в процессе, присоединиться можно