MAATRIX / Блог / Как установить и настроить Actual Budget на VPS

Как установить и настроить Actual Budget на VPS

MAATRIX

Мобильные банковские приложения показывают, сколько вы потратили, но не отвечают на вопрос «сколько денег у меня реально осталось на еду до конца месяца». Envelope-бюджетирование (метод конвертов) решает именно это — и Actual Budget делает его быстрым и приятным, без привязки к облаку разработчика. Если вы не хотите доверять данные о своих финансах чужому серверу, поднимите Actual Budget на собственном VPS за 20-30 минут — ниже пошаговая инструкция.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Что такое Actual Budget и почему его стоит держать у себя

Actual Budget — open-source приложение для личных финансов, построенное на методе envelope (иногда его называют zero-based budgeting): каждый рубль, который приходит на счёт, вы сразу распределяете по категориям-«конвертам» — еда, транспорт, подписки, накопления. Это отличается от классических трекеров расходов, которые просто показывают постфактум, куда ушли деньги: Actual заставляет планировать заранее и честно видеть, когда категория «ушла в минус».

У проекта есть облачный сервис (Actual сам предлагает синхронизацию через свой сервер), но исходный код полностью открыт, и всё бэкенд-приложение — это один Node.js-сервис с SQLite внутри, который прекрасно работает в Docker. Причины ставить его на свой VPS, а не пользоваться готовым облаком:

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

Минус тоже стоит назвать честно: вы берёте на себя ответственность за обновления, HTTPS и резервные копии. Ничего сложного, но это не «нажал кнопку и забыл» — далее по шагам.

Требования к серверу

Actual Budget — лёгкое приложение, оно не требует мощного железа:

РесурсМинимумКомфортно
CPU1 vCPU1-2 vCPU
RAM512 МБ1 ГБ
Диск5 ГБ10-20 ГБ (с запасом под бэкапы)
ОСUbuntu 24.04 / Debian 12

Если на этом же VPS вы уже держите пару других self-hosted сервисов в Docker, Actual легко впишется дополнительным контейнером — ресурсов он просит немного. Для установки понадобится Docker и Docker Compose; если их ещё нет на сервере, сначала пройдите через установку Docker с нуля на Ubuntu 24.04.

Понадобится домен (или поддомен), направленный на IP сервера A-записью — без него не получится честно настроить HTTPS, а без HTTPS мобильные приложения Actual будут ругаться на соединение.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Установка через Docker Compose

Создаём директорию проекта и файл docker-compose.yml:

mkdir -p ~/actual-budget/data
cd ~/actual-budget
nano docker-compose.yml

Минимальная рабочая конфигурация:

services:
  actual_server:
    image: actualbudget/actual-server:latest
    container_name: actual_budget
    restart: unless-stopped
    ports:
      - "127.0.0.1:5006:5006"
    volumes:
      - ./data:/data
    environment:
      - ACTUAL_PORT=5006
      # опционально: ограничить, кто может логиниться, см. раздел про безопасность ниже

Обратите внимание: порт пробрасывается только на 127.0.0.1, наружу сервис не торчит напрямую — доступ снаружи пойдёт через reverse proxy с HTTPS (об этом ниже). Это не паранойя, а базовая гигиена: Actual хранит данные о ваших финансах, и открывать его напрямую в интернет без TLS — плохая идея.

Поднимаем контейнер:

docker compose up -d
docker compose logs -f actual_server

В логах должно появиться сообщение о том, что сервер слушает порт 5006. Если контейнер падает сразу после старта — почти всегда это права на директорию ./data (у пользователя внутри контейнера должны быть права на запись) или занятый порт 5006 другим сервисом.

Домен, HTTPS и reverse proxy

Дальше нужно связать домен с контейнером и получить сертификат. Проще всего это сделать через Caddy — он сам получает и продлевает Let's Encrypt-сертификаты, конфиг занимает три строки. Если Caddy у вас ещё не настроен, посмотрите пошаговую установку Caddy с авто-SSL на Ubuntu 24.04 — там же разбор частых ошибок с выдачей сертификата.

Файл /etc/caddy/Caddyfile:

budget.example.com {
    reverse_proxy 127.0.0.1:5006
}

Перезапускаем Caddy:

sudo systemctl reload caddy

Через несколько секунд Caddy сам получит сертификат и https://budget.example.com откроет страницу входа Actual. Если вместо Caddy у вас уже настроен Nginx Proxy Manager или Traefik — разницы принципиально нет, логика та же: домен → 443 с сертификатом → проксирование на 127.0.0.1:5006. Сравнение подходов есть в статье Traefik или Nginx Proxy Manager — что выбрать для сервера.

Без HTTPS официальные мобильные приложения Actual Budget (iOS/Android) чаще всего откажутся подключаться к серверу — это нормальное защитное поведение, не баг.

Первый вход и настройка бюджета

