{"id":18412630,"url":"https://github.com/benchkram/bobc","last_synced_at":"2025-04-07T11:32:09.319Z","repository":{"id":220255185,"uuid":"616467122","full_name":"benchkram/bobc","owner":"benchkram","description":"Remote cache for https://bob.build","archived":false,"fork":false,"pushed_at":"2023-05-26T13:33:38.000Z","size":137,"stargazers_count":9,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-22T17:11:26.691Z","etag":null,"topics":["build","build-system","build-tool","cicd","go","golang","monorepo","nix"],"latest_commit_sha":null,"homepage":"https://bob.build/docs/remote-cache","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/benchkram.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}},"created_at":"2023-03-20T12:56:06.000Z","updated_at":"2025-03-19T14:29:55.000Z","dependencies_parsed_at":"2024-02-01T04:48:45.752Z","dependency_job_id":"468ab727-c381-47d1-b383-283e18fe5cba","html_url":"https://github.com/benchkram/bobc","commit_stats":null,"previous_names":["benchkram/bobc"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benchkram%2Fbobc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benchkram%2Fbobc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benchkram%2Fbobc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benchkram%2Fbobc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benchkram","download_url":"https://codeload.github.com/benchkram/bobc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247644436,"owners_count":20972289,"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","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":["build","build-system","build-tool","cicd","go","golang","monorepo","nix"],"created_at":"2024-11-06T03:42:52.624Z","updated_at":"2025-04-07T11:32:04.309Z","avatar_url":"https://github.com/benchkram.png","language":"Go","funding_links":[],"categories":["go"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  bobc\n\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003e\n   A Remote Cache for \u003ca href=\"https://bob.build\"\u003eBob\u003c/a\u003e\n\u003c/h3\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg  width=\"100%\" src=\"https://user-images.githubusercontent.com/17600197/226882033-c9f741ca-4d42-4d75-8f43-956c404824b2.gif\" /\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n**bobc** is a lightweight, open source implementation of the bob Cloud Platform - https://bob.build.\nIt is implemented in Go, and it uses an AWS S3-compatible storage backend for storing build artifacts, along with\na Postgres database for storing projects and artifact metadata.\n\n\u003cbr/\u003e\n\n## Getting Started\n\nTo build and run bobc locally, you must have the following tools present on your system:\n- Bob with Nix (https://bob.build/docs/getting-started/installation/)\n- Docker-Compose (https://docs.docker.com/get-docker/)\n\nBob is used to build the Go binary and the container image.\nDocker-compose is used to ramp up a local environment with a Postgres database, MinIO (S3-compatible object storage)\nand Adminer to aid in inspecting the database contents.\n\nFirst of all, clone the repository and `cd` into it:\n\n```bash\ngit clone https://github.com/benchkram/bobc\ncd bobc\n```\n\nYou also need to clone the bob repo, since the openapi-related generated files will need to be updated once the actual\nbuild is invoked.\n\n```bash\nbob clone\n```\n\n\n### Building\nTo build the bobc container, run the following command:\n\n```bash\nbob build container\n```\n\nThis command will install any build dependencies (Go, Docker, GolangCI-Lint), bootstrap the project, build the bobc\nbinary and subsequently build the container.\n\n### Running\nTo set up the docker-compose environment and start the server run:\n\n```bash\nexport API_KEY=\"example-api-key\"\ndocker compose up -d\n```\n\nYou should now see bobc running on port 8100.\n\nNote: MinIO at localhost requires a host alias to be set up in order to work properly.\nYou should add the following to your `/etc/hosts` file:\n\n```bash\n127.0.0.1       minio\n```\n\n### Example: Creating a project and pushing artifacts to it\n\nYou must create a project to be able to sync artifacts to the server.\nTo do so, open a new terminal session and use the following `curl` command:\n\n```bash\ncurl -X POST http://localhost:8100/api/projects \\\n   -H \"Content-Type: application/json\" \\\n   -H \"Authorization: Bearer $API_KEY\" \\\n   -d '{\"name\": \"bobc-example\"}'\n```\n\nThis will create a project named `bobc-example`.\n\nNext, you should configure an authentication context for bob. We'll use the same API_TOKEN as bearer token:\n\n```bash\nexport API_KEY=\"example-api-key\"\nbob auth init --token=$API_KEY\n```\n\nYou can verify artifact sync is working by typing\n```bash\ncd example\nbob build --insecure --push\n```\n\nWe have to use the `--insecure` flag since bobc is running over HTTP by default locally.\nWe also pass the `--push` flag to instruct bob to attempt to push artifacts to the artifact store. Bob will not push artifacts upstream by default.\n\nFor more information on how to use bob with bobc, please refer to the official documentation: https://bob.build/docs/remote-cache#pushing--pulling-artifacts\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenchkram%2Fbobc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenchkram%2Fbobc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenchkram%2Fbobc/lists"}