Tropic Host

Actual Budget на VPS: установка и настройка личного бюджета

5 мин чтения
Tropic
Actual Budget на VPS: установка и настройка личного бюджета

Actual Budget: собственный менеджер личного бюджета на VPS

Банковское приложение показывает, куда деньги уже ушли. Actual Budget отвечает на другой вопрос: сколько из доступной суммы действительно можно потратить, если часть уже предназначена для аренды, продуктов, отпуска и непредвиденных расходов.

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

Actual Budget за семь шагов

  1. Создать Linux VPS и направить на него поддомен, например budget.example.com.
  2. Установить Docker и Docker Compose.
  3. Запустить официальный контейнер с постоянным каталогом данных.
  4. Подключить HTTPS через Caddy.
  5. Установить пароль сервера и создать бюджет.
  6. Добавить счета, категории, правила и регулярные платежи.
  7. Включить шифрование и настроить внешний бэкап.

Что такое Actual Budget

Actual Budget — self-hosted-приложение для личного или семейного бюджета. Его часто рассматривают как открытую альтернативу YNAB, но начинать можно с чистого бюджета.

Сервис использует метод виртуальных конвертов. Допустим, на счетах находится 100 000 рублей. Из них 40 000 нужны на жилье, 20 000 — на продукты, 10 000 — на коммунальные услуги, а 15 000 — в резерв. После распределения на необязательные покупки остается не 100 000, а 15 000 рублей.

Такой подход меняет роль приложения. Обычный трекер объясняет прошлые расходы, а Actual Budget помогает принять решение до покупки. Неиспользованный остаток категории переносится дальше, а при перерасходе деньги можно переместить из другого конверта.

Еще одно отличие — архитектура local-first. Бюджет хранится на подключенных устройствах и доступен без интернета. Когда соединение появляется, изменения синхронизируются через сервер. VPS нужен прежде всего для обмена данными между компьютером, телефоном и браузерами, а не для выполнения каждой операции.

Основные возможности Actual Budget

  • Бюджет по конвертам. Распределяются только уже полученные деньги.
  • Счета и операции. Есть переводы, дробление покупки на несколько категорий, заметки и сверка баланса.
  • Правила и расписания. Можно очищать банковские описания, назначать категории и заранее учитывать зарплату, аренду или подписки.
  • Импорт. Поддерживаются CSV, QIF, OFX, QFX и CAMT. Форматы с идентификаторами операций лучше защищают от дубликатов.
  • Отчеты. Доступны движение денег, чистый капитал, расходы и настраиваемые графики.
  • Миграция и API. Есть импорт из YNAB4 и современного YNAB, а также API для собственных интеграций.

На телефоне Actual Budget устанавливается как PWA — веб-приложение на домашнем экране. Удобство мобильного интерфейса лучше проверить заранее.

ПараметрОблачный сервисActual Budget
ХранениеУ провайдераНа устройстве и своем сервере
Работа без интернетаЗависит от сервисаОсновные функции доступны локально
ОбслуживаниеВыполняет провайдерВыполняет владелец
Стоимость программыПодписка или бесплатный тарифОбязательной подписки нет
Контроль данныхПо правилам провайдераУ владельца сервера

Actual Budget подойдет тем, кому важны приватность и контроль. Облачный сервис удобнее, если не хочется обслуживать сервер.

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

Проект не публикует жесткого минимума CPU и RAM. Сервер в основном синхронизирует небольшие финансовые данные, поэтому для одного человека или семьи разумным стартом будет:

  • 1 vCPU;
  • 1 ГБ RAM;
  • 10 ГБ SSD;
  • Ubuntu 24.04 LTS;
  • домен или поддомен;
  • внешнее место для резервной копии.

Это практическая рекомендация, а не официальный минимум. При запуске других контейнеров лучше предусмотреть 2 ГБ RAM.

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

В примере используется Ubuntu 24.04 и поддомен budget.example.com.

1. Подготовьте сервер

Создайте DNS-запись A, направленную на IP VPS, подключитесь по SSH и откройте только необходимые порты:

ssh root@SERVER_IP

apt update && apt upgrade -y
apt install -y ca-certificates curl ufw

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

2. Установите Docker

Добавьте официальный репозиторий Docker:

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

cat > /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin

3. Запустите Actual Budget

mkdir -p /opt/actual-budget/data
cd /opt/actual-budget

cat > compose.yml <<'EOF'
services:
  actual:
    image: actualbudget/actual-server:latest
    restart: unless-stopped
    ports:
      - "127.0.0.1:5006:5006"
    volumes:
      - ./data:/data
