Skip to content

Commit

Permalink
Make saku directory on root.
Browse files Browse the repository at this point in the history
  • Loading branch information
fuktommy committed Oct 6, 2007
0 parents commit 8bd9494
Show file tree
Hide file tree
Showing 97 changed files with 10,326 additions and 0 deletions.
23 changes: 23 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Copyright (c) 2005-2007 shinGETsu Project.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
27 changes: 27 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#
# Makefile
# Copyright (C) 2005,2006 shinGETsu Project.
#
# $Id$
#

PREFIX = /usr/local

all:
python setup.py build

install:
python setup.py install --prefix=$(PREFIX)

exe:
python setup-win.py py2exe

clean:
rm -f saku tksaku
rm -Rf build dist root
rm -Rf cache log run
find . -name "*.py[co]" -print0 | xargs -0 rm -f

distclean: clean
find . \( -name "*~" -o -name "#*" -o -name ".#*" \) -print0 | \
xargs -0 rm -f
105 changes: 105 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
Saku - a clone of P2P anonymous BBS shinGETsu
=============================================

Author(s):
(main) Satoshi Fukutomi <[email protected]>
Contributer(s):
(run_cgi) Python Software Foundation.
(SimpleGzipFile) Python Software Foundation.
(popup.js) Zero corp.
(Cheetah) The Cheetah Development Team:
Tavis Rudd, Mike Orr, Ian Bicking, Chuck Esterbrook.

WebSite:
http://shingetsu.info/
http://sourceforge.net/projects/shingetsu/


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

* Agreement
Agree following terms and join shinGETsu network.
(1) Descrive your license in your articles.
Or they are open, public and/or free:
anyone can use, modify and/or distribute them.
(2) Do not use the network for illegality.
(3) Do not use the network at the cost of othor peolpe.

* Description
(1) Saku is a P2P anonymous BBS works on Python.
(2) We confirm that Saku works on CPython 2.4.4 on GNU/Linux and
CPython 2.5 on Windows XP.
Saku may not work on MacOS(ver.9 or before).
(3) The features of shinGETsu are...
- 2ch.net style interface
- Wiki style hyperlink
- IRC style cache
- Uploader

* Package common version Saku requires
Python (ver.2.4 or later)
Cheetah (ver.2.0rc7 or later) if you install Saku

* Package Windows version requires
Windows (We confirm that Saku works on Windows XP)

* Usage Windows version
(1) If your router can not accept UPnP, open port 8000/tcp.
(2) Edit file/saku.ini.
(3) Double click tksaku.exe(window version) or saku.exe(console version).
(4) Stop saku.exe with ^C.

* Usage common version without install
(1) If your router can not accept UPnP, open port 8000/tcp.
(2) Edit file/saku.ini.
(3) Start with
% ./saku.py
or
% ./tksaku.pyw
Browse http://localhost:8000/.
(4) Stop with ^C.