Открываем https://budget.example.com в браузере. При первом заходе Actual предложит задать пароль администратора сервера — это не пароль от вашего бюджета, а пароль доступа к самому серверу (одна инсталляция может хранить несколько отдельных бюджетов-файлов, полезно для семьи или для разделения «личное/бизнес»).

После входа на сервер:

  1. Создайте новый бюджет («Create new file») — это отдельная зашифрованная на клиенте база.
  2. Actual предложит задать отдельный пароль для шифрования именно этого бюджета — сервер физически не сможет прочитать ваши данные без него. Сохраните пароль в менеджере паролей: без него бюджет не восстановить, даже имея доступ к серверу.
  3. Заведите счета (Accounts) — банковские, наличные, накопительные.
  4. Настройте категории-конверты под свои траты. Actual поставляется с базовым набором категорий, но метод envelope работает лучше, если категории отражают реальную структуру ваших расходов, а не шаблон из коробки.
  5. Ключевой шаг метода: в разделе Budget распределите текущий баланс по категориям на месяц вперёд, пока сумма «To Budget» не станет равна нулю. Это и есть zero-based budgeting — каждый рубль получает назначение.

Мобильные приложения (iOS App Store, Google Play, есть и веб-версия как PWA) подключаются к вашему серверу через тот же адрес https://budget.example.com и тот же пароль шифрования бюджета — синхронизация идёт напрямую между устройством и вашим VPS, без стороннего облака.

Импорт данных из банка

Actual умеет импортировать транзакции из CSV, QIF и OFX — форматы, которые выгружает большинство банковских личных кабинетов. В интерфейсе счёта нужная кнопка называется «Import». Для регулярной автоматизации (без ручной выгрузки каждый раз) в экосистеме Actual есть сторонние банковские синк-инструменты, но их надёжность и доступность сильно зависят от банка и региона — на момент актуальности этой статьи (конец августа 2026) универсального решения для автосинка с российскими банками нет, и ручной импорт CSV раз в неделю — рабочий и предсказуемый вариант.

Если банк не даёт удобную выгрузку CSV с нужными колонками, простую конвертацию можно сделать вручную в таблице (дата, сумма, описание) — Actual при импорте позволяет сопоставить столбцы вашего файла с нужными полями, это делается один раз через мастер импорта.

Резервное копирование и обновления

Вся база Actual — это несколько файлов в директории ./data, которую мы примонтировали как volume. Бэкап сводится к копированию этой папки:

tar -czf actual-backup-$(date +%F).tar.gz -C ~/actual-budget data

Для регулярных автоматических бэкапов проще всего повесить эту команду на cron — как это настроить с нуля, разобрано в статье как установить и настроить cron-задачи на VPS. Если хотите более зрелую схему с шифрованием и хранением в облаке — посмотрите на связку Restic в Docker Compose или сравнение Restic и BorgBackup: оба инструмента умеют инкрементальные шифрованные снапшоты, что для финансовых данных не лишняя предосторожность.

Не забывайте отдельно хранить пароль шифрования бюджета — без него архив data бесполезен даже при полном доступе к нему.

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

docker compose pull
docker compose up -d

Перед крупным обновлением (смена мажорной версии) стоит сделать свежий бэкап data — Actual активно развивается, и хотя обратная совместимость обычно соблюдается, лишняя копия не помешает.

Из практических мер безопасности, кроме HTTPS и закрытого порта:

  • Не публикуйте порт 5006 наружу напрямую — только через reverse proxy с TLS, как показано выше.
  • Используйте длинный уникальный пароль сервера и отдельный сложный пароль шифрования бюджета — это разные секреты с разной ролью.
  • Если сервер шарится с другими сервисами, рассмотрите вынос Actual за Authelia или Authentik для единой точки входа с 2FA — общие принципы такие же, как для любого self-hosted веб-приложения за reverse proxy.
  • Регулярно проверяйте логи контейнера на подозрительные попытки логина: docker compose logs actual_server | grep -i fail.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

Actual Budget бесплатен?

Да, серверная и клиентские части полностью open-source, платить нужно только за сам VPS, на котором вы его размещаете.

Можно ли перенести данные из официального облака Actual на свой сервер?

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

Что будет, если я забуду пароль шифрования бюджета?

Данные восстановить не получится — шифрование клиентское, сервер не хранит ключ. Обязательно сохраняйте пароль в менеджере паролей сразу при создании бюджета.

Нужен ли мощный сервер для нескольких пользователей семьи?

Нет, даже несколько бюджетных файлов и пара одновременных синхронизаций с телефонов не требуют ресурсов больше 1 vCPU / 1 ГБ RAM — Actual специально спроектирован лёгким.

Работают ли официальные мобильные приложения с самостоятельно размещённым сервером?

Да, при первом запуске приложение просит указать адрес сервера — вписываете свой домен вместо адреса облака Actual.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →