← Все гайды AI Release
EN Подписаться на @ai_release1

Как вести семейный бюджет на своём сервере: установка Actual Budget и синхронизация с Android

Обновлено: 14.10.2026 · AI Release · @ai_release1
Как вести семейный бюджет на своём сервере: установка Actual Budget и синхронизация с Android

Семейный бюджет в чужом облаке — это чужие серверы, чужие правила и подписка, которую однажды поднимут в цене. Этот гайд решает другую задачу: поставить Actual Budget — открытое приложение для учёта личных и семейных финансов — на собственный сервер и синхронизировать его с Android-телефоном, чтобы транзакции, счета и категории лежали у вас, а не у вендора. Подойдёт для любого Linux-сервера с Docker (домашний мини-ПК, NAS, VPS или просто постоянно включённый компьютер), веб-интерфейса в браузере на ПК и приложения Actual на Android. Никаких особых версий ОС не требуется — нужен лишь Docker и открытый порт.

Требования и подготовка

Иллюстрация к разделу «Требования и подготовка»
Иллюстрация к разделу «Требования и подготовка»

Пример:чек-лист перед первым запуском.

Пошаговая инструкция

Иллюстрация к разделу «Пошаговая инструкция»
Иллюстрация к разделу «Пошаговая инструкция»

1. Установите Docker и Compose. На Debian/Ubuntu это делается пакетами из репозитория:

sudo apt update
sudo apt install -y docker.io docker-compose-plugin
sudo systemctl enable --now docker
docker --version

Ожидаемый результат: вывод вида `Docker version 27.x.x, build ...` — номер версии у вас будет свой. Почему это работает: пакет ставит движок контейнеров и включает службу, чтобы контейнеры поднимались сами после перезагрузки сервера.

2. Создайте каталог и файл описания запуска:

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

Вставьте в файл:

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

Ожидаемый результат: файл `docker-compose.yml` сохранён в `~/actual`. Разбор: `image` — готовый образ сервера Actual; `ports` — какой порт сервера виден снаружи; `volumes` — куда сохраняются данные бюджета; `restart: unless-stopped` — сервер сам поднимется после сбоя или перезагрузки.

3. Запустите контейнер и посмотрите логи:

docker compose up -d
docker compose logs -f actual

Ожидаемый результат: в логах строка про прослушивание порта (например, `Listening on 0.0.0.0:5006`), а `docker compose ps` показывает статус `running`. Выход из логов — `Ctrl+C`, контейнер при этом продолжает работать. Если строки нет, а есть ошибка — она будет видна тут же, читайте её текст.

4. Проверьте веб-интерфейс с ПК в той же сети. Узнать IP сервера можно командой `ip a`, дальше откройте `http://IP-сервера:5006`.

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

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

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

6. Выставьте сервер наружу через домен и HTTPS. Пример минимального конфига Caddy:

budget.example.com {
    reverse_proxy 127.0.0.1:5006
}

Ожидаемый результат: `https://budget.example.com` открывает тот же интерфейс, что и локальный адрес. Почему так: обратный прокси принимает защищённое соединение и передаёт запрос контейнеру — мобильное приложение за пределами домашней сети подключается к вашему серверу именно так.

7. Подключите Android. Установите приложение Actual, укажите URL сервера (например, `https://budget.example.com`), логин и пароль, затем пароль шифрования. Дождитесь первой синхронизации.

Ожидаемый результат: в приложении появился тот же бюджет, счета и категории, что и на ПК. Если приложение пишет об ошибке соединения — проверьте домен и HTTPS (раздел ниже).

8. Проверьте синхронизацию в обе стороны. Добавьте тестовую транзакцию в приложении, дождитесь окончания синхронизации и обновите веб-интерфейс на ПК.

Ожидаемый результат: транзакция появилась в веб-версии. То же самое в обратную сторону: правка на ПК видна на телефоне после синхронизации.

Возможные проблемы и решения

Иллюстрация к разделу «Возможные проблемы и решения»
Иллюстрация к разделу «Возможные проблемы и решения»

FAQ

Нужен ли домен и HTTPS, если бюджет нужен только дома?

Нет. Внутри домашней сети достаточно адреса `http://IP-сервера:5006`. Домен и HTTPS нужны, если вы хотите синхронизировать бюджет с телефона через мобильный интернет или из другого места.

Что будет, если сервер выключится или сломается?

Синхронизация просто приостановится, ничего не потеряется мгновенно: данные лежат в томе `./actual-data` рядом с файлом `docker-compose.yml`. Настройте регулярное копирование этого каталога — тогда восстановление сведётся к возврату папки на место и повторному `docker compose up -d`.

Можно ли вести один бюджет на несколько человек?

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

Можно ли поднять сервер прямо на Android-телефоне, без отдельного ПК?

Технически — да, для этого есть окружение Linux на телефоне без root. Пошаговые варианты разобраны в гайде Как запустить Linux на Android без root: Termux, PRoot и ИИ-инструменты. Практический минус: сервер должен быть включён постоянно, поэтому для семейного бюджета удобнее отдельный мини-ПК или VPS.

Как проверить приложение на Android, если телефона под рукой нет?

Разверните Android-окружение на компьютере: эмулятор или Waydroid запускают Android-приложения на ПК, и приложение Actual можно поставить и протестировать там. Сравнение подходов — в гайде [Как запускать Android-приложения и игры на ПК: эмуляторы, Waydroid и облачные сервисы](https://ai-release.org/guides/kak-zapuskat-android-prilozheniya-i-igry-na-pk-emuly

Глубокое погружение

🤖 Кратко для ИИ