[WT] [Архив]  [Поиск] Главная Управление
[Совместно с Ычаном]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить [Последние 50 сообщений]
Имя
Animapcha image [@] [?]
Тема   ( ответ в 18881)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, MP4, OGG, OGV, PDF, PNG, PSD, RAR, SVG, SWF, TXT, WEBM, XCF, ZIP размером до 5000 кБ.
  • Ныне 3189 unique user posts. Посмотреть каталог
  • Максимальное количество бампов нити: 500
151778852326.png-(51.07KB, 349×500, kotoba_logo_lg.png)
18881
No. 18881 watch    
DISCLAIMER: Данный проект не является форком kotoba-ib и его разработка не ведется персоналом «Супермаркета».

Этот тред посвящен разработке очередного движка имиджборды под названием «kotoba.js». Движок написан на NodeJS, в качестве базы данных MongoDB, стек express, mongoose, passport.js является сегодня настолько же стандартным, как PHP в свое время. Фронтенд использует Sass и Babel, его сборка автоматизирована (gulp+babelify, но со временем нужно перейти на Webpack). Верстка - полностью валидный HTML5, однако максимально напоминает Вакабу, что позволяет работать стороннему коду (Кукле и мобильным клиентам) без существенных доработок. Так же движок работает по классическому принципу генерирования статичных файлов и имеет схожую структуру каталогов.

Несмотря на наличие современных движков, некоторые их которых даже используют похожий стек (такие как LynxChan и ololord.js), до сих пор тут и там регулярно появляются вопросы по установке морально устаревших Вакабы, Кусабы, Вичана и их форков. При этом установка и обслуживание таких движков крайне затруднительна в виду почти полного отсутствия документации, устаревших зависимостей, и необходимости доработки движка, добавления недостающих функций, и исправления устаревшей верстки.

Целью данного проекта является создание движка с классическим дизайном и привычным для современных борд функционалом, отличающийся максимальной простотой в установке. Достигается это за счет конейнеризации приложения с помощью Docker.

Как выглядит процесс установки типичного движка на локалхост:

  • Установить Apache, PHP, MySQL
  • Убедиться что PHP скомпилирован с нужными флагами и что установлена нужная версия интерпретатора (PHP 5.6 будет ругаться на то, что работало в PHP 5.4)
  • Установить ImageMagic и ffmpeg для поддержки webm
  • Править config.php, проводить манипуляции с install.php (который никогда не выполняется первого раза без ошибок)
Так выглядит установка котобы:

  • Установить docker и docker-compose (дело 1 минуты)
  • Скачать исходный код из репозитория
  • Выполнить docker-compose up -d в папке с кодом.
Установка всех зависимостей произойдет автоматически (при этом оно никак не затронет систему). После этого движок сразу готов к работе. Первый созданный аккаунт получит права администратора, лезть в исходники и править переменные не нужно - все значимые настройки доступны из админки.
Разумеется, речь идет о локалхосте. На боевом сервере нужно еще как минимум запоролить БД, а так же настроить https.

Исходный код: https://github.com/WagonOfDoubt/kotoba.js

