Skip to content


Repository files navigation

Lint and Test License

Saku - a clone of P2P anonymous BBS shinGETsu


  • (main) Satoshi Fukutomi
  • sbwhitecap
  • (apollo) replaceable anonymous.
  • (2ch interface) kkka
  • (thumbnail patch) A shinGETsu user.
  • (imghdr patch) A shinGETsu user.
  • (js extensions) shinGETsu users.
  • (markdown extension) WhiteCat6142


  • (run_cgi) Python Software Foundation.
  • (jQuery) The jQuery Foundation.
  • (Twitter Bootstrap) Twitter.
  • (jQuery Lazy) Daniel 'Eisbehr' Kern
  • (Spoiler Alert) Joshua Hull, Jared Volpe, Dwayne Charrington
  • (marked) Christopher Jeffrey


Saku stands for "Shingetsu Another Keen Utility". Both the word "saku" and "shingetsu" mean the new moon in Japanese.


Agree following terms and join shinGETsu network.

  • Descrive your license in your articles. Or they are open, public and/or free: anyone can use, modify and/or distribute them.
  • Do not use the network for illegality.
  • Do not use the network at the cost of othor peolpe.


  • Saku is a P2P anonymous BBS works on Python.
  • We confirm that Saku works on CPython 3.4 on GNU/Linux. Saku may not work on MacOS(ver.9 or before).
  • The features of shinGETsu are...
    • style interface
    • Wiki style hyperlink
    • IRC style cache
    • Uploader

Saku requires

  • Python (ver.3.4.2 or later)
  • pipenv if you install packages with pipenv
  • Jinja2 (ver.2.7.3 or later) if you install Saku
  • PIL or Pillow (Python Imaging Libraty) if you need
  • Supervisor if you need

Usage Saku with Docker Compose

Data will be persistence with ./data directory

  1. Open port 8000/tcp.

  2. Edit docker/saku.ini.

  3. Start with

     % docker compose up
  4. Browse http://localhost:8000/.

  5. Stop with ^C.

Usage Saku without install

  1. Open port 8000/tcp.

  2. Edit file/saku.ini.

  3. Start with

     % pipenv install
     % pipenv run python3 ./ -v
  4. Browse http://localhost:8000/.

  5. Stop with ^C.

Usage Saku with install

  1. Install Jinja2.

  2. Open port 8000/tcp.

  3. Compile and install.

     # make install

    You can use PREFIX option for make, and use directly. If your system do not read modules in /usr/bin/local, do

     # ln -s /usr/local/lib/python3.2/site-packages/shingetsu \
  4. Configration files are installed into /usr/local/share/doc/saku/sample. You shoud install them:

     # cp init.sample /usr/local/etc/init.d/saku
     # cp saku.ini /usr/local/etc/saku/saku.ini

    and so on. If you use Supervisor, install supervisor.sample instead of init.sample. The paths of config files are set in saku.ini, they are in /usr/local/etc/saku by defaults. saku.ini are loaded from following paths and the later settings have a priority.

     * /usr/local/etc/saku/saku.ini
     * /etc/saku/saku.ini
     * ~/.saku/saku.ini
  5. Setup user and directories refering config files.

  6. Start with

     # /usr/local/etc/init.d/saku start
  7. Browse http://localhost:8000/.

  8. Stop with

     # /usr/local/etc/init.d/saku stop
  9. Run /usr/local/bin/saku for user application.

How to Insatall Required Packages on Debian GNU/Linux 8.3

  1. do

     $ sudo aptitude install python3 python3-jinja2 python3-pil


  • The design is made referring to Vojta and Winny.
  • I learned how to handle file name from YukiWiki written by Hiroshi Yuki.
  • Module is was made referring to apollo.c written by replaceable anonymous.
  • Popup JavaScript was made referring to Kindan-no Tubo by Zero corp.
  • XLST was made reffring to Landscape.