{"id":36481170,"url":"https://github.com/factorysh/chevillette","last_synced_at":"2026-01-12T01:02:35.441Z","repository":{"id":42708777,"uuid":"460562615","full_name":"factorysh/chevillette","owner":"factorysh","description":"Whitelist your preprod with your Gitlab's logs","archived":false,"fork":false,"pushed_at":"2023-08-30T14:14:45.000Z","size":81,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-15T04:15:22.713Z","etag":null,"topics":["gitlab","nginx","traefik"],"latest_commit_sha":null,"homepage":"","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/factorysh.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-17T18:40:24.000Z","updated_at":"2023-05-14T13:17:41.000Z","dependencies_parsed_at":"2024-06-19T16:35:00.284Z","dependency_job_id":null,"html_url":"https://github.com/factorysh/chevillette","commit_stats":{"total_commits":84,"total_committers":2,"mean_commits":42.0,"dds":"0.011904761904761862","last_synced_commit":"565dd123c542dd3b633ab455b1eb57c77832b97b"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/factorysh/chevillette","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/factorysh%2Fchevillette","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/factorysh%2Fchevillette/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/factorysh%2Fchevillette/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/factorysh%2Fchevillette/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/factorysh","download_url":"https://codeload.github.com/factorysh/chevillette/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/factorysh%2Fchevillette/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28330161,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"ssl_error","status_checked_at":"2026-01-12T00:36:15.229Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["gitlab","nginx","traefik"],"created_at":"2026-01-12T01:01:30.752Z","updated_at":"2026-01-12T01:02:35.430Z","avatar_url":"https://github.com/factorysh.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Chevillette\n===========\n\n\u003e Tirez la bobinette et la chevillette cherra\n\nYou have two websites, one authenticated, the other is a preprod, almost public.\n\nIf your IP and user agent was seen in A server, you are whitelisted is site B.\n\nIt's a basic anti bot tools, not a real security tool, like basic auth or oauth2.\nThis tool doesn't handle very well coworking spaces or any public access point.\n\nWeb server\n----------\n\n * [x] Nginx with [http_auth_request](https://nginx.org/en/docs/http/ngx_http_auth_request_module.html).\n * [x] Traefik with [ForwardAuth](https://doc.traefik.io/traefik/middlewares/http/forwardauth/).\n * [ ] Haproxy\n\nInput\n-----\n\n * [x] Fluentd server\n * [x] Loki tail\n * [x] Lumber (aka logstash protocol)\n\nDemo\n----\n\nBuild your own `chevillette`\n\n    make build-with-docker\n\n\n### Fluentd demo\n\nGo to demo folder\n\n    cd demo-fluentd\n    docker compose up -d\n\n### Loki demo\n\nGo to demo folder\n\n    cd demo-loki\n    docker compose up -d\n\n### Lumber demo\n\nGo to demo folder\n\n    cd demo-lumber\n    docker compose up -d\n\n### Client\n\nTest protected website B\n\n    docker compose run client curl nginx-b\n\nIt should be 403\n\nUnlock with website A\n\n    docker compose run client curl nginx-a\n\nTest website B again\n\n    docker compose run client curl nginx-b\n\nIt should be 200\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffactorysh%2Fchevillette","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffactorysh%2Fchevillette","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffactorysh%2Fchevillette/lists"}