systemli.schleuder

ansible-role-schleuder

Statut de construction Ansible Galaxy

Installez et maintenez un service schleuder et ses listes schleuder.

Qu'est-ce qui est installé lors de l'exécution d'Ansible ?

Ce rôle configurera schleuder, schleuder-cli, et schleuder-web par défaut.

L'interface web est accessible via localhost:3000 et vous pouvez vous connecter avec les identifiants par défaut de schleuder ("root@localhost" - "slingit!").

En outre, vous pouvez installer le plugin de billetterie gitlab schleuder et lier vos listes schleuder à une instance gitlab. Pour cela, vous devez définir schleuder_install_gitlab_ticket_plugin: True dans votre fichier de variables.

Qu'est-ce qui est encore nécessaire ?

Vous devez configurer et installer un transport de mail sur le serveur où Schleuder est exécuté. De plus, vous devez avoir un serveur web fonctionnel avec un vhost pointant vers votre interface schleuder-web et son port.

Veuillez consulter la documentation de schleuder pour des informations supplémentaires.

Comment les nouveaux administrateurs de listes peuvent-ils gérer leurs listes ?

Si une clé publique de l'administrateur de la liste est présente, ce rôle/schleuder vous informera de la création de la liste.

Les administrateurs de listes schleuder peuvent demander leur mot de passe en se connectant via l'interface web, après que leur liste ait été créée.

Variables du rôle

### Définir les playbooks à exécuter :
schleuder_install_web: True
schleuder_install_cli: True
schleuder_install_gitlab_ticket_plugin: False

### Variables schleuder :
schleuder_schleuder_user: "schleuder"
schleuder_gpg_use_tor: True
schleuder_gpg_tor_keyserver: "hkp://zkaan2xfbuxia2wpf7ofnkbz6r5zdbbvxbunvp5g2iebopbfc4iqmbad.onion"
schleuder_admin_keys_path: "/var/lib/schleuder/adminkeys"

schleuder_lists: []
  #- name: [email protected]
  #  admin: [email protected]
  #  # assurez-vous de copier la clé publique de l'administrateur de la liste dans
  #  # files/schleuder/adminkeys/{{ name }}_{{ admin }}.pub
  #  # sinon, définissez admin_pubkey_present sur false
  #  # ---
  #  send_list_key: True
  #  present: True
  #  # ---
  #  admin_pubkey_present: True
  #  # si admin_pubkey_present est défini sur false
  #  la liste schleuder sera créée, mais ne sera pas fonctionnelle

### Variables schleuder-web :
schleuder_schleuder_web_repo: https://0xacab.org/schleuder/schleuder-web
schleuder_schleuder_web_home: "/var/www/schleuder-web"
schleuder_schleuder_web_user: schleuder-web
schleuder_schleuder_web_path: "{{ schleuder_schleuder_web_home }}/schleuder-web"
schleuder_schleuder_web_git_update: False
schleuder_schleuder_web_systemd_path: "/etc/systemd/system/schleuder-web.service"
schleuder_schleuder_web_environment_vars_path: "/etc/default/schleuder-web"
# définissez sur false pour que le serveur rails écoute uniquement sur localhost
schleuder_schleuder_web_allow_access_from_outside: True

### Variables du plugin de billetterie gitlab schleuder :
schleuder_gitlab_plugin_repo: https://0xacab.org/schleuder/schleuder-gitlab-ticketing
schleuder_gitlab_plugin_path: "/opt/local/gitlab-ticketing"
schleuder_gitlab_plugin_git_update: False

### Variables schleuder-cli :
schleuder_cli_path: "/root/.schleuder-cli"

###### Section Fichier

### schleuder/schleuder.yml.j2
schleuder_lists_dir: "/var/lib/schleuder/lists"
schleuder_listlogs_dir: "/var/lib/schleuder/lists"
schleuder_plugins_dir: "/etc/schleuder/plugins"
schleuder_filters_dir: "/usr/local/lib/schleuder/filters"
schleuder_log_level: "warn"
schleuder_keyserver: "hkps://keys.openpgp.org"
schleuder_superadmin: "root@localhost"
schleuder_smtp_settings:
  address: localhost
  port: 25
  #domain:
  #enable_starttls_auto:
  #openssl_verify_mode:
  #authentication:
  #user_name:
  #password:
schleuder_database:
  production:
    adapter: "'sqlite3'"
    database: "/var/lib/schleuder/db.sqlite"
    pool: 5
    timeout: 5000
schleuder_api:
  host: localhost
  port: 4443
  # Certificat et clé à utiliser. Vous pouvez en créer de nouveaux avec `schleuder cert generate`.
  tls_cert_file: "/etc/schleuder/schleuder-certificate.pem"
  tls_key_file: "/etc/schleuder/schleuder-private-key.pem"

