{"id":13937130,"url":"https://github.com/wolfgang42/vagrant-deb","last_synced_at":"2026-03-06T07:08:22.477Z","repository":{"id":27800432,"uuid":"31289633","full_name":"wolfgang42/vagrant-deb","owner":"wolfgang42","description":"Unofficial deb repository for Vagrant","archived":false,"fork":false,"pushed_at":"2021-01-16T02:59:54.000Z","size":25,"stargazers_count":49,"open_issues_count":1,"forks_count":8,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-08-08T23:26:26.587Z","etag":null,"topics":["debian-packaging","debian-repositories","repository","vagrant"],"latest_commit_sha":null,"homepage":"http://vagrant-deb.linestarve.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wolfgang42.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-25T00:37:10.000Z","updated_at":"2023-11-19T14:13:47.000Z","dependencies_parsed_at":"2022-08-02T10:45:34.381Z","dependency_job_id":null,"html_url":"https://github.com/wolfgang42/vagrant-deb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfgang42%2Fvagrant-deb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfgang42%2Fvagrant-deb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfgang42%2Fvagrant-deb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfgang42%2Fvagrant-deb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wolfgang42","download_url":"https://codeload.github.com/wolfgang42/vagrant-deb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226693903,"owners_count":17667757,"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":["debian-packaging","debian-repositories","repository","vagrant"],"created_at":"2024-08-07T23:03:18.971Z","updated_at":"2026-03-06T07:08:22.444Z","avatar_url":"https://github.com/wolfgang42.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Deprecated!\nUse the new [offical repository](https://www.hashicorp.com/blog/announcing-the-hashicorp-linux-repository) instead.\n\nThis unofficial repository will be supported until April 30, 2021, after which time the repository will be unavailable.\n\nThere will also be periodic brownouts (see `brownouts.txt` for dates) during which attempting `apt-get update` will return 503 Service Unavailable, to give advance notice before the repo goes permanently offline.\n\n# About\nHashiCorp provides Debian packages for Vagrant,\nbut they don't provide a repository so you have to download the packages\nand reinstall them manually every time there's an update.\nThe [feature request to add a repository](https://github.com/mitchellh/vagrant-installers/issues/12)\nis not a particularly high priority for them,\nso as a public service I made a repository and set it up at\n[vagrant-deb.linestarve.com](https://vagrant-deb.linestarve.com).\n\nOriginally, I was using [Aptly](https://www.aptly.info/)\nto generate the repository.\nHowever, this required downloading and serving the deb package,\nwhich was annoying because I have a fairly small disk on my server\nand the packages were taking up an awful lot of room.\n\nThis version generates the repository directly from the\n[HashiCorp releases page](http://releases.hashicorp.com/)\nand provides redirects to the actual packages.\nThis has a number of benefits:\n* I can publish every version of Vagrant, not just the ones that fit on my disk.\n* Package files will be downloaded directly from HashiCorp, alleviating concerns about tampering.\n* Increased integrity verification: the SHA256 in the `Packages` file comes directly from their API,\n  and the signature of the `SHA256SUMS` file is now checked against the\n  [HashiCorp GPG key](https://www.hashicorp.com/security/).\n\n# Development\nThe code is intended to be run in a Docker container.\nYou will need to make a GPG key and export it as `signing.private.key`;\nit will be embedded in the generated Docker image.\n\nTo run:\n```\ndocker build -t vagrant-deb .\ndocker run --rm -v $(pwd)/public_html/:/app/public_html/ -v $(pwd)/cache/:/app/cache/ vagrant-deb\n```\n\nThis will create a `cache/` folder (see below) as well as a `public_html/` folder\nto be served. The `public_html/` folder will also contain `redirects-{amd64,i386}.conf`\nfiles which should be `include`d in the Nginx configuration, to publish the repository's pool.\n\n# Code Overview\nThis program creates all of the repository files from scratch,\nwithout using any of the usual helper programs.\nThis is because they all expect that you have a package and want to publish it yourself;\nsince I *don't* want to download the packages this won't work.\nThe documentation on the\n[Debian repository format](https://wiki.debian.org/DebianRepository/Format)\nwill probably be very helpful in trying to understand how all of the pieces fit together.\n\n`update.sh` is the main script, which handles orchestrating all of the various pieces.\nIt delegates to various Python scripts to actually generate the files,\nthen handles compressing, signing, and so on.\nIt avoids touching files that haven't changed, so that they can be cached and\ndon't need to be re-downloaded.\nIt has four main steps:\n1. Create various folders and download `releases.json`\n2. Update the files for each architecture.\n3. Update the `Release` files for the repository.\n4. Update `index.html` with the latest version and update time.\n\n`build-packages.py` generates a `Packages` file for each architecture,\nas well as the redirects file for that architecture's `/pool/`.\nIt leans heavily on `releaseinfo.py`, which provides various library routines\nfor extracting information about individual Vagrant versions.\n(See the comments in that file for details on each of the functions.)\n\n`build-release-checksums.py` generates the checksum portion of the `Release` file.\n\n`index.tpl` is a template for `index.html`; it contains various placeholders\nwhich `envsubst` will replace during the update process.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwolfgang42%2Fvagrant-deb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwolfgang42%2Fvagrant-deb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwolfgang42%2Fvagrant-deb/lists"}