annotate doc/installation.rst @ 467:d86e0f8a1405

privilege: store roster cache in database: - rosters are now stored on database and restored on startup. This way, presence map can be restored without the need to wait for all contact to send presence again - roster version are checked, if a new version is received, presence map is updated accordingly - roster are not retrieved if presence are received in a too short delay (see ROSTER_TTL), to avoid using too much resources if a client connect/disconnect a lot The current behaviour works around XEP-0356 limitations. An update of the XEP will be needed to get roster pushes and roster version.
author Goffi <goffi@goffi.org>
date Fri, 15 Oct 2021 15:30:18 +0200
parents 67da33212b2b
children 445a2f67be4a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
1 ============
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
2 Installation
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
3 ============
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
4
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
5 This are the instructions to install SàT Pubsub.
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
6
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
7 .. note::
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
8
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
9 SàT PubSub is not released yet and this documentation is work in progress
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
10
436
80aca1cf1543 doc: added a warning for people using SàT Pubsub on a server already used in production
Goffi <goffi@goffi.org>
parents: 427
diff changeset
11 .. note::
80aca1cf1543 doc: added a warning for people using SàT Pubsub on a server already used in production
Goffi <goffi@goffi.org>
parents: 427
diff changeset
12
442
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
13 /!\\ Beware, if you're installing SàT Pubsub on a server already running in production,
436
80aca1cf1543 doc: added a warning for people using SàT Pubsub on a server already used in production
Goffi <goffi@goffi.org>
parents: 427
diff changeset
14 it will replace your legacy Pubsub service, meaning that everything stored there won't
80aca1cf1543 doc: added a warning for people using SàT Pubsub on a server already used in production
Goffi <goffi@goffi.org>
parents: 427
diff changeset
15 be available anymore (this includes, and is not limited to, bookmarks, encryption
80aca1cf1543 doc: added a warning for people using SàT Pubsub on a server already used in production
Goffi <goffi@goffi.org>
parents: 427
diff changeset
16 keys, blogs, etc.).
80aca1cf1543 doc: added a warning for people using SàT Pubsub on a server already used in production
Goffi <goffi@goffi.org>
parents: 427
diff changeset
17
80aca1cf1543 doc: added a warning for people using SàT Pubsub on a server already used in production
Goffi <goffi@goffi.org>
parents: 427
diff changeset
18 Be sure to save everything from your legacy Pubsub service before switching to SàT
80aca1cf1543 doc: added a warning for people using SàT Pubsub on a server already used in production
Goffi <goffi@goffi.org>
parents: 427
diff changeset
19 Pubsub.
80aca1cf1543 doc: added a warning for people using SàT Pubsub on a server already used in production
Goffi <goffi@goffi.org>
parents: 427
diff changeset
20
80aca1cf1543 doc: added a warning for people using SàT Pubsub on a server already used in production
Goffi <goffi@goffi.org>
parents: 427
diff changeset
21 Migration scripts are not yet available, help is welcome to write them.
80aca1cf1543 doc: added a warning for people using SàT Pubsub on a server already used in production
Goffi <goffi@goffi.org>
parents: 427
diff changeset
22
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
23
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
24 Requirements
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
25 ------------
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
26
421
f124ed5ea78b doc: remove python2 references + added a warning for `python setup.py install`
Goffi <goffi@goffi.org>
parents: 409
diff changeset
27 - Python 3.7+
425
968091cea547 doc: installation instructions corrections
Goffi <goffi@goffi.org>
parents: 421
diff changeset
28 - Python 3 "venv", which may be installed with Python 3
968091cea547 doc: installation instructions corrections
Goffi <goffi@goffi.org>
parents: 421
diff changeset
29 - Mercurial
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
30 - A XMPP server that supports the component protocol (XEP-0114),
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
31 and, to enable the micro-blogging feature, Namespace Delegation (XEP-0355)
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
32 and privileged entity (XEP-0356) are needed.
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
33 We recommend using Prosody with mod_privilege and mod_delegation modules (those modules
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
34 are maintained by us).
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
35
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
36 For the PostgreSQL backend, the following is also required:
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
37
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
38 - PostgreSQL >= 9.5 (including development files for psycopg2)
442
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
39
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
40 Installation of dev version
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
41 ---------------------------
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
42
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
43 First install system requirements. On a Debian system or derivative, you can use following
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
44 instructions::
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
45
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
46 sudo apt-get install postgresql python3-dev python3-venv python3-wheel mercurial
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
47
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
48 Now go in a location where you can install SàT Pubsub, for instance your home directory::
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
49
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
50 $ cd
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
51
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
52 You'll need to create and activate a Python virtual environment::
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
53
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
54 $ python3 -m venv pubsub-venv
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
55 $ source pubsub-venv/bin/activate
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
56 $ pip install -U pip wheel
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
57
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
58 Then you need to clone the repository::
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
59
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
60 $ hg clone https://repos.goffi.org/sat_pubsub && cd sat_pubsub
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
61
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
62 Now you can install requirements::
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
63
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
64 $ pip install -r requirements.txt
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
65
443
6cef8aa1c991 doc: add missing `pip install -e .`
Goffi <goffi@goffi.org>
parents: 442
diff changeset
66 And that's it! Please refer to `Post Installation`_ to initialize database.
6cef8aa1c991 doc: add missing `pip install -e .`
Goffi <goffi@goffi.org>
parents: 442
diff changeset
67
6cef8aa1c991 doc: add missing `pip install -e .`
Goffi <goffi@goffi.org>
parents: 442
diff changeset
68 Next time you can update with::
6cef8aa1c991 doc: add missing `pip install -e .`
Goffi <goffi@goffi.org>
parents: 442
diff changeset
69
6cef8aa1c991 doc: add missing `pip install -e .`
Goffi <goffi@goffi.org>
parents: 442
diff changeset
70 $ hg pull -u
6cef8aa1c991 doc: add missing `pip install -e .`
Goffi <goffi@goffi.org>
parents: 442
diff changeset
71
6cef8aa1c991 doc: add missing `pip install -e .`
Goffi <goffi@goffi.org>
parents: 442
diff changeset
72 .. note::
6cef8aa1c991 doc: add missing `pip install -e .`
Goffi <goffi@goffi.org>
parents: 442
diff changeset
73
6cef8aa1c991 doc: add missing `pip install -e .`
Goffi <goffi@goffi.org>
parents: 442
diff changeset
74 if requirements change, you may have to enter ``pip install -r requirements.txt``
6cef8aa1c991 doc: add missing `pip install -e .`
Goffi <goffi@goffi.org>
parents: 442
diff changeset
75 again, check also `Update`_ below)
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
76
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
77 Installation From Sources
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
78 -------------------------
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
79
442
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
80 .. note::
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
81
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
82 until the release of SàT Pubsub ``0.4.0`` it is recommended to install dev version
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
83 with instructions above
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
84
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
85 To install SàT PubSub we'll work in a virtual environment. On Debian and derivatives you
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
86 should easily install dependencies with this::
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
87
425
968091cea547 doc: installation instructions corrections
Goffi <goffi@goffi.org>
parents: 421
diff changeset
88 sudo apt-get install postgresql python3-dev python3-venv python3-wheel mercurial
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
89
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
90 Now go in a location where you can install SàT Pubsub, for instance your home directory::
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
91
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
92 $ cd
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
93
421
f124ed5ea78b doc: remove python2 references + added a warning for `python setup.py install`
Goffi <goffi@goffi.org>
parents: 409
diff changeset
94 And enter the following commands::
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
95
421
f124ed5ea78b doc: remove python2 references + added a warning for `python setup.py install`
Goffi <goffi@goffi.org>
parents: 409
diff changeset
96 $ python3 -m venv env
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
97 $ source env/bin/activate
442
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
98 $ pip install -U pip wheel
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
99 $ pip install sat-pubsub
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
100
421
f124ed5ea78b doc: remove python2 references + added a warning for `python setup.py install`
Goffi <goffi@goffi.org>
parents: 409
diff changeset
101 .. note::
f124ed5ea78b doc: remove python2 references + added a warning for `python setup.py install`
Goffi <goffi@goffi.org>
parents: 409
diff changeset
102
f124ed5ea78b doc: remove python2 references + added a warning for `python setup.py install`
Goffi <goffi@goffi.org>
parents: 409
diff changeset
103 If your are installing from a local clone of the repository, it has been reported that
f124ed5ea78b doc: remove python2 references + added a warning for `python setup.py install`
Goffi <goffi@goffi.org>
parents: 409
diff changeset
104 installation with ``python setup.py install`` is not working properly. Please use ``pip
f124ed5ea78b doc: remove python2 references + added a warning for `python setup.py install`
Goffi <goffi@goffi.org>
parents: 409
diff changeset
105 install .`` instead.
f124ed5ea78b doc: remove python2 references + added a warning for `python setup.py install`
Goffi <goffi@goffi.org>
parents: 409
diff changeset
106
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
107 Post Installation
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
108 -----------------
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
109
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
110 Once SàT Pubsub is installed, you'll need to create a PostgreSQL user, and create the
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
111 database::
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
112
425
968091cea547 doc: installation instructions corrections
Goffi <goffi@goffi.org>
parents: 421
diff changeset
113 % sudo -u postgres createuser -d -P $(whoami)
968091cea547 doc: installation instructions corrections
Goffi <goffi@goffi.org>
parents: 421
diff changeset
114 % createdb pubsub
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
115 % cd /tmp && wget https://repos.goffi.org/sat_pubsub/raw-file/tip/db/pubsub.sql
425
968091cea547 doc: installation instructions corrections
Goffi <goffi@goffi.org>
parents: 421
diff changeset
116 % psql pubsub < pubsub.sql
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
117
442
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
118 Update
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
119 ------
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
120
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
121 If you have updated SàT Pubsub and the database schema has been changed, you may have a
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
122 message indicating that your are using an outdated version.
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
123
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
124 To update schema, just apply ``sat_pubsub_update_x_y.sql`` files where ``x`` is your
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
125 current version, and ``y`` is the one to update. If you are several versions late, just
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
126 apply updates one by one.
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
127
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
128 For instance, if you have the following message::
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
129
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
130 ERROR:root:Bad database schema version (7), please upgrade to 8
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
131
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
132 Go to ``db`` directory and enter update instruction::
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
133
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
134 $ cd db
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
135 $ psql pubsub < sat_pubsub_update_7_8.sql
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
136
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
137 .. note::
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
138
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
139 Before any update and specially if there is a schema change, you should backup your
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
140 database. If anything goes wrong, it will be your best chance to avoid any data loss.
b38b8beac609 doc: better dev version instructions + update
Goffi <goffi@goffi.org>
parents: 436
diff changeset
141
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
142
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
143 .. _prosody_configuration:
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
144
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
145 Prosody Configuration
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
146 ---------------------
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
147
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
148 SàT PubSub can work with any XMPP server (which supports components), but if you want to
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
149 use it as your PEP service, you need a server which supports `XEP-0355`_ and `XEP-0356`_.
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
150
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
151 Below you'll find the instruction to use SàT PubSub as a PEP service with Prosody:
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
152
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
153 - add these two lines at the end of your ``prosody.cfg.lua`` file, adapting them to your XMPP
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
154 server domain (virtual host) and selecting a password of your choice:
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
155
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
156 .. sourcecode:: lua
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
157
425
968091cea547 doc: installation instructions corrections
Goffi <goffi@goffi.org>
parents: 421
diff changeset
158 Component "pubsub.<xmpp_domain>"
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
159 component_secret = "<password>"
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
160
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
161 - there are extra steps to enable the micro-blogging feature with Prosody. Please follow
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
162 the installation and configuration instructions that are given on these pages:
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
163
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
164 - https://modules.prosody.im/mod_delegation.html
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
165 - https://modules.prosody.im/mod_privilege.html
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
166
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
167 To keep your modules up to date, we recommend to clone the full modules
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
168 repository and then to symlink them like that:
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
169
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
170 .. sourcecode:: shell
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
171
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
172 % cd /path/to/install_dir
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
173 % hg clone https://hg.prosody.im/prosody-modules
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
174 % cd /path/to/prosody_plugins
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
175 % ln -sf /path/to/install_dir/prosody-modules/mod_delegation ./
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
176 % ln -sf /path/to/install_dir/prosody-modules/mod_privilege ./
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
177
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
178 Or course, you have to adapt ``/path/to/install_dir`` to the directory where you want to
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
179 install the modules, and ``/path/to/prosody_plugins`` to the directory where prosody
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
180 modules are installed (hint: check ``prosodyctl about`` to find the latter). The ``ln``
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
181 commands may have to be run as root depending on your installation.
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
182
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
183 Once your symlinks are set, to update the modules we just need to type this:
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
184
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
185 .. sourcecode:: shell
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
186
425
968091cea547 doc: installation instructions corrections
Goffi <goffi@goffi.org>
parents: 421
diff changeset
187 % cd /path/to/install_dir/prosody-modules
968091cea547 doc: installation instructions corrections
Goffi <goffi@goffi.org>
parents: 421
diff changeset
188 % hg pull -u
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
189
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
190 Here is an example of how your ``prosody.cfg.lua`` should look like with
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
191 ``mod_delegation`` and ``mod_privilege`` activated:
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
192
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
193 .. sourcecode:: lua
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
194
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
195 [...]
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
196 modules_enabled = {
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
197 [...]
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
198 "delegation";
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
199 "privilege";
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
200 }
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
201 [...]
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
202 VirtualHost "<xmpp_domain>"
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
203 privileged_entities = {
427
f6f4f99f1a1b doc: explicite "wheel" installation + renamed "sat-pubsub.*" jids to simpler "pubsub.*"
Goffi <goffi@goffi.org>
parents: 425
diff changeset
204 ["pubsub.<xmpp_domain>"] = {
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
205 roster = "get";
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
206 message = "outgoing";
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
207 presence = "roster";
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
208 },
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
209 }
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
210 delegations = {
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
211 ["urn:xmpp:mam:2"] = {
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
212 filtering = {"node"};
427
f6f4f99f1a1b doc: explicite "wheel" installation + renamed "sat-pubsub.*" jids to simpler "pubsub.*"
Goffi <goffi@goffi.org>
parents: 425
diff changeset
213 jid = "pubsub.<xmpp_domain>";
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
214 },
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
215 ["http://jabber.org/protocol/pubsub"] = {
427
f6f4f99f1a1b doc: explicite "wheel" installation + renamed "sat-pubsub.*" jids to simpler "pubsub.*"
Goffi <goffi@goffi.org>
parents: 425
diff changeset
216 jid = "pubsub.<xmpp_domain>";
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
217 },
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
218 ["http://jabber.org/protocol/pubsub#owner"] = {
427
f6f4f99f1a1b doc: explicite "wheel" installation + renamed "sat-pubsub.*" jids to simpler "pubsub.*"
Goffi <goffi@goffi.org>
parents: 425
diff changeset
219 jid = "pubsub.<xmpp_domain>";
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
220 },
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
221 ["https://salut-a-toi/protocol/schema:0"] = {
427
f6f4f99f1a1b doc: explicite "wheel" installation + renamed "sat-pubsub.*" jids to simpler "pubsub.*"
Goffi <goffi@goffi.org>
parents: 425
diff changeset
222 jid = "pubsub.<xmpp_domain>";
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
223 },
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
224 ["http://jabber.org/protocol/disco#items:*"] = {
427
f6f4f99f1a1b doc: explicite "wheel" installation + renamed "sat-pubsub.*" jids to simpler "pubsub.*"
Goffi <goffi@goffi.org>
parents: 425
diff changeset
225 jid = "pubsub.<xmpp_domain>";
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
226 },
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
227 ["https://salut-a-toi.org/spec/pubsub_admin:0"] = {
427
f6f4f99f1a1b doc: explicite "wheel" installation + renamed "sat-pubsub.*" jids to simpler "pubsub.*"
Goffi <goffi@goffi.org>
parents: 425
diff changeset
228 jid = "pubsub.<xmpp_domain>";
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
229 },
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
230 }
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
231
427
f6f4f99f1a1b doc: explicite "wheel" installation + renamed "sat-pubsub.*" jids to simpler "pubsub.*"
Goffi <goffi@goffi.org>
parents: 425
diff changeset
232 Component "pubsub.<xmpp_domain>"
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
233 component_secret = "<password>"
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
234 modules_enabled = {"delegation", "privilege"}
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
235
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
236 Of course, you still have to replace and adapt to your own settings.
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
237
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
238 .. _XEP-0355: https://xmpp.org/extensions/xep-0355.html
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
239 .. _XEP-0356: https://xmpp.org/extensions/xep-0356.html
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
240
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
241 Running SàT PubSub
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
242 ------------------
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
243
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
244 The minimal example for running sat_pubsub is:
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
245
425
968091cea547 doc: installation instructions corrections
Goffi <goffi@goffi.org>
parents: 421
diff changeset
246 % twistd sat-pubsub
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
247
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
248 This will start the service and run it in the background. It generates a
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
249 file twistd.pid that holds the PID of the service and a log file twistd.log.
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
250 The twistd utility has a fair number of options that might be useful, and
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
251 can be viewed with:
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
252
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
253 % twistd --help
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
254
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
255 When the service starts, it will connect to the XMPP server at the local machine using the
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
256 component protocol, and assumes the JID ``pubsub``. This assumes a couple of defaults
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
257 which can be overridden by passing parameters to the twistd plugin. You can get an
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
258 overview of the parameters and their defaults using:
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
259
425
968091cea547 doc: installation instructions corrections
Goffi <goffi@goffi.org>
parents: 421
diff changeset
260 % twistd sat-pubsub --help
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
261
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
262 In particular, the following parameters will be of interest:
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
263
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
264 ``--jid``
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
265 The Jabber ID the component will assume.
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
266
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
267 ``--rport``
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
268 the port number of the XMPP server to connect to
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
269
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
270 ``--xmpp_pwd``
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
271 the secret used to authenticate with the XMPP server.
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
272
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
273 For example::
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
274
427
f6f4f99f1a1b doc: explicite "wheel" installation + renamed "sat-pubsub.*" jids to simpler "pubsub.*"
Goffi <goffi@goffi.org>
parents: 425
diff changeset
275 twistd sat-pubsub --jid=pubsub.<your_xmpp_domain> --xmpp_pwd=<password>
404
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
276
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
277 You can set your options in ``sat.conf`` which is the same file used as for Salut à Toi
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
278 ecosystem. Please check backend ``configuration`` section for details. The SàT PubSub
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
279 options must be in ``[pubsub]`` section.
105a0772eedd doc: first draft
Goffi <goffi@goffi.org>
parents:
diff changeset
280