{"id":21456044,"url":"https://github.com/etkecc/buscarron","last_synced_at":"2025-07-27T18:10:56.011Z","repository":{"id":256567475,"uuid":"845204659","full_name":"etkecc/buscarron","owner":"etkecc","description":"Submit web forms to Matrix (HTTP POST)","archived":false,"fork":false,"pushed_at":"2025-05-22T19:36:43.000Z","size":95374,"stargazers_count":3,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-22T20:55:01.385Z","etag":null,"topics":["http","matrix-org","mautrix-go"],"latest_commit_sha":null,"homepage":"https://matrix.to/#/#buscarron:etke.cc","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/etkecc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","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,"zenodo":null},"funding":{"liberapay":"etkecc"}},"created_at":"2024-08-20T19:40:27.000Z","updated_at":"2025-05-22T19:36:53.000Z","dependencies_parsed_at":"2025-04-29T09:40:09.345Z","dependency_job_id":null,"html_url":"https://github.com/etkecc/buscarron","commit_stats":null,"previous_names":["etkecc/buscarron"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/etkecc/buscarron","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etkecc%2Fbuscarron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etkecc%2Fbuscarron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etkecc%2Fbuscarron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etkecc%2Fbuscarron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/etkecc","download_url":"https://codeload.github.com/etkecc/buscarron/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etkecc%2Fbuscarron/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267400491,"owners_count":24081183,"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","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["http","matrix-org","mautrix-go"],"created_at":"2024-11-23T05:14:20.128Z","updated_at":"2025-07-27T18:10:55.964Z","avatar_url":"https://github.com/etkecc.png","language":"Go","funding_links":["https://liberapay.com/etkecc"],"categories":[],"sub_categories":[],"readme":"# Buscarron [![Matrix](https://img.shields.io/matrix/buscarron:etke.cc?logo=matrix\u0026server_fqdn=matrix.org\u0026style=for-the-badge)](https://matrix.to/#/#buscarron:etke.cc)\n\n\u003e [more about that name](https://finalfantasy.fandom.com/wiki/Buscarron_Stacks)\n\nSend any form (HTTP POST, HTML) to an encrypted matrix room, used as part of [etke.cc](https://etke.cc) service.\n\n## Features\n\n* End-to-End encryption\n* Receive any HTTP POST request as form submission in a matrix room\n\n## Configuration\n\nenv vars\n\n### mandatory\n\n* **BUSCARRON_HOMESERVER** - homeserver url, eg: `https://matrix.example.com`\n* **BUSCARRON_LOGIN** - user login/localpart, eg: `buscarron`\n* **BUSCARRON_PASSWORD** - user password\n* **BUSCARRON_NAME_ROOM** - Matrix Room ID of the `name` form\n* **BUSCARRON_NAME_REDIRECT** - URL to redirect after handling form `name` data submission, supports [go template](https://pkg.go.dev/text/template) vars from submission data (eg `email` field can be added to the redirect string as `{{ .email }}`)\n\n### optional form configs\n\n* **BUSCARRON_NAME_REDIRECT_REJECT** - URL to redirect after handling form `name` (doesn't support templates) for **rejected** submissions\n* **BUSCARRON_NAME_RATELIMIT** - rate limit of the form, format: `\u003cmax requests\u003er/\u003cinterval:s,m\u003e`, eg: `1r/s`, `54r/m`, `7r/h`\n* **BUSCARRON_NAME_RATELIMIT_SHARED** - enable shared rate limit between forms with that option enabled\n* **BUSCARRON_NAME_HASEMAIL** - if the form has an `email` field and you want to enforce email validation\n* **BUSCARRON_NAME_HASDOMAIN** - if the form has a `domain` field and you want to enforce domain validation\n* **BUSCARRON_NAME_EXTENSIONS** - space-separated list of the form extensions, allowed values: `confirmation`\n* **BUSCARRON_NAME_TEXT** - custom form text, supports [go template](https://pkg.go.dev/text/template) vars from submission data (e.g., `email` field can be displayed as `{{ .email }}`)\n* **BUSCARRON_NAME_CONFIRMATION_SUBJECT** - confrimation email subject, supports [go template](https://pkg.go.dev/text/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 configuration\n* **BUSCARRON_NAME_CONFIRMATION_BODY** - confrimation email body, supports [go template](https://pkg.go.dev/text/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 configuration\n\n\n1. Add form name to **BUSCARRON_LIST**, eg: `export BUSCARRON_LIST=\"form1 form2\"`)\n2. Add form config, eg: `export BUSCARRON_FORM1_REDIRECT=https://http.cat/200`\n3. Send POST request to the `http://127.0.0.1:8080/name`\n\n### optional buscarron configs\n\n* **BUSCARRON_SENTRY** - sentry DSN\n* **BUSCARRON_HC_URL** - healthchecks.io URL, default: `https://hc-ping.com`\n* **BUSCARRON_HC_UUID** - healthchecks.io check UUID\n* **BUSCARRON_LOGLEVEL** - log level\n* **BUSCARRON_DB_DSN** - database connection string\n* **BUSCARRON_DB_DIALECT** - database dialect (postgres, sqlite3)\n* **BUSCARRON_SPAMLIST** - list of spam emails with wildcards, eg: `export BUSCARRON_SPAMLIST=*@spammer.com annoy@gmail.com spammer@*`\n* **BUSCARRON_BAN_SIZE** - jail size of banned users\n* **BUSCARRON_BAN_LIST** - list of IP hashes / IDs for permanent ban\n* **BUSCARRON_PM_TOKEN** - [Postmark](https://postmarkapp.com) server token\n* **BUSCARRON_PM_FROM** - [Postmark](https://postmarkapp.com) sender signature\n* **BUSCARRON_PM_REPLYTO** - reply-to email header\n* **BUSCARRON_SMTP_FROM** - email address (from) for SMTP validation. Must be valid email on valid SMTP server, otherwise it will be rejected by other servers\n* **BUSCARRON_SMTP_VALIDATION** - enforce SMTP validation\n* **BUSCARRON_METRICS_LOGIN** - /metrics login\n* **BUSCARRON_METRICS_PASSWORD** - /metrics password\n* **BUSCARRON_METRICS_IPS** - /metrics allowed ips\n\n### optional redmine configs\n\n* **BUSCARRON_REDMINE_HOST** - redmine host, e.g. `https://redmine.example.com`\n* **BUSCARRON_REDMINE_APIKEY** - redmine API key\n* **BUSCARRON_REDMINE_PROJECT** - redmine project identifier, e.g. `internal-project`\n* **BUSCARRON_REDMINE_TRACKERID** - redmine tracker ID, e.g. `1`\n* **BUSCARRON_REDMINE_STATUSID** - redmine status ID, e.g. `1`\n\nYou can find default values in [config/defaults.go](config/defaults.go)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetkecc%2Fbuscarron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fetkecc%2Fbuscarron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetkecc%2Fbuscarron/lists"}