Skip to content
zirocool93Public

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

RodCom

RodCom - self-hosted PWA-сервис для родительского комитета: учет добровольных сборов, платежей, расходов, чеков, отчетов и уведомлений через Telegram-бота.

Стек

  • Backend: Django + Django REST Framework
  • Frontend: Vue 3 + Vite + TypeScript + PWA
  • База данных: PostgreSQL 17
  • Очереди: Redis + Celery + Celery Beat
  • Telegram Bot: aiogram 3 с поддержкой SOCKS5 proxy
  • Deploy: Docker Compose на Ubuntu 24.04 LXC в Proxmox
  • Reverse proxy: Nginx

Быстрый запуск на сервере

git clone https://github.com/zirocool93/rodcom.git /opt/rodcom
cd /opt/rodcom
cp .env.example .env
nano .env
bash deploy/scripts/install.sh

После запуска приложение будет доступно через Nginx на порту 80.

Автоматическая установка или обновление с GitHub

На чистом Ubuntu 24.04 сервере можно запустить один standalone-скрипт:

curl -fsSL https://raw.githubusercontent.com/zirocool93/rodcom/main/deploy/scripts/server.sh | sudo bash

Повторный запуск этой же команды обновит проект из ветки main, пересоберет контейнеры, применит миграции и проверит /api/v1/health.

При первичной установке скрипт запросит логин и пароль администратора. После завершения он выведет адрес панели и Django admin.

Дополнительные варианты:

# Установить или обновить в другой каталог
curl -fsSL https://raw.githubusercontent.com/zirocool93/rodcom/main/deploy/scripts/server.sh | sudo env APP_DIR=/srv/rodcom bash

# Обновить без backup перед обновлением
curl -fsSL https://raw.githubusercontent.com/zirocool93/rodcom/main/deploy/scripts/server.sh | sudo env BACKUP_BEFORE_UPDATE=false bash -s -- update

# Передать администратора без интерактивного ввода
curl -fsSL https://raw.githubusercontent.com/zirocool93/rodcom/main/deploy/scripts/server.sh | sudo env ADMIN_LOGIN=admin ADMIN_PASSWORD='change-this-password' bash

# Принудительно обновить пароль администратора на существующей установке
curl -fsSL https://raw.githubusercontent.com/zirocool93/rodcom/main/deploy/scripts/server.sh | sudo env FORCE_ADMIN_SETUP=true bash -s -- update

# Показать состояние сервисов
sudo APP_DIR=/opt/rodcom bash /opt/rodcom/deploy/scripts/server.sh status

Локальный запуск через Docker Compose

cp .env.example .env
docker compose up --build -d
docker compose exec backend python manage.py migrate
docker compose exec backend python manage.py createsuperuser

Проверка:

curl http://localhost/api/v1/health
curl http://localhost/api/v1/health/db
curl http://localhost/api/v1/health/redis

Обновление

cd /opt/rodcom
bash deploy/scripts/update.sh

Скрипт делает резервную копию перед обновлением, подтягивает код, пересобирает контейнеры, применяет миграции и проверяет health endpoint.

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

bash deploy/scripts/backup.sh

Архивы сохраняются в BACKUP_DIR, по умолчанию /backups.

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

bash deploy/scripts/restore.sh /backups/rodcom-YYYYmmdd-HHMMSS.tar.gz

Подробная инструкция находится в RESTORE.md.

Текущее состояние

Готов MVP-скелет: структура backend/frontend/bot, Docker Compose, Nginx, health endpoints, PWA-оболочка, Telegram bot-заготовка, скрипты установки, обновления, backup и restore.

Следующий этап: реализовать модели БД, миграции, API для цепочки «Класс -> Семьи -> Сбор -> Начисления -> Платеж -> Подтверждение -> Расход -> Баланс -> Отчет».

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages