Minor tweaks to 'ADMIN'.
[gruta.git] / INSTALL
blobc5be2963932055816a109a0fbf8091619397fb08
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.0 and Grutatxt 2.0.15.
14 If you want to use the DBI source driver, you'll need DBI and a
15 corresponding DBD, of course. SQLite is fine and probably what
16 you want.
18 Install this package:
20         $ perl Makefile.PL && make && su -c "make install"
22 Execute the `gruta-mksite' script as the user the web server daemon runs
23 as, for example `www-data' under Debian. Answer all the questions and
24 a suitable directory tree will be created. If you answer affirmatively
25 to the 'static urls' question, be sure to include the URL rewriting
26 instructions suitable to your webserver (see below).
28 Now your web server daemon should be instructed to use `g.cgi' (the
29 Gruta entry CGI program) as the directory index. Again, see below for
30 webserver configuration examples.
32 Point your browser to the URL. As it's the first time, an `admin' user
33 with a random password has been created and the program flow redirected
34 to the administration page. Select the `admin' user from the _Users_ section
35 and set a new password.
37 Create some topics. New topics will appear in the top menu. Clicking on
38 them will allow you to create new stories. If you create a topic with the
39 topic id `info', the stories with ids `about' and `legal' will be magically
40 added to the top header. For the rest of your stories, create another topic.
41 One with id `main' will be OK.
43 Webserver configuration examples
44 --------------------------------
46 apache
47 ~~~~~~
49         # directory index
50         DirectoryIndex g.cgi
52         # protect the 'var' subdirectory (the Gruta raw
53         # storage depot) from being served via web
54         <Location /var>
55                 order allow,deny
56                 deny from all
57         </Location>
59         # static URL rewriting instructions
60         RewriteRule ^/([0-9]+)\.html$           /?t=INDEX&offset=$1             [PT,L]
61         RewriteRule ^/([0-9]+)-([0-9]+)\.html$  /?t=SEARCH_BY_DATE&from=$1&to=$2 [PT,L]
62         RewriteRule ^/tag/(.+)\.html$           /?t=SEARCH_BY_TAG&tag=$1        [PT,L]
63         RewriteRule ^/tag/$                     /?t=TAGS                        [PT,L]
64         RewriteRule ^/top/$                     /?t=TOP_TEN                     [PT,L]
65         RewriteRule ^/(.+)/$                    /?t=TOPIC&topic=$1              [PT,L]
66         RewriteRule ^/(.+)/index\.html$         /?t=TOPIC&topic=$1              [PT,L]
67         RewriteRule ^/(.+)/([0-9]+)\.html$      /?t=TOPIC&topic=$1&offset=$2    [PT,L]
68         RewriteRule ^/(.+)/(.+)\.html$          /?t=STORY&topic=$1&id=$2        [PT,L]
69         RewriteRule ^/rss\.xml$                 /?t=RSS                         [PT,L]
70         RewriteRule ^/sitemap\.xml$             /?t=SITEMAP                     [PT,L]
71         RewriteRule ^/style\.css$               /?t=CSS                         [PT,L]
73 lighttpd
74 ~~~~~~~~
76         # activate CGIs and set g.cgi as index
77         cgi.assign = ( ".cgi" => "" )
78         index-file.names = ( "g.cgi" )
80         # protect the 'var' subdirectory (the Gruta raw
81         # storage depot) from being served via web
82         url.access-deny = ( "/var" )
84         # static URL rewriting instructions
85         url.rewrite-once = (
86         "^/([0-9]+)\.html$"     =>      "/?t=INDEX;offset=$1",
87         "^/([0-9]+)-([0-9]+)\.html$" => "/?t=SEARCH_BY_DATE;from=$1;to=$2",
88         "^/tag/(.+)\.html$"     =>      "/?t=SEARCH_BY_TAG;tag=$1",
89         "^/tag/$"               =>      "/?t=TAGS",
90         "^/top/$"               =>      "/?t=TOP_TEN",
91         "^/(.+)/$"              =>      "/?t=TOPIC;topic=$1",
92         "^/(.+)/index\.html$"   =>      "/?t=TOPIC;topic=$1",
93         "^/(.+)/([0-9]+)\.html$" =>     "/?t=TOPIC;topic=$1;offset=$2",
94         "^/(.+)/(.+)\.html$"    =>      "/?t=STORY;topic=$1;id=$2",
95         "^/rss\.xml$"           =>      "/?t=RSS",
96         "^/sitemap\.xml$"       =>      "/?t=SITEMAP",
97         "^/style\.css$"         =>      "/?t=CSS"
98         )
101 Angel Ortega <angel@triptico.com>