98a0bb01e2b6d6d9d09bf14f3ce7328a8cd44f4c
Shop — Интернет-магазин
Полнофункциональный интернет-магазин на Go, PostgreSQL 17, Docker Compose и Caddy.
Текущая версия: v1.0
Возможности
| Модуль | Описание |
|---|---|
| Каталог | Главная, категории, карточки товаров со скидками |
| Товар | Страница /product/{id} с описанием, фото и скриншотами |
| Категории | /category/{slug} — управление в админке |
| Корзина | Добавление, изменение количества, расчёт со скидкой |
| Заказы | Оформление гостем или зарегистрированным пользователем |
| Личный кабинет | Профиль, история заказов со статус-таймлайном |
| Админка | Товары, категории, заказы, скриншоты, редактор Quill, статистика |
Стек
| Компонент | Технология |
|---|---|
| Backend | Go 1.23, net/http, pgx/v5 |
| База данных | PostgreSQL 17 |
| Прокси / SSL | Caddy 2 |
| ОС | Ubuntu 22.04 / 24.04 |
Быстрый старт (Ubuntu)
git clone https://git.evilfox.cc/test2/shop-go.git /opt/shop
cd /opt/shop
sudo bash setup.sh
Или обновление существующего:
cd /opt/shop
bash scripts/redeploy.sh
Проверка версии:
curl http://localhost/health
# {"status":"ok","version":"v1.0"}
Маршруты магазина
| Путь | Описание |
|---|---|
/ |
Главная |
/product/{id} |
Страница товара |
/category/{slug} |
Категория |
/cart |
Корзина |
/checkout |
Оформление заказа |
/register, /login |
Регистрация и вход |
/account |
Личный кабинет |
/admin/ |
Админ-панель |
/admin/orders |
Управление заказами и статусами |
Скидки
В админке при редактировании товара укажите Цена и Цена со скидкой.
На сайте отображается старая цена зачёркнутой и бейдж -N%.
Категории
Админка → Категории → добавьте категорию → при создании товара выберите её в списке.
Статусы заказов
| Код | Отображение |
|---|---|
pending |
В ожидании |
unpaid |
Не оплачено |
paid |
Оплачено |
processing |
В обработке |
shipped |
Отправлен |
delivered |
Доставлен |
cancelled |
Отменён |
refunded |
Возврат |
В личном кабинете — цветной бейдж и таймлайн прогресса.
В админке → Заказы — смена статуса из выпадающего списка.
Админ
ADMIN_EMAIL=admin@shop.local
ADMIN_PASSWORD=change_me
SESSION_SECRET=your_random_secret_key_here
Вход: /admin/login
SSL
./scripts/enable-ssl.sh shop.example.com admin@example.com
Обновление
bash scripts/redeploy.sh
Скрипт делает git reset --hard, пересборку Docker без кэша и проверку /health.
Структура
shop/
├── cmd/shop/ # Точка входа
├── internal/
│ ├── handlers/ # HTTP, шаблоны, статика
│ ├── repository/ # БД
│ ├── orderstatus/ # Статусы заказов
│ └── ...
├── migrations/
├── scripts/
│ ├── deploy.sh
│ ├── redeploy.sh # Полное обновление
│ └── update.sh
└── docker-compose.yml
Требования
- Ubuntu 22.04 / 24.04
- 1 CPU, 1 GB RAM
- Порты 22, 80, 443