Actual Budget: собственный менеджер личного бюджета на VPS
Банковское приложение показывает, куда деньги уже ушли. Actual Budget отвечает на другой вопрос: сколько из доступной суммы действительно можно потратить, если часть уже предназначена для аренды, продуктов, отпуска и непредвиденных расходов.
Actual Budget — бесплатный менеджер личных финансов с открытым исходным кодом. Он работает локально, синхронизируется через собственный сервер и поддерживает сквозное шифрование. Разберем его возможности, ограничения и установку на VPS.
Actual Budget за семь шагов
- Создать Linux VPS и направить на него поддомен, например
budget.example.com. - Установить Docker и Docker Compose.
- Запустить официальный контейнер с постоянным каталогом данных.
- Подключить HTTPS через Caddy.
- Установить пароль сервера и создать бюджет.
- Добавить счета, категории, правила и регулярные платежи.
- Включить шифрование и настроить внешний бэкап.
Что такое 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 enable2. Установите 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-plugin3. Запустите 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 ГБ.
