Newer
Older
after5 / index.html
@HIROSE Yuuji HIROSE Yuuji on 21 Aug 2019 7 KB add README.md
<html>
<head>
<title>

</title>
<link rel="stylesheet" type="text/css" href="after5.css">
</head>

<body>
<h1>みんなの予定表 <img src="after5.png" alt="「アフター5」"
style="vertical-align: middle;"></h1>
<h2>なんじゃこれ</h2>
<p>仲間同士が、極秘じゃない予定を共有するためのもの。</p>

<h2>何ができるじゃ?</h2>
<p>こんなん</p>
<ul>
 <li>個人の予定を登録するとみんなにその予定が見える</li>
 <li>他人には見せないようなプライベートな予定も入れられる</li>
 <li>予定が近づくと指定した宛先にメイルを送ってくれる</li>
 <li>いつメイルを送るかは登録時にある程度選べる</li>
 <li>グループを作ってグループの予定も登録できる</li>
 <li>グループの予定通知メイルはグループメンバー全員に送られる</li>
 <li>グループ予定はグループメンバー以外には見せないようにもできる</li>
 <li>グループ全員に一斉メイルを流せる</li>
</ul>
<p>こんだけ。グループウェアからファイル共有機能を取っぱらって
メイル通知機能とグループ作りまくり機能とML機能を足したような感じ?</p>

<p>まあ、<a href="demo/a5.cgi">デモ版で遊んで</a>みれ。
予定通知メイルがない他は本物と同じじゃ。</p>

<h2>何ができないか</h2>
<p>こういうことはできない。</p>
<ul>
 <li> ファイル共有機能
 <li> 回覧
 <li> 予約や日程調整
</ul>
<p>そゆのやりたいなら、ぐるーぷうぇあつこてくれ。「予定共有」だけを
したいからこれ作った。予定共有したいだけなのに PHP や SQL や Servelet な
んかをいれてシステムのセキュリティレベルを下げるのが嫌だ、ってことが
きっかけで作ったのがAfter5なので、基本的に予定共有以外の部分は無視。</p>

<p>あ、日程調整なら<a href="/~yuuji/software/uogashi/">魚がしぷらんなー</a>
がええぞ。</p>

<h2>インストール1</h2>
<p>「スケジュールデータをhttpd権限で保存するんでいいや」って場合は
こんな感じ。</p>
<ol>
 <li><p>インストールするディレクトリを決める。
     <code>~/public_html/after5</code> ってことにしよう。</p></li>
 <li><p>最新版をインストールする</p>
     <div class="screen">
<pre>
% <span class="u">cd ~/public_html</span>
% <span class="u">git clone https://www.yatex.org/gitbucket/yuuji/after5</span>
% <span class="u">cd after5</span>
</pre>
     </div></li>
 <li><p><code>after5.cf</code> に管理人のメイルアドレスと、After5を
     設置するURLを記述する。</p>
     <div class="list">
<pre>
maintainer=<var>あなたのメイルアドレス</var>
url=http://<var>設置するURL</var>
name=<var>設置After5につける短い名前</var>
</pre>
     </div></li>
 <li><p>全てのデータをカレントディレクトリの <code>s/</code> ディレクト
     リに書くようになっているので、ここにhttpdが動く権限でデータをかき
     こめるようにする。</p>
     <div class="screen">
<pre>
% <span class="u">mkdir s</span>
% <span class="u">chmod 1777 s</span>
</pre>
     </div>
     <p>でも欲をいえば s ディレクトリはhttpdの動くUIDの持ち物にした方が
     赤の他人ユーザに書き込まれなくて好ましい。httpdがnobodyで動いてい
     るなら root 権限で</p>
     <div class="screen">
<pre>
# <span class="u">chown nobody s</span>
# <span class="u">chmod og-w s</span>
</pre>
     </div>
     <p>しておいた方がええね。</p></li>
 <li><p><code>.htaccess</code> ファイルでディレクトリインデックスを変える
     権限があるなら</p>
     <div class="list">
<pre>
DirectoryIndex after5.cgi
</pre>
     </div>
     <p>などとしておく。</p></li>
 <li><p>CGIがうまく動くことを確認したらURLにパスワードをかける</p>
     <div class="list">
<pre>
% <span class="u">htpasswd -c passwd after5</span>
</pre>
     </div>
     <p><code>.htaccess</code> にこんな感じなのを追加</p>
     <div class="list">
<pre>
AuthUserFile /home/tarosan/public_html/after5/passwd
AuthGroupFile /dev/null
AuthName Schedule
AuthType Basic

require user after5
</pre>
     </div>
     <p>すまん、htpasswdのかけ方の説明する程の元気がない。
     Webページへのパスワードのかけ方はgoogleさんにしっかり
     教わってくり。</p></li>
</ol>

<h2>インストール2</h2>
<p>httpd権限じゃなくて、After5固有の個人権限で動かす場合。
専用ユーザを作ることでデータの覗き見ができなくなる。けど、
サーバにユーザを作る必要があるので、管理者に頼もう(おそらく自分だね)。
</p>
<ol>
 <li><p>管理者に頼むかrootになってAfter5専用のユーザを作る</p></li>
 <li><p>After5専用のユーザにsuする。</p></li>
 <li><p>「インストール1」の通りに after5 を展開し、
     <code>after5.cf</code> を作成する。</p></li>
 <li><p>wrapperプログラム <code>a5.cgi</code> をコンパイル</p>
     <div class="screen">
