You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
229 lines
5.3 KiB
229 lines
5.3 KiB
11 years ago
|
Server Configuration
|
||
|
====================
|
||
11 years ago
|
|
||
11 years ago
|
The Isso configuration file is an `INI-style`__ textfile. It reads integers,
|
||
|
booleans and strings. Below is a basic example:
|
||
11 years ago
|
|
||
|
.. code-block:: ini
|
||
|
|
||
|
[general]
|
||
|
dbpath = /var/lib/isso/comments.db
|
||
|
host = https://example.tld/
|
||
|
[server]
|
||
|
port = 1234
|
||
|
|
||
11 years ago
|
To use your configuration file with Isso, append ``-c /path/to/cfg`` to the
|
||
|
executable or run Isso with an environment variable:
|
||
11 years ago
|
|
||
|
.. code-block:: sh
|
||
|
|
||
|
~> isso -c path/to/isso.cfg
|
||
|
~> env ISSO_SETTINGS=path/to/isso.cfg isso
|
||
|
|
||
|
__ https://en.wikipedia.org/wiki/INI_file
|
||
|
|
||
11 years ago
|
Sections covered in this document:
|
||
|
|
||
|
.. contents::
|
||
|
:local:
|
||
|
|
||
11 years ago
|
|
||
|
General
|
||
|
-------
|
||
|
|
||
|
In this section, you configure most comment-related options such as database path,
|
||
|
session key and hostname. Here are the default values for this section:
|
||
|
|
||
|
.. code-block:: ini
|
||
|
|
||
|
[general]
|
||
|
dbpath = /tmp/isso.db
|
||
|
host = http://localhost:8080/
|
||
|
max-age = 15m
|
||
11 years ago
|
session-key = ... ; python: binascii.b2a_hex(os.urandom(24))
|
||
11 years ago
|
notify =
|
||
11 years ago
|
|
||
|
dbpath
|
||
|
file location to the SQLite3 database, highly recommended to change this
|
||
|
location to a non-temporary location!
|
||
|
|
||
|
host
|
||
|
URL to your website. When you start Isso, it will probe your website with
|
||
|
a simple ``GET /`` request to see if it can reach the webserver. If this
|
||
|
fails, Isso may not be able check if a web page exists, thus fails to
|
||
|
accept new comments.
|
||
|
|
||
11 years ago
|
You can supply more than one host:
|
||
|
|
||
|
.. code-block:: ini
|
||
|
|
||
|
[general]
|
||
|
host =
|
||
|
http://localhost/
|
||
|
https://localhost/
|
||
|
|
||
|
This is useful, when your website is available on HTTP and HTTPS.
|
||
|
|
||
11 years ago
|
session-key
|
||
|
private session key to validate client cookies. If you restart the
|
||
|
application several times per hour for whatever reason, use a fixed
|
||
|
key.
|
||
|
|
||
|
max-age
|
||
|
time range that allows users to edit/remove their own comments. See
|
||
|
:ref:`Appendum: Timedelta <appendum-timedelta>` for valid values.
|
||
|
|
||
11 years ago
|
notify
|
||
|
Select notification backend for new comments. Currently, only SMTP
|
||
|
is available.
|
||
|
|
||
11 years ago
|
|
||
|
Moderation
|
||
|
----------
|
||
|
|
||
|
Enable moderation queue and handling of comments still in moderation queue
|
||
|
|
||
|
.. code-block:: ini
|
||
|
|
||
|
[moderation]
|
||
|
enabled = false
|
||
|
purge-after = 30d
|
||
|
|
||
|
enabled
|
||
|
enable comment moderation queue. This option only affects new comments.
|
||
|
Comments in modertion queue are not visible to other users until you
|
||
|
activate them.
|
||
|
|
||
|
purge-after
|
||
|
remove unprocessed comments in moderation queue after given time.
|
||
|
|
||
|
|
||
|
Server
|
||
|
------
|
||
|
|
||
11 years ago
|
HTTP server configuration.
|
||
11 years ago
|
|
||
|
.. code-block:: ini
|
||
|
|
||
|
[server]
|
||
11 years ago
|
listen = http://localhost:8080
|
||
11 years ago
|
reload = off
|
||
11 years ago
|
profile = off
|
||
11 years ago
|
|
||
11 years ago
|
listen
|
||
|
interface to listen on. Isso supports TCP/IP and unix domain sockets:
|
||
|
|
||
11 years ago
|
.. code-block:: ini
|
||
11 years ago
|
|
||
|
; UNIX domain socket
|
||
|
listen = unix:///tmp/isso.sock
|
||
|
; TCP/IP
|
||
|
listen = http:///localhost:1234/
|
||
|
|
||
|
When ``gevent`` is available, it is automatically used for `http://`
|
||
|
Currently, gevent can not handle http requests on unix domain socket
|
||
|
(see `#295 <https://github.com/surfly/gevent/issues/295>`_ and
|
||
|
`#299 <https://github.com/surfly/gevent/issues/299>`_ for details).
|
||
11 years ago
|
|
||
11 years ago
|
Does not apply for `uWSGI`.
|
||
11 years ago
|
|
||
|
reload
|
||
|
reload application, when the source code has changed. Useful for
|
||
11 years ago
|
development (don't forget to use a fixed `session-key`). Only works
|
||
|
when ``gevent`` and ``uwsgi`` are *not* available.
|
||
11 years ago
|
|
||
11 years ago
|
profile
|
||
|
show 10 most time consuming function in Isso after each request. Do
|
||
|
not use in production.
|
||
|
|
||
11 years ago
|
.. _configure-smtp:
|
||
11 years ago
|
|
||
|
SMTP
|
||
|
----
|
||
|
|
||
|
Isso can notify you on new comments via SMTP. In the email notification, you
|
||
11 years ago
|
also can moderate (=activate or delete) comments. Don't forget to configure
|
||
|
``notify = smtp`` in the general section.
|
||
11 years ago
|
|
||
|
.. code-block:: ini
|
||
|
|
||
|
[smtp]
|
||
|
username =
|
||
|
password =
|
||
|
host = localhost
|
||
|
port = 465
|
||
|
ssl = on
|
||
|
to =
|
||
|
from =
|
||
|
|
||
|
username
|
||
|
self-explanatory, optional
|
||
|
|
||
|
password
|
||
|
self-explanatory (yes, plain text, create a dedicated account for
|
||
|
notifications), optional.
|
||
|
|
||
|
host
|
||
|
SMTP server
|
||
|
|
||
|
port
|
||
|
SMTP port
|
||
|
|
||
|
ssl
|
||
|
use SSL to connect to the server. Python probably does not validate the
|
||
|
certificate. Needs research, though. But you should use a dedicated
|
||
|
email account anyways.
|
||
|
|
||
|
to
|
||
|
recipient address, e.g. your email address
|
||
|
|
||
|
from
|
||
|
sender address, e.g. isso@example.tld
|
||
|
|
||
|
|
||
|
Guard
|
||
|
-----
|
||
|
|
||
|
Enable basic spam protection features, e.g. rate-limit per IP address (``/24``
|
||
|
for IPv4, ``/48`` for IPv6).
|
||
|
|
||
|
.. code-block:: ini
|
||
|
|
||
|
[guard]
|
||
|
enabled = true
|
||
|
ratelimit = 2
|
||
11 years ago
|
direct-reply = 3
|
||
11 years ago
|
reply-to-self = false
|
||
11 years ago
|
|
||
|
enabled
|
||
|
enable guard, recommended in production. Not useful for debugging
|
||
|
purposes.
|
||
|
|
||
11 years ago
|
ratelimit
|
||
11 years ago
|
limit to N new comments per minute.
|
||
|
|
||
11 years ago
|
direct-reply
|
||
|
how many comments directly to the thread (prevent a simple
|
||
|
`while true; do curl ...; done`.
|
||
|
|
||
11 years ago
|
reply-to-self
|
||
|
allow commenters to reply to their own comments when they could still edit
|
||
|
the comment. After the editing timeframe is gone, commenters can reply to
|
||
|
their own comments anyways.
|
||
|
|
||
11 years ago
|
Do not forget to configure the client.
|
||
|
|
||
11 years ago
|
|
||
|
Appendum
|
||
11 years ago
|
--------
|
||
11 years ago
|
|
||
|
.. _appendum-timedelta:
|
||
|
|
||
|
Timedelta
|
||
|
A human-friendly representation of a time range: `1m` equals to 60
|
||
|
seconds. This works for years (y), weeks (w), days (d) and seconds (s),
|
||
|
e.g. `30s` equals 30 to seconds.
|
||
|
|
||
|
You can add different types: `1m30s` equals to 90 seconds, `3h45m12s`
|
||
|
equals to 3 hours, 45 minutes and 12 seconds (12512 seconds).
|