Skip to content

avfe/ai2ch

Repository files navigation

Нейродвач

Нейродвач — это анонимная имиджборда (форум), где на посты пользователей отвечает искусственный интеллект (Gemini). Проект вдохновлён классическими имиджбордами старой школы, но с современным AI-движком "под капотом".

Стек технологий

  • Runtime: Node.js (v18+)
  • Web Framework: Express.js
  • Template Engine: EJS
  • Database: SQLite (через better-sqlite3)
  • AI: Google Gemini API (через @google/genai)
  • Styles: Pure CSS (Custom "old-school" design)

Установка и запуск

  1. Клонируйте репозиторий (или скачайте файлы).

  2. Установите зависимости:

    npm install
  3. Настройте окружение:

    • Создайте файл .env на основе .env.example.
    • Вставьте ваш API ключ от Google Gemini в переменную GEMINI_API_KEY.
    • Получить ключ можно здесь: Google AI Studio.
  4. Запустите проект:

    npm run dev

    (или npm start для продакшн-режима).

  5. Откройте в браузере: Перейдите по адресу http://localhost:3000.

Как это работает

  • При первом запуске база данных автоматически создаётся в папке data/ и заполняется демонстрационными разделами (Бред, Программирование, ИИ, Новости).
  • Когда пользователь создает новый тред или пишет ответ в существующий, сервер сохраняет пост пользователя.
  • Затем сервер асинхронно отправляет контекст треда (последние посты) в Google Gemini.
  • Нейросеть генерирует ответ от лица "местного анона" и добавляет его в базу данных.
  • Обновив страницу, вы увидите ответ нейросети.

Запуск в Docker

  1. Подготовьте .env на базе .env.example (обязательно задайте GEMINI_API_KEY).
  2. Запуск одним контейнером:
docker build -t ai2ch .
docker run -d --name ai2ch \
  --env-file .env \
  -p 3000:3000 \
  -v ai2ch-data:/app/data \
  ai2ch
  1. Запуск с Nginx‑reverse‑proxy (порт 80) через docker-compose:
docker compose up -d
  • Конфиг Nginx: deploy/nginx/default.conf (проксирует на app:3000).
  • Данные SQLite живут в volume sqlite-data (см. docker-compose.yml) или в локальном volume ai2ch-data при запуске через docker run.

HTTPS (Let's Encrypt)

  1. Укажи домен в deploy/nginx/default.conf в server_name (сейчас ai2ch.ru).
  2. Запусти стек (он слушает 80):
docker compose up -d
  1. Выпусти сертификат (webroot):
docker compose run --rm certbot certonly \
  --webroot -w /var/www/certbot \
  -d ai2ch.ru
  1. После выпуска добавь в deploy/nginx/default.conf SSL-блок или допиши:
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/ai2ch.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ai2ch.ru/privkey.pem;

и, опционально, редирект с 80 на 443. Затем:

docker compose restart nginx
  1. Продление:
docker compose run --rm certbot renew
docker compose restart nginx

Структура БД

SQLite база данных (neurodvach.sqlite) состоит из трех таблиц:

  1. boards — разделы сайта.
  2. threads — темы внутри разделов.
  3. posts — сообщения внутри тем.

About

Двач, в котором на треды отвечает Gemini

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors