{"id":17473696,"url":"https://github.com/freepik-company/bifrost","last_synced_at":"2026-02-07T16:02:39.645Z","repository":{"id":258033987,"uuid":"873140528","full_name":"freepik-company/bifrost","owner":"freepik-company","description":"A lightweight S3 proxy that re-signs requests between your customers and buckets, supporting multiple client authentication methods","archived":false,"fork":false,"pushed_at":"2024-12-31T19:10:26.000Z","size":216,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-10T05:02:36.393Z","etag":null,"topics":["golang","http","s3","s3-proxy"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/freepik-company.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":"2024-10-15T17:04:40.000Z","updated_at":"2024-12-31T19:10:30.000Z","dependencies_parsed_at":"2024-10-23T08:07:04.145Z","dependency_job_id":"69b71ab6-f136-4a40-b25d-f956296532be","html_url":"https://github.com/freepik-company/bifrost","commit_stats":{"total_commits":26,"total_committers":1,"mean_commits":26.0,"dds":0.0,"last_synced_commit":"abf8152086f786f3fe63fff7cd81256f5f643e72"},"previous_names":["freepik-company/bifrost"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/freepik-company/bifrost","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freepik-company%2Fbifrost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freepik-company%2Fbifrost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freepik-company%2Fbifrost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freepik-company%2Fbifrost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/freepik-company","download_url":"https://codeload.github.com/freepik-company/bifrost/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freepik-company%2Fbifrost/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29199519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T14:35:27.868Z","status":"ssl_error","status_checked_at":"2026-02-07T14:25:51.081Z","response_time":63,"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":["golang","http","s3","s3-proxy"],"created_at":"2024-10-18T18:06:29.491Z","updated_at":"2026-02-07T16:02:39.627Z","avatar_url":"https://github.com/freepik-company.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bifrost\n![GitHub go.mod Go version (subdirectory of monorepo)](https://img.shields.io/github/go-mod/go-version/freepik-company/bifrost)\n![GitHub](https://img.shields.io/github/license/freepik-company/bifrost)\n\n![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UCeSb3yfsPNNVr13YsYNvCAw?label=achetronic\u0026link=http%3A%2F%2Fyoutube.com%2Fachetronic)\n![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/achetronic?style=flat\u0026logo=twitter\u0026link=https%3A%2F%2Ftwitter.com%2Fachetronic)\n\n\u003e [!IMPORTANT]\n\u003e This project is under active development. Some features may change without prior notice.\n\nA lightweight S3 proxy that re-signs requests between your customers and buckets, supporting multiple client authentication methods.\n\n\n## Motivation\n\nOutbound traffic from S3 buckets is often expensive with many providers. Some providers treat outbound traffic as internal when it goes through alternative points other than the provided S3 endpoint, such as bare-metal machines.\n\nIn these situations, a transparent HTTP proxy isn't enough because all S3 client requests are signed at the source, and the signature includes the host. Simply rewriting this header doesn't help—the bucket will see the signature as invalid.\n\nThe simplest way to handle this is to intercept the request and re-sign it with valid data. This proxy is exactly the gateway you need.\n\n\n## Diagram\n\n\u003cimg src=\"https://raw.githubusercontent.com/freepik-company/bifrost/master/docs/img/diagram.png\" alt=\"Bifrost diagram\" width=\"600\"\u003e\n\n\n## Flags\n\nAs almost every configuration parameter can be defined in environment vars, there are only few flags that can be defined.\nThey are described in the following table:\n\n| Name              | Description                                          |    Default     | Example                  |\n|:------------------|:-----------------------------------------------------|:--------------:|:-------------------------|\n| `--log-level`     | Verbosity level for logs                             |     `info`     | `--log-level info`       |\n| `--disable-trace` | Disable showing traces in logs                       |     `info`     | `--log-level info`       |\n| `--config`        | Path to the configuration file \u003cbr\u003e [Config Example] | `bifrost.yaml` | `--bifrost bifrost.yaml` |\n| `--enable-periodic-cleanup`    | Enable periodic memory cleanup       | `false` | `--enable-periodic-cleanup`      |\n| `--periodic-cleanup-duration`  | Duration for periodic memory cleanup |  `4m`   | `--periodic-cleanup-duration 5m` |\n\n\n\u003e Output is thrown always in JSON as it is more suitable for automations\n\n```console\nbifrost run \\\n    --log-level=info\n```\n\n\n## Configuration\n\nA complete example of the config params can be found in [docs/samples/bifrost.yaml](./docs/samples/bifrost.yaml)\n\n\n## How to deploy\n\nThis project can be deployed in Kubernetes, but also provides binary files\nand Docker images to make it easy to be deployed however wanted\n\n\n### Binaries\n\nBinary files for most popular platforms will be added to the [releases](https://github.com/freepik-company/bifrost/releases)\n\n\n### Kubernetes\n\nYou can deploy `bifrost` in Kubernetes using Helm as follows:\n\n```console\nhelm repo add bifrost https://freepik-company.github.io/bifrost/\n\nhelm upgrade --install --wait bifrost \\\n  --namespace bifrost \\\n  --create-namespace freepik-company/bifrost\n```\n\n\u003e More information and Helm packages [here](https://freepik-company.github.io/bifrost/)\n\n\n### Docker\n\nDocker images can be found in GitHub's [packages](https://github.com/freepik-company/bifrost/pkgs/container/bifrost)\nrelated to this repository\n\n\u003e Do you need it in a different container registry? I think this is not needed, but if I'm wrong, please, let's discuss\n\u003e it in the best place for that: an issue\n\n## How to contribute\n\nWe are open to external collaborations for this project: improvements, bugfixes, whatever.\n\nFor doing it, open an issue to discuss the need of the changes, then:\n\n- Fork the repository\n- Make your changes to the code\n- Open a PR and wait for review\n\nThe code will be reviewed and tested (always)\n\n\u003e We are developers and hate bad code. For that reason we ask you the highest quality\n\u003e on each line of code to improve this project on each iteration.\n\n## License\n\nCopyright 2022.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n\n\n[//]: #\n\n[Config Example]: \u003c./README.md#configuration\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreepik-company%2Fbifrost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreepik-company%2Fbifrost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreepik-company%2Fbifrost/lists"}