319f38ea0533ac411cf1cc40d9136f1546ed9232
Made-with: Cursor
ERP WaterSurf
Веб-приложение класса ERP для компании WaterSurf: справочники, документы (заказы клиентов и поставщикам, поступления/перемещения/расход денежных средств), авторизация пользователей.
Требования
- Docker и Docker Compose
- Доступ к порту 8010 на localhost (для reverse proxy)
Установка и настройка
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 для контейнера dbDB_*— подключение приложения к БДSECRET_KEY— секрет Django (не менее 50 символов)ALLOWED_HOSTS— через запятую (напримерerp.gen7x.ru,localhost)DEBUG— true/falseREQUIRE_LOGIN— по умолчаниюfalse: доступ без входа (для отладки);true— включить авторизацию
Использование
- Веб-интерфейс: после настройки Nginx — https://erp.gen7x.ru/
- Вход по логину/паролю (пользователи Django). При
REQUIRE_LOGIN=falseдоступ без входа (для отладки). - Меню: Справочники (валюты, виды заказов, клиенты, организации, поставщики, сотрудники, счета, товары), Документы (заказы клиентов, заказы поставщику, поступления, перемещения, расходы).
- Поле «Автор» в документах подставляется из профиля пользователя (связь User → Сотрудник в разделе «Пользователи» / админка).
Структура проекта
app/config/— настройки Djangoapp/references/— справочники (модели, админка, CRUD)app/documents/— документы (модели, формы, представления, автогенерация номера)app/users/— профиль пользователя (связь с сотрудником)app/templates/— шаблоныmanage.py— точка входа для команд Django
Docker Compose
- Сервис
db: PostgreSQL 16, volumewatersurf_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 без ввода пароля.
Description
Languages
Python
51.3%
HTML
36.1%
CSS
12%
Dockerfile
0.3%
Shell
0.3%