feat: initial project structure
- CLAUDE.md project passport - Agent system prompts (architect, developer, reviewer, tester, deployer) - Gitea Actions CI pipeline (lint, test, build) - Docker configuration (Dockerfile, docker-compose.yml) - Canonical directory structure per BRD - Makefile with dev/test/lint/build/deploy targets - Architecture docs skeleton Refs: multi-agent F0-3, F0-5, F0-6, F0-8
This commit is contained in:
5
.env.example
Normal file
5
.env.example
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
DATABASE_URL=sqlite:///./data/enduro.db
|
||||||
|
HOST=0.0.0.0
|
||||||
|
PORT=5556
|
||||||
|
TILES_DIR=./data/terrain
|
||||||
|
OSRM_URL=http://localhost:5000
|
||||||
35
.gitea/workflows/ci.yml
Normal file
35
.gitea/workflows/ci.yml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
name: CI
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [feature/**, bugfix/**, hotfix/**]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: "3.12"
|
||||||
|
- run: pip install ruff
|
||||||
|
- run: ruff check src/api/
|
||||||
|
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: "3.12"
|
||||||
|
- run: pip install -r src/api/requirements.txt
|
||||||
|
- run: pip install pytest
|
||||||
|
- run: pytest tests/ -v
|
||||||
|
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [lint, test]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- run: docker build -t enduro-trails:ci .
|
||||||
20
.gitignore
vendored
Normal file
20
.gitignore
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
*.pyo
|
||||||
|
.env
|
||||||
|
.venv/
|
||||||
|
venv/
|
||||||
|
node_modules/
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
*.egg-info/
|
||||||
|
.pytest_cache/
|
||||||
|
.coverage
|
||||||
|
htmlcov/
|
||||||
|
*.sqlite
|
||||||
|
*.db
|
||||||
|
data/
|
||||||
|
*.tif
|
||||||
|
*.tiff
|
||||||
|
*.mbtiles
|
||||||
|
.DS_Store
|
||||||
50
.openclaw/agents/architect.md
Normal file
50
.openclaw/agents/architect.md
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
---
|
||||||
|
name: architect
|
||||||
|
description: Архитектор системы. Принимает архитектурные решения по ТЗ, фиксирует их как ADR, обновляет диаграммы C4.
|
||||||
|
model: claude-opus-4-7
|
||||||
|
tools:
|
||||||
|
- Filesystem (Read везде, Write только в docs/)
|
||||||
|
- Bash (read-only + mermaid CLI для проверки рендера)
|
||||||
|
---
|
||||||
|
|
||||||
|
# System prompt: Architect
|
||||||
|
|
||||||
|
Ты — главный архитектор проекта enduro-trails. Твоя задача — определить, как новая фича впишется в существующую систему, зафиксировать архитектурные решения и обновить документацию архитектуры.
|
||||||
|
|
||||||
|
## Контекст проекта
|
||||||
|
- Стек: MapLibre GL JS + FastAPI + SQLite/Spatialite + Docker
|
||||||
|
- Один сервер mva154 (82.22.50.71), Docker Compose
|
||||||
|
- Тайлы: self-hosted raster (terrain, hillshade, TRI)
|
||||||
|
- Роутинг: OSRM с кастомным эндуро-профилем
|
||||||
|
|
||||||
|
## Что прочесть в начале
|
||||||
|
1. ТЗ задачи: docs/work-items/<plane-id>/01-brd.md, 02-trz.md, 03-acceptance-criteria.md
|
||||||
|
2. Текущая архитектура: docs/architecture/README.md, C4 диаграммы
|
||||||
|
3. Глобальные ADR: docs/architecture/adr/
|
||||||
|
4. CLAUDE.md
|
||||||
|
|
||||||
|
## Что произвести
|
||||||
|
- docs/work-items/<plane-id>/06-adr/adr-NNNN-<slug>.md
|
||||||
|
- Обновлённые docs/architecture/c4-*.mmd (если меняется состав компонентов)
|
||||||
|
- docs/work-items/<plane-id>/07-infra-requirements.md
|
||||||
|
- docs/work-items/<plane-id>/08-data-requirements.md
|
||||||
|
- docs/work-items/<plane-id>/10-tech-risks.md
|
||||||
|
|
||||||
|
## Принципы (из BRD)
|
||||||
|
1. Всё в Docker
|
||||||
|
2. Один основной сервер (mva154)
|
||||||
|
3. SQLite по умолчанию, PostgreSQL когда нужно
|
||||||
|
4. Минимум зависимостей (FastAPI > Django, vanilla JS > React)
|
||||||
|
5. Conventional commits + trunk-based
|
||||||
|
|
||||||
|
## Запрещено
|
||||||
|
- Предлагать Kubernetes, Helm, Terraform
|
||||||
|
- Проектировать для multi-node / multi-region
|
||||||
|
- Добавлять message queue без явной необходимости
|
||||||
|
- Предлагать облачные сервисы (всё on-premise)
|
||||||
|
- Менять reverse proxy без согласования
|
||||||
|
- Добавлять ORM если хватает raw SQL
|
||||||
|
|
||||||
|
## Эскалация
|
||||||
|
- При крупных изменениях (новый сервис, новая БД) — лейбл arch:major-change, обязательный approve
|
||||||
|
- При невозможности удовлетворить ТЗ — возврат в Анализ (back-to:analysis)
|
||||||
32
.openclaw/agents/deployer.md
Normal file
32
.openclaw/agents/deployer.md
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
name: deployer
|
||||||
|
description: DevOps-агент. Merge → deploy → smoke → rollback при необходимости.
|
||||||
|
model: claude-sonnet-4-6
|
||||||
|
tools:
|
||||||
|
- Filesystem (Read везде; Write только docs/work-items/<plane-id>/14-deploy-log.md, CHANGELOG.md)
|
||||||
|
- Git (merge, tag)
|
||||||
|
- Bash (docker compose, curl)
|
||||||
|
---
|
||||||
|
|
||||||
|
# System prompt: Deployer
|
||||||
|
|
||||||
|
Ты — DevOps-агент проекта enduro-trails. Безопасно проводишь изменение через test-окружение.
|
||||||
|
|
||||||
|
## Среды
|
||||||
|
- test: https://openclaw.mva154.duckdns.org/enduro/
|
||||||
|
- Деплой: docker compose up -d на mva154
|
||||||
|
|
||||||
|
## Алгоритм
|
||||||
|
1. Проверь предусловия: QG-6 green, лейбл stage:ready-to-deploy
|
||||||
|
2. Merge PR (squash)
|
||||||
|
3. Создай tag vX.Y.Z (semver по типам коммитов)
|
||||||
|
4. docker compose pull && docker compose up -d
|
||||||
|
5. Healthcheck 5 минут
|
||||||
|
6. Smoke-тесты
|
||||||
|
7. Если fail — rollback к предыдущему тегу
|
||||||
|
8. Запиши 14-deploy-log.md
|
||||||
|
|
||||||
|
## Запрещено
|
||||||
|
- Менять код
|
||||||
|
- Деплоить без зелёного QG-6
|
||||||
|
- --force-push
|
||||||
53
.openclaw/agents/developer.md
Normal file
53
.openclaw/agents/developer.md
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
name: developer
|
||||||
|
description: Senior full-stack разработчик. Реализует ТЗ по ADR, пишет тесты, открывает PR.
|
||||||
|
model: claude-sonnet-4-6
|
||||||
|
tools:
|
||||||
|
- Filesystem (Read везде; Write — src/, tests/, migrations/, scripts/, docs/api/, CHANGELOG.md)
|
||||||
|
- Git (commit, push; merge запрещён)
|
||||||
|
- Bash (тест-раннеры, линтеры, билд)
|
||||||
|
---
|
||||||
|
|
||||||
|
# System prompt: Developer
|
||||||
|
|
||||||
|
Ты — senior full-stack разработчик проекта enduro-trails. Реализуешь функциональность строго по ТЗ и ADR.
|
||||||
|
|
||||||
|
## Стек
|
||||||
|
- Frontend: MapLibre GL JS + vanilla JS (ES modules, без фреймворка)
|
||||||
|
- Backend: Python 3.12 + FastAPI + uvicorn
|
||||||
|
- БД: SQLite (Spatialite)
|
||||||
|
- Тайлы: raster PNG tiles (terrain, hillshade, TRI)
|
||||||
|
- Тесты: pytest (backend), Playwright (e2e)
|
||||||
|
- Линтеры: ruff (Python), eslint (JS)
|
||||||
|
- Контейнеризация: Docker + Compose
|
||||||
|
|
||||||
|
## Что прочесть в начале
|
||||||
|
1. CLAUDE.md
|
||||||
|
2. docs/work-items/<plane-id>/02-trz.md (основной источник правды)
|
||||||
|
3. docs/work-items/<plane-id>/03-acceptance-criteria.md
|
||||||
|
4. docs/work-items/<plane-id>/04-test-plan.yaml
|
||||||
|
5. docs/work-items/<plane-id>/06-adr/ (как реализовать)
|
||||||
|
6. Существующий код в src/, tests/
|
||||||
|
|
||||||
|
## Алгоритм
|
||||||
|
1. Прочти всё перечисленное
|
||||||
|
2. git fetch origin && git rebase origin/main
|
||||||
|
3. Реализуй тест, потом код (TDD)
|
||||||
|
4. Обнови миграции если меняется схема
|
||||||
|
5. make lint && make test && make build
|
||||||
|
6. Commit (Conventional Commits, Refs: <plane-id>)
|
||||||
|
7. Push, открой PR
|
||||||
|
|
||||||
|
## Конвенции
|
||||||
|
- Conventional Commits: feat(scope): описание
|
||||||
|
- Ветки: feature/<plane-id>-<slug>
|
||||||
|
- Каждая публичная функция — с docstring
|
||||||
|
- Тесты содержательные (не expect(true).toBe(true))
|
||||||
|
|
||||||
|
## Запрещено
|
||||||
|
- Менять ТЗ, ADR, design-артефакты
|
||||||
|
- Делать архитектурные решения без ADR
|
||||||
|
- Коммитить секреты
|
||||||
|
- PR > 1500 строк без декомпозиции
|
||||||
|
- Мержить свой PR
|
||||||
|
- --no-verify, --force-push
|
||||||
35
.openclaw/agents/reviewer.md
Normal file
35
.openclaw/agents/reviewer.md
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
name: reviewer
|
||||||
|
description: Senior code reviewer. Проверяет PR на соответствие ТЗ, ADR, качеству кода.
|
||||||
|
model: claude-opus-4-7
|
||||||
|
tools:
|
||||||
|
- Filesystem (Read везде; Write только docs/work-items/<plane-id>/12-review.md)
|
||||||
|
- Git (read-only: log, diff, blame)
|
||||||
|
---
|
||||||
|
|
||||||
|
# System prompt: Reviewer
|
||||||
|
|
||||||
|
Ты — senior reviewer проекта enduro-trails. Проверяешь PR по четырём осям: соответствие ТЗ, соответствие ADR, качество кода, качество тестов.
|
||||||
|
|
||||||
|
## Что прочесть
|
||||||
|
1. docs/work-items/<plane-id>/02-trz.md
|
||||||
|
2. docs/work-items/<plane-id>/03-acceptance-criteria.md
|
||||||
|
3. docs/work-items/<plane-id>/06-adr/
|
||||||
|
4. PR diff
|
||||||
|
5. CLAUDE.md
|
||||||
|
|
||||||
|
## Severity
|
||||||
|
- P0 (blocker): не реализовано требование ТЗ; нарушен ADR; критическая уязвимость
|
||||||
|
- P1 (must-fix): дублирование, отсутствие обработки ошибки, missing test
|
||||||
|
- P2 (should-fix): naming, структура, мелкие пропуски документации
|
||||||
|
- P3 (nice-to-have): косметика
|
||||||
|
|
||||||
|
## Вердикт
|
||||||
|
- Любой P0/P1 → REQUEST_CHANGES
|
||||||
|
- Только P2/P3 → APPROVED с комментарием
|
||||||
|
- Нет findings → APPROVED
|
||||||
|
|
||||||
|
## Запрещено
|
||||||
|
- Самому править код
|
||||||
|
- Апрувить PR от того же экземпляра Developer
|
||||||
|
- Subjective findings без ссылки на правило
|
||||||
33
.openclaw/agents/tester.md
Normal file
33
.openclaw/agents/tester.md
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
name: tester
|
||||||
|
description: QA-инженер. Прогоняет тесты, оформляет отчёт.
|
||||||
|
model: claude-sonnet-4-6
|
||||||
|
tools:
|
||||||
|
- Filesystem (Read везде; Write только docs/work-items/<plane-id>/13-test-report*)
|
||||||
|
- Bash (Playwright, pytest, curl)
|
||||||
|
---
|
||||||
|
|
||||||
|
# System prompt: Tester
|
||||||
|
|
||||||
|
Ты — QA-инженер проекта enduro-trails. Прогоняешь полный регресс и оформляешь отчёт.
|
||||||
|
|
||||||
|
## Что прочесть
|
||||||
|
1. docs/work-items/<plane-id>/02-trz.md
|
||||||
|
2. docs/work-items/<plane-id>/03-acceptance-criteria.md
|
||||||
|
3. docs/work-items/<plane-id>/04-test-plan.yaml (твой план работы)
|
||||||
|
4. docs/work-items/<plane-id>/12-review.md
|
||||||
|
|
||||||
|
## Алгоритм
|
||||||
|
1. Проверь что test-окружение поднялось (curl healthcheck)
|
||||||
|
2. Прогони unit/integration (make test)
|
||||||
|
3. Прогони e2e через Playwright
|
||||||
|
4. Оформи 13-test-report.md
|
||||||
|
|
||||||
|
## Вердикт
|
||||||
|
- Все TC pass → stage:ready-to-deploy
|
||||||
|
- Любой P0/P1 баг → back-to:dev
|
||||||
|
|
||||||
|
## Запрещено
|
||||||
|
- Писать продакшн-код
|
||||||
|
- Подгонять тесты под код
|
||||||
|
- Запускать тесты на prom
|
||||||
13
CHANGELOG.md
Normal file
13
CHANGELOG.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
All notable changes to this project will be documented in this file.
|
||||||
|
Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Initial project structure
|
||||||
|
- CLAUDE.md project passport
|
||||||
|
- Agent system prompts (architect, developer, reviewer, tester, deployer)
|
||||||
|
- CI pipeline (Gitea Actions)
|
||||||
|
- Docker configuration
|
||||||
55
CLAUDE.md
Normal file
55
CLAUDE.md
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
# CLAUDE.md — паспорт проекта enduro-trails
|
||||||
|
|
||||||
|
## TL;DR
|
||||||
|
Карта эндуро-маршрутов с рельефом, навигацией и слоями terrain/TRI/hillshade.
|
||||||
|
Веб-приложение для планирования офф-роуд маршрутов с учётом сложности рельефа.
|
||||||
|
|
||||||
|
## Стек
|
||||||
|
- Frontend: MapLibre GL JS + vanilla JS (без фреймворка)
|
||||||
|
- Backend: FastAPI + uvicorn (Python 3.12)
|
||||||
|
- БД: SQLite (Spatialite) → PostGIS (при масштабировании)
|
||||||
|
- Тайлы: self-hosted raster tiles (terrain, hillshade, TRI)
|
||||||
|
- Роутинг: OSRM (кастомный эндуро-профиль)
|
||||||
|
- Контейнеризация: Docker + Compose
|
||||||
|
- CI/CD: Gitea Actions
|
||||||
|
- Деплой: docker compose up -d на mva154
|
||||||
|
|
||||||
|
## Команды
|
||||||
|
- `make dev` — поднять локально
|
||||||
|
- `make test` — все тесты
|
||||||
|
- `make lint` — линтеры (ruff + eslint)
|
||||||
|
- `make build` — собрать Docker-образ
|
||||||
|
- `make deploy-test` — деплой в test
|
||||||
|
|
||||||
|
## Среды
|
||||||
|
- **dev** — локально, http://localhost:5556
|
||||||
|
- **test** — https://openclaw.mva154.duckdns.org/enduro/
|
||||||
|
|
||||||
|
## Структура
|
||||||
|
- `src/api/` — FastAPI backend (маршруты, тайлы, поиск)
|
||||||
|
- `src/web/` — фронтенд (MapLibre, UI компоненты)
|
||||||
|
- `tests/` — тесты (unit, integration, e2e)
|
||||||
|
- `docs/` — документация, ADR, work-items
|
||||||
|
- `scripts/` — утилиты (lint, coverage, deploy)
|
||||||
|
- `migrations/` — миграции БД
|
||||||
|
|
||||||
|
## Конвенции
|
||||||
|
- Conventional Commits (`feat:`, `fix:`, `docs:`, `refactor:`, `test:`)
|
||||||
|
- Ветки: `feature/PROJ-NNN-slug`, `bugfix/PROJ-NNN-slug`
|
||||||
|
- ADR: `docs/architecture/adr/adr-NNNN-slug.md`
|
||||||
|
- Work items: `docs/work-items/<plane-id>/`
|
||||||
|
|
||||||
|
## Правила для агентов
|
||||||
|
1. Перед любым действием прочесть этот файл и `docs/architecture/README.md`.
|
||||||
|
2. Никогда не править артефакты других этапов.
|
||||||
|
3. Никогда не комментировать ТЗ задним числом — если ТЗ не годится, возвращай в Анализ.
|
||||||
|
4. Никогда не закрывать задачу самостоятельно — это делает CI.
|
||||||
|
5. Бюджет токенов на задачу — в `.openclaw/budget.yaml`.
|
||||||
|
6. Коммиты от имени claude-bot (git config user.name/email уже настроен).
|
||||||
|
7. Не использовать `--no-verify` без явного одобрения Owner.
|
||||||
|
|
||||||
|
## Данные
|
||||||
|
- Terrain tiles: /home/slin/enduro-trails/data/terrain/ (hillshade, TRI, hypso)
|
||||||
|
- OSM данные: /home/slin/enduro-trails/data/osm/
|
||||||
|
- OSRM графы: /home/slin/enduro-trails/data/osrm/
|
||||||
|
|
||||||
8
Dockerfile
Normal file
8
Dockerfile
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
FROM python:3.12-slim
|
||||||
|
WORKDIR /app
|
||||||
|
COPY src/api/requirements.txt .
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
COPY src/api/ ./src/api/
|
||||||
|
COPY src/web/ ./src/web/
|
||||||
|
EXPOSE 5556
|
||||||
|
CMD ["uvicorn", "src.api.main:app", "--host", "0.0.0.0", "--port", "5556"]
|
||||||
25
Makefile
Normal file
25
Makefile
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
.PHONY: dev test lint build deploy-test smoke
|
||||||
|
|
||||||
|
dev:
|
||||||
|
docker compose up -d
|
||||||
|
@echo "Running at http://localhost:5556"
|
||||||
|
|
||||||
|
test:
|
||||||
|
cd src/api && python -m pytest ../../tests/ -v
|
||||||
|
@echo "Tests complete"
|
||||||
|
|
||||||
|
lint:
|
||||||
|
cd src/api && python -m ruff check .
|
||||||
|
@echo "Lint complete"
|
||||||
|
|
||||||
|
build:
|
||||||
|
docker build -t enduro-trails:latest .
|
||||||
|
|
||||||
|
deploy-test:
|
||||||
|
docker compose -f infra/compose/docker-compose.yml pull
|
||||||
|
docker compose -f infra/compose/docker-compose.yml up -d
|
||||||
|
@echo "Deployed to test"
|
||||||
|
|
||||||
|
smoke:
|
||||||
|
curl -sf http://localhost:5556/health || (echo "SMOKE FAILED" && exit 1)
|
||||||
|
@echo "Smoke OK"
|
||||||
17
docker-compose.yml
Normal file
17
docker-compose.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
version: "3.8"
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
build: .
|
||||||
|
ports:
|
||||||
|
- "5556:5556"
|
||||||
|
volumes:
|
||||||
|
- ./data:/app/data
|
||||||
|
- ./src/web:/app/src/web
|
||||||
|
environment:
|
||||||
|
- DATABASE_URL=sqlite:///./data/enduro.db
|
||||||
|
- TILES_DIR=/app/data/terrain
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:5556/health"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
8
docs/README.md
Normal file
8
docs/README.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Документация Enduro Trails
|
||||||
|
|
||||||
|
## Навигация
|
||||||
|
- [architecture/](./architecture/) — архитектура, ADR, диаграммы
|
||||||
|
- [work-items/](./work-items/) — артефакты по задачам
|
||||||
|
- [design/](./design/) — дизайн-токены, компоненты
|
||||||
|
- [operations/](./operations/) — runbook, мониторинг
|
||||||
|
- [api/](./api/) — OpenAPI спецификация
|
||||||
0
docs/api/.gitkeep
Normal file
0
docs/api/.gitkeep
Normal file
21
docs/architecture/README.md
Normal file
21
docs/architecture/README.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Архитектура Enduro Trails
|
||||||
|
|
||||||
|
## Обзор
|
||||||
|
Веб-приложение для планирования эндуро-маршрутов с визуализацией рельефа.
|
||||||
|
|
||||||
|
## Компоненты
|
||||||
|
- **Frontend** — MapLibre GL JS, vanilla JS (ES modules)
|
||||||
|
- **Backend API** — FastAPI (Python 3.12), uvicorn
|
||||||
|
- **Tile Server** — статические raster tiles (PNG), раздаются через FastAPI/nginx
|
||||||
|
- **Routing Engine** — OSRM с кастомным эндуро-профилем
|
||||||
|
- **Database** — SQLite + Spatialite (точки интереса, маршруты)
|
||||||
|
|
||||||
|
## Слои карты
|
||||||
|
- Base map (OpenStreetMap)
|
||||||
|
- Hillshade (рельеф с тенями)
|
||||||
|
- TRI (Terrain Ruggedness Index — сложность рельефа)
|
||||||
|
- Hypsometric (высотная раскраска)
|
||||||
|
- Trails (маршруты из OSM)
|
||||||
|
|
||||||
|
## Деплой
|
||||||
|
Один Docker Compose на mva154. Nginx проксирует /enduro/ на контейнер.
|
||||||
6
docs/architecture/adr/README.md
Normal file
6
docs/architecture/adr/README.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# Architecture Decision Records
|
||||||
|
|
||||||
|
Индекс ADR проекта enduro-trails.
|
||||||
|
|
||||||
|
| # | Решение | Статус | Дата |
|
||||||
|
|---|---------|--------|------|
|
||||||
0
docs/design/.gitkeep
Normal file
0
docs/design/.gitkeep
Normal file
0
docs/operations/.gitkeep
Normal file
0
docs/operations/.gitkeep
Normal file
0
docs/work-items/.gitkeep
Normal file
0
docs/work-items/.gitkeep
Normal file
0
infra/compose/.gitkeep
Normal file
0
infra/compose/.gitkeep
Normal file
0
migrations/.gitkeep
Normal file
0
migrations/.gitkeep
Normal file
0
scripts/.gitkeep
Normal file
0
scripts/.gitkeep
Normal file
0
src/api/.gitkeep
Normal file
0
src/api/.gitkeep
Normal file
0
src/web/.gitkeep
Normal file
0
src/web/.gitkeep
Normal file
0
tests/e2e/.gitkeep
Normal file
0
tests/e2e/.gitkeep
Normal file
0
tests/fixtures/.gitkeep
vendored
Normal file
0
tests/fixtures/.gitkeep
vendored
Normal file
0
tests/integration/.gitkeep
Normal file
0
tests/integration/.gitkeep
Normal file
0
tests/unit/.gitkeep
Normal file
0
tests/unit/.gitkeep
Normal file
0
tests/visual/.gitkeep
Normal file
0
tests/visual/.gitkeep
Normal file
Reference in New Issue
Block a user