# ShopNova — интернет-магазин (Go) **Версия:** `0.20` · [Релизы](https://git.evilfox.cc/test/shop3/releases) Главная страница интернет-магазина на Go с PostgreSQL 17 (SSL), reverse proxy Caddy и Docker Compose. Репозиторий: https://git.evilfox.cc/test/shop3.git Клонировать конкретную версию: ```bash git clone --branch v0.20 https://git.evilfox.cc/test/shop3.git ``` ## Быстрая установка на сервере Требования: **Git**, **Docker**, **Docker Compose** (плагин `docker compose`). ```bash # 1. Клонировать git clone https://git.evilfox.cc/test/shop3.git cd shop3 # 2. Установщик (домен + база данных → .env и caddy/Caddyfile) chmod +x install.sh check.sh ./install.sh # 3. Проверка версий ./check.sh # 4. Запуск docker compose up --build -d ``` Одной цепочкой (после клона введите ответы установщика): ```bash git clone https://git.evilfox.cc/test/shop3.git && cd shop3 && chmod +x install.sh check.sh && ./install.sh && ./check.sh && docker compose up --build -d ``` С Go на сервере вместо `install.sh`: ```bash go run ./cmd/install go run ./cmd/check ``` Без Go — установщик сам запустится в контейнере `golang:1.22-alpine`. ### Обновление на сервере ```bash cd shop3 git pull docker compose up --build -d ``` ### Полезные команды ```bash docker compose ps # статус контейнеров docker compose logs -f # логи curl -s http://localhost/health | jq curl -s http://localhost/version | jq ``` Сайт: `http://localhost` или `https://ваш-домен` (если указали в установщике). --- ## Установка на Windows (локально) ```powershell git clone https://git.evilfox.cc/test/shop3.git cd shop3 .\install.ps1 .\check.ps1 docker compose up --build -d ``` ## Проверка версий Проверяет Go, Docker, Docker Compose и PostgreSQL (**ожидается 17.x**): ```bash ./check.sh # или: go run ./cmd/check ``` После запуска сервера: - `GET /health` — статус и проверки - `GET /version` — версии приложения, Go и PostgreSQL ## Регистрация и личный кабинет | URL | Описание | |-----|----------| | `/register` | Регистрация | | `/login` | Вход | | `/account` | Личный кабинет (только для авторизованных) | | `POST /logout` | Выход | Сессии в cookie `shop_session`, пароли — bcrypt. Если БД уже была создана до обновления, примените миграцию: ```bash docker compose exec -T postgres psql -U shop -d shopdb < postgres/init/02_users.sql ``` ## Локальная разработка ```bash go run ./cmd/server ``` `DATABASE_URL` задаётся в `.env` (см. `.env.example` или установщик).