みんなの予定表 「アフター5」

なんじゃこれ

仲間同士が、極秘じゃない予定を共有するためのもの。

何ができるじゃ?

こんなん

こんだけ。グループウェアからファイル共有機能を取っぱらって メイル通知機能とグループ作りまくり機能とML機能を足したような感じ?

まあ、デモ版で遊んでみれ。 予定通知メイルがない他は本物と同じじゃ。

何ができないか

こういうことはできない。

そゆのやりたいなら、ぐるーぷうぇあつこてくれ。「予定共有」だけを したいからこれ作った。予定共有したいだけなのに PHP や SQL や Servelet な んかをいれてシステムのセキュリティレベルを下げるのが嫌だ、ってことが きっかけで作ったのがAfter5なので、基本的に予定共有以外の部分は無視。

あ、日程調整なら魚がしぷらんなー がええぞ。

インストール1

「スケジュールデータをhttpd権限で保存するんでいいや」って場合は こんな感じ。

  1. インストールするディレクトリを決める。 ~/public_html/after5 ってことにしよう。

  2. 最新版をインストールする

    % cd ~/public_html
    % git clone https://www.yatex.org/gitbucket/yuuji/after5
    % cd after5
    
  3. after5.cf に管理人のメイルアドレスと、After5を 設置するURLを記述する。

    maintainer=あなたのメイルアドレス
    url=http://設置するURL
    name=設置After5につける短い名前
    
  4. 全てのデータをカレントディレクトリの s/ ディレクト リに書くようになっているので、ここにhttpdが動く権限でデータをかき こめるようにする。

    % mkdir s
    % chmod 1777 s
    

    でも欲をいえば s ディレクトリはhttpdの動くUIDの持ち物にした方が 赤の他人ユーザに書き込まれなくて好ましい。httpdがnobodyで動いてい るなら root 権限で

    # chown nobody s
    # chmod og-w s
    

    しておいた方がええね。

  5. .htaccess ファイルでディレクトリインデックスを変える 権限があるなら

    DirectoryIndex after5.cgi
    

    などとしておく。

  6. CGIがうまく動くことを確認したらURLにパスワードをかける

    % htpasswd -c passwd after5
    

    .htaccess にこんな感じなのを追加

    AuthUserFile /home/tarosan/public_html/after5/passwd
    AuthGroupFile /dev/null
    AuthName Schedule
    AuthType Basic
    
    require user after5
    

    すまん、htpasswdのかけ方の説明する程の元気がない。 Webページへのパスワードのかけ方はgoogleさんにしっかり 教わってくり。

インストール2

httpd権限じゃなくて、After5固有の個人権限で動かす場合。 専用ユーザを作ることでデータの覗き見ができなくなる。けど、 サーバにユーザを作る必要があるので、管理者に頼もう(おそらく自分だね)。

  1. 管理者に頼むかrootになってAfter5専用のユーザを作る

  2. After5専用のユーザにsuする。

  3. 「インストール1」の通りに after5 を展開し、 after5.cf を作成する。

  4. wrapperプログラム a5.cgi をコンパイル

    % make
    
  5. カレントディレクトリに a5.cgi ができるので こっちを公開CGIのURLとする

cronの設定

予定が近づいたときの通知メイルを送るにはシステムの crontab に定期的メイルを送信するようコマンドを登録する必要がある。 仮に after5 のwrapperをインストールしたパスが /home/tarosan/public_html/after5/a5.cgi だとすると、ユーザ:tarosan の crontab は次のように登録する。

*/5 * * * * /home/tarosan/public_html/after5/a5.cgi -notify

crontab の登録はおそらく crontab -e とかでできるんちゃうかな。

ML機能

なんとなくFMLっぽい ML機能がある。カレンダー画面の下部にある「グループ管理」に進み、 表に書かれている各グループの「一斉送信」を利用すると、 そのグループに所属している全員にメイル送信できる。そのアドレスに 返信すれば普通のMLと同様にやりとりできる。

ML機能をしっかりと動かしたい場合は、メイルドメインを設定し、 そのドメイン宛てのメイルがafter5プログラムに届くようにする必要がある。 その設定例を示そう。以下の例では、

after5ディレクトリの所有ユーザ名aft5
uid:gid1050:80
ディレクトリ/var/www/aft5

だとする。

ドメインまるごと供与の場合

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

  1. DNS登録と virtual domain の設定

    まず、after5.example.com の MX レコードをDNS登録し、 サーバにメイルが届くようにし、そのドメイン宛てのメイルを after5のディレクトリに向ける。qmailの場合は、 /var/qmail/virtualdomains に

    after5.example.com:a5
    

    と書き、pkill -HUP qmail-send し、/var/qmail/users/assign に

    +a5-:aft5:1050:80:/var/www/aft5:-:list-:
    

    を(最後の行より前に)追加し、qmail-newu する。これで、 hogehoge@after5.example.com 宛てのメイルが /var/www/aft5/.qmail-list-hogehoge 宛てに届く。

  2. dot-qmailファイルの作成

    .qmail-list-hogehoge は以下のように記述する。

    | ./after5.rb -list
    

specialさんくす

既定値変更

./after5.cf ファイルに オプション= の形式で1行ずつ値を設定する。設定できる値は以下のとおり。

オプション意味既定値
bg背景色ivory
forgotユーザパスワード失念時用のおまじないwasureta
morning当日の予定メイルを送る時刻6
night翌日の予定メイルを送る時刻22

たとえば、パスワードを忘れてしまったときのおまじないパスワードを hogehogeにしたいときは after5.cf ファイルに以下のように 追記する。

forgot=hogehoge

ちうい

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

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


yuuji@example.org
Fingerprint16 = FF F9 FF CC E0 FE 5C F7 19 97 28 24 EC 5D 39 BA
HIROSE Yuuji - ASTROLOGY / BIKE / EPO / GUEST BOOK / YaTeX [Tweet]