# ERP WaterSurf Веб-приложение класса ERP для компании WaterSurf: справочники, документы (заказы клиентов и поставщикам, поступления/перемещения/расход денежных средств), авторизация пользователей. ## Требования - Docker и Docker Compose - Доступ к порту 8010 на localhost (для reverse proxy) ## Установка и настройка ```bash cd /opt/watersurf-erp cp .env.example .env # Отредактировать .env: пароли, SECRET_KEY, ALLOWED_HOSTS docker compose up -d db docker compose run --rm app python manage.py migrate --noinput docker compose run --rm app python manage.py createsuperuser # первый пользователь docker compose up -d app ``` ## Конфигурация Переменные в `.env` (см. `.env.example`): - `POSTGRES_*` — учётные данные PostgreSQL для контейнера db - `DB_*` — подключение приложения к БД - `SECRET_KEY` — секрет Django (не менее 50 символов) - `ALLOWED_HOSTS` — через запятую (например `erp.gen7x.ru,localhost`) - `DEBUG` — true/false - `REQUIRE_LOGIN` — по умолчанию `false`: доступ без входа (для отладки); `true` — включить авторизацию ## Использование - Веб-интерфейс: после настройки Nginx — https://erp.gen7x.ru/ - Вход по логину/паролю (пользователи Django). При `REQUIRE_LOGIN=false` доступ без входа (для отладки). - Меню: Справочники (валюты, виды заказов, клиенты, организации, поставщики, сотрудники, счета, товары), Документы (заказы клиентов, заказы поставщику, поступления, перемещения, расходы). - Поле «Автор» в документах подставляется из профиля пользователя (связь User → Сотрудник в разделе «Пользователи» / админка). ## Структура проекта - `app/config/` — настройки Django - `app/references/` — справочники (модели, админка, CRUD) - `app/documents/` — документы (модели, формы, представления, автогенерация номера) - `app/users/` — профиль пользователя (связь с сотрудником) - `app/templates/` — шаблоны - `manage.py` — точка входа для команд Django ## Docker Compose - Сервис `db`: PostgreSQL 16, volume `watersurf_erp_data` - Сервис `app`: Django + Gunicorn, порт 8010:8000 Запуск: `./manage.sh start` или `docker compose up -d` Остановка: `./manage.sh stop` Логи: `./manage.sh logs app` ## Volumes - `watersurf_erp_data` — данные PostgreSQL. Добавлен в `/opt/gen7x/backup/include-volumes.txt` для бэкапа. ## Логирование - Логи приложения: stdout контейнера; при наличии каталога `app/logs` — также в `app/logs/app.log`. - Просмотр: `docker compose logs -f app` ## Резервное копирование и восстановление - Volume БД включён в список бэкапов платформы Gen7x. Восстановление — по инструкции платформы (restore.sh и т.д.). ## Troubleshooting - Ошибка подключения к БД: проверить, что контейнер `db` запущен и переменные `DB_*` в `.env` совпадают с `POSTGRES_*`. - 502 от Nginx: проверить, что приложение слушает на 8010 (`docker compose ps`, `docker compose logs app`). - После добавления полей в модели: `docker compose run --rm app python manage.py makemigrations && docker compose run --rm app python manage.py migrate`. ## Команды управления - Запуск: `./manage.sh start` - Остановка: `./manage.sh stop` - Перезапуск: `./manage.sh restart` - Логи: `./manage.sh logs [service]` ## Git и пуш Репозиторий: https://git.gen7x.ru/cursor-agent/watersurf-erp (клонирование по SSH: `git@git.gen7x.ru:cursor-agent/watersurf-erp.git`). На сервере настроен SSH-доступ к Gitea (ключ cursor-agent, см. `/root/docs/secrets/mysecrets.md`), поэтому с этого сервера можно выполнять `git push` и `git pull` без ввода пароля.