{"id":19331077,"url":"https://github.com/systemli/ansible-role-schleuder","last_synced_at":"2025-10-19T22:42:52.051Z","repository":{"id":36994015,"uuid":"203754193","full_name":"systemli/ansible-role-schleuder","owner":"systemli","description":" Ansible role to install \u0026 maintain Schleuder (including schleuder-cli and schleuder-web)","archived":false,"fork":false,"pushed_at":"2025-03-04T18:25:00.000Z","size":127,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-02T04:47:25.505Z","etag":null,"topics":["ansible-role","schleuder","schleuder-cli","schleuder-lists"],"latest_commit_sha":null,"homepage":null,"language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/systemli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-22T08:54:04.000Z","updated_at":"2025-03-04T18:25:03.000Z","dependencies_parsed_at":"2023-02-14T10:01:06.892Z","dependency_job_id":"21271a13-100e-4f45-9784-7bc5ec063487","html_url":"https://github.com/systemli/ansible-role-schleuder","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemli%2Fansible-role-schleuder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemli%2Fansible-role-schleuder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemli%2Fansible-role-schleuder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/systemli%2Fansible-role-schleuder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/systemli","download_url":"https://codeload.github.com/systemli/ansible-role-schleuder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250340282,"owners_count":21414514,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible-role","schleuder","schleuder-cli","schleuder-lists"],"created_at":"2024-11-10T02:38:57.810Z","updated_at":"2025-10-19T22:42:47.016Z","avatar_url":"https://github.com/systemli.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"ansible-role-schleuder\n=================\n\n[![Build Status](https://github.com/systemli/ansible-role-schleuder/workflows/Integration/badge.svg?branch=main)](https://github.com/systemli/ansible-role-schleuder/actions?query=workflow%3AIntegration)\n[![Ansible Galaxy](http://img.shields.io/badge/ansible--galaxy-schleuder-blue.svg)](https://galaxy.ansible.com/systemli/schleuder/)\n\n\nInstall and maintain a [schleuder](https://0xacab.org/schleuder/schleuder)\nservice and it's schleuder lists.\n\n### What is installed during the ansible run ?\n\nThis role will setup [schleuder](https://0xacab.org/schleuder/schleuder),\n[schleuder-cli](https://0xacab.org/schleuder/schleuder-cli), \n[schleuder-web](https://0xacab.org/schleuder/schleuder-web) by default.\n\nThe web interface is accessible via localhost:3000 and you can log in with \nschleuders default credentials (\"root@localhost\" - \"slingit!\"). \n\nAdditionally you can install the schleuder-gitlab-ticketing-plugin and hook\nyour schleuder lists to a gitlab instance. Therefore you have set \n`schleuder_install_gitlab_ticket_plugin: True` in your vars file. \n\n### What else is needed? \n\nYou need to have to setup and install a \n[mail transport](https://schleuder.org/schleuder/docs/server-admins.html#hook-into-mail-transport-agent)\non the server where schleuder is running. \nAdditionally you need to have a running web server with a vhost pointing to your schleuder-web\ninterface and it's port. \n\nPlease consult the [schleuder documentation](https://schleuder.org/schleuder/docs/server-admins.html)\nfor additional information.\n\n### How can new lists/list admins manage their lists?\n\nIf a public key of the list admin is present, this role/schleuder will inform\nyou about the list creation.\n\nSchleuder list admins can request their password by logging in through web\ninterface, after their list was created.\n\nRole Variables\n--------------\n\n    ### Define which playbooks should be run:\n    schleuder_install_web: True\n    schleuder_install_cli: True\n    schleuder_install_gitlab_ticket_plugin: False\n    \n    ### schleuder vars:\n    schleuder_schleuder_user: \"schleuder\"\n    schleuder_gpg_use_tor: True\n    schleuder_gpg_tor_keyserver: \"hkp://zkaan2xfbuxia2wpf7ofnkbz6r5zdbbvxbunvp5g2iebopbfc4iqmbad.onion\"\n    schleuder_admin_keys_path: \"/var/lib/schleuder/adminkeys\"\n    \n    schleuder_lists: []\n      #- name: foobar@cryptolists.systemli.org\n      #  admin: admin@systemli.org\n      #  # be sure to copy public_key of list admin to\n      #  # files/schleuder/adminkeys/{{ name }}_{{ admin }}.pub\n      #  # else set admin_pubkey_present to false\n      #  # ---\n      #  send_list_key: True\n      #  present: True\n      #  # ---\n      #  admin_pubkey_present: True\n      #  # if admin_pubkey_present is set to false\n      #  schleuder list will be created, but is not functional\n    \n    ### schleuder-web vars:\n    schleuder_schleuder_web_repo: https://0xacab.org/schleuder/schleuder-web\n    schleuder_schleuder_web_home: \"/var/www/schleuder-web\"\n    schleuder_schleuder_web_user: schleuder-web\n    schleuder_schleuder_web_path: \"{{ schleuder_schleuder_web_home }}/schleuder-web\"\n    schleuder_schleuder_web_git_update: False\n    schleuder_schleuder_web_systemd_path: \"/etc/systemd/system/schleuder-web.service\"\n    schleuder_schleuder_web_environment_vars_path: \"/etc/default/schleuder-web\"\n    # set to false will make rails server listen on localhost only\n    schleuder_schleuder_web_allow_access_from_outside: True\n    \n    ### schleuder-gitlab-ticketing-plugin vars:\n    schleuder_gitlab_plugin_repo: https://0xacab.org/schleuder/schleuder-gitlab-ticketing\n    schleuder_gitlab_plugin_path: \"/opt/local/gitlab-ticketing\"\n    schleuder_gitlab_plugin_git_update: False\n    \n    ### schleuder-cli vars:\n    schleuder_cli_path: \"/root/.schleuder-cli\"\n    \n    ###### File Section\n    \n    ### schleuder/schleuder.yml.j2\n    schleuder_lists_dir: \"/var/lib/schleuder/lists\"\n    schleuder_listlogs_dir: \"/var/lib/schleuder/lists\"\n    schleuder_plugins_dir: \"/etc/schleuder/plugins\"\n    schleuder_filters_dir: \"/usr/local/lib/schleuder/filters\"\n    schleuder_log_level: \"warn\"\n    schleuder_keyserver: \"hkps://keys.openpgp.org\"\n    schleuder_superadmin: \"root@localhost\"\n    schleuder_smtp_settings:\n      address: localhost\n      port: 25\n      #domain:\n      #enable_starttls_auto:\n      #openssl_verify_mode:\n      #authentication:\n      #user_name:\n      #password:\n    schleuder_database:\n      production:\n        adapter: \"'sqlite3'\"\n        database: \"/var/lib/schleuder/db.sqlite\"\n        pool: 5\n        timeout: 5000\n    schleuder_api:\n      host: localhost\n      port: 4443\n      # Certificate and key to use. You can create new ones with `schleuder cert generate`.\n      tls_cert_file: \"/etc/schleuder/schleuder-certificate.pem\"\n      tls_key_file: \"/etc/schleuder/schleuder-private-key.pem\"\n    \n    # List of api_keys to allow access to the API.\n    # Example:\n    # valid_api_keys:\n    #   - abcdef...\n    #   - zyxwvu...\n    schleuder_valid_api_keys: []\n    \n    \n    ### schleuder/list-defaults.yml.j2\n    schleuder_send_encrypted_only: \"true\"\n    schleuder_receive_encrypted_only: \"true\"\n    schleuder_receive_signed_only: \"false\"\n    schleuder_receive_authenticated_only: \"false\"\n    schleuder_receive_from_subscribed_emailaddresses_only: \"true\"\n    schleuder_receive_admin_only: \"false\"\n    schleuder_headers_to_meta:\n      - from\n      - to\n      - cc\n      - date\n      - sig\n      - enc\n    schleuder_keep_msgid: \"true\"\n    schleuder_keywords_admin_only:\n      - subscribe\n      - unsubscribe\n      - delete-key\n    schleuder_keywords_admin_notify:\n      - add-key\n    schleuder_internal_footer: \"\"\n    schleuder_public_footer: \"\"\n    schleuder_subject_prefix: \"\"\n    schleuder_subject_prefix_in: \"\"\n    schleuder_subject_prefix_out: \"\"\n    schleuder_bounces_drop_all: \"false\"\n    schleuder_bounces_drop_on_headers:\n      x-spam-flag: \"yes\"\n    schleuder_bounces_notify_admins: \"true\"\n    schleuder_include_list_headers: \"true\"\n    schleuder_include_openpgp_header: \"true\"\n    schleuder_openpgp_header_preference: signencrypt\n    schleuder_max_message_size_kb: 10240\n    schleuder_lists_log_level: warn\n    schleuder_logfiles_to_keep: 2\n    # Available: en, de.\n    schleuder_language: en\n    schleuder_forward_all_incoming_to_admins: \"false\"\n    \n    ### schleuder-web/database.yml\n    # schleuder-web uses it's own database to store user credentials\n    schleuder_web_database:\n      production:\n        adapter: \"'sqlite3'\"\n        database: \"db/production.sqlite\"\n        pool: 5\n        timeout: 5000\n    \n    ### schleuder/gitlab.yml\n    # global settings\n    schleuder_gitlab_default_subject_filters: []\n    schleuder_gitlab_default_sender_filters: []\n    schleuder_gitlab_default_gitlab_connection: {}\n    \n    # settings per list\n    # see https://0xacab.org/schleuder/schleuder-gitlab-ticketing\n    schleuder_gitlab_lists: []\n    #  - test@schleuder.example.com:\n    #      project: tickets\n    #      namespace: support\n    #      subject_filters:\n    #        - 'ignore me'\n    #  - testz@schleuder.example.com:\n    #      gitlab:\n    #        endpoint: https://gitlab2.example.com/api/v4\n    #        token: aaaa\n    #      sender_filters:\n    #        - 'noreply@example\\.com'\n\nDownload\n--------\n\nDownload latest release with `ansible-galaxy`\n\n\tansible-galaxy install systemli.schleuder\n\nExample Playbook\n----------------\n\n    - hosts: servers\n      roles:\n         - { role: systemli.schleuder }\n\nExtended Variables Example\n--------------------------\n\n\n    schleuder_lists:\n      - name: foobar@cryptolists.systemli.org\n        admin: admin@systemli.org\n        # public key has to be in \n        # files/adminkeys/{{ name }}_{{ admin }}.pub\n      - name: no_pub_key_of_listadmin@cryptolists.systemli.org\n        admin: test@systemli.org\n        admin_pubkey_present: False\n        send_list_key: False\n        # public key is not put to server\n        # list is created but not functional\n        # list_key is not not sent to subscribers\n      - name: will_be_deleted@cryptolists.systemli.org\n        admin: test@systemli.org\n        state: absent\n        # list will be deleted in the next ansible run         \n\n   \n    # gitlab settings per list\n    # see https://0xacab.org/schleuder/schleuder-gitlab-ticketing\n    schleuder_gitlab_lists:\n      - foobar@cryptolists.systemli.org \n          project: tickets\n          namespace: support\n          subject_filters:\n            - 'ignore me'\n      - testz@schleuder.example.com:\n          gitlab:\n            endpoint: https://gitlab2.example.com/api/v4\n            token: 1234aaaa1234\n          sender_filters:\n            - 'noreply@example\\.com'\n\n\nTesting \u0026 Development\n---------------------\n\nTests\n-----\n\nFor developing and testing the role we use Github Actions, Molecule, and Vagrant. On the local environment you can easily test the role with\n\nRun local tests with:\n\n```\nmolecule test \n```\n\nRequires Molecule, Vagrant and `python-vagrant` to be installed.For developing and testing the role we use Travis CI, Molecule and Vagrant. On the local environment you can easily test the role with\n\n\nThis will spin up a virtual machine with Debian Bookworm. Afterwards you can connect to the Schleuder\nweb interface via: \n\n```\nhttp://localhost:3000\n```\n\n\nLicense\n-------\n\nGPLv3\n\nAuthor Information\n------------------\n\nhttps://www.systemli.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystemli%2Fansible-role-schleuder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsystemli%2Fansible-role-schleuder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystemli%2Fansible-role-schleuder/lists"}