# Структура проекта ## Репозиторий `gitea-naeel.giteak8s.services.ngcloud.ru/naeel/sless` ## Директории ``` sless/ ├── cmd/ │ └── api/ │ └── main.go # точка входа API сервера ├── internal/ │ ├── api/ │ │ ├── handler/ # HTTP хендлеры (functions, versions, triggers) │ │ ├── middleware/ # auth, logging, rate limit │ │ └── router.go # регистрация маршрутов │ ├── model/ # доменные модели: Function, Version, Trigger, Invocation │ ├── storage/ │ │ ├── postgres/ # CRUD функций, версий, логов вызовов │ │ └── s3/ # загрузка/скачивание zip архивов кода │ ├── builder/ # сборка Docker образа из кода пользователя │ ├── runner/ # запуск функций в k8s (Jobs / Deployments) │ └── config/ # конфиг из env переменных ├── migrations/ # SQL миграции (numbered: 001_, 002_, ...) ├── deployments/ │ └── k8s/ # манифесты: Deployment, Service, Ingress, RBAC ├── api/ │ └── openapi.yaml # OpenAPI 3.0 спецификация ├── doc/ # документация проекта (эта папка) └── docker-compose.yml # локальная разработка: postgres, redis, minio ``` ## Go module ``` module gitea-naeel.giteak8s.services.ngcloud.ru/naeel/sless ``` ## Порядок разработки 1. `internal/config` + `internal/model` — базовые структуры данных 2. `migrations/` + `internal/storage/postgres` — схема БД и CRUD 3. `internal/api` — HTTP хендлеры, роутер, middleware 4. `internal/storage/s3` — загрузка кода функций 5. `internal/builder` — сборка Docker образов 6. `internal/runner` — запуск функций в k8s 7. `deployments/k8s` — манифесты для деплоя