Hello! We are running our annual fundraising. Please consider making a donation if you value this freely available service or want to support people around the world working towards liberatory social change. https://riseup.net/donate.

README.md 4.66 KB
Newer Older
paz's avatar
paz committed
1
Schleuder, version 3
paz's avatar
paz committed
2
3
======================================

paz's avatar
paz committed
4
Schleuder is a gpg-enabled mailing list manager with resending-capabilities. Subscribers can communicate encrypted (and pseudonymously) among themselves, receive emails from non-subscribers and send emails to non-subscribers via the list.
paz's avatar
paz committed
5

paz's avatar
paz committed
6
Version 3 of schleuder is a complete rewrite, which aims to be more robust, flexible, and internationalized. It
paz's avatar
paz committed
7
also provides an API for the optional web interface called [schleuder-web](https://0xacab.org/schleuder/schleuder-web).
paz's avatar
paz committed
8

georg's avatar
georg committed
9
For more details see <https://schleuder.org/docs/>.
paz's avatar
paz committed
10

11
12
Requirements
------------
georg's avatar
georg committed
13
* ruby >=2.1
14
* gnupg 2.0.x, or >=2.1.16
paz's avatar
paz committed
15
* gpgme
16
* sqlite3
paz's avatar
paz committed
17
* openssl
18

georg's avatar
georg committed
19
*If you use Debian stretch or CentOS 7, please have a look at the [installation docs](https://schleuder.org/docs/#installation). We do provide packages for those platforms, which simplify the installation a lot.*
20

21
*🛈 A note regarding Ubuntu: All Ubuntu versions up to and including 17.10 don't meet the requirements with their packaged versions of gnupg! To run Schleuder on Ubuntu you currently have to install a more recent version of gnupg manually. Only Ubuntu 18.04 ("bionic") provides modern enough versions of Schleuder's requirements.*
22
23

On systems that base on Debian 9 ("stretch"), install the dependencies via
paz's avatar
paz committed
24

25
    apt-get install ruby-dev gnupg2 libgpgme-dev libsqlite3-dev libssl-dev build-essential
paz's avatar
paz committed
26

27
28

We **recommend** to also run a random number generator like [haveged](http://www.issihosts.com/haveged/). This ensures Schleuder won't be blocked by lacking entropy, which otherwise might happen especially during key generation.
paz's avatar
paz committed
29
30
31

On Debian based systems, install it via

32
33
34
    apt-get install haveged


35
36
37
38
39
40
Additionally these **rubygems** are required (will be installed automatically unless present):

* rake
* active_record
* sqlite3
* thor
paz's avatar
paz committed
41
* thin
42
43
44
45
46
47
* mail-gpg
* sinatra
* sinatra-contrib


Installing Schleuder
48
------------
49

paz's avatar
paz committed
50
1. Download [the gem](https://schleuder.org/download/schleuder-3.2.3.gem) and [the OpenPGP-signature](https://schleuder.org/download/schleuder-3.2.3.gem.sig) and verify:
paz's avatar
paz committed
51
   ```
52
   gpg --recv-key 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
paz's avatar
paz committed
53
   gpg --verify schleuder-3.2.3.gem.sig
paz's avatar
paz committed
54
   ```
paz's avatar
paz committed
55
56

2. If all went well install the gem:
paz's avatar
paz committed
57
   ```
paz's avatar
paz committed
58
   gem install schleuder-3.2.3.gem
paz's avatar
paz committed
59
   ```
paz's avatar
paz committed
60
61
62

3. Set up schleuder:
  ```
paz's avatar
paz committed
63
  schleuder install
paz's avatar
paz committed
64
  ```
georg's avatar
georg committed
65
  This creates necessary directories, copies example configs, etc. If you see errors about missing write permissions please follow the advice given.
paz's avatar
paz committed
66

paz's avatar
paz committed
67

georg's avatar
georg committed
68
For further information on setup and configuration please read <https://schleuder.org/docs/#setup>.
69
70


paz's avatar
paz committed
71
72
Command line usage
-----------------
73
74
75
76
77
78
79
80
81
82
83
84

See `schleuder help`.

E.g.:

    Commands:
      schleuder check_keys                    # Check all lists for unusable or expiring keys and send the results to the list-admins. (This is supposed...
      schleuder help [COMMAND]                # Describe available commands or one specific command
      schleuder install                       # Set up Schleuder initially. Create folders, copy files, fill the database, etc.
      schleuder version                       # Show version of schleuder
      schleuder work list@hostname < message  # Run a message through a list.

paz's avatar
paz committed
85
86
87
List administration
-------------------

88
Please use
paz's avatar
paz committed
89
[schleuder-cli](https://0xacab.org/schleuder/schleuder-cli) to create and
90
manage lists from the command line.
paz's avatar
paz committed
91
92

Optionally consider installing
paz's avatar
paz committed
93
[schleuder-web](https://0xacab.org/schleuder/schleuder-web), the web
94
interface for schleuder. It enables list-admins to manage their lists through
georg's avatar
georg committed
95
the web instead of using [request-keywords](https://schleuder.org/docs/#subscription-and-key-management).
paz's avatar
paz committed
96
97
98
99
100



Todo
----
paz's avatar
paz committed
101

paz's avatar
paz committed
102
See <https://0xacab.org/schleuder/schleuder/issues>.
benni's avatar
benni committed
103

104
105
Testing
-------
106
107
We use rspec to test our code. To setup the test environment run:

benni's avatar
benni committed
108

109
    SCHLEUDER_ENV=test SCHLEUDER_CONFIG=spec/schleuder.yml bundle exec rake db:init
110
111
112

To execute the test suite run:

benni's avatar
benni committed
113
    bundle exec rspec
paz's avatar
paz committed
114

115
116
117
118
Please note: Some of the specs use 'pgrep'. On systems that base on Debian 9 ("stretch") install it via 

    apt-get install procps

119
We are working on extendig the test coverage.
paz's avatar
paz committed
120
121
122
123

Contributing
------------

124
Please see [CONTRIBUTING.md](CONTRIBUTING.md).
125
126


georg's avatar
georg committed
127
128
129
130
131
132
Mission statement
-----------------

Please see [MISSION_STATEMENT.md](MISSION_STATEMENT.md).


paz's avatar
paz committed
133
134
135
136
137
138
Code of Conduct
---------------

We adopted a code of conduct. Please read [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).


paz's avatar
paz committed
139
140
141
142
143
144
License
-------

GNU GPL 3.0. Please see [LICENSE.txt](LICENSE.txt).


145
146
147
Alternative Download
--------------------

paz's avatar
paz committed
148
Alternatively to the gem-files you can download the latest release as [a tarball](https://schleuder.org/download/schleuder-3.2.3.tar.gz) and [its OpenPGP-signature](https://schleuder.org/download/schleuder-3.2.3.tar.gz.sig).