На данный момент проект находится в стадии MVP: то есть, самый основной функционал, такой как постинг, работает, но множество ключевых функций еще не реализовано.
Логотип, очевидно, WakabaMark, стилизованный под сервала, символизирует преемственность движка перед Вакабой и подобными, а так же кошачью тематику, и является отсылкой к Kemono Friends.
121 сообщений пропущено. Показаны 50 последних сообщений Развернуть все изображения
No. 19231    
15191446994.png-(280.00KB, 664×1367, Screenshot-2018-2-20 Kemono Friends.png)
19231
>>19221
Оно там с самого начала так.
No. 19233    
Json api есть?
Тред не читал.
No. 19274    
ОП, как дела? Когда будет запилена админка и модерка?
No. 19382    
Я так понимаю развитие движка заглохло?
No. 19383    
>>19382
Не заглохло, но показывать нечего, пока функции не будут реализованы полностью.
No. 19745    
Как дела?
No. 19756    
Что-то разраб давно уже не допиливал код. А ведь проект и правда годный. Грустно, что он прзабросил его.
No. 19761    
Не паникуйте. Проект не заброшен. Просто есть такие вещи как "работа" и "отсутствие свободного времени".
No. 19777    
152621948876.jpg-(171.03KB, 847×1200, zero.jpg)
19777
Когда я смотрю на код всех энтих проектов на ноде/экспрессе, у меня возникает такой вопрос:
Вам самим нравится писать подобную слабочитаемую лапшу или это вас жс заставляет такое делать?
Реально, как вижу эти портянки кода так плакать хочется.
Но тем не менее желаю удачи в этом деле, хотя сколько я уже подобных проектов видел — заканчивали они одинаково.
No. 19778    
>>19777
Не скажи. С введением async/await предрассудки про лапшу из коллбеков остались в прошлом. А экспресс мало чем отличается от фласка, как в плане функционала, так и читабельности.
Вот самый отполированный файл: https://github.com/WagonOfDoubt/kotoba.js/blob/master/containers/node/controllers/generate.js
Чистая функциональщина, каждая следующая функция вызывает предыдущую. Почти не используются циклы - вместо них семантичные Array#map, forEach и reduce. Или вот https://github.com/WagonOfDoubt/kotoba.js/blob/master/containers/node/models/board.js чисто декларативная схема базы данных.
No. 19779    
>>19778
Со стороны C# это все выглядит смешно.
Тут народ до сих пор месит ActiveRecord, который разве что в пределах простенькой крудни не доставляет боли.
No. 19828    
node_1 | Error: Cannot find module 'express'
node_1 | at Function.Module._resolveFilename (module.js:555:15)
node_1 | at Function.Module._load (module.js:482:25)
node_1 | at Module.require (module.js:604:17)
node_1 | at require (internal/module.js:11:18)
node_1 | at Object.<anonymous> (/home/node/app/index.js:1:79)
node_1 | at Module._compile (module.js:660:30)
node_1 | at Object.Module._extensions..js (module.js:671:10)
node_1 | at Module.load (module.js:573:32)
node_1 | at tryModuleLoad (module.js:513:12)
node_1 | at Function.Module._load (module.js:505:3)
node_1 | error: Forever detected script exited with code: 1
node_1 | error: Script restart attempt #3
node_1 | module.js:557
node_1 | throw err;
node_1 | ^
node_1 |
node_1 | Error: Cannot find module 'express'
node_1 | at Function.Module._resolveFilename (module.js:555:15)
node_1 | at Function.Module._load (module.js:482:25)
node_1 | at Module.require (module.js:604:17)
node_1 | at require (internal/module.js:11:18)
node_1 | at Object.<anonymous> (/home/node/app/index.js:1:79)
node_1 | at Module._compile (module.js:660:30)
node_1 | at Object.Module._extensions..js (module.js:671:10)
node_1 | at Module.load (module.js:573:32)
node_1 | at tryModuleLoad (module.js:513:12)
node_1 | at Function.Module._load (module.js:505:3)
node_1 | error: Forever detected script exited with code: 1
No. 19937    
>>19828
> kotoba.js/containers/node/Dockerfile
> RUN npm install
Странно, что npm install не выполняется при сборке, хотя это всегда происходило раньше, а Dockerfile и docker-compose.yml не менялись с первого коммита.
Как временное решение: выполнить на всякий случай "docker-compose build", запустить движок через "docker-compose up -d", выполнить "docker exec -it kotobajs_node_1 bash" и затем внутри контейнера "npm install".
No. 19947    
Предполагаю, что в сём случае можно нѣсколько ускорить всё дѣло, если «npm install --production» вмѣсто простого «npm install».