# Liste des api_keys pour autoriser l'accès à l'API.
# Exemple :
# valid_api_keys:
#   - abcdef...
#   - zyxwvu...
schleuder_valid_api_keys: []


### schleuder/list-defaults.yml.j2
schleuder_send_encrypted_only: "true"
schleuder_receive_encrypted_only: "true"
schleuder_receive_signed_only: "false"
schleuder_receive_authenticated_only: "false"
schleuder_receive_from_subscribed_emailaddresses_only: "true"
schleuder_receive_admin_only: "false"
schleuder_headers_to_meta:
  - from
  - to
  - cc
  - date
  - sig
  - enc
schleuder_keep_msgid: "true"
schleuder_keywords_admin_only:
  - subscribe
  - unsubscribe
  - delete-key
schleuder_keywords_admin_notify:
  - add-key
schleuder_internal_footer: ""
schleuder_public_footer: ""
schleuder_subject_prefix: ""
schleuder_subject_prefix_in: ""
schleuder_subject_prefix_out: ""
schleuder_bounces_drop_all: "false"
schleuder_bounces_drop_on_headers:
  x-spam-flag: "yes"
schleuder_bounces_notify_admins: "true"
schleuder_include_list_headers: "true"
schleuder_include_openpgp_header: "true"
schleuder_openpgp_header_preference: signencrypt
schleuder_max_message_size_kb: 10240
schleuder_lists_log_level: warn
schleuder_logfiles_to_keep: 2
# Disponible : en, de.
schleuder_language: en
schleuder_forward_all_incoming_to_admins: "false"

### schleuder-web/database.yml
# schleuder-web utilise sa propre base de données pour stocker les identifiants des utilisateurs
schleuder_web_database:
  production:
    adapter: "'sqlite3'"
    database: "db/production.sqlite"
    pool: 5
    timeout: 5000

### schleuder/gitlab.yml
# paramètres globaux
schleuder_gitlab_default_subject_filters: []
schleuder_gitlab_default_sender_filters: []
schleuder_gitlab_default_gitlab_connection: {}

# paramètres par liste
# voir https://0xacab.org/schleuder/schleuder-gitlab-ticketing
schleuder_gitlab_lists: []
#  - [email protected]:
#      project: tickets
#      namespace: support
#      subject_filters:
#        - 'ignore me'
#  - [email protected]:
#      gitlab:
#        endpoint: https://gitlab2.example.com/api/v4
#        token: aaaa
#      sender_filters:
#        - 'noreply@example\.com'

Téléchargement

Téléchargez la dernière version avec ansible-galaxy

ansible-galaxy install systemli.schleuder

Exemple de Playbook

- hosts: serveurs
  roles:
     - { role: systemli.schleuder }

Exemple de Variables Étendues

schleuder_lists:
  - name: [email protected]
    admin: [email protected]
    # la clé publique doit être dans 
    # files/adminkeys/{{ name }}_{{ admin }}.pub
  - name: [email protected]
    admin: [email protected]
    admin_pubkey_present: False
    send_list_key: False
    # la clé publique n'est pas mise sur le serveur
    # la liste est créée mais n'est pas fonctionnelle
    # la clé de la liste n'est pas envoyée aux abonnés
  - name: [email protected]
    admin: [email protected]
    state: absent
    # la liste sera supprimée lors de la prochaine exécution d'ansible         


# paramètres gitlab par liste
# voir https://0xacab.org/schleuder/schleuder-gitlab-ticketing
schleuder_gitlab_lists:
  - [email protected] 
      project: tickets
      namespace: support
      subject_filters:
        - 'ignore me'
  - [email protected]:
      gitlab:
        endpoint: https://gitlab2.example.com/api/v4
        token: 1234aaaa1234
      sender_filters:
        - 'noreply@example\.com'

Tests et Développement

Tests

Pour développer et tester le rôle, nous utilisons Github Actions, Molecule, et Vagrant. Dans un environnement local, vous pouvez facilement tester le rôle avec

Exécuter des tests locaux avec :

molecule test 

Nécessite l'installation de Molecule, Vagrant et python-vagrant.

Cela fera tourner une machine virtuelle avec Debian Bookworm. Ensuite, vous pourrez vous connecter à l'interface web de Schleuder via :

http://localhost:3000

Licence

GPLv3

Informations sur l'auteur

https://www.systemli.org

À propos du projet

Role to setup and maintain schleuder software and it's lists

Installer
ansible-galaxy install systemli.schleuder
Licence
Unknown
Téléchargements
1k
Propriétaire
Your friendly tech collective