<pre>
% make
</pre>
     </div></li>
 <li><p>カレントディレクトリに <code>a5.cgi</code> ができるので
     こっちを公開CGIのURLとする</p></li>
</ol>

<h2>cronの設定</h2>
<p>予定が近づいたときの通知メイルを送るにはシステムの crontab
に定期的メイルを送信するようコマンドを登録する必要がある。
仮に after5 のwrapperをインストールしたパスが
<code>/home/tarosan/public_html/after5/a5.cgi</code>
だとすると、ユーザ:tarosan の crontab は次のように登録する。</p>
<div class="list">
<pre>
*/5 * * * * /home/tarosan/public_html/after5/a5.cgi -notify
</pre>
</div>
<p>crontab の登録はおそらく <code>crontab -e</code>
とかでできるんちゃうかな。</p>

<h2>ML機能</h2>
<p>なんとなく<a href="http://www.fml.org">FML</a>っぽい
ML機能がある。カレンダー画面の下部にある「グループ管理」に進み、
表に書かれている各グループの「一斉送信」を利用すると、
そのグループに所属している全員にメイル送信できる。そのアドレスに
返信すれば普通のMLと同様にやりとりできる。</p>
<p>ML機能をしっかりと動かしたい場合は、メイルドメインを設定し、
そのドメイン宛てのメイルがafter5プログラムに届くようにする必要がある。
その設定例を示そう。以下の例では、</p>

<table class="border">
 <tr><td>after5ディレクトリの所有ユーザ名</td><td>aft5</td></tr>
 <tr><td>uid:gid</td><td>1050:80</td></tr>
 <tr><td>ディレクトリ</td><td>/var/www/aft5</td></tr>
</table>

<p>だとする。</p>

<h3>ドメインまるごと供与の場合</h3>
<p>たとえば @after5.example.com を専用ドメインとし、
hogehoge@after5.example.com に届いたメッセージを該当after5の
hogehoge グループに送信する場合の設定を示す。</p>

<ol>
 <li>DNS登録と virtual domain の設定
     <p>まず、after5.example.com の MX レコードをDNS登録し、
     サーバにメイルが届くようにし、そのドメイン宛てのメイルを
     after5のディレクトリに向ける。qmailの場合は、
     /var/qmail/virtualdomains に</p>
     <div class="list">
<pre>
after5.example.com:a5
</pre>
     </div>
     <p>と書き、pkill -HUP qmail-send し、/var/qmail/users/assign に</p>
     <div class="list">
<pre>
+a5-:aft5:1050:80:/var/www/aft5:-:list-:
</pre>
     </div>
     <p>を(最後の行より前に)追加し、qmail-newu する。これで、
     hogehoge@after5.example.com 宛てのメイルが
     /var/www/aft5/.qmail-list-hogehoge 宛てに届く。</p>
 </li>
 <li>dot-qmailファイルの作成
     <p>.qmail-list-hogehoge は以下のように記述する。</p>
     <div class="list">
<pre>
| ./after5.rb -list
</pre>
     </div>
 </li>
</ol>

<h2>specialさんくす</h2>
<ul>
 <li>的確なアドバイスをくれた<a href="/~loony/">loony</a></li>
</ul>

<h2>既定値変更</h2>
<p><code>./after5.cf</code> ファイルに <var>オプション</var>=<var>値</var>
の形式で1行ずつ値を設定する。設定できる値は以下のとおり。</p>
<table>
 <tr><th>オプション</th><th>意味</th><th>既定値</th></tr>
 <tr><th><code>bg</code></th><td>背景色</td><td>ivory</td></tr>
 <tr><th><code>forgot</code></th><td>ユーザパスワード失念時用のおまじない</td><td>wasureta</td></tr>
 <tr><th><code>morning</code></th><td>当日の予定メイルを送る時刻</td><td>6</td></tr>
 <tr><th><code>night</code></th><td>翌日の予定メイルを送る時刻</td><td>22</td></tr>
</table>
<p>たとえば、パスワードを忘れてしまったときのおまじないパスワードを
hogehogeにしたいときは <code>after5.cf</code> ファイルに以下のように
追記する。</p>
<div class="list">
<pre>
forgot=hogehoge
</pre>
</div>

<h2>ちうい</h2>

<p>HTTPで情報をやりとりするのでセキュリティは低い。というか、
Webってもともと情報を公開するためのもんだからな。
といっても、よほど頑張らないと覗き見することは難しい。
といってもばれたら立場があやうくなるような機密情報は手許の手帳にだけ
書くよろし。</p>

<p>てことで、どこに出張にいくから飲もうぜ、とか、ひそかにみんなを驚かそ
うと企んでる、なんてなことをみんなで共有して楽しんでくれ!</p>

<hr>
<!--#include virtual="/~yuuji/signature.html"-->
</body>
</html>