{"id":20032983,"url":"https://github.com/hedinfaok/boxing","last_synced_at":"2026-05-08T23:02:45.167Z","repository":{"id":69125138,"uuid":"597578078","full_name":"hedinfaok/boxing","owner":"hedinfaok","description":"Boxing is software that customizes a computing environment.","archived":false,"fork":false,"pushed_at":"2024-12-14T05:47:09.000Z","size":27,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-12T18:14:55.287Z","etag":null,"topics":["bash","devops"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hedinfaok.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2023-02-05T00:34:41.000Z","updated_at":"2024-12-14T05:47:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"71f9782d-8e15-4243-9a3c-01d7c3fb01a3","html_url":"https://github.com/hedinfaok/boxing","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/hedinfaok%2Fboxing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hedinfaok%2Fboxing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hedinfaok%2Fboxing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hedinfaok%2Fboxing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hedinfaok","download_url":"https://codeload.github.com/hedinfaok/boxing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241465078,"owners_count":19967243,"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":["bash","devops"],"created_at":"2024-11-13T09:44:01.921Z","updated_at":"2026-05-08T23:02:45.162Z","avatar_url":"https://github.com/hedinfaok.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Boxing\n\nBoxing is a set of utilities that help fill in the boxes for the compute layer\nin an architecture diagram. The boxes could be user profiles, virtual machines,\ncontainers, physical machines, networking devices, or IoT embedded thingamajiggers.\n\nGenerally, Boxing is software that customizes a computing environment.\n\n## Where does Boxing fit?\n\nI use these tools to provision my personal computers, chromebooks, home servers,\nAndroid phones with Termux, and anything else that can run git and bash.\n\nFor something like Hashicorp's Packer, I would use Boxing as the provisioner.\n\nFor something like Docker, I would invoke the Boxing utilities in the Dockerfile.\n\nFor Termux or my personal computer, I use Boxing in my dotfiles.\n\n## Installation\n\nBy default, the installer script uses the Freedesktop.org convention. It installs Boxing into `~/.local/share/boxing` and creates a symlink in `~/.local/bin`.\n\n```\n# Install defaults\nbash \u003c(curl -s \"https://raw.githubusercontent.com/hedinfaok/boxing/HEAD/boxing.setups.sh\")\n\n# With `~/.local/bin` in your PATH:\nboxing --version\n\n# With `~/.local/bin` not in your PATH:\n~/.local/bin/boxing --version\n\n# Directly from default install directory:\n~/.local/share/boxing/boxing --version\n```\n\nYou can customize the installer with the `BOXING_DIR` and `BIN_DIR` environment variables:\n\n```\nBOXING_DIR=./boxing \\\nBIN_DIR=./bin \\\n    bash \u003c(curl -s \"https://raw.githubusercontent.com/hedinfaok/boxing/HEAD/boxing.setups.sh\")\n\n# Run from BIN_DIR:\n./bin/boxing --version\n\n# Run from BOXING_DIR:\n./boxing/boxing --version\n```\n\n### Alternative Installtion\n\nAlternatively, just clone this repo and add the directory to your PATH.\n\n## Using as a provisioner\n\nBe sure to copy the `boxing` directory as part of the provisioning process.\n\n* Docker: Use the COPY command in your Dockerfile.\n* Packer: Use file provisioner to copy the directory into the target.\n* Dotfiles: Copy the `boxing` directory and commit to your git repo.\n* Others: Yep, just copy the directory over.\n\n## Utilities\n\n* config: uses git-config to read/write ini files.\n* os-facts: displays facts about an os.\n* provides: wraps common package managers to find the package that provides a file or command.\n* setups: provisions software with shell functions.\n* switch: common inferface for reading and writing contexts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhedinfaok%2Fboxing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhedinfaok%2Fboxing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhedinfaok%2Fboxing/lists"}