Go to file
Juribiyan 7bc56a9e08 [⚠️SECURITY] Staff rights changes
* XSS threats eliminated (Raw HTML allowed for admin only)
* Board owners allowed to modpost
2018-05-24 19:46:15 +05:00
UTIL Fixed bug in install.php (checking for table that is not needed anymore) 2018-05-24 19:21:30 +05:00
captcha Initial commit 2014-04-28 22:30:10 +06:00
css Remove horiz. scrollbar on board page 2018-05-22 21:41:44 +05:00
dwoo [⚠️SECURITY] Staff rights changes 2018-05-24 19:46:15 +05:00
fav Initial commit 2014-04-28 22:30:10 +06:00
images Emoji and emoji registration 2017-08-15 23:36:25 +05:00
inc [⚠️SECURITY] Staff rights changes 2018-05-24 19:46:15 +05:00
lib Prevent accidental deletion 2018-05-04 01:47:11 +05:00
pages Remove legacy AYAH require 2016-06-19 19:46:49 +05:00
.gitignore kusaba.new.js is now using strict mode es6 and builds with Babel 2017-02-01 18:20:39 +05:00
.htaccess fix MIME bullshit in Firefox 2014-07-29 09:00:54 +06:00
README.md Support for multiple embeds. Initial commit 2018-05-02 02:55:11 +05:00
banned.php Initial commit 2014-04-28 22:30:10 +06:00
blotter.php Initial commit 2014-04-28 22:30:10 +06:00
bnrs.json Initial commit 2014-04-28 22:30:10 +06:00
board.php [⚠️SECURITY] Staff rights changes 2018-05-24 19:46:15 +05:00
boards.html Initial commit 2014-04-28 22:30:10 +06:00
boards10.json JSON boardlist generation bugfixes 2016-09-20 21:11:45 +05:00
boards20.json Initial commit 2014-04-28 22:30:10 +06:00
captcha.php Fix for undefined "captchalang" index 2018-03-31 13:43:24 +03:00
clear.gif Initial commit 2014-04-28 22:30:10 +06:00
config.php Customizable charset; Default charset is utf8mb4; SQL tidyup, STRICT_TRANS_TABLES support 2018-05-22 01:34:35 +05:00
corpsy.php Remove absolute paths 2015-06-14 16:32:42 +05:00
expand.php Complete removal of text, oekaki & upload board types 2018-03-31 18:32:55 +03:00
favicon.ico Initial commit 2014-04-28 22:30:10 +06:00
index.php Dynamic boardlist on home page 2016-01-23 13:03:13 +05:00
kusaba.php Initial commit 2014-04-28 22:30:10 +06:00
license.txt Initial commit 2014-04-28 22:30:10 +06:00
manage.php Replace external JQuery links with internal ones 2017-08-11 19:15:37 +03:00
manage_menu.php [⚠️SECURITY] Staff rights changes 2018-05-24 19:46:15 +05:00
manage_page.php Replace AYAH with build-in captcha 2016-03-27 17:35:12 +05:00
menu.html Replace external JQuery links with internal ones 2017-08-11 19:15:37 +03:00
menu.php Initial commit 2014-04-28 22:30:10 +06:00
menu_dirs.html Replace external JQuery links with internal ones 2017-08-11 19:15:37 +03:00
modlogrss.xml fug :D 2016-07-06 21:28:32 +05:00
newpostscount.php Fixed unprefixed newpostcount 2015-12-15 22:04:57 +05:00
news.php News/Faq/Rules in frames are back 2015-11-04 15:25:03 +05:00
nojscaptcha.php Unified captcha 2017-02-18 16:22:53 +05:00
nrand.php Initial commit 2014-04-28 22:30:10 +06:00
postbynumber.php Whitespace purge 2018-05-02 17:36:50 +05:00
read.php Complete removal of text, oekaki & upload board types 2018-03-31 18:32:55 +03:00
tripinfo.php Fix for "Use of undefined constant" 2018-03-31 13:09:47 +03:00
youarebanned.jpg Scale up youare(not)banned 2018-02-01 22:01:01 +03:00
youarenotbanned.jpg Scale up youare(not)banned 2018-02-01 22:01:01 +03:00

README.md

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 (для кантриболлов)
  • FFMpeg (для WEBM)

Установка

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

Файл 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 (кроме updates.js) в корневую папку.
  • Запустите install.php. После проверки доступности базы данных вам предложат импортировать данные в базу.
  • После дампа базы данных введите логин и пароль администратора.
  • Удалите файлы, скопированные из папки UTIL.
  • Зарегистрируйте свой сайт на Areyouahuman.
  • Вставьте Publisher Key и Scoring Key в /inc/AYAH/ayah_config.php.

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

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

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

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

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

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

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

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

manage.php

  • Derp

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

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

TODO

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