SSD Nodes Learn Hosting plans →
Руководства Matt ConnorАвтор: Matt Connor

Self-hosted приложения для бюджета: сравнение

Сравнение Actual Budget, Firefly III, Fava и Wallos для управления финансами. Узнайте, какие системы поддерживают автоматический импорт транзакций, а где требуется ввод данных.

Краткий ответ

Приложения для ведения бюджета с self-hosted установкой различаются по одному ключевому параметру, который определяет выбор большинства пользователей: загружает ли программа транзакции автоматически или вы вносите их вручную. Actual Budget — оптимальный выбор для семейного бюджета. Оно использует метод конвертов и запускается как единый контейнер. При необходимости оно может получать транзакции от провайдера банковских данных по вашему запросу.

Firefly III подходит, если вам нужна система двойной записи или автоматический импорт транзакций по расписанию без участия пользователя. Beancount вместе с Fava подойдет тем, кто предпочитает хранить бухгалтерскую книгу в виде обычного текстового файла под контролем системы версий. Wallos выполняет одну узкую задачу: отслеживает регулярные платежи, которые списываются с вашего счета каждый месяц.

Ни одно из этих приложений не взаимодействует с банком напрямую. Каждое приложение, отображающее банковские транзакции, получает их через сторонний агрегатор, и именно регистрация аккаунта у агрегатора становится этапом, на котором многие останавливаются. Прочитайте раздел о синхронизации перед тем, как что-либо устанавливать.

Что именно запускается, в сравнении

ГрафикServices, storage and sync model, taken from each project's own install docs
Данные, на которых построен график
[
  {
    "tool": "Actual Budget",
    "services": 1,
    "storage": "SQLite files",
    "bank_sync": "Aggregators, manual pull",
    "multi_user": "Needs OpenID",
    "encryption": "Optional end to end"
  },
  {
    "tool": "Firefly III",
    "services": 3,
    "storage": "MariaDB",
    "bank_sync": "Importer, cron capable",
    "multi_user": "Built in accounts",
    "encryption": "None at rest"
  },
  {
    "tool": "Beancount + Fava",
    "services": 1,
    "storage": "Text file",
    "bank_sync": "Import scripts only",
    "multi_user": "No login at all",
    "encryption": "File level, your choice"
  },
  {
    "tool": "Wallos",
    "services": 1,
    "storage": "SQLite file",
    "bank_sync": "Manual entry only",
    "multi_user": "Extra logins via admin page",
    "encryption": "None at rest"
  }
]

Actual Budget запускает 1 постоянно работающий сервис. Firefly III запускает 3, так как официальный compose-файл запускает приложение, базу данных MariaDB и вспомогательный cron-контейнер как отдельные сущности. Это исчерпывающая информация о ресурсах для этих 4 приложений: сервер базы данных является единственной ресурсоемкой частью группы, а остальное — это небольшой процесс, работающий с маленьким файлом.

Какие self-hosted приложения для ведения бюджета могут загружать транзакции из банка?

Ни одно self-hosted приложение не подключается к банку напрямую. Банки предоставляют доступ к транзакциям через открытые банковские API, а доступ к этим API осуществляется через агрегаторы — компании, которые поддерживают отношения с банками и перепродают доступ к ним. Таким образом, реальный вопрос состоит из двух частей. Поддерживает ли приложение работу с агрегатором и можете ли вы создать учетную запись у агрегатора, который работает с вашим банком?

Actual Budget поддерживает несколько агрегаторов. По состоянию на октябрь 2026 года в его документации указаны Akahu для Новой Зеландии, Enable Banking для Европы, GoCardless Bank Account Data для Европы, SimpleFIN Bridge для Северной Америки и Pluggy.ai для Бразилии. Вы самостоятельно регистрируетесь у провайдера, генерируете ключи и секреты, а затем вставляете их в настройки своего сервера. Важны два ограничения. В текущем стабильном релизе 26.10.0 синхронизация запускается, когда пользователь нажимает кнопку. Настройка для автоматической синхронизации связанных счетов с заданным интервалом была добавлена, но по состоянию на октябрь 2026 года она доступна только в nightly-сборках, и даже там синхронизация происходит только тогда, когда Actual открыт на устройстве. На той же странице также указано, что GoCardless не принимает новые учетные записи, что закрывает бесплатный европейский путь, который до сих пор рекомендуют старые руководства. SimpleFIN Bridge — это платный сервис по подписке, оплачиваемый вами провайдеру, а не Actual.

