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
S
Description
No description provided
Readme
128 KiB
1.0
Latest
2026-06-26 16:04:10 +00:00
Languages
Go 50.4%
HTML 29.9%
CSS 14.6%
Shell 4.3%
Makefile 0.5%
Other 0.3%