projects: модуль проектов с шагами по отделам и Task.
Шаблоны/ручное создание, access_projects, сид «Открытие аптеки». Плюс SILO/S3 для Django media. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -15,8 +15,9 @@
|
||||
|
||||
- **Traefik** терминирует TLS и проксирует на LXC по HTTP с заголовком `X-Forwarded-Proto: https`
|
||||
(`production.py` уже настроен на `SECURE_PROXY_SSL_HEADER`).
|
||||
- **nginx внутри LXC** отдаёт `/static/` и `/media/`, остальное проксирует в gunicorn.
|
||||
- **nginx внутри LXC** отдаёт `/static/` (и `/media/` только пока media на локальном диске).
|
||||
- **PostgreSQL** и **Redis** — отдельные сервисы (могут быть на других хостах).
|
||||
- **SILO (S3)** — опционально: Django media + primary store Nextcloud; см. [silo.md](silo.md).
|
||||
|
||||
---
|
||||
|
||||
@@ -252,6 +253,7 @@ server {
|
||||
client_max_body_size 110m; # аплоады до 100 МБ (документы)
|
||||
|
||||
location /static/ { alias /opt/acore/app/staticfiles/; access_log off; expires 30d; }
|
||||
# При SILO (S3_ENDPOINT в .env) /media/ с диска не нужен — URL подписанные.
|
||||
location /media/ { alias /opt/acore/app/media/; access_log off; }
|
||||
|
||||
location / {
|
||||
@@ -284,6 +286,8 @@ TLS-termination + редирект на HTTPS. Убедитесь, что Traefi
|
||||
- **Mattermost** — bot-токен + `MATTERMOST_SLASH_COMMAND_TOKEN`/`INTERACTIVE_TOKEN` в `.env`.
|
||||
Команды: `create_mattermost_bot`, `import_mattermost_teams/channels`, `sync_users_to_teams`.
|
||||
- **Nextcloud** — `ConnectorConfig(nextcloud)`: host/логин/пароль сервисного аккаунта (WebDAV).
|
||||
Файлы NC лучше держать в SILO (primary object store) — [silo.md](silo.md).
|
||||
- **SILO / media** — при `S3_ENDPOINT` + ключах в `.env` фото и прочий `MEDIA` пишутся в бакет `acore-media`; nginx `/media/` с диска не нужен.
|
||||
- **OnlyOffice** (`ConnectorConfig(onlyoffice)`):
|
||||
- `host/port/use_ssl` → публичный URL Document Server (браузер грузит `api.js`);
|
||||
- **«Токен»** = `JWT_SECRET` Document Server (`JWT_ENABLED=true`, `JWT_HEADER=Authorization`);
|
||||
@@ -308,7 +312,7 @@ cd /opt/acore/app
|
||||
```
|
||||
- [ ] `https://portal.example.local/` открывается, редирект c http на https работает;
|
||||
- [ ] логин, принудительная 2FA у staff;
|
||||
- [ ] `/static/` и `/media/` отдаёт nginx (не 404);
|
||||
- [ ] `/static/` отдаёт nginx; `/media/` — nginx **или** подписанные URL SILO (см. [silo.md](silo.md));
|
||||
- [ ] `systemctl status acore-web acore-celery acore-celery-beat` — все `active (running)`;
|
||||
- [ ] `redis-cli -a … -n 1 dbsize` растёт при попытках логина (кэш-троттлинг жив);
|
||||
- [ ] загрузка документа в аптеке и открытие в OnlyOffice → правка сохраняется в Nextcloud.
|
||||
|
||||
Reference in New Issue
Block a user