Go to file
Juribiyan 89281aa343 fix MIME bullshit in Firefox 2014-07-29 09:00:54 +06:00
UTIL remove line that caused errors during install 2014-07-17 08:22:28 +06:00
captcha Initial commit 2014-04-28 22:30:10 +06:00
coub_json Initial commit 2014-04-28 22:30:10 +06:00
css Prooflabels 2014-07-23 21:47:37 +06:00
dwoo autocomplete fix 2014-07-25 12:04:07 +06:00
fav Initial commit 2014-04-28 22:30:10 +06:00
images site styles 2014-07-06 20:52:42 +06:00
inc Prooflabels 2014-07-23 21:47:37 +06:00
lib fixed image expanding in Firefox 2014-07-24 22:28:49 +06:00
pages Create addsome.deleteme 2014-04-29 06:58:27 +06:00
.htaccess fix MIME bullshit in Firefox 2014-07-29 09:00:54 +06:00
README.md Update README.md 2014-04-28 22:56:49 +06: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 Prooflabels 2014-07-23 21:47:37 +06:00
boards.html Initial commit 2014-04-28 22:30:10 +06:00
boards20.json Initial commit 2014-04-28 22:30:10 +06:00
captcha.php fix captcha colors 2014-07-13 16:15:34 +06:00
clear.gif Initial commit 2014-04-28 22:30:10 +06:00
cloud20.php Initial commit 2014-04-28 22:30:10 +06:00
config.php Disabled post cutting on board page 2014-07-23 21:42:35 +06:00
corpsy.php Initial commit 2014-04-28 22:30:10 +06:00
embedhelp.php Initial commit 2014-04-28 22:30:10 +06:00
expand.php Initial commit 2014-04-28 22:30:10 +06:00
favicon.ico Initial commit 2014-04-28 22:30:10 +06:00
index.php loading scripts from cndjs with fallback to local 2014-07-12 18:06:19 +06: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 loading scripts from cndjs with fallback to local 2014-07-12 18:06:19 +06:00
manage_menu.php Initial commit 2014-04-28 22:30:10 +06:00
manage_page.php Initial commit 2014-04-28 22:30:10 +06:00
menu.html Initial commit 2014-04-28 22:30:10 +06:00
menu.php Initial commit 2014-04-28 22:30:10 +06:00
menu_dirs.html Initial commit 2014-04-28 22:30:10 +06:00
modlogrss.xml Initial commit 2014-04-28 22:30:10 +06:00
newpostscount.php Initial commit 2014-04-28 22:30:10 +06:00
news.php Initial commit 2014-04-28 22:30:10 +06:00
nrand.php Initial commit 2014-04-28 22:30:10 +06:00
read.php Initial commit 2014-04-28 22:30:10 +06:00
youarebanned.jpg Replace youare(not)banned with more funny pics 2014-07-13 15:14:13 +06:00
youarenotbanned.jpg Replace youare(not)banned with more funny pics 2014-07-13 15:14:13 +06: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
  • MySQL

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

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

  • PHP 5.3+ (для 2.0 и мгновенных обновлений)
  • Аккаунт на Areyouahuman (капча для 2.0)
  • Node.JS (для мгновенных обновлений)
  • Либо соглашение с сервисом ploosmeenoos (для мгновенных обновлений если нет Node.js)
  • Cloudflare (для кантриболлов)

Установка

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

Файл 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_REACT_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_REACT_SRVTOKEN'] в config.php.
  • Задайте порт и IP (node_port, node_ip), на которых будет работать процесс node. Внесите эти значения в config.php в форме URL (KU_LOCAL_REACT_API и KU_CLI_REACT_API).
  • Запустите процесс node updates.js
    • Для стабильной работы node.js в продакшене нужно воспользоваться одним из способов по демонизации и мониторингу этого процесса. Например, "nohup always updates.js &" (предварительно должен быть установлен always (npm install always -g)). Есть и другие способы.
  • Активируйте фичу (в config.php: KU_REACT_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 (лол)