Ignidash — симулятор личных финансов в облаке
Открытая альтернатива ProjectionLab для симуляции долгосрочных финансов. Полный гайд по установке и настройке Ignidash в Docker для вашего homelab.
Обновление системы и установка зависимостей
Сначала обновите пакетные менеджеры и установите необходимые пакеты для работы 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 -deleteIgnidash — открытая альтернатива ProjectionLab для симуляции личных финансов
Примечание: статья не является официальной документацией 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 (рекомендуется для продакшн):
- Создайте файл
docker-compose.ymlс PostgreSQL (см. выше) - Или настройте соединение в
.env:
DB_TYPE=postgres
DB_HOST=localhost
DB_PORT=5432
DB_NAME=ignidash
DB_USER=ignidash
DB_PASSWORD=your_secure_password
- Инициализируйте базу:
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 — мощное, гибкое решение для управления личными финансами. Его установка требует базовых знаний системного администрирования, но результат полностью оправдывает усилия.
Ключевые рекомендации:
- Для большинства пользователей рекомендуется Docker-установка — это самый простой и стабильный способ.
- Всегда создавайте backup перед обновлением.
- Для удаленного доступа обязательно настройте HTTPS.
- Регулярно проверяйте обновления безопасности.
Если вы столкнулись с проблемами, всегда смотрите логи:
# Docker
docker-compose logs
# Ручная установка
tail -f /var/log/ignidash.log
Ссылки
- Официальный репозиторий: https://github.com/ignidash/ignidash
- Документация: https://docs.ignidash.io
- Сообщество: https://discord.gg/ignidash
- Баг-трекер: https://github.com/ignidash/ignidash/issues
Автор: Инженер инфраструктуры и технический писатель
Дата публикации: 2024
Версия документа: 1.0
Статус: Проверено на Linux (Ubuntu 22.04), Docker 24.0.6