instant-0chan/README.md

11 KiB
Raw Permalink Blame History

Instant 0chan

Instant 0chan

Набор для быстрого развертывания нульчана на движке, использовавшемся на Nullch.org (форк Kusaba X).

Функции

  • Пользовательские доски (2.0чан) с максимальной свободой действий:
    • Полноценная модерация
    • Кастомные стили для досок
    • Раздельные спамлисты для каждой из досок
    • Автозамена
    • Баннеры
  • Мгновенное обновление тредов Временно не работает
  • Исправлены баги Kusaba X
  • Добавлены собственные баги
  • Главная страница на HTML5 с возможностью кастомизации
  • Полная совместимость с куклоскриптом
  • Тач-интерфейс (с превью по клику)
  • Подсветка кода
  • LaTEX
  • Эмбеды Youtube, Vimeo и Coub, не нагружающие страницу
  • Баннеры
  • Кириллическая протухающая капча с генератором произносимых слов
  • Улучшенный парсинг
  • Фильтры флуда и спама, детектирующие замену букв
  • Дайсы, useragent, катриболы
  • Множество улучшений в клиентском и серверном коде
  • Полный набор нульчановских досок в комплекте
  • Поддержка неограниченного количества вложений в постах

Выпилено

  • Watched threads (через эту фичу можно было досить Kusaba X)
  • Типы досок "Upload", "Оэкаки" и "Рисовач". Полностью и безвозвратно.

Требования

Для базового функционала

  • Apache
  • PHP (Поддерживается в том числе PHP7 и скорее всего PHP 7.1)
  • MySQL

Особых требований к версиям нет, должно встать на среднестатичтический виртуальный хостинг. Читайте ошибки, если что-то не заработает. Теоретически возможна работа с базами SQLite и PostgreSQL, но это не тестировалось, и дампы базы данных для них еще нужно написать. Вместо Apache можно использовать Nginx.

Для расширенного функционала

  • PHP 5.3+ (для 2.0 и мгновенных обновлений)
  • Node.JS (для мгновенных обновлений)
  • Cloudflare или GeoIP (для кантриболлов)
  • FFMpeg (для WEBM)

Установка

Конфигурация

config.php

Файл config.php в корневой папке содержит основную конфигурацию, которую нужно выполнить в первую очередь. Конфигурация же при этом выполняется в instance-config.php. Для редактирования настроек из config.php необходимо скопировать туда нужные строчки.

  • KU_DBTYPE (=mysqli): тип базы данных
  • KU_DBHOST, KU_DBDATABASE, KU_DBUSERNAME, KU_DBPASSWORD: данные для доступа к БД.
  • KU_NAME: название сайта.
  • KU_SLOGAN: слоган сайта.
  • KU_WEBFOLDER: подпапка кусабы на вашем сайте, если она лежит не в корне. (Например, для http://example.com/board/b KU_WEBFOLDER = "/board/").
  • KU_LIVEUPD_ENA (true | false): включает/выключает мгновенные обновления. Смотри "Настройка мгновенных обновлений" ниже.
  • KU_CSSVER, KU_CSSVER (любая строка): версии CSS и JS, отдаваемые клиенту. При внесении изменений в CSS или JS, рекомендуется инкрементировать версию и пересобрать все файлы.
  • KU_CAPTCHALIFE (число): время жизни капчи в секундах.
  • KU_20_BOARDSLIMIT (число): сколько досок может иметь пользователь 2.0-ча.
  • KU_20_CLOUDTIME (strtotime-совместимая строка со знаком минус): период времени, за который подсчитываются посты на 2.0 досках при сортировке.
  • KU_USERAGENT_ENABLED: список досок, на которых работает ##useragent##

Дополнительно

  • При необходимости добавьте содержимое UTIL/nginx.snippets.conf в ваш файл конфигурации хоста nginx.

Процесс установки

  • Убедитесь, что база данных, указанная в конфигурации, создана.
  • Убедитесь, что файл instance-config.php.example переименован в instance-config.php и отредактирован должным образом.
  • Скопируйте install.php, install-mysql.php и kusaba_freshinstall.mysql.php из папки UTIL в корневую папку.
  • Запустите install.php. После проверки доступности базы данных вам предложат импортировать данные в базу.
  • После дампа базы данных введите логин и пароль администратора.
  • Удалите файлы, скопированные из папки UTIL.

Треки с главной страницы

Треки не включены в репозиторий; скачать их можно отсюда. Скопируйте их в /pages/loops/.

Установка мгновенных обновлений

Данный функционал давно не обновлялся и скорее всего работать не будет. Это ненадолго.

  • Скопируйте содержимое util/updates в папку, в которой собираетесь запускать Node.js.
  • Находясь в этой папке, выполните "npm install".
  • Введите имя сайта (sitename) и соответствующую ему случайную строку (srvtoken). Присвойте это же значение $cf['KU_LIVEUPD_SITENAME'], $cf['KU_LIVEUPD_SRVTOKEN'] в config.php.
  • Задайте порт и IP (node_port, node_ip), на которых будет работать процесс node. Внесите эти значения в config.php в форме URL (KU_LOCAL_LIVEUPD_API и KU_CLI_LIVEUPD_API). Если сервис обновлений будет работать на субдомене, но вместо IP в качестве KU_CLI_LIVEUPD_API введите этот субдомен.
  • Запустите процесс node updates.js.
    • Для стабильной работы node.js в продакшене нужно воспользоваться одним из способов по демонизации и мониторингу этого процесса. Наилучшим способом является systemd.
  • Активируйте фичу (в config.php: KU_LIVEUPD_ENA = true).
  • Пересоберите все файлы и папки.

Кастомизация

  • Логотипы сайта и 2.0-ча располагаются в папке /images/.
  • Для редактирования паттерна на главной странице выполните команду editmode(); из консоли браузера на главной странице. Нарисуйте нужный паттерн и нажмите "Получить паттерн". Скопируйте паттерн и размеры паттерна в /pages/patterns/main.php (или другой файл).
  • Данные для доната располагаются в /pages/contents/donate.php. По умолчанию там указаны кошельки ЕФГ.
  • Чтобы добавить собственные лупы на главную, их нужно скопировать в /pages/loops/, после чего внести в список loops в /pages/index.js. Файлы должны быть в формате OGG.

Управление сайтом

manage.php

  • Derp

Управление версиями и кэшем

  • Возможно обновление сайта с помощью git, если в движок не вносились никакие изменения. Просто запустите git pull.
  • При обновении движка на новую версию бывает необходимо обновить БД. Смотрите лог коммитов и соответствующие SQL-файлы в папке UTIL.
  • При изменении CSS или JS файлов рекомендуется инкрементировать KU_CSSVER и KU_JSVER в файле config.php после чего пересобирать все файлы.
  • При изменении других файлов, если вы используете Cloudflare, необходимо вручную удалить файл из кэша. Если вы не уверены, что пользователям отдается свежая версия ресурсов или если что-то пошло не так, очищайте кэш Cloudflare полностью.

TODO

  • Дописать README (лол)
  • Удостовериться в правильности работы мгновенных обновлений
  • Починить перенос тредов
  • Починить или выпилить KU_FIRSTLAST