Интернет-магазин: Go, PostgreSQL 17 SSL, Caddy, Docker Compose
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
CREATE TABLE IF NOT EXISTS products (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(200) NOT NULL,
|
||||
description TEXT NOT NULL DEFAULT '',
|
||||
price NUMERIC(10, 2) NOT NULL CHECK (price >= 0),
|
||||
image_url TEXT NOT NULL DEFAULT '',
|
||||
category VARCHAR(100) NOT NULL DEFAULT 'Разное',
|
||||
featured BOOLEAN NOT NULL DEFAULT false,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_products_featured ON products (featured) WHERE featured = true;
|
||||
CREATE INDEX IF NOT EXISTS idx_products_category ON products (category);
|
||||
|
||||
INSERT INTO products (name, description, price, image_url, category, featured) VALUES
|
||||
('Куртка Urban Shell', 'Лёгкая ветровка с водоотталкивающим покрытием.', 8990.00, 'https://images.unsplash.com/photo-1544022613-e87ca75a784a?w=600&q=80', 'Одежда', true),
|
||||
('Кроссовки Nova Run', 'Амортизация для бега и повседневной носки.', 7490.00, 'https://images.unsplash.com/photo-1542291026-7eec264c27ff?w=600&q=80', 'Обувь', true),
|
||||
('Рюкзак City Pack', 'Отделение для ноутбука 15" и USB-порт.', 4590.00, 'https://images.unsplash.com/photo-1553062407-98eeb64c6a62?w=600&q=80', 'Аксессуары', true),
|
||||
('Часы Minimal Steel', 'Корпус из нержавеющей стали, сапфировое стекло.', 12990.00, 'https://images.unsplash.com/photo-1523275335684-37898b6baf30?w=600&q=80', 'Аксессуары', true),
|
||||
('Худи Soft Loop', 'Хлопок премиум, уютная посадка.', 3990.00, 'https://images.unsplash.com/photo-1556821840-3a63f95609a7?w=600&q=80', 'Одежда', true),
|
||||
('Наушники Air Tone', 'Активное шумоподавление, 30 ч автономности.', 9990.00, 'https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=600&q=80', 'Электроника', true),
|
||||
('Футболка Essential', 'Базовая модель из органического хлопка.', 1990.00, 'https://images.unsplash.com/photo-1521572163474-6864f9cf17ab?w=600&q=80', 'Одежда', false),
|
||||
('Кеды Classic Low', 'Кожаный верх, резиновая подошва.', 5490.00, 'https://images.unsplash.com/photo-1460353581641-37baddab0fa2?w=600&q=80', 'Обувь', true);
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
DIR="${1:-/certs}"
|
||||
CRT="$DIR/server.crt"
|
||||
KEY="$DIR/server.key"
|
||||
|
||||
if [ -f "$CRT" ] && [ -f "$KEY" ]; then
|
||||
echo "SSL certificates already exist in $DIR"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
mkdir -p "$DIR"
|
||||
|
||||
openssl req -new -x509 -days 825 -nodes -text \
|
||||
-out "$CRT" \
|
||||
-keyout "$KEY" \
|
||||
-subj "/CN=postgres.shop.local"
|
||||
|
||||
chmod 600 "$KEY"
|
||||
chmod 644 "$CRT"
|
||||
|
||||
# postgres image runs as uid 999
|
||||
chown 999:999 "$KEY" "$CRT" 2>/dev/null || true
|
||||
|
||||
echo "Generated PostgreSQL SSL certificates in $DIR"
|
||||
Reference in New Issue
Block a user