chore: восстановление репозитория из снапшота v0.3.1
Прежняя git-история утрачена при переносе проекта на машину владельца (снапшот без .git). Хэши коммитов в docs/reports/* относятся к утраченной истории. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
commit
1c85091186
184 changed files with 33303 additions and 0 deletions
38
server/README.md
Normal file
38
server/README.md
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
# server/ — PHP API личного кабинета (этап 8)
|
||||
|
||||
Без фреймворка, синтаксис ≥ PHP 8.0. Контракт: `docs/INTERFACES.md`,
|
||||
раздел «Личный кабинет и синхронизация прогресса (этап 8)», ADR-0004.
|
||||
|
||||
## Структура
|
||||
|
||||
- `api/` — эндпоинты: `register`, `login`, `logout`, `me`, `progress`,
|
||||
`health` (на хостинге — `/api/*.php`).
|
||||
- `lib/` — общий код: `db.php` (PDO + init-миграция), `http.php`
|
||||
(заголовки/JSON/лимит тела), `auth.php` (сессии), `ratelimit.php`.
|
||||
- `config.example.php` — пример конфига. Скопировать в `config.php`
|
||||
(не коммитится, см. корневой `.gitignore`), указать путь к БД
|
||||
**вне web root**. Env `GOLEARN_DB` имеет приоритет (нужно smoke-тесту).
|
||||
- `tests/smoke.sh` — смоук-тест по контракту.
|
||||
|
||||
## Локальный запуск smoke-теста
|
||||
|
||||
Нужны PHP ≥ 8.0 с pdo_sqlite и curl:
|
||||
|
||||
```sh
|
||||
PHP=/path/to/php sh server/tests/smoke.sh
|
||||
```
|
||||
|
||||
(по умолчанию используется `/tmp/php-run`; можно просто
|
||||
`sh server/tests/smoke.sh`, если `/tmp/php-run` существует, или задать
|
||||
`PHP=$(command -v php)`).
|
||||
|
||||
Скрипт поднимает `php -S 127.0.0.1:8099 -t server/` с временной БД в
|
||||
/tmp (через `GOLEARN_DB`), гонит curl-сценарий из контракта
|
||||
(register/login/me/progress/413/429/logout) и удаляет временные файлы.
|
||||
Код выхода ненулевой при любом фейле.
|
||||
|
||||
## Деплой (кратко)
|
||||
|
||||
`server/` → `/api` на хостинге, `config.php` — рядом, файл БД — вне
|
||||
web root, права на запись в каталог БД у PHP. Smoke на хостинге =
|
||||
зелёный `GET /api/health.php`. Подробности — `docs/deploy.md` (V.2).
|
||||
Loading…
Add table
Add a link
Reference in a new issue