Issues |
Documentation

Octree |
Contact Us
Decidim |
Decidim Docs |
Participatory Governance (meta Decidim)
Decidim Community (Matrix+Element.io)
Anti-spam For Decidim
This module integrates a new administration tab to manage and configure a Decidim anti-spam.
Avoid Spammy Comment Creation
This module will prevent spam or commercial content before a comment is even saved.
Mass-reporting
This module can automatically report users and send reports to a single email (and not all the admins).
Detect Bad User Profiles
With this module, you will be able to detect URLs of strange domains and commercial content in the profile description (about section). This allows stopping spammers earlier.
To know more about features and configurations, visit the decidim-anti-spam documentation website.
The philosophy of this module is to adapt rules to each situation, and it has been greatly influenced by the Pol.is moderation good practices guide.
Documentation
You can consult our documentation on the decidim-anti-spam documentation website.
Contributions
This module is maintained by Octree. We plan work and releases on our self-hosted GitLab.
New ideas
New ideas are welcome on our feedback page. We manage co-financing and release planning there.
For technical aspects (contributions, code, issues), take a look at our GitLab.
Development and checks (Docker)
Toolchain versions match the spam_signal Compose image (octree/decidim-dev), not your laptop. Do not run rubocop, erblint, rspec, prettier, or rake test_app on the host unless you maintain a separate, documented setup.
From the repository root:
docker compose up -d
docker compose exec spam_signal bash -lc 'cd /home/module && bundle install'
docker compose exec spam_signal bash -lc 'cd /home/module && bundle exec rubocop .'
docker compose exec spam_signal bash -lc 'cd /home/module && bundle exec erblint --lint-all --enable-all-linters'
docker compose exec spam_signal bash -lc 'cd /home/module && yarn install --frozen-lockfile && yarn format:check'Generate the dummy app once (set DISABLED_DOCKER_COMPOSE=true so the Rake task does not restart Compose), then create the test database and run specs (unset DATABASE_URL so the dummy app’s config/database.yml is used):
docker compose exec spam_signal bash -lc 'cd /home/module && export DISABLED_DOCKER_COMPOSE=true && bundle exec rake test_app'
docker compose exec spam_signal bash -lc 'cd /home/module/spec/decidim_dummy_app && unset DATABASE_URL && export DISABLE_SPRING=1 && RAILS_ENV=test bundle exec rails db:create db:migrate'
docker compose exec spam_signal bash -lc 'cd /home/module && unset DATABASE_URL && export RAILS_ENV=test && bundle exec rspec spec/models spec/lib spec/commands spec/i18n_spec.rb'License
This engine is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.
