Mithgol / kotoba.js

Yet another imageboard engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ことば.js

kotoba logo

Yet another imageboard engine written with node.js

This project is in active development. Almoust nothing implemented yet. Pull requests are welcome.

Core design ideas

  • Fronend should be compatible with most standard wakaba/kusaba based imageboards, therefore third-party code like Dollchan Extension Tools should with minimal modifications.
  • Templates should generate 100% valid HTML5.
  • Basic features like posting and reading should work without javascript enabled in browser
  • Conainerized application easy to deploy and get up and running. Easiest installation with no spetial skills required.

TODO

  • posts deletion
  • staff permissions system
  • bans and moderation features
  • autoupdate and notifications
  • replies map
  • personal settings stored on server

License

MIT

How to run

  • install Docker and Docker Compose
  • git clone https://github.com/WagonOfDoubt/kotoba.js.git
  • cd kotoba.js
  • docker-compose up
  • go to localhost/manage/registration and create your admin account
  • add any news to generate main page, add some boards and tweak other settings, have fun.

Note that kotoba.js will run in development mode. Do not try to use this in production.

How it works

This containerized application consists of 3 main containers: nginx webserver, node application, and mongo database. Relationships between containers are shown below.

+----------------------------------------------------------------------+
|                 +--------------------------------------------------+ |
|                 |                                                  | |
|      +----------+---------+                                        | |
|      |                    |       Saves files to                   | |
|      |  html folder       +<----------------------------+          | |
|      |  (shared volume)   |                             |          | |
|      |                    +------+                      |          | |
|      |                    |      | Serves files from    |          | |
|      +----------+---------+      |                      |          | |
|                 |                V                      |          | |
|                 |         +------+------+        +------+-----+    | |
|                 |         |    Nginx    |        |  Node app  |    | |
<---------------->|<------->|   reverse   |  api   |            |    | |
|     Requests 80 | Port 80 |80  proxy    |requests|            |    | |
<---------------->|<------->|        3000 +<------>+ 3000       |    | |
|                 |         |             |        |            |    | |
|                 |         +-------------+        |    27017   |    | |
|                 |                                +------+-----+    | |
|                 |         +-------------+               ^          | |
|                 |         |   MongoDB   |               |          | |
|                 |         |             |               |          | |
|                 |         |      27017  +<--------------+          | |
|                 |         |             |                          | |
|                 |         |             |                          | |
|                 |         +-------------+                          | |
|                 |Docker                                            | |
|Docker Host      +--------------------------------------------------+ |
+----------------------------------------------------------------------+

The main node app handles api requests, modifies database and generates static html files which are saved to /html folder and served to end user by nginx webserver.

About

Yet another imageboard engine

License:MIT License


Languages

Language:JavaScript 63.2%Language:HTML 24.0%Language:CSS 12.8%Language:Shell 0.0%