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).