README.md 4.08 KB
Newer Older
georg's avatar
georg committed
1
Schleuder
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

georg's avatar
georg committed
6
It aims to be robust, flexible, internationalized and also provides an API for the optional web interface called [schleuder-web](https://0xacab.org/schleuder/schleuder-web).
paz's avatar
paz committed
7

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

10
11
Requirements
------------
paz's avatar
paz committed
12
* ruby >=2.5
13
* gnupg >=2.2
paz's avatar
paz committed
14
* gpgme
15
* sqlite3
paz's avatar
paz committed
16
* openssl
paz's avatar
paz committed
17
* icu
18

19
*If you use Debian buster, CentOS 7 or Archlinux, please have a look at the [installation docs](https://schleuder.org/schleuder/docs/server-admins.html#installation). We do provide packages for those platforms, which simplify the installation a lot.*
20
21

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
22

23

24
25
26
27
28
29
Additionally these **rubygems** are required (will be installed automatically unless present):

* rake
* active_record
* sqlite3
* thor
paz's avatar
paz committed
30
* thin
31
32
33
34
35
36
* mail-gpg
* sinatra
* sinatra-contrib


Installing Schleuder
37
------------
38

paz's avatar
paz committed
39
1. Download [the gem](https://schleuder.org/download/schleuder-4.0.2.gem) and [the OpenPGP-signature](https://schleuder.org/download/schleuder-4.0.2.gem.sig) and verify:
paz's avatar
paz committed
40
   ```
41
   gpg --recv-key 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
paz's avatar
paz committed
42
   gpg --verify schleuder-4.0.2.gem.sig
paz's avatar
paz committed
43
   ```
paz's avatar
paz committed
44
45

2. If all went well install the gem:
paz's avatar
paz committed
46
   ```
paz's avatar
paz committed
47
   gem install schleuder-4.0.2.gem
paz's avatar
paz committed
48
   ```
paz's avatar
paz committed
49
50
51

3. Set up schleuder:
  ```
paz's avatar
paz committed
52
  schleuder install
paz's avatar
paz committed
53
  ```
georg's avatar
georg committed
54
  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
55

paz's avatar
paz committed
56

paz's avatar
paz committed
57
For further information on setup and configuration please read <https://schleuder.org/schleuder/docs/server-admins.html>.
58
59


paz's avatar
paz committed
60
61
Command line usage
-----------------
62
63
64
65
66
67
68
69
70
71
72
73

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
74
75
76
List administration
-------------------

77
Please use
paz's avatar
paz committed
78
[schleuder-cli](https://0xacab.org/schleuder/schleuder-cli) to create and
79
manage lists from the command line.
paz's avatar
paz committed
80
81

Optionally consider installing
paz's avatar
paz committed
82
[schleuder-web](https://0xacab.org/schleuder/schleuder-web), the web
83
interface for schleuder. It enables list-admins to manage their lists through
georg's avatar
georg committed
84
the web instead of using [request-keywords](https://schleuder.org/docs/#subscription-and-key-management).
paz's avatar
paz committed
85
86
87
88
89



Todo
----
paz's avatar
paz committed
90

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

93
94
Testing
-------
95
96
We use rspec to test our code. To setup the test environment run:

benni's avatar
benni committed
97

98
    SCHLEUDER_ENV=test SCHLEUDER_CONFIG=spec/schleuder.yml bundle exec rake db:init
99
100
101

To execute the test suite run:

benni's avatar
benni committed
102
    bundle exec rspec
paz's avatar
paz committed
103

104
Please note: Some of the specs use 'pgrep'. On systems that base on Debian 10 ("buster") install it via 
105
106
107

    apt-get install procps

108
We are working on extendig the test coverage.
paz's avatar
paz committed
109
110
111
112

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

113
Please see [CONTRIBUTING.md](CONTRIBUTING.md).
114
115


georg's avatar
georg committed
116
117
118
119
120
121
Mission statement
-----------------

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


paz's avatar
paz committed
122
123
124
125
126
127
Code of Conduct
---------------

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


paz's avatar
paz committed
128
129
130
131
132
133
License
-------

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


134
135
136
Alternative Download
--------------------

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