feat(admin): integrate Next.js admin panel (admin-next/) from feat/nextjs-admin

- Add admin-next/: full Next.js + Prisma + shadcn admin panel (45 API routes, 76 components)
- docker-compose: tg_shop_admin service (port 3000, shared db/shop.db, prisma), bot talks to it via ADMIN_CHAT_URL=http://tg_shop_admin:3000/api/chat
- tor-proxy now proxies onion admin to tg_shop_admin:3000 (new panel)
- chatbotService: ADMIN_CHAT_URL default = http://tg_shop_admin:3000/api/chat (removed localhost:3100 anachronism)
- .env admin secrets gitignored (admin-next/.env)
This commit is contained in:
NW
2026-08-08 01:31:45 +01:00
parent 62534dbe85
commit a4a5fd449d
161 changed files with 25681 additions and 5 deletions

View File

@@ -8,6 +8,8 @@ services:
ports:
- "3001:3001"
restart: unless-stopped
environment:
- ADMIN_CHAT_URL=http://tg_shop_admin:3000/api/chat
volumes:
- ./db:/app/db/
- ./uploads:/app/uploads/
@@ -31,6 +33,40 @@ services:
- default
- tor_proxy_net
# Новая Next.js админ-панель (Prisma, одна БД с ботом)
tg_shop_admin:
build:
context: ./admin-next
dockerfile: ./Dockerfile
container_name: tg_shop_admin
ports:
- "3000:3000"
restart: unless-stopped
environment:
- DATABASE_URL=file:/app/db/shop.db
- ADMIN_SECRET=${ADMIN_SECRET:-changeme}
- SUPER_ADMIN_SECRET=${SUPER_ADMIN_SECRET:-changeme_super}
# ИИ-чатбот: настройки берутся из site_settings (chatbot_*)
- CHATBOT_API_ENDPOINT=${CHATBOT_API_ENDPOINT:-https://api.openai.com/v1}
- CHATBOT_API_KEY=${CHATBOT_API_KEY:-}
volumes:
- ./db:/app/db
deploy:
resources:
limits:
memory: 512M
reservations:
memory: 256M
healthcheck:
test: ["CMD", "node", "-e", "const http = require('http'); http.get('http://localhost:3000/api/auth/session', r => { process.exit(r.statusCode === 401 ? 0 : 1) }).on('error', () => process.exit(1))"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
networks:
- default
- tor_proxy_net
tor-proxy:
build:
context: ./tor-proxy
@@ -38,8 +74,9 @@ services:
container_name: tor-proxy
environment:
SSH_HOST_IP: ${SSH_HOST_IP:-host.docker.internal}
SHOP_CONTAINER: ${SHOP_CONTAINER:-telegram_shop_prod}
ADMIN_PORT: ${ADMIN_PORT:-3001}
# Onion-админка теперь проксируется на НОВУЮ Next.js админку
SHOP_CONTAINER: ${SHOP_CONTAINER:-tg_shop_admin}
ADMIN_PORT: ${ADMIN_PORT:-3000}
volumes:
- tor_data:/var/lib/tor
- ./tor-proxy/hosts:/onion-hosts
@@ -64,4 +101,4 @@ networks:
volumes:
tor_data:
name: tor_proxy_data
name: tor_proxy_data