Обновить README.md
This commit is contained in:
@@ -1,3 +1,97 @@
|
||||
# GO--------------
|
||||
================================================================================
|
||||
Файлообменник (fileshare) — сведения о релизе
|
||||
================================================================================
|
||||
|
||||
Файлообменник на GO сайт Установщик
|
||||
Текущая версия: 0.10
|
||||
Дата фиксации описания: 2026-04-17
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
1. Назначение
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Веб-приложение на Go для обмена файлами: загрузка на сервер, хранение на диске,
|
||||
метаданные в PostgreSQL, скачивание по ссылке. Есть простая HTML-страница и REST API.
|
||||
По умолчанию HTTP-порт приложения: 8090.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
2. Что сделано в проекте
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
2.1 Язык и зависимости
|
||||
- Go 1.22
|
||||
- github.com/lib/pq — драйвер PostgreSQL
|
||||
- github.com/google/uuid — идентификаторы файлов
|
||||
|
||||
2.2 Структура каталогов
|
||||
- cmd/fileshare/ — точка входа (main.go), встроенная статика web/
|
||||
- cmd/fileshare/web/ — index.html (форма загрузки, список файлов)
|
||||
- internal/config/ — переменные окружения (LISTEN_ADDR, DATABASE_URL, …)
|
||||
- internal/store/ — работа с БД, миграция таблицы при старте
|
||||
- internal/handlers/ — HTTP-обработчики API и отдача файлов
|
||||
- internal/version/ — константа версии (сейчас 0.10)
|
||||
|
||||
2.3 База данных (PostgreSQL)
|
||||
- Таблица files: id (UUID), исходное имя, тип содержимого, размер,
|
||||
storage_key (путь к файлу на диске), created_at
|
||||
- Индекс по дате создания для списка
|
||||
|
||||
2.4 Хранение файлов на диске
|
||||
- Каталог из UPLOAD_DIR (по умолчанию ./data/uploads; в Docker — /data/uploads)
|
||||
- Подкаталоги по первым символам UUID: ??/??/{uuid}.bin
|
||||
|
||||
2.5 HTTP API
|
||||
- GET /health — проверка работы; JSON: status, version (0.10)
|
||||
- GET /api/files — список файлов (JSON), поле download_url
|
||||
- POST /api/files — multipart/form-data, поле "file"
|
||||
- GET /api/files/{id}/download — скачивание (Content-Disposition: attachment)
|
||||
- GET / — веб-интерфейс (загрузка и список)
|
||||
|
||||
2.6 Docker
|
||||
- Dockerfile: multi-stage сборка (Alpine), бинарник без CGO
|
||||
- docker-compose.yml:
|
||||
* сервис db — postgres:16-alpine, том pgdata
|
||||
* сервис app — приложение, порт 8090:8090, том uploads для файлов
|
||||
* зависимость app от здоровья БД (healthcheck)
|
||||
- Переменные: POSTGRES_PASSWORD (из .env или значение по умолчанию),
|
||||
DATABASE_URL для приложения, MAX_UPLOAD_MB и др.
|
||||
|
||||
2.7 Установка
|
||||
- install.ps1 (Windows, PowerShell) — проверка Docker, копирование .env из
|
||||
.env.example при отсутствии .env, docker compose up -d --build
|
||||
- install.sh (Unix) — то же для sh
|
||||
|
||||
2.8 Конфигурация через окружение
|
||||
- DATABASE_URL — обязательно при локальном запуске без compose
|
||||
- LISTEN_ADDR — например :8090
|
||||
- UPLOAD_DIR — каталог загрузок
|
||||
- MAX_UPLOAD_MB — лимит размера тела запроса (по умолчанию 100)
|
||||
- PUBLIC_BASE_URL — опционально, базовый URL для ссылок в JSON за reverse-proxy
|
||||
|
||||
2.9 Репозиторий Git
|
||||
- .gitignore — бинарники, .env, data/, uploads/, IDE и т.д.
|
||||
- .gitattributes — eol для go, yaml, sh, ps1
|
||||
- .dockerignore — уменьшение контекста сборки
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
3. Публикация версии 0.10
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Версия зафиксирована в коде: internal/version/version.go (константа Version = "0.10").
|
||||
При старте сервер пишет в лог: fileshare v0.10 listening on …
|
||||
Ответ GET /health включает поле "version": "0.10".
|
||||
|
||||
Рекомендуемые шаги для «публикации»:
|
||||
- git add -A && git commit -m "Release 0.10"
|
||||
- при использовании тегов: git tag -a v0.10 -m "fileshare 0.10"
|
||||
- сборка образа: docker compose build
|
||||
- выкладка: по вашему registry/серверу — отправка образа и compose-файлов
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
4. Быстрый старт (напоминание)
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Windows: .\install.ps1
|
||||
Затем в браузере: http://localhost:8090/
|
||||
Проверка версии: http://localhost:8090/health
|
||||
|
||||
================================================================================
|
||||
|
||||
Reference in New Issue
Block a user