Об этом проекте

Charon — это self-hosted веб-приложение для ролевых игр с ИИ-персонажами, которое автор позиционирует как сочетание функций Chub, SillyTavern и других инструментов. Оно предназначено для хранения пользовательских данных локально, а не в облачном сервисе. Основные возможности, описанные в README: - Ветвящиеся диалоги: каждый свайп ответа ИИ создаёт новую ветку, позволяя пользователям переключаться между альтернативами, редактировать сообщения на месте и не терять предыдущие ответы. - Карточки персонажей V2 и V3: импорт `.png`-карточек из SillyTavern, Chub или других источников без конвертации. - Собственный API-ключ: работает с OpenAI-совместимыми провайдерами, такими как OpenAI, Anthropic через прокси, OpenRouter, Ollama и vLLM. Ключи шифруются при хранении. - Лорбуки: фоновые знания можно прикреплять к чату, приложение автоматически выбирает релевантные записи для ИИ. - Персоны: можно задавать несколько персон и переключать их для каждого чата. - Рендеринг Markdown: поддержка жирного текста, курсива, блоков кода, изображений, ограничения `<style>` и подсветки диалогов с плавным появлением при стриминге. - Self-hosting: данные хранятся в локальном файле SQLite, без зависимости от облака, телеметрии или внешних аккаунтов, кроме собственного. Варианты развёртывания включают Docker через `docker compose up -d` (данные сохраняются в томе `charon-data`) или разработку на основе pnpm. Обязательные переменные окружения: `BETTER_AUTH_SECRET` и `ENCRYPTION_KEY`, с примерами генерации через `openssl rand`. Миграции выполняются автоматически при первом запуске. Для старых баз данных предусмотрен путь обновления до единой учётной записи администратора с документированной процедурой резервного копирования и восстановления через `pnpm migrate:single-user`. Первоначальная настройка включает создание аккаунта, прохождение мастера подключения ИИ-провайдера и получение персонажа, затем начало чата. Персонажи не входят в комплект; пользователей направляют на Chub или в папку SillyTavern `public/characters/`. Управление чатом включает отправку, новую строку, свайп, регенерацию, редактирование, имитацию, продолжение, удаление ветки и командное меню Ctrl+K. Путь импорта из SillyTavern описан через копирование данных в `public/data/` и запуск `pnpm run migrate`. Продакшен-сборка использует `pnpm run build` и `pnpm run start` на порту 3000, с установкой `APP_URL` для куки аутентификации. Документация для разработчиков указана в CONTRIBUTING.md.