Ignidash — симулятор личных финансов в облаке

Открытая альтернатива ProjectionLab для симуляции долгосрочных финансов. Полный гайд по установке и настройке Ignidash в Docker для вашего homelab.

Не указано
Алексей Кузнецов
Алексей Кузнецов
Системный администратор24 января 2026 г.

Обновление системы и установка зависимостей

Сначала обновите пакетные менеджеры и установите необходимые пакеты для работы Docker и Git.

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git docker.io docker-compose

Запуск и настройка Docker

Запустите службу Docker и добавьте текущего пользователя в группу docker, чтобы избежать использования sudo.

sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker

Клонирование репозитория Ignidash

Скачайте исходный код приложения с GitHub.

git clone https://github.com/ignidash/ignidash.git
cd ignidash

Создание конфигурационного файла

Создайте файл docker-compose.yml с конфигурацией для запуска Ignidash и (опционально) базы данных PostgreSQL.

version: '3.8'

services:
  app:
    image: ignidash/ignidash:latest
    container_name: ignidash
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - ./data:/app/data
      - ./config:/app/config
    environment:
      - NODE_ENV=production
      - DATA_DIR=/app/data
      - CONFIG_DIR=/app/config
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3

  postgres:
    image: postgres:15-alpine
    container_name: ignidash-postgres
    restart: unless-stopped
    environment:
      POSTGRES_DB: ignidash
      POSTGRES_USER: ignidash
      POSTGRES_PASSWORD: your_secure_password_here
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:
      - "5432:5432"

volumes:
  postgres_data:

Запуск приложения

Запустите контейнеры в фоновом режиме и проверьте логи для отслеживания статуса.

docker-compose up -d
docker-compose logs -f

Проверка доступности

Откройте веб-браузер и перейдите по адресу localhost:3000 для проверки работы интерфейса.

http://localhost:3000

Настройка доступа по сети и HTTPS

Для доступа с других устройств измените порт или настройте обратный прокси (Nginx) с SSL-сертификатом Let's Encrypt для безопасного доступа извне.

sudo ufw allow 3000/tcp
sudo certbot --nginx -d your-domain.com

Настройка резервного копирования

Создайте скрипт для автоматического бэкапа данных и настройте его выполнение по расписанию через cron.

#!/bin/bash
BACKUP_DIR="/path/to/backups/ignidash"
DATE=$(date +%Y%m%d_%H%M%S)
tar -czf $BACKUP_DIR/backup_$DATE.tar.gz ./data ./config
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +30 -delete

Ignidash — открытая альтернатива ProjectionLab для симуляции личных финансов

Ignidash dashboard

Примечание: статья не является официальной документацией Ignidash. Инструкции актуальны на момент написания.

Введение

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

Основные преимущества:

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

Системные требования

Минимальные требования

CPU: 2 ядра (x86_64/arm64)
RAM: 1 ГБ
Дисковое пространство: 500 МБ
OS: Linux, macOS, Windows (через Docker)

Рекомендуемые требования

CPU: 4 ядра
RAM: 2-4 ГБ
Дисковое пространство: 2 ГБ

Подготовка окружения

Вариант 1: Установка на Linux (рекомендуется)

1. Обновление системы

sudo apt update && sudo apt upgrade -y  # Ubuntu/Debian
# или
sudo dnf update -y                     # Fedora

2. Установка зависимостей

# Ubuntu/Debian
sudo apt install -y curl git docker.io docker-compose

# Fedora
sudo dnf install -y curl git docker docker-compose

3. Запуск Docker (если не запущен)

sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker  # Перезапустите терминал или выйдите/войдите

Вариант 2: Установка на Windows

1. Установка WSL2 и Docker Desktop

# В PowerShell (от администратора)
wsl --install
wsl --set-default-version 2

2. Установите Docker Desktop из официального сайта

3. Проверка установки

docker --version
docker-compose --version

Вариант 3: Установка на macOS

1. Установка Homebrew (если нет)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. Установка Docker

brew install --cask docker

Основная установка через Docker

Шаг 1: Клонирование репозитория

git clone https://github.com/ignidash/ignidash.git
cd ignidash

Шаг 2: Конфигурация

Создайте файл docker-compose.yml или используйте готовый шаблон:

version: '3.8'

services:
  app:
    image: ignidash/ignidash:latest
    container_name: ignidash
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - ./data:/app/data
      - ./config:/app/config
    environment:
      - NODE_ENV=production
      - DATA_DIR=/app/data
      - CONFIG_DIR=/app/config
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3

  # Опционально: PostgreSQL для продакшн
  postgres:
    image: postgres:15-alpine
    container_name: ignidash-postgres
    restart: unless-stopped
    environment:
      POSTGRES_DB: ignidash
      POSTGRES_USER: ignidash
      POSTGRES_PASSWORD: your_secure_password_here
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:
      - "5432:5432"

volumes:
  postgres_data:

Шаг 3: Запуск

# Запуск в фоновом режиме
docker-compose up -d

# Просмотр логов
docker-compose logs -f

Шаг 4: Проверка работы

Откройте в браузере: http://localhost:3000

Должен отобразиться интерфейс Ignidash.

Ручная установка (без Docker)

Шаг 1: Установка Node.js

Linux/macOS:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs  # Ubuntu/Debian

Windows: Скачайте с nodejs.org и установите LTS версию.

Шаг 2: Клонирование репозитория

git clone https://github.com/ignidash/ignidash.git
cd ignidash

Шаг 3: Установка зависимостей

npm ci --only=production
# или
npm install --production

Шаг 4: Конфигурация

Создайте файл конфигурации .env:

NODE_ENV=production
PORT=3000
DATA_DIR=./data
CONFIG_DIR=./config
DB_TYPE=sqlite  # или postgres для продакшн

Шаг 5: Запуск

node server.js

Первоначальная настройка

1. Доступ по IP-адресу (для сетевых устройств)

Если вы хотите получить доступ с других устройств в сети:

# Для Docker
# Измените порт в docker-compose.yml:
ports:
  - "3000:3000"  # 3000:3000 означает: хост:контейнер

# Для ручной установки
# Запуск с указанием хоста
NODE_ENV=production HOST=0.0.0.0 node server.js

2. Настройка HTTPS (рекомендуется для удаленного доступа)

Вариант A: Использование обратного прокси (Nginx)

# /etc/nginx/sites-available/ignidash
server {
    listen 80;
    server_name your-domain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name your-domain.com;

    ssl_certificate /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Вариант B: Использование Let's Encrypt (Certbot)

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com

3. Настройка базы данных

Для SQLite (по умолчанию):

  • Данные автоматически сохраняются в файле в директории ./data/
  • Для переноса данных скопируйте содержимое папки ./data

Для PostgreSQL (рекомендуется для продакшн):

  1. Создайте файл docker-compose.yml с PostgreSQL (см. выше)
  2. Или настройте соединение в .env:
DB_TYPE=postgres
DB_HOST=localhost
DB_PORT=5432
DB_NAME=ignidash
DB_USER=ignidash
DB_PASSWORD=your_secure_password
  1. Инициализируйте базу:
npm run db:init

Защита данных

1. Резервное копирование

Создание backup скрипта (Linux/macOS):

#!/bin/bash
BACKUP_DIR="/path/to/backups/ignidash"
DATE=$(date +%Y%m%d_%H%M%S)

# Для Docker
docker-compose exec app tar -czf /tmp/backup_$DATE.tar.gz /app/data

# Для ручной установки
tar -czf $BACKUP_DIR/backup_$DATE.tar.gz ./data ./config

# Удаление старых backup (>30 дней)
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +30 -delete

2. Шифрование backup

# Шифрование
gpg --cipher-algo AES256 --compress-algo 1 --symmetric --output backup.gpg backup.tar.gz

# Расшифровка
gpg --decrypt --output backup.tar.gz backup.gpg

3. Хранение backup

Варианты:

  • Локально: внешний HDD
  • Облако: rclone, rsync
  • Сторонние сервисы: Backblaze B2, Wasabi

Обновление Ignidash

1. Обновление через Docker

# Обновление образов
docker-compose pull

# Пересборка и запуск
docker-compose up -d --build

# Удаление старых образов (опционально)
docker image prune -f

2. Обновление ручной установки

# 1. Создайте backup
tar -czf backup_pre_update.tar.gz ./data ./config

# 2. Обновите репозиторий
git pull origin main

# 3. Обновите зависимости
npm ci --only=production

# 4. Запустите миграции базы данных (если есть)
npm run db:migrate

# 5. Перезапустите приложение
pm2 restart ignidash  # если используете pm2
# или
node server.js

3. Запись изменений в journal для отслеживания версий

echo "$(date): Updated to $(git rev-parse HEAD)" >> update_history.txt

Устранение неполадок

Проблема 1: Порт 3000 занят

Решение:

# Найдите процесс, использующий порт
sudo lsof -i :3000
# или
sudo netstat -tulpn | grep :3000

# Остановите процесс
sudo kill -9 [PID]

# Измените порт в конфигурации
# Docker: измените порт в docker-compose.yml
# Ручная: PORT=3001 node server.js

Проблема 2: Docker container не запускается

Проверка логов:

docker logs ignidash
docker-compose logs app

Типичные решения:

# Пересборка контейнера
docker-compose build --no-cache

# Удаление volume и перезапуск
docker-compose down -v
docker-compose up -d

Проблема 3: Данные не сохраняются

Проверка прав доступа:

# Для Docker
ls -la ./data
chmod 755 ./data

# Для ручной установки
# Убедитесь, что директория data существует и доступна для записи
mkdir -p data config

Проблема 4: Проблемы с сетью (доступ с других устройств)

Проверка firewall:

# Ubuntu/Debian
sudo ufw allow 3000/tcp

# Fedora
sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --reload

Проблема 5: Ошибки npm при установке

Очистка кеша:

npm cache clean --force
rm -rf node_modules package-lock.json
npm install

Дополнительные настройки

1. Использование PM2 для продакшн (рекомендуется для ручной установки)

npm install -g pm2

# Запуск приложения
NODE_ENV=production PORT=3000 pm2 start server.js --name ignidash

# Автозапуск при старте системы
pm2 startup
# и выполните команду, которую выведет pm2
pm2 save

# Мониторинг
pm2 monit
pm2 logs ignidash

2. Настройка email уведомлений (если поддерживается)

Создайте файл .env:

SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password
FROM_EMAIL=ignidash@yourdomain.com

3. Регистрация пользователей

Если вы планируете несколько пользователей:

REGISTRATION_ENABLED=true
MAX_USERS=10

4. Кастомизация интерфейса

Создайте файл ./config/custom.css:

/* Пример кастомизации */
:root {
    --primary-color: #2c3e50;
    --accent-color: #3498db;
}

Бэкап и восстановление

Создание backup

Для Docker:

# Создание архива
docker-compose exec app tar -czf /tmp/backup_$(date +%Y%m%d).tar.gz /app/data

# Копирование на хост
docker cp ignidash:/tmp/backup_$(date +%Y%m%d).tar.gz ./backup/

Для ручной установки:

tar -czf backup_$(date +%Y%m%d).tar.gz ./data ./config

Восстановление из backup

# Остановите приложение
docker-compose down

# Очистите текущие данные
rm -rf ./data/*

# Распакуйте backup
tar -xzf backup_20240101.tar.gz -C ./

# Запустите приложение
docker-compose up -d

Автоматический backup (cron)

# Добавьте в crontab (crontab -e)
0 2 * * * /path/to/backup_script.sh

Заключение

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

Ключевые рекомендации:

  1. Для большинства пользователей рекомендуется Docker-установка — это самый простой и стабильный способ.
  2. Всегда создавайте backup перед обновлением.
  3. Для удаленного доступа обязательно настройте HTTPS.
  4. Регулярно проверяйте обновления безопасности.

Если вы столкнулись с проблемами, всегда смотрите логи:

# Docker
docker-compose logs

# Ручная установка
tail -f /var/log/ignidash.log

Ссылки


Автор: Инженер инфраструктуры и технический писатель
Дата публикации: 2024
Версия документа: 1.0
Статус: Проверено на Linux (Ubuntu 22.04), Docker 24.0.6

Поделиться:TelegramX / TwitterVK