Если вы хотите, чтобы Actual выполнял импорт без вашего участия уже сегодня, существует общественный проект под названием actual-auto-sync, который запускает банковскую синхронизацию по расписанию. Это отдельный контейнер, который работает рядом с сервером Actual и взаимодействует с ним через официальный API-пакет Actual. Он не является частью Actual, поэтому это еще один сервис, который нужно настраивать и обновлять.

Firefly III разделяет импорт на второй контейнер — Firefly III Data Importer. Его пример конфигурации содержит поля для учетных данных GoCardless (Nordigen), Enable Banking, SimpleFIN и Lunch Flow, наряду с импортом файлов CSV и CAMT.053. Установите CAN_POST_AUTOIMPORT=true, вставьте длинное случайное значение в AUTO_IMPORT_SECRET, и cron-задача на хосте сможет запускать импорт без открытого браузера. Это единственный вариант автоматической синхронизации без участия пользователя, встроенный в какое-либо приложение из этого сравнения; Actual достигает этого только с помощью дополнительного общественного сервиса, упомянутого выше.

Beancount не имеет функции синхронизации. Вы скачиваете файл CSV или OFX из своего банка и запускаете скрипт импорта, который вы написали или позаимствовали. Wallos также не имеет синхронизации по своей архитектуре: вы вводите подписку один раз, и она повторяется по собственному расписанию.

Ручной импорт — это путь, который работает всегда, и он продолжает работать, даже если ваш банк меняет провайдеров. Если банковское подключение является для вас решающим фактором, проверьте покрытие агрегатором вашего конкретного банка перед тем, как что-либо устанавливать. Эта проверка занимает десять минут и экономит выходные.

Actual Budget: конвертный метод бюджетирования в одном контейнере

Конвертный метод бюджетирования подразумевает распределение уже имеющихся средств по категориям до момента их траты. Например, на продукты выделяется 300, на транспорт — 80, при этом общая сумма распределенных средств не должна превышать остаток на счетах. Actual не устанавливает жестких ограничений: если распределить больше, чем есть, месяц будет помечен как превышающий бюджет, а излишек будет вычтен из средств следующего месяца до тех пор, пока вы его не покроете. Actual реализует этот метод, а само приложение работает по принципу local-first: браузер или десктопный клиент хранят полную копию бюджета и синхронизируются с сервером, поэтому приложение продолжает работать, даже если сервер недоступен.

services:
  actual_server:
    image: actualbudget/actual-server:latest
    ports:
      - '5006:5006'
    volumes:
      - ./actual-data:/data
    restart: unless-stopped

Запустите его с помощью docker compose up -d. В документации по установке Actual для Docker рекомендуется открывать приложение с другого компьютера в локальной сети по адресу http://your-server:5006, поэтому приложение загружается без HTTPS. На странице, посвященной HTTPS, указано, что для безопасного использования всех функций Actual требуется HTTPS. Там же перечислены два случая, когда этот шаг можно пропустить: сервер на вашем собственном компьютере, к которому вы обращаетесь только через localhost, и облачный провайдер, который берет на себя настройку HTTPS. Том данных содержит две директории: server-files и user-files. Эти директории и есть ваш бюджет. Если вы используете VPS, доступный через интернет, перед первым запуском установите перед приложением reverse proxy с TLS (transport layer security) и открывайте приложение по HTTPS-адресу, который предоставляет прокси. Самоподписанный сертификат также подойдет, но браузер будет выдавать предупреждение о его недействительности. Полное пошаговое руководство доступно в нашем руководстве по установке Actual Budget, а шаблоны compose, лежащие в основе этого файла, описаны в Docker Compose на VPS.

Многопользовательский режим. По умолчанию сервер использует один пароль, общий для всех пользователей. Для создания отдельных учетных записей требуется OpenID Connect, который сервер поддерживает при работе с такими провайдерами, как Authentik, Keycloak, Google и GitHub. Первый пользователь, вошедший через OpenID, становится владельцем сервера, а ACTUAL_USER_CREATION_MODE определяет, будут ли последующие входы в систему создавать новые учетные записи автоматически. Два человека могут открывать и редактировать один и тот же файл бюджета одновременно. Документация утверждает, что это работает, если правки не конфликтуют, однако для безопасности рекомендуется избегать одновременного использования одного файла, поэтому паре, использующей общий бюджет, лучше работать по очереди.