EOF

docker compose up -d
docker compose ps

Привязка к 127.0.0.1 не позволяет открыть порт 5006 напрямую из интернета. Бюджеты сохраняются в /opt/actual-budget/data и не исчезают при обновлении контейнера.

4. Подключите HTTPS

apt install -y caddy

cat > /etc/caddy/Caddyfile <<'EOF'
budget.example.com {
    reverse_proxy 127.0.0.1:5006
}
EOF

caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy

Когда DNS указывает на VPS, а порты 80 и 443 доступны, Caddy автоматически получает TLS-сертификат. Откройте https://budget.example.com и задайте длинный пароль сервера.

Как настроить первый бюджет

Необязательно начинать с импорта нескольких лет истории. Быстрее добавить используемые счета, указать текущие остатки и создать категории для обязательных платежей, ежедневных расходов, накоплений и нерегулярных трат.

Распределяйте только имеющиеся деньги, пока сумма «к распределению» не станет равна нулю. Затем импортируйте недавние операции, проверьте баланс и создайте правила для часто встречающихся магазинов, подписок и переводов.

Категории должны помогать принимать решения. Отдельные конверты «медицина», «ремонт техники» и «годовые подписки» полезнее общей категории «прочее».

Что нужно знать о синхронизации с банками

Банковское подключение доступно не во всех странах и зависит от поддерживаемого провайдера API. Оно требует собственного сервера и дополнительных учетных данных. Actual Budget не запускает синхронизацию полностью автоматически: пользователь инициирует ее в интерфейсе.

Токены банковских подключений хранятся на сервере отдельно и не входят в сквозное шифрование бюджета. Если конкретный банк не поддерживается, операции можно импортировать из выписки. OFX и QFX обычно удобнее CSV, поскольку содержат идентификаторы транзакций.

Шифрование, бэкапы и обновления

Сквозное шифрование включается отдельно для каждого бюджета. Пароль нужно сохранить в менеджере паролей: сервер не сможет его восстановить. Локальную копию Actual Budget сам не шифрует, поэтому телефон и компьютер следует защищать кодом блокировки и шифрованием диска.

Синхронизация не заменяет резервную копию. Регулярно экспортируйте бюджет из настроек и копируйте каталог данных на другую площадку:

cd /opt/actual-budget
docker compose stop
tar -czf /root/actual-budget-$(date +%F).tar.gz data
docker compose start

Архив необходимо перенести за пределы VPS. Перед обновлением также сделайте копию, затем выполните:

cd /opt/actual-budget
docker compose pull
docker compose up -d

Для постоянного использования выбирайте стабильный тег latest, а не экспериментальный nightly.

Какой VPS выбрать для Actual Budget

Для личного экземпляра не нужен мощный сервер. Подойдет базовый Linux VPS от tropic.host, на котором можно разместить Actual Budget, Caddy и поддомен с HTTPS. Начать разумно с 1 ГБ RAM, а увеличивать ресурсы — только при добавлении других self-hosted-сервисов.

Не открывайте порт 5006 напрямую, устанавливайте обновления и храните хотя бы одну резервную копию вне основного VPS. Безопасность self-hosted-сервиса зависит от настройки владельца.

Ограничения Actual Budget

Actual Budget требует самостоятельного обслуживания. Банковская синхронизация ограничена странами и провайдерами, мобильная версия работает как PWA, а потерянный пароль шифрования может закрыть доступ к бюджету.

Сервис подойдет не всем, но хорошо решает конкретную задачу: объединяет метод конвертов, автоматизацию и контроль над данными без обязательной подписки.

Краткий вывод

Actual Budget превращает учет расходов в план: каждая полученная сумма заранее получает назначение. Приложение работает локально, синхронизируется через собственный сервер и поддерживает импорт, правила, отчеты и шифрование.

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

FAQ

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

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

Обязательно ли устанавливать Actual Budget на VPS?

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

Можно ли подключить Actual Budget к банку?

Да, если банк и регион поддерживаются одним из доступных провайдеров. В остальных случаях операции импортируются из CSV, QIF, OFX, QFX или CAMT.

Безопасно ли хранить бюджет на своем сервере?

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

Сколько оперативной памяти нужно Actual Budget?

Официального минимального значения нет. Для личного экземпляра практичным стартом будет 1 ГБ RAM, а при размещении других сервисов лучше предусмотреть 2 ГБ.