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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user