Шифрование. Actual предлагает сквозное шифрование (end-to-end encryption) для каждого файла бюджета. При его включении сервер хранит данные, которые не может прочитать, что и требуется при использовании арендованного сервера. Это влечет два последствия. Если вы потеряете пароль шифрования, восстановить копию с сервера будет невозможно; единственный способ вернуть доступ — сброс ключа с устройства, на котором сохранилась локальная копия бюджета, что приведет к перезаписи данных на сервере этой копией. Токены синхронизации с банком хранятся отдельно и не защищены этим шифрованием, поэтому любой, кто имеет доступ к базе данных на сервере, может их прочитать.

Firefly III: метод двойной записи и единственный автоматический импорт

Метод двойной записи означает, что у каждой транзакции есть счет-источник и счет-назначение. Покупка продуктов переводит деньги с вашего расчетного счета на счет расходов, поэтому средства не возникают из ниоткуда. Деньги, которые вы не можете объяснить, отображаются как несбалансированный счет, а не скрываются внутри общей суммы категории. Именно поэтому стоит выбрать Firefly III: он ближе к бухгалтерскому учету, чем к планированию бюджета.

Установите приложение из файлов проекта:

mkdir -p /srv/firefly
curl -fsSL -o /srv/firefly/docker-compose.yml https://raw.githubusercontent.com/firefly-iii/docker/main/docker-compose.yml
curl -fsSL -o /srv/firefly/.env https://raw.githubusercontent.com/firefly-iii/firefly-iii/main/.env.example
curl -fsSL -o /srv/firefly/.db.env https://raw.githubusercontent.com/firefly-iii/docker/main/database.env

Отредактируйте .env перед первым запуском. APP_KEY должна быть строкой ровно из 32 символов; проект предоставляет команду для её генерации:

head /dev/urandom | LC_ALL=C tr -dc 'A-Za-z0-9' | head -c 32 && echo

STATIC_CRON_TOKEN требует вторую строку из 32 символов. Контейнер cron в этом файле compose вызывает приложение раз в день, и без валидного токена вызов будет отклонен, из-за чего повторяющиеся транзакции и напоминания о счетах не сработают. Установите SITE_OWNER на ваш адрес электронной почты, убедитесь, что пароль базы данных в .env совпадает с паролем в .db.env, затем запустите проект:

docker compose up -d
docker compose logs -f app

Успешный первый запуск завершается тем, что приложение начинает обслуживать запросы на порту 8080 внутри контейнера (который файл compose публикует на порту 80 хоста), а логи перестают обновляться. Цикл ошибок подключения к базе данных означает, что пароли в .env и .db.env не совпадают, поэтому приложение не может авторизоваться в MariaDB.

Автоматический импорт. Data Importer работает как отдельный контейнер и проходит аутентификацию в Firefly III с помощью персонального токена доступа в FIREFLY_III_ACCESS_TOKEN. Настройте один импорт в интерактивном режиме, сохраните полученный файл конфигурации, а затем настройте cron для отправки запросов на эндпоинт автоматического импорта по расписанию. Именно это имеют в виду, когда говорят, что Firefly III синхронизируется: агрегатор поддерживает банковское соединение, импортер собирает данные, а ваш сервер выполняет работу, пока вы спите.

Многопользовательский режим. Firefly III хранит реальные учетные записи в собственной базе данных, что определяется параметром AUTHENTICATION_GUARD=web. Укажите remote_user_guard, и тогда аутентифицирующий прокси, такой как Authelia, возьмет на себя вход в систему, передавая имя пользователя в заголовке. LDAP больше не поддерживается. Если экземпляр доступен из Интернета, откройте страницу администрирования после первого входа и проверьте настройку однопользовательского режима, которая определяет, может ли кто-либо еще зарегистрироваться.

Шифрование. Шифрование данных в покое отсутствует. Транзакции хранятся в MariaDB в читаемом виде, поэтому любой, у кого есть пароль от базы данных или копия тома, получит доступ к вашей финансовой истории. Используйте TLS termination перед приложением, по возможности не выставляйте его в открытый Интернет и шифруйте резервные копии.

Beancount и Fava: ваша бухгалтерская книга — это текстовый файл

Beancount — это синтаксис двойной записи в обычном текстовом формате. Транзакция представляет собой несколько строк в файле, который принадлежит вам:

2026-08-19 * "Supermarket" "Weekly shop"
  Expenses:Food:Groceries   42.10 EUR
  Assets:Bank:Checking

Fava — это веб-интерфейс для этого файла. Он строит графики, балансовые отчеты и отчеты о прибылях и убытках, а также позволяет редактировать исходный код. Установите его в виртуальном окружении:

sudo apt update && sudo apt install -y python3-venv
python3 -m venv ~/.venvs/fava
~/.venvs/fava/bin/pip install fava
~/.venvs/fava/bin/fava --read-only ~/ledger/main.beancount

Обычная команда pip3 install fava завершается ошибкой в Ubuntu 24.04 с сообщением error: externally-managed-environment, так как пакетный менеджер apt управляет системным Python. Поэтому использование виртуального окружения является правильным решением, а не обходным путем.

По умолчанию Fava ожидает подключения на localhost через порт 5000. Флаг -H меняет хост, а -p — порт, но подумайте, прежде чем открывать доступ извне: в Fava нет системы входа. В командной строке нет опций для указания пользователя или пароля, поэтому любой, кто получит доступ к порту, сможет прочитать все ваши транзакции. Оставьте хост по умолчанию и подключайтесь через SSH-туннель, VPN или прокси-сервер с аутентификацией. Флаг --read-only блокирует запись из браузера; его стоит использовать, если вы редактируете файл на ноутбуке и фиксируете изменения в системе контроля версий.

Многопользовательский режим и шифрование. Модель пользователей отсутствует полностью. Один экземпляр обслуживает одну бухгалтерскую книгу без привязки к личности, поэтому совместное использование означает использование общих учетных данных прокси-сервера. Шифрование осуществляется средствами, которые вы применяете к файлу, например, с помощью age или gpg, либо через зашифрованный репозиторий для резервных копий. Преимущество текстовой бухгалтерской книги в том, что git бесплатно предоставляет историю изменений, возможность отследить авторство строк (blame) и удаленную копию.

Wallos: компактное решение для регулярных платежей

services:
  wallos:
    image: bellamy/wallos:latest
    ports:
      - "8282:80/tcp"
    volumes:
      - './db:/var/www/html/db'
      - './logos:/var/www/html/images/uploads/logos'
    restart: unless-stopped

Wallos хранит все данные в одном файле SQLite по пути db/wallos.db. Приложение поддерживает работу с несколькими валютами с автоматической конвертацией и может отправлять уведомления о предстоящем продлении подписки через email, Discord, Telegram, Gotify, Pushover или вебхуки. Дополнительные учетные записи создаются администратором на странице управления; там же можно разрешить самостоятельную регистрацию или включить авторизацию через OpenID Connect. Каждая учетная запись ведет свой собственный список. Члены семьи, добавляемые в настройках, являются лишь метками для указания плательщика и не являются отдельными учетными записями.

Важно понимать, чем это приложение не является. Wallos не отслеживает ежедневные расходы и не имеет функции планирования бюджета. Оно отвечает на один вопрос: сколько я плачу каждый месяц и что нужно продлить на следующей неделе? Многие пользователи запускают его параллельно с Actual именно для этих целей. Если вас интересуют не те суммы, которые вы платите, а те, которые вы выставляете другим, обратите внимание на self-hosted invoicing software.

А как насчет Maybe?

Maybe Finance часто рекомендуют в различных обсуждениях, поэтому стоит дать ответ. В файле README указано, что репозиторий больше активно не поддерживается, финальный релиз имеет тег v0.6.0, а код распространяется под лицензией AGPLv3. Репозиторий был переведен в режим «только для чтения» 27 июля 2025 года. Программа по-прежнему работает. Данные для бюджетирования — это информация, которую вы храните десятилетиями, и неподдерживаемое ПО, содержащее схему базы данных и банковские учетные данные, — не лучшее место для их хранения. Эта позиция оставалась актуальной и в октябре 2026 года, поэтому проверьте состояние репозитория самостоятельно, прежде чем начинать его использовать.

Сколько ресурсов сервера требуется для этих приложений?

Все эти приложения потребляют мало ресурсов. Вместо того чтобы доверять цифрам из блогов, лучше провести собственные измерения. Выполните следующую команду на своем сервере после обычного дня использования:

docker stats --no-stream

Изучите столбец MEM USAGE. Actual, Wallos и Fava используют по одному небольшому файлу на каждый процесс, поэтому они стабильно работают на скромном VPS вместе с другими сервисами. Firefly III отличается тем, что в его стеке присутствует MariaDB, а сервер баз данных удерживает память независимо от того, выполняются ли к нему запросы. Планируйте запас памяти для базы данных, а не для самих транзакций. Тем не менее, приложение для ведения бюджета редко становится причиной нехватки ресурсов на VPS: если вы подбираете конфигурацию сервера для всего стека, то минимальные требования к оперативной памяти для PhotoPrism и Immich с гораздо большей вероятностью определят объем необходимой RAM.

Объем данных практически не растёт. Десять лет домашних транзакций занимают файл размером в несколько мегабайт, поэтому дисковое пространство не является ограничивающим фактором. Реальное последствие такого длительного срока хранения данных описано в следующем разделе.

Мобильные приложения и их недостатки

Здесь self-hosted финансовые приложения проигрывают коммерческим аналогам, поэтому будьте реалистичны, прежде чем переводить на них управление семейным бюджетом.

Официальная документация прямо указывает, что мобильные приложения устарели. Вместо них предлагается веб-версия, которая в документации описывается как адаптивное прогрессивное веб-приложение (PWA). Вы устанавливаете его на главный экран и используете как нативное приложение. Оно работает хорошо. Это не приложение из App Store, хотя сообщество поддерживает неофициальные нативные клиенты.

Firefly III также не выпускает официальных приложений, но благодаря его API появились два функциональных неофициальных клиента. Waterfly III — это Android-приложение, доступное в Google Play и F-Droid. Abacus работает на iPhone, iPad и Android, использует OAuth2 для входа и хранит токены в iOS keychain. Оба варианта требуют, чтобы ваш экземпляр был доступен с телефона.

Fava и Wallos предоставляют только адаптивную веб-страницу. Читать отчеты на телефоне удобно. Вводить транзакции Beancount с экранной клавиатуры — нет.

Один момент актуален для всех: телефон в мобильной сети не находится в вашей домашней сети. Либо вы публикуете приложение на домене с TLS и строгой аутентификацией, либо подключаете телефон через VPN. Публикация финансового приложения в открытом доступе с защитой одним общим паролем — это ошибка, которой следует избегать. Если ни один из этих путей вам не подходит, размещение экземпляра за v3 onion service является третьим вариантом. Он не требует публичной DNS-записи и открытых портов во внешнюю сеть, но для доступа потребуется Tor Browser на телефоне.

Резервные копии: самый важный раздел в этой категории

Потеря медиатеки грозит лишь повторной загрузкой файлов. Потеря пяти лет категоризированных транзакций — это то, что невозможно восстановить. Настройте резервное копирование в первый же день.

Что копировать для каждого приложения:

  • Actual Budget: весь том данных, включая server-files и user-files.
  • Firefly III: дамп базы данных, а также .env, .db.env и том с загруженными файлами.
  • Beancount: файл реестра, желательно в виде git-репозитория с удаленным сервером.
  • Wallos: db/wallos.db и каталог с загруженными логотипами.

Копирование активного файла SQLite — классический способ получить резервную копию, которая не восстановится. SQLite хранит недавние записи в отдельном файле журнала предзаписи (write ahead log), поэтому копия только файла .sqlite может не содержать последних транзакций или вовсе не открыться. Остановите контейнер на несколько секунд, пока идет копирование:

cd /srv/actual
docker compose stop actual_server
tar czf /srv/backups/actual-$(date +%F).tgz -C /srv/actual actual-data
docker compose start actual_server

Для Firefly III предпочтительнее использовать дамп. Выполните его изнутри контейнера базы данных, чтобы пароль не попал в историю вашей командной оболочки:

cd /srv/firefly
docker compose exec -T db sh -c 'mariadb-dump -u firefly -p"$MYSQL_PASSWORD" firefly' > /srv/backups/firefly-$(date +%F).sql

В старых образах MariaDB этот же инструмент поставляется под своим предыдущим именем, mysqldump. Храните .env и .db.env вместе с дампом, так как база данных, восстановленная в инсталляцию, конфигурация которой у вас не сохранилась, — это головоломка, которую придется решать в самый неподходящий момент.

Копия на том же VPS защищает от случайного редактирования. Она не защищает от потери сервера или его взлома. Отправляйте каталог с резервными копиями в объектное хранилище с помощью restic, который шифрует репозиторий до того, как данные покинут сервер:

export RESTIC_REPOSITORY=s3:s3.example.com/money-backups
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init
restic backup /srv/backups
restic forget --keep-daily 7 --keep-weekly 8 --keep-monthly 12 --prune

restic snapshots теперь должен отображать снимок с сегодняшней датой. Планирование, учетные данные и systemd timer описаны в нашем руководстве по зашифрованным резервным копиям restic на VPS.

Резервная копия, которую вы никогда не восстанавливали, — это лишь предположение. Протестируйте её прямо сейчас, пока ничего не случилось:

restic restore latest --target /tmp/restore-test

Распакуйте архив Actual во временный каталог, запустите второй контейнер, указав его в качестве источника данных на другом порту, и откройте его. Вы должны увидеть свои счета с балансами, которые были на момент создания резервной копии. Для Firefly III загрузите дамп во временную базу данных и подсчитайте количество строк в таблице transactions. Совпадение чисел с данными в рабочей инсталляции означает, что резервная копия корректна. Затем удалите временные копии, так как забытый тестовый экземпляр с реальными финансовыми данными — это отдельная проблема.

Выберите одно приложение, поработайте в нем месяц с реальными цифрами, прежде чем переносить всю историю, и настройте резервное копирование в ту же неделю. Если вы все еще решаете, какие аспекты вашей жизни стоит перенести на собственный сервер, наш обзор того, что стоит размещать самостоятельно в 2026 году, охватывает остальную часть стека.

FAQ

Какое self-hosted приложение для ведения бюджета может подключаться к моему банку?

Actual Budget и Firefly III могут это делать через сторонние агрегаторы, а не напрямую. Actual поддерживает провайдеров, включая SimpleFIN Bridge для Северной Америки, Enable Banking для Европы, Akahu для Новой Зеландии и Pluggy.ai для Бразилии. В текущем стабильном релизе синхронизация запускается нажатием кнопки. По состоянию на октябрь 2026 года автоматическая синхронизация по расписанию доступна только в nightly-сборках и работает, только пока открыт Actual. Сообщество разработало сервис actual-auto-sync, который может выполнять синхронизацию по расписанию в качестве отдельного контейнера. Firefly III использует отдельный контейнер Data Importer, который можно запускать через cron, что делает его единственным решением с встроенным автоматическим импортом. Beancount и Wallos не имеют функций подключения к банкам. Перед выбором убедитесь, что агрегатор поддерживает ваш банк, так как покрытие определяет выбор чаще, чем функциональные возможности.

Могу ли я использовать эти приложения для бюджета на телефоне?

Да, но официальных приложений нет. Документация Actual сообщает, что официальные мобильные приложения признаны устаревшими, и рекомендует использовать веб-версию — адаптивное прогрессивное веб-приложение (PWA), которое можно установить на главный экран. Для Firefly III существуют два надежных неофициальных клиента: Waterfly III для Android и Abacus для iOS и Android. Fava и Wallos представляют собой адаптивные веб-страницы. Actual хранит локальную копию бюджета, поэтому он продолжает работать без сети, но для синхронизации и получения банковских данных телефону необходимо подключение к вашему серверу. Остальные приложения требуют сервер для любых действий. В любом случае настройте домен с TLS и надежной аутентификацией или используйте VPN для доступа с телефона.

Как создать резервную копию self-hosted приложения для бюджета, чтобы не повредить базу данных?

Никогда не копируйте активный файл SQLite напрямую. SQLite хранит недавние записи в отдельном журнале предзаписи (write-ahead log), поэтому копия, сделанная в процессе записи, может содержать не все транзакции или не открыться вовсе. Остановите контейнер, скопируйте каталог с данными, затем запустите его снова — для таких небольших приложений это занимает секунды. Для Firefly III выполните mariadb-dump внутри контейнера базы данных и сохраните файлы окружения вместе с дампом. Отправьте результат за пределы сервера в зашифрованный репозиторий restic и выполните восстановление один раз, чтобы убедиться в работоспособности.

Не слишком ли тяжел Firefly III для маленького VPS?

Это самый тяжелый вариант из представленных, исключительно потому, что его официальный compose-файл запускает сервер MariaDB вместе с контейнерами приложения и cron. Данные о личных финансах занимают мало места, поэтому память расходуется на простаивающий процесс базы данных, а не на ваши транзакции. Запустите docker stats --no-stream на своем сервере после обычного рабочего дня и посмотрите на столбец MEM USAGE, вместо того чтобы доверять опубликованным цифрам. Если вам нужен минимальный объем потребляемых ресурсов, Actual Budget и Wallos запускают по одному процессу, работающему с одним файлом.

#budgeting#personal-finance#self-hosting#docker#privacy