Прошу подтвердить или опровергнуть.
No. 19958    
>>19947
Суть проблемы описана в https://stackoverflow.com/questions/30043872/docker-compose-node-modules-not-present-in-a-volume-after-npm-install-succeeds и https://stackoverflow.com/questions/38425996/docker-compose-volume-on-node-modules-but-is-empty
Кратко: сначала выполняется npm install и создается папка contaniers/node/node_modules внутри контейнера, затем монтируется вся папка contaniers/node/ с хоста, заменяя собой ту, в которой node_modlues есть.
Еще одно решение, это удалить из docker-compose.yml строчку " - ./containers/node:/home/node/app".
Очень странно, что этого до сих пор никто не заметил. Что впрочем легко объясняется тем, что никто даже не пытался ничего ставить.
Решение с удалением строчки выше оптимально для продакшена, однако усложняет разработку. Возможно стоит сделать так, чтобы npm install выполнялся при запуске контейнера, на не во время сборки. Есть ли в Докере способ сделать так, чтобы монтировалась вся папка, кроме одной подпапки node_modules?
No. 19964    
Исправлено в новом коммите. >>19937>>19958 можно игнорировать.
No. 19968    
>>19958
>Что впрочем легко объясняется тем, что никто даже не пытался ничего ставить.
Докер-докерочек, ага.
No. 19970    
152645539170.png-(11.23KB, 595×177, Screenshot_20180516_102251.png)
19970
キタ━━━(゚∀゚)━━━!!
No. 19972    
152646065273.png-(10.08KB, 538×182, Screenshot_20180516_110200.png)
19972
キタ━━━(゚∀゚)━━━!!
No. 19976    
>>19972
Поменяй права доступа к папке html, очевидно же. Проверь их через ls -l
Конкретно нужно сделать:
~/kotoba.js/$ chmod -R a+w html
и возможно (хотя маловероятно):
~/kotoba.js/$ chmod -R a+w containers/node/html
Только что проверил установку с нуля, у самого все завелось с первого раза.
No. 20068    
Пора бы уже приступить за реализацию модерки и админки борды. А то уже столько времени прошло на самом деле, что работой будет тяжело отвертеться.
No. 20069    
152806513322.jpg-(212.60KB, 540×703, 1510664967001.jpg)
20069
>>20068
Совсем не тяжело.
No. 20101    
152936777364.png-(622.77KB, 1366×666, Screenshot-2018-6-19 Recent upoads — kotoba js(2.png)
20101
キタ━━━(゚∀゚)━━━!!
No. 20109    
Может хватит в 2к18 тащить этот уже декаду как неактуальный дизайн? Ну некрасиво и неудобно же.
No. 20127    
>>20109
Вы таки о чём?
No. 20128    
>>20127
Мы таки хотя бы вот об этом: >>20101, например.
No. 20129    
>>20128
О каталоге? О фрейме? О больших глазах в аниме? О >>ссылках? Об Умночане?
Ты можешь нормально излагать свои мысли?
No. 20130    
>>20109
> Неактуальный дизайн
Говори за себя. Дизайн движка очень даже ничего. Жаль, что автор мало им занимается. А ведь проект и правда очень интересный.
No. 20134    
>>20129
Обо всем вместе. Может, разве что, кроме глаз.
No. 20145    
Когда админку и модерку сможешь допилить?
No. 20148    
153026543442.png-(659.50KB, 908×1248, tumblr_pax00abOqd1wnmxkbo1_1280.png)
20148
>>18996
Ето же древняя проблема в виндовых штуках, плюс оно как-то связанно было не с JS, а VB, на сколько мне помнится.

ЗЫ: Тред читал не очень внимательно, но ОП молодец.
No. 20174    
Top links после редактирования не обновляются
No. 20177    
>>20174
Фича любого движка борд. Нужно написать пост, чтобы страница перегенерировалась.
No. 20178    
>>20177
В любом движке борд есть кнопка "пересобрать страницы".
No. 20179    
>>20178

Насколько я понимаю, автором реплики >>20174 был сторонник самосбора.
No. 20182    
>>20178
Тут она тоже есть. Раздел maintenance.
No. 20193    
Когда будет апдейт движка, товарищ разраб?
No. 20875    
Что там по движку. Когда админка будет? Судя по гитхабу, ты там месяц назад делал последний коммит.
No. 20881    
Прочитал ОП-пост, а там какой-то маркетинговый буллщит с "обычный порошок" и "наш котоба-порошок".
No. 20890    
афтар выйпеи йаду и апстол... jquery все портит.
No. 20895    
Предположим ситуацию.
Юзер написал пост. Юзер может его удалить. Модераторы могут его удалить.
Модератор 1 удалил пост, затем другой модератор 2 решил, что удалять его не надо, и восстановил. Модератор 1 не может удалить пост повторно, так как модератор 2 его семпай, и его действия имеют приоритет. Затем постер решил его удалить. Может ли оригинальный потер удалить свой пост, если в посте записано, что модератор 2 защитил пост от удаления своим кохаем модератором 1? Может ли удаленный постером пост быть восстановлен модератором?
No. 20896    
>>20895
Да.
Нет.
No. 20898    
>>20881
А по делу критики как обычно нет. Классика.
No. 20899    
>>20890
> jquery все улучшает.
Поправил тебя.
No. 20900    
154179153971.jpg-(12.81KB, 259×194, .jpg)
20900
>>20898
>>20899
Сёма не палится.
No. 20904    
154192066221.mp4-(70.26KB, 1920×1080, Yahari Ore no Seishun Love Comedy wa Machigatteiru.mp4)
20904
Доброе утро. Говорит Mithgol the Webmaster. Если нужно повторение того мнения, совершённое достоверно другим участником обсуждения, то сообщаю сам от себя: во-первых, выраженное падонковским сленгом мнение «афтар выйпеи йаду и апстол» способно произвести желаемое впечатление только на других же падонков да ещё на жидокащенитов, тогда как всѣ остальные такому надругательству над русскою рѣчью рады не будут (да и с чего бы им быть); во-вторых, употребление jQuery сильно упрощает жизнь разработчику (ввиду того, что сокращается запись «document.getElementsByTagName('td')» до размера «$('td')», а также и другие подобные, мною по адресу https://410chan.org/dev/arch/res/17371.html#18188 перечисленные в декабре прошлого года).
No. 20905    
>>20898
Так ты по делу никаких преимуществ и не привел, какая тут может быть критика?
No. 20906    
>>20904
window.$ = document.querySelectorAll.bind(document);

Ну в общем ты понял. Жидокьюери - замшелый и уже даже начинающий попахивать пережиток прошлого. жывтоне чочо упячка упячка упячка шячло попячтса попячтса
No. 20907    
>>20900
Ты так говоришь, будто это что-то плохое в своей основе.
мимо шел
No. 20908    
>>20904
Говорят, подключать целую библиотеку ради квериселекта не очень разумно.
Удалить сообщение []
Пароль  
[Mod]