* Usage common version with install
(1) Install Cheetah (http://www.cheetahtemplate.org/).
(2) Open port 8000/tcp.
(3) Compile and install.
# make install
You can use PREFIX option for make, and use setup.py directly.
If your system do not read modules in /usr/bin/local, do
# ln -s /usr/local/lib/python2.4/site-packages/shingetsu \
/usr/lib/python2.4/site-packages
(4) Configration files are installed into /usr/local/share/doc/saku/sample.
You shoud install them:
# cp saku.init /usr/local/etc/init.d/saku
# cp sample.ini /usr/local/etc/saku/saku.ini
and so on.
The paths of config files are set in saku.ini,
they are in /usr/local/etc/saku by defaults.
saku.ini are loaded from
/usr/local/etc/saku/saku.ini
/etc/saku/saku.ini
~/.saku/saku.ini
and the later settings have a priority.
(5) Setup user and directories refering config files.
(6) Start with
# /usr/local/etc/init.d/saku start
Browse http://localhost:8000/.
(7) Stop with
# /usr/local/etc/init.d/saku stop
(8) Run /usr/local/bin/saku or /usr/local/bin/tksaku for user application.

* Acknowledge
(1) The design is made referring to Vojta. (http://www.h6.dion.ne.jp/~vojta/)
(2) I learned how to handle file name from YukiWiki written by Hiroshi Yuki.
(http://www.hyuki.com/yukiwiki/)
(3) Module apollo.py is was made referring to apollo.c
written by replaceable anonymous.
(4) Popup JavaScript was made referring to ``Kindan-no Tubo'' by Zero corp.
(http://tubo.80.kg/)
(5) XLST was made reffring to Landscape.
(http://sonic64.com/2005-03-16.html)
(6) UPnP module was made reffring to Beta-Endorphin.
(http://www.aa.alpha-net.ne.jp/bosuke/trash/upnp.htm)

$Id$
113 changes: 113 additions & 0 deletions README.ja
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
朔 - P2P匿名掲示板「新月」のクローン
====================================

Author(s):
(main) Satoshi Fukutomi <[email protected]>
Contributer(s):
(run_cgi) Python Software Foundation.
(SimpleGzipFile) Python Software Foundation.
(popup.js) Zero corp.
(Cheetah) The Cheetah Development Team:
Tavis Rudd, Mike Orr, Ian Bicking, Chuck Esterbrook.

WebSite:
http://shingetsu.info/
http://sourceforge.net/projects/shingetsu/


Sakuは Shingetsu Another Keen Utility の略です。
また、朔は新月を意味するやや古い表現です。

ネットワークの利用条件は motd.txt ファイルをご覧ください。

●概要
(1) HTTPのGETメソッドのみを用いて記事を配信する
peer to peer 電子掲示板システムです。
(2) 朔は Python 上で動きます。
動作確認は主に GNU/Linux 上の CPython 2.4.4 および
Windows XP 上の CPython 2.5 で行っています。
MacOS(9以前)では動かないと思います。
(3) 次のような特徴を備えた掲示板が利用できます。
- 2ちゃんねる型掲示板のインタフェース
- Wikiを参考にしたハイパーリンク
- IRCを参考にしたキャッシュ
- アップローダ

●共通版に必要なプログラム
Python (ver.2.4以降)
Cheetah (ver.2.0rc7 以降) 朔をインストールする場合

●Windows版に必要なプログラム
Windows (XPで動作確認)

●Windows版の場合
(1) UPnPを利用できるルータを使っていない場合には
ポート 8000/tcp が開けてください。
(2) file/saku.ini ファイルでポート番号などを設定できます。
詳しくは file/sample.ini をご覧ください。
(3) tksaku.exe(ウィンドウ版) か saku.exe(コンソール版)
をダブルクリックすると起動します。
(4) saku.exe を止めるには ^C (Ctrl+C)を押下してください。

●共通版をインストールせずに使う場合
(1) UPnPを利用できるルータを使っていない場合には
ポート 8000/tcp が開けてください。
(2) file/saku.ini ファイルでポート番号などを設定できます。
詳しくは file/sample.ini をご覧ください。
(3) 次のコマンドで起動します。
% ./saku.py
またはGUI版の
% ./tksaku.pyw
その後 http://localhost:8000/ を表示してください。
(4) 止めるときは ^C (Ctrl+C)を押下してください。
GUI版では「STOP」ボタンでも終了します。

●共通版をインストールする場合
(1) Cheetah (http://www.cheetahtemplate.org/) をインストールします。
(2) ポート 8000/tcp が開いていることを確認します。
(3) 次のコマンドを実行します。
# make install
デフォルトでは /usr/local 以下にインストールされます
PREFIXオプションでインストールする場所を変更することができます。
setup.pyを直接利用することもできます。
環境によっては /usr/bin/local 以下のPythonモジュールは読み込みません。
その場合は
# ln -s /usr/local/lib/python2.4/site-packages/shingetsu \
/usr/lib/python2.4/site-packages
のようにしてリンクを張ってください。
(4) 設定ファイルは /usr/local/share/doc/saku/sample にインストールされます。
これを必要に応じて、
# cp saku.init /usr/local/etc/init.d/saku
# cp sample.ini /usr/local/etc/saku/saku.ini
のようににインストールしてください。
ほとんどの設定ファイルは saku.ini でパスを指定するようになっており、
デフォルトでは /usr/local/etc/saku に配置するような設定になっています。
saku.ini は
/usr/local/etc/saku/saku.ini
/etc/saku/saku.ini
~/.saku/saku.ini
の順で読み込まれ、後で設定したものが優先されます。
(5) 設定ファイルと連動するようにユーザとディレクトリを準備してください。
(6) 次のコマンドで起動します。
# /usr/local/etc/init.d/saku start
その後 http://localhost:8000/ を表示してください。
(7) 次のコマンドで終了します。
# /usr/local/etc/init.d/saku stop
(8) /usr/local/bin/saku, /usr/local/bin/tksaku でも起動できます。
この場合はユーザアプリケーションとしての動作です。

●謝辞
(1) 設計についてVojta(http://www.h6.dion.ne.jp/~vojta/)を参考にしました。
(2) ファイル名の扱いについてはHiroshi Yuki氏のYukiWikiを参考にしました。
(http://www.hyuki.com/yukiwiki/)
(3) 署名モジュール apollo.py は replaceable anonymous 氏の
C言語版Apolloを基にしました。
(4) ポップアップのためのJavaScriptは Zero corp. の
「禁断の壷」を参考にしました。
(http://tubo.80.kg/)
(5) XLSTは Landscape を参考にしました。
(http://sonic64.com/2005-03-16.html)
(6) UPnPは βえんどるふぃん を参考にしました。
(http://www.aa.alpha-net.ne.jp/bosuke/trash/upnp.htm)

$Id$
7 changes: 7 additions & 0 deletions file/acl.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Order Allow,Deny
Allow from All

# SPAM to shinGETsu
Deny from 192.168.2.1
Deny from 192.168.3.0/24
Deny from example.com
77 changes: 77 additions & 0 deletions file/apache.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<VirtualHost *>
ServerAdmin [email protected]
DocumentRoot /srv/www/bbs.shingetsu.info
ServerName bbs.shingetsu.info
ServerAlias bbs.shingetsu.info, fuktommy.ddo.jp
ErrorLog /var/log/httpd/bbs.shingetsu.info.error.log
CustomLog /var/log/httpd/bbs.shingetsu.info.access.log combined
RewriteMap escape int:escape

<Directory "/srv/www/bbs.shingetsu.info">
Options -Indexes -ExecCGI
AddType text/xml;charset=UTF-8 .rdf
RewriteEngine on
RewriteRule gateway.cgi/rss rss.rdf
RewriteRule server.cgi - [F]
RewriteRule ^([0-9][^/]*).js$ /STATIC/$1.js
RewriteRule ^([0-9][^/]*).css$ /STATIC/$1.css
RewriteRule ^favicon.ico$ /STATIC/favicon.ico
RewriteRule rss1.xsl /STATIC/rss1.xsl
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{HTTP_USER_AGENT} DoCoMo/2.0
RewriteRule ^mobile.cgi /mobile.xhtml
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{HTTP_USER_AGENT} !DoCoMo
RewriteRule ^mobile.cgi /mobile.html
RewriteCond %{QUERY_STRING} cmd=post
RewriteRule . /cgi-bin/dummy.php
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_REFERER} $^
RewriteRule . /cgi-bin/dummy.php
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_REFERER} %25
RewriteRule . /cgi-bin/dummy.php
RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^thread.cgi/. /cgi-bin/dummy.php
RewriteRule ^gw$ /cgi-bin/gw.cgi
RewriteRule ^thread.cgi/(thread_[0-9A-F]*)/([0-9a-f]*)/([0-9]*).(.*) \
/CACHE/$1/attach/$3_$2.$4
<Files "mobile.cgi">
<Limit POST>
Include /etc/httpd/mobile.acl
</Limit>
</Files>
<IfModule mod_proxy.c>
#RewriteRule ^$ http://59.106.27.44:8000/gateway.cgi [P]
RewriteRule ^(gateway|thread|mobile).cgi(.*) \
http://59.106.27.44:8000/$1.cgi${escape:$2} [P,NE]
</IfModule>
RewriteRule ^archive/(.*) http://archive.shingetsu.info/$1 [L]
</Directory>

Alias /cgi-bin/ /srv/www/bbs.shingetsu.info/cgi-bin/
<Directory "/srv/www/bbs.shingetsu.info/cgi-bin">
Options +ExecCGI
</Directory>

Alias /STATIC/ /usr/local/share/saku/www/
<Directory "/usr/local/share/saku/www">
Options -Indexes -ExecCGI
</Directory>

Alias /CACHE/ /srv/saku/cache/
<Directory "/srv/saku/cache">
Options -Indexes -ExecCGI
</Directory>
</VirtualHost>

<VirtualHost *>
ServerAdmin [email protected]
DocumentRoot /srv/www/bbs.shingetsu.info
ServerName node.shingetsu.info
<Directory />
RedirectMatch ^/$ http://shingetsu.info/
</Directory>
</VirtualHost>
Loading

0 comments on commit 8bd9494

Please sign in to comment.