{"id":13337975,"url":"https://github.com/hauleth/dolores","last_synced_at":"2026-02-20T17:31:00.430Z","repository":{"id":50358125,"uuid":"365706384","full_name":"hauleth/dolores","owner":"hauleth","description":"Local development reverse proxy","archived":false,"fork":false,"pushed_at":"2022-11-01T06:53:32.000Z","size":61,"stargazers_count":57,"open_issues_count":6,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-03T21:22:48.455Z","etag":null,"topics":["developer-tools","development","hacktoberfest","http-proxy","proxy","proxy-server","reverse-proxy","tls"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hauleth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-09T08:42:37.000Z","updated_at":"2024-08-08T11:38:09.000Z","dependencies_parsed_at":"2022-09-06T17:10:27.988Z","dependency_job_id":null,"html_url":"https://github.com/hauleth/dolores","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hauleth/dolores","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hauleth%2Fdolores","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hauleth%2Fdolores/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hauleth%2Fdolores/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hauleth%2Fdolores/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hauleth","download_url":"https://codeload.github.com/hauleth/dolores/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hauleth%2Fdolores/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29658366,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T16:33:43.953Z","status":"ssl_error","status_checked_at":"2026-02-20T16:33:43.598Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["developer-tools","development","hacktoberfest","http-proxy","proxy","proxy-server","reverse-proxy","tls"],"created_at":"2024-07-29T19:15:16.634Z","updated_at":"2026-02-20T17:31:00.395Z","avatar_url":"https://github.com/hauleth.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# Dolores\n\n**WIP: Works, but there is still a lot rough edges**\n\nLocal development HTTPS proxy server meant to simplify working with multi-domain\napplications by serving each application on separate domain under `.localhost`\nTLD.\n\n## Usage\n\nFirst we need to run our master server that will proxy all requests to the\nseparate applications:\n\n```sh\nsudo dolores serve\n```\n\nNow, as **unprivileged user** we can run:\n\n```sh\ndolores run --name my-app \u003cyour command for starting server\u003e\n```\n\nFor example\n\n```sh\ndolores run --name foo mix phx.server\n```\n\nAnd your application will receive socket to listen on (passed as FD3). It is\nprovided to your application in the same way that systemd socket activation\nworks. In short there are 3 environment variables:\n\n- `LISTEN_FDS` - amount of file descriptors passed in. These are FD 3 up to\n  FD 3 + `LISTEN_FDS`\n- `LISTEN_FDNAMES` - `:` (colon) separated list of FD names used to differentiate\n  between them\n- `LISTEN_PID` - PID of the process that the FD are meant for\n\nWith current PoC implementation you can assume that there will be only one\nFD passes and it will be FD 3.\n\nNow you should be able to visit your application on \u003chttps://foo.localhost\u003e.\n\n## Goals\n\n- [x] Listen on HTTPS requests and dispatch requests to given application\n- [x] Passthrough proxy\n- [x] TLS terminating proxy\n- [ ] Socket activation on macOS and systemd-enabled Linux distributions\n- [ ] On-the-fly generation of TLS certificates (partially supported, only\n  self-signed certs are supported for now)\n- [ ] Registration of external ports\n- [ ] Built-in ACME server for passthrough services\n- [ ] Create page presenting all registered applications\n- [ ] Provide Prometheus metrics for the proxy server\n- [ ] Collect Prometheus metrics for all running applications\n\n## Non-goals\n\n- Performance - this tool is meant to be a development utility, performance\n  improvements that could hurt usability are no go.\n- Production-grade load balancing - for the same reason as above. Securing\n  everything, performance tuning, etc.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhauleth%2Fdolores","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhauleth%2Fdolores","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhauleth%2Fdolores/lists"}