Skip to content

Repository files navigation

Buscarron Matrix

more about that name

Send any form (HTTP POST, HTML) to an encrypted matrix room, used as part of etke.cc service.

Features

  • End-to-End encryption
  • Receive any HTTP POST request as form submission in a matrix room

Configuration

env vars

mandatory

  • BUSCARRON_HOMESERVER - homeserver url, eg: https://matrix.example.com
  • BUSCARRON_LOGIN - user login/localpart, eg: buscarron
  • BUSCARRON_PASSWORD - user password
  • BUSCARRON_NAME_ROOM - Matrix Room ID of the name form
  • BUSCARRON_NAME_REDIRECT - URL to redirect after handling form name data submission, supports go template vars from submission data (eg email field can be added to the redirect string as {{ .email }})

optional form configs

  • BUSCARRON_NAME_REDIRECT_REJECT - URL to redirect after handling form name (doesn't support templates) for rejected submissions
  • BUSCARRON_NAME_RATELIMIT - rate limit of the form, format: <max requests>r/<interval:s,m>, eg: 1r/s, 54r/m, 7r/h
  • BUSCARRON_NAME_RATELIMIT_SHARED - enable shared rate limit between forms with that option enabled
  • BUSCARRON_NAME_HASEMAIL - if the form has an email field and you want to enforce email validation
  • BUSCARRON_NAME_HASDOMAIN - if the form has a domain field and you want to enforce domain validation
  • BUSCARRON_NAME_EXTENSIONS - space-separated list of the form extensions, allowed values: confirmation
  • BUSCARRON_NAME_TEXT - custom form text, supports go template vars from submission data (e.g., email field can be displayed as {{ .email }})
  • BUSCARRON_NAME_CONFIRMATION_SUBJECT - confrimation email subject, supports go template vars from submission data (eg email field can be added to subject as {{ .email }}). Requires confirmation extension in the BUSCARRON_NAME_EXTENSIONS list and postmark (or SMTP) configuration
  • BUSCARRON_NAME_CONFIRMATION_BODY - confrimation email body, supports go template vars from submission data (eg email field can be added to body as {{ .email }}). Requires confirmation extension in the BUSCARRON_NAME_EXTENSIONS list and postmark (or SMTP) configuration
  1. Add form name to BUSCARRON_LIST, eg: export BUSCARRON_LIST="form1 form2")
  2. Add form config, eg: export BUSCARRON_FORM1_REDIRECT=https://http.cat/200
  3. Send POST request to the http://127.0.0.1:8080/name

optional buscarron configs

  • BUSCARRON_SENTRY - sentry DSN
  • BUSCARRON_HC_URL - healthchecks.io URL, default: https://hc-ping.com
  • BUSCARRON_HC_UUID - healthchecks.io check UUID
  • BUSCARRON_LOGLEVEL - log level
  • BUSCARRON_DB_DSN - database connection string
  • BUSCARRON_DB_DIALECT - database dialect (postgres, sqlite3)
  • BUSCARRON_SPAMLIST - list of spam emails with wildcards, eg: export BUSCARRON_SPAMLIST=*@spammer.com annoy@gmail.com spammer@*
  • BUSCARRON_BAN_SIZE - jail size of banned users
  • BUSCARRON_BAN_LIST - list of IP hashes / IDs for permanent ban
  • BUSCARRON_PM_TOKEN - Postmark server token
  • BUSCARRON_PM_FROM - Postmark sender signature
  • BUSCARRON_PM_REPLYTO - reply-to email header
  • BUSCARRON_SMTP_FROM - email address (from) for SMTP validation and the From address of sent mail when SMTP sending is enabled. Must be valid email on valid SMTP server, otherwise it will be rejected by other servers
  • BUSCARRON_SMTP_VALIDATION - enforce SMTP validation
  • BUSCARRON_SMTP_HOST - SMTP server host for sending mail; when set, mail is sent via SMTP instead of Postmark
  • BUSCARRON_SMTP_PORT - SMTP server port, default: 587
  • BUSCARRON_SMTP_LOGIN - SMTP login
  • BUSCARRON_SMTP_PASSWORD - SMTP password
  • BUSCARRON_SMTP_REPLYTO - reply-to email header for SMTP-sent mail
  • BUSCARRON_METRICS_LOGIN - /metrics login
  • BUSCARRON_METRICS_PASSWORD - /metrics password
  • BUSCARRON_METRICS_IPS - /metrics allowed ips

optional redmine configs

  • BUSCARRON_REDMINE_HOST - redmine host, e.g. https://redmine.example.com
  • BUSCARRON_REDMINE_APIKEY - redmine API key
  • BUSCARRON_REDMINE_PROJECT - redmine project identifier, e.g. internal-project
  • BUSCARRON_REDMINE_TRACKERID - redmine tracker ID, e.g. 1
  • BUSCARRON_REDMINE_STATUSID - redmine status ID, e.g. 1

You can find default values in config/defaults.go

About

Submit web forms to Matrix (HTTP POST)

Topics

Resources

Stars

6 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages