{"id":18656610,"url":"https://github.com/zendesk/apt-s3","last_synced_at":"2026-01-27T21:32:33.008Z","repository":{"id":41993971,"uuid":"179164732","full_name":"zendesk/apt-s3","owner":"zendesk","description":"apt method for private S3 buckets","archived":false,"fork":false,"pushed_at":"2023-04-09T18:07:23.000Z","size":38,"stargazers_count":24,"open_issues_count":6,"forks_count":7,"subscribers_count":273,"default_branch":"master","last_synced_at":"2025-03-25T16:51:40.833Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/zendesk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2019-04-02T21:55:55.000Z","updated_at":"2025-02-03T10:31:04.000Z","dependencies_parsed_at":"2024-06-20T03:17:09.306Z","dependency_job_id":"00b82ae9-6e52-457a-8ceb-f72014019ea5","html_url":"https://github.com/zendesk/apt-s3","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zendesk%2Fapt-s3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zendesk%2Fapt-s3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zendesk%2Fapt-s3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zendesk%2Fapt-s3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zendesk","download_url":"https://codeload.github.com/zendesk/apt-s3/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248458376,"owners_count":21107064,"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":[],"created_at":"2024-11-07T07:24:20.179Z","updated_at":"2026-01-27T21:32:32.979Z","avatar_url":"https://github.com/zendesk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# apt-s3\n![repo-checks](https://github.com/zendesk/apt-s3/workflows/repo-checks/badge.svg)\n\n`apt-s3` is an [APT Method Interface](http://www.fifi.org/doc/libapt-pkg-doc/method.html/) written in Go to use a private S3 bucket as an `apt` repository on Debian based systems. Similar projects exist, but they all have their caveats:\n  * Many are completely unmaintained\n  * Most require `python` and some require additional `pip` packages\n  * Some only use the default AWS authentication methods\n    * This means any application specific credentials in a Docker container must also have access to the S3 bucket or `apt` breaks entirely\n  * Most set the region globally so they only support a single S3 region at a time\n  * Some place the API keys in the S3 URI\n    * This means they are leaked every time `apt-get update` or `apt-get install` is run\n  * Some do not use the AWS SDK\n  * None of them expose an interactive component for downloading files\n\n## Installation\n\nThe only requirement for `apt-s3` is the `ca-certificates` package and its dependencies.\n\nInstallation is as easy as downloading the binary or deb package from our [releases](https://github.com/zendesk/apt-s3/releases) page.\n\n### Package Installation\n\nDownload the package and install it with `dpkg -i /path/to/package.deb`. If you see the error message below simply run `apt-get install -f` to fix it.\n```\ndpkg: dependency problems prevent configuration of apt-s3:\n apt-s3 depends on ca-certificates; however:\n  Package ca-certificates is not installed.\n```\n\n### Binary Installation\n\nDownload the binary and move it to `/usr/lib/apt/methods/s3`.\n\n## Usage\n\nSimply create an apt list file in the proper format to start using `apt-s3` with apt.\n```bash\nexport BUCKET_NAME=my-s3-bucket\nexport BUCKET_REGION=us-east-1\n\necho \"deb s3://${BUCKET_NAME}.s3-${BUCKET_REGION}.amazonaws.com/ stable main\" \u003e /etc/apt/sources.list.d/s3bucket.list\n```\n\n### Credentials\n\n`apt-s3` uses the [default credential provider chain](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html) to find valid AWS credentials.\n\n### Interactive Usage\n\nTo download a file using `apt-s3` simply use the `-download` flag. Run `apt-s3 -help` for usage info.\n\n```bash\nexport BUCKET_NAME=my-s3-bucket\nexport BUCKET_REGION=us-east-1\n\napt-s3 -download s3:/${BUCKET_NAME}.s3-${BUCKET_REGION}.amazonaws.com/file -path /tmp/file\n```\n\n## Building\n\nUse the Makefile to build the binary and .deb package (requires [nfpm](https://github.com/goreleaser/nfpm) to be installed and in the `$PATH`).\n\n```bash\n$ make\n```\n\n## Releasing a New Version\n\nTo release a new version you will need a few things:\n\n1. Write access to this repo\n2. [A personal access token](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line)\n3. [nfpm](https://github.com/goreleaser/nfpm) installed and in the `$PATH`\n\nOnce everything is set up follow these steps to create a release and upload assets:\n\n```bash\nexport GITHUB_TOKEN=\u003cyour personal access token\u003e\n# bumping the version programatically can be easily done with `awk`\nexport VERSION=$(git describe --tags | awk -F. -v OFS=. '{ $3++ } 1') # use $1 for major/$2 for minor/$3 for patch\nmake VERSION=$VERSION release\n```\n\nTo create a pre-release for testing purposes:\n```bash\nexport GITHUB_TOKEN=\u003cyour personal access token\u003e\nexport VERSION=0.1.0-alpha.1 # example pre-release tag\nmake VERSION=$VERSION pre-release\n```\n\n## Contributing\n\nImprovements are always welcome. Please follow these steps to contribute:\n\n1. Fork repo\n2. Submit a Pull Request with a detailed explanation of changes\n3. Receive a :+1: from a core team member\n4. Core team will merge your changes\n\n## License\n\nUse of this software is subject to important terms and conditions as set forth in the [LICENSE](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzendesk%2Fapt-s3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzendesk%2Fapt-s3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzendesk%2Fapt-s3/lists"}