No description
Find a file
p.artem 8e45c458d5
All checks were successful
Deploy / deploy (push) Successful in 1m41s
fix cors
2026-03-18 15:16:26 +01:00
.forgejo/workflows Update .forgejo/workflows/deploy.yml 2026-03-16 21:51:10 +01:00
backend fix cors 2026-03-18 15:16:26 +01:00
frontend frontend: main page updates 2026-03-14 19:14:13 +03:00
venv upload demo version 2026-03-11 23:38:19 +03:00
.env.example upload demo version 2026-03-11 23:38:19 +03:00
.gitignore backend: add project files API: list and download endpoints, persist uploads 2026-03-14 15:18:05 +03:00
.gitlab-ci.yml upload demo version 2026-03-11 23:38:19 +03:00
docker-compose.yml upload demo version 2026-03-11 23:38:19 +03:00
package-lock.json front: full frontend (projects, chat, sidebar, modals, hooks) 2026-03-13 15:06:54 +03:00
README.md upload demo version 2026-03-11 23:38:19 +03:00

Atom AI

Веб‑платформа чата с выбором моделей (интерфейс в стиле Gemini).

Запуск через Docker Compose (всё в контейнерах)

В корне проекта создайте .env (можно скопировать из .env.example). Для деплоя на сервер укажите URL бэкенда:

# Локально можно не указывать (по умолчанию http://localhost:8000)
# NEXT_PUBLIC_API_URL=http://localhost:8000

# На сервере — публичный URL API:
# NEXT_PUBLIC_API_URL=http://157.22.181.73:8000

# Ключи для чата (опционально): OPENROUTER_API_KEY, ANTHROPIC_API_KEY, KIE_API_KEY

Затем:

docker compose up --build

Остановка: docker compose down. Данные БД сохраняются в volume pgdata.

Деплой на сервер (домен https://chat.atom-ai.atomgroup.dev)

  1. CORS: в бэкенде уже добавлен origin https://chat.atom-ai.atomgroup.dev.

  2. В .env на сервере укажите URL API по тому же домену (иначе браузер может блокировать запросы с HTTPS-страницы на другой origin):

    NEXT_PUBLIC_API_URL=https://chat.atom-ai.atomgroup.dev/api
    

    Вариант с отдельным портом (если бэкенд отдаёте с :8000):

    NEXT_PUBLIC_API_URL=https://chat.atom-ai.atomgroup.dev:8000
    
  3. Обратный прокси (nginx/caddy/traefik) должен:

    • отдавать фронт по https://chat.atom-ai.atomgroup.dev/ (прокси на контейнер :4040);
    • отдавать API по https://chat.atom-ai.atomgroup.dev/api (прокси на контейнер :8000, путь /api/ к бэкенду).

    Пример для nginx (в location /api/):

    location /api/ {
      proxy_pass http://127.0.0.1:8000/;
      proxy_http_version 1.1;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }
    

    Тогда запросы с фронта идут на https://chat.atom-ai.atomgroup.dev/api/chat и попадают на бэкенд как /chat.

  4. Пересоберите фронтенд (значение NEXT_PUBLIC_API_URL подставляется при сборке):

    docker compose up --build -d
    

    После этого откройте https://chat.atom-ai.atomgroup.dev

Стек

  • Frontend: Next.js 16, React, Tailwind CSS (дизайн вдохновлён Gemini и компонентами из директории shadcn/ui).
  • Backend: Python FastAPI.
  • База данных: PostgreSQL (хранение сессий и истории сообщений для памяти диалога).

Запуск frontend

cd frontend
npm install
npm run dev

Интерфейс будет доступен на http://localhost:3000.

Запуск backend

cd backend
cp .env.example .env  # при необходимости поправьте DATABASE_URL
pip install -r requirements.txt

# убедитесь, что Postgres запущен и создана БД corp_llm_chat
# createdb corp_llm_chat

uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

API доступен на http://localhost:8000. Frontend обращается к эндпоинту POST /chat для отправки сообщений.