Improved error handling in comment spam checking.
[gruta.git] / INSTALL
blob9258adf635cecdaf7537e6702cb7ce53357a437c
1 Gruta Installation Guide
2 ========================
4 Installation steps
5 ------------------
7 Install the Artemus and Grutatxt modules, available from:
9         http://triptico.com/software/artemus.html
10         http://triptico.com/software/grutatxt.html
12 You'll need at least Artemus 5.0.1 and Grutatxt 2.0.16 (please take
13 note that these versions may be development ones).
15 If you want to use the DBI source driver, you'll need DBI and a
16 corresponding DBD, of course. SQLite is fine and probably what
17 you want.
19 Install this package:
21         $ perl Makefile.PL && make && su -c "make install"
23 Execute the `gruta-mksite' script as the user the web server daemon runs
24 as, for example `www-data' under Debian. Answer all the questions and
25 a suitable directory tree will be created. If you answer affirmatively
26 to the 'static urls' question, be sure to include the URL rewriting
27 instructions suitable to your webserver (see below).
29 Now your web server daemon should be instructed to use `g.cgi' (the
30 Gruta entry CGI program) as the directory index. Again, see below for
31 webserver configuration examples.
33 Point your browser to the URL. As it's the first time, an `admin' user
34 with a random password has been created and the program flow redirected
35 to the administration page. Select the `admin' user from the _Users_ section
36 and set a new password. After that, move to the _Configuration_ section and
37 make all the changes you need.
39 Create some topics. New topics will appear in the top menu. Clicking on
40 them will allow you to create new stories. If you create a topic with the
41 topic id `info', the stories with ids `about' and `legal' will be magically
42 added to the top header. For the rest of your stories, create another topic.
43 One with id `main' will be OK.
45 Webserver configuration examples
46 --------------------------------
48 apache
49 ~~~~~~
51         # directory index
52         DirectoryIndex g.cgi
54         # protect the 'var' subdirectory (the Gruta raw
55         # storage depot) from being served via web
56         <Location /var>
57                 order allow,deny
58                 deny from all
59         </Location>
61         # static URL rewriting instructions
62         RewriteRule ^/([0-9]+)\.html$           /?t=INDEX&offset=$1             [PT,L]
63         RewriteRule ^/([0-9]+)-([0-9]+)\.html$  /?t=SEARCH_BY_DATE&from=$1&to=$2 [PT,L]
64         RewriteRule ^/tag/(.+)\.html$           /?t=SEARCH_BY_TAG&tag=$1        [PT,L]
65         RewriteRule ^/tag/$                     /?t=TAGS                        [PT,L]
66         RewriteRule ^/top/$                     /?t=TOP_TEN                     [PT,L]
67         RewriteRule ^/(.+)/$                    /?t=TOPIC&topic=$1              [PT,L]
68         RewriteRule ^/(.+)/index\.html$         /?t=TOPIC&topic=$1              [PT,L]
69         RewriteRule ^/(.+)/([0-9]+)\.html$      /?t=TOPIC&topic=$1&offset=$2    [PT,L]
70         RewriteRule ^/(.+)/(.+)\.html$          /?t=STORY&topic=$1&id=$2        [PT,L]
71         RewriteRule ^/rss\.xml$                 /?t=RSS                         [PT,L]
72         RewriteRule ^/sitemap\.xml$             /?t=SITEMAP                     [PT,L]
73         RewriteRule ^/style\.css$               /?t=CSS                         [PT,L]
75 lighttpd
76 ~~~~~~~~
78         # activate CGIs and set g.cgi as index
79         cgi.assign = ( ".cgi" => "" )
80         index-file.names = ( "g.cgi" )
82         # protect the 'var' subdirectory (the Gruta raw
83         # storage depot) from being served via web
84         url.access-deny = ( "/var" )
86         # static URL rewriting instructions
87         url.rewrite-once = (
88         "^/([0-9]+)\.html$"     =>      "/?t=INDEX;offset=$1",
89         "^/([0-9]+)-([0-9]+)\.html$" => "/?t=SEARCH_BY_DATE;from=$1;to=$2",
90         "^/tag/(.+)\.html$"     =>      "/?t=SEARCH_BY_TAG;tag=$1",
91         "^/tag/$"               =>      "/?t=TAGS",
92         "^/top/$"               =>      "/?t=TOP_TEN",
93         "^/(.+)/$"              =>      "/?t=TOPIC;topic=$1",
94         "^/(.+)/index\.html$"   =>      "/?t=TOPIC;topic=$1",
95         "^/(.+)/([0-9]+)\.html$" =>     "/?t=TOPIC;topic=$1;offset=$2",
96         "^/(.+)/(.+)\.html$"    =>      "/?t=STORY;topic=$1;id=$2",
97         "^/rss\.xml$"           =>      "/?t=RSS",
98         "^/sitemap\.xml$"       =>      "/?t=SITEMAP",
99         "^/style\.css$"         =>      "/?t=CSS"
100         )
103 Angel Ortega <angel@triptico.com>