root/README

Revision 2447606630fc41e18944485f79fb4eacc6a45a81, 6.7 KB (checked in by Antti-Juhani Kaijanaho <antti-juhani@…>, 3 years ago)

More README updates

Signed-off-by: Antti-Juhani Kaijanaho <antti-juhani@…>

  • Property mode set to 100644
Line 
1                               Overview
2
3Alue will be a discussion forum system providing a web-based forum
4interface, a NNTP (Netnews) interface and an email interface, all with
5equal status. What will be unusual compared to most of the competition
6is that all these interfaces will be coequal views to the same
7abstract discussion, instead of being primarily one of these things
8and providing the others as bolted-on gateways.
9
10Currently NNTP access is implemented and essentially fully functional.
11HTTPS access provides basic functionality.  HTTPS administration is
12lacking, and is under development.
13
14
15                               Warnings
16
17In general - Alue is under construction.  This has several
18consequences:
19
20 - Alue currently requires an expert operator.
21
22 - Alue is security sensitive but has not been inspected or audited
23   for security issues.
24
25 - No stability of file formats or other interfaces is promised, and
26   no upgrade support is provided.
27
28
29                             Requirements
30
31Alue is intended to be installed by the system administrator.  While
32installing it in one's own home directory is technically possible, it
33is not recommended and may be a violation of a relevant acceptable
34usage policy (since Alue opens ports to the Internet).
35
36Alue requires a standards-compliant C++ compiler, a recent Boost
37release (0.38 has been tested; 0.35 is only grudgingly supported[1]),
38and the GnuTLS library.
39
40A SSL/TLS key and a certificate (whether self-signed or CA-issued) are
41needed.  It is not possible to run Alue without SSL/TLS support.
42
43Alue has been developed on Debian GNU/Linux, but is likely to work on
44any POSIX system with no or minimal changes.  A port to Windows is
45expected to be relatively simple but needs a competent volunteer.
46
47[1] Alue can be run on Boost 0.35 but in that case requires a copy of
48boost/asio/buffers_iterator.hpp from 0.36 or later (and trivial
49changes to the source to use that file).
50
51
52                            Configuration
53
54The ports used can be specified on the command line:
55
56  --nntp-port for NNTP (default 119)
57  --nntps-port for NNTP over SSL/TLS (default 563)
58  --https-port for HTTP over SSL/TLS (default 443)
59
60Each takes as an argument a port specification: either a number or a
61name listed in /etc/services.  If a well-known port (<1024) is used,
62then Alue must usually be started as root.
63
64Alue does not support cleartext HTTP without changes to the source.
65Since most HTTP clients also support HTTPS, there seems to be no
66justification to enable the less secure cleartext protocol.  (The same
67argument unfortunately does not apply to NNTP, since NNTP with
68STARTTLS and NNTPS are not supported by many widely used clients.)
69
70If Alue is started as root, pass --user USER on the command line to
71tell Alue to drop root privileges and switch to USER after
72initialization.
73
74Alue logs into the file alue.log in the current directory, unless
75overridden with the --logfile option.  The log buffer is flushed each
76time Alue becomes idle.  There is currently no way to instruct Alue to
77close and reopen the log.
78
79Alue uses the uname nodename as the system's name (for Xref and Path),
80unless overridden with the --canonical-name option.  This should be a
81globally unique name.
82
83Put the SSL/TLS private key (in PEM format) in the file key.pem (or
84give another file name on the command line using the option
85--key-file).
86
87Put the SSL/TLS X.509 certificate (in PEM format) in the file cert.pem
88(or give another file name on the command line using the option
89--cert-file).  If you need intermediate certificates (for example if
90such are provided to you by your Certificate Authority), concatenate
91them in the same file, in the order of certification (that is, each
92certificate is certified by the certification immediately after it).
93
94The options --log-http, --log-nntp and --log-smtp take one argument
95each (a boolean), and all default to false.  If true, then the
96corresponding protocol is extensively logged.  Do note the privacy
97implications.
98
99The option --vm-limit allows you to specify a virtual memory ulimit
100for the Alue process, in order to protect the host system from runaway
101allocation bugs in Alue (none currently known, but they have
102occasionally manifested during development testing).
103
104The option --include-dir specifies the directory where the HTML and
105email template files reside.  The option --files-dir specifies the
106directory where files like CSS stylesheets and images (to be served
107verbatim by the HTTPS system) are located.  The template language is
108currently undocumented; a sample set of templates (used to run the
109test installation) is available at
110  http://git.verbosify.org/?p=verbosify-templates/.git;a=summary
111  git://git.verbosify.org/git/verbosify-templates.git/
112
113The option --operator-email specifies an email address through which
114the operator is reachable.  This address will be used in
115Alue-generated emails.
116
117                           Central database
118
119The central database is located in the file alue.db2 in the current
120directory.  Its format is described in the file db/FORMAT.txt. It
121stores messages as well as information about groups and users.
122
123
124                           Creating a group
125
126NOTE: There is currently no way to create groups without shutting down
127the server.  (A web-based method is planned.)
128
129Step One.  Stop the server.  (This is important, since editing the
130message database while the server is running can cause data
131corruption.)
132
133Step Two.  Append to the message database a block having the following
134format:
135
136  .BEGIN <timestamp>
137  NEWGROUP <groupname>
138  DESCRIPTION <short description>
139  READING <reading_policy>
140  .END
141
142Note that the file is line-oriented; each line in the above schema
143must correspond to a single line in the file.  The lines in the file
144must not be indented.  Case is significant.
145
146Timestamp should have the ISO format (yyyymmddThhmmss) and should
147indicate the time when the group is created.  It should be later than
148any other timestamp in the file, and earlier than any timestamp that
149will be added later (by Alue, for example).
150
151Groupname should follow USEFOR syntax.
152
153Description is free-form text.  It must be a single line and should be
154short.
155
156Reading_policy is either PERMITTED (allowing unidentified users to
157read the group) or RESTRICTED (requiring authentication before the
158group can be read).  Crossposting between restricted and other groups
159is not possible.
160
161Step Three.  Start the server again.
162
163
164                               Contact
165
166For access to the source and updates, see
167  http://git.verbosify.org/?p=alue.git;a=summary
168  git://git.verbosify.org/git/alue.git/
169
170There is an installation running on verbosify.org.  Accounts are not
171currently publicly available, but there are serveral groups that are
172available (read-only) to unidentified users.
173
174Bug reports, patches and other comments should be sent to
175antti-juhani@kaijanaho.fi
Note: See TracBrowser for help on using the browser.