{"id":13559984,"url":"https://github.com/refi64/nsbox","last_synced_at":"2025-03-17T10:34:22.869Z","repository":{"id":46538908,"uuid":"191645592","full_name":"refi64/nsbox","owner":"refi64","description":"A powerful pet container manager","archived":false,"fork":false,"pushed_at":"2022-02-21T18:13:33.000Z","size":1179,"stargazers_count":42,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-16T01:41:26.826Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/refi64.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-06-12T21:13:33.000Z","updated_at":"2024-08-01T21:30:46.000Z","dependencies_parsed_at":"2022-09-21T20:42:29.638Z","dependency_job_id":null,"html_url":"https://github.com/refi64/nsbox","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/refi64%2Fnsbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/refi64%2Fnsbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/refi64%2Fnsbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/refi64%2Fnsbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/refi64","download_url":"https://codeload.github.com/refi64/nsbox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243858632,"owners_count":20359388,"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-08-01T13:00:35.820Z","updated_at":"2025-03-17T10:34:22.483Z","avatar_url":"https://github.com/refi64.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nsbox\n\nnsbox is a multi-purpose, nspawn-powered container manager. Please see the\n[website](https://nsbox.dev) for more user-friendly information and documentation.\n\n## Links\n\n- [sr.ht project](https://sr.ht/~refi64/nsbox/)\n- [GitHub Mirror](https://github.com/refi64/nsbox/) (will be decomissioned in the future)\n- [Legacy ora.pm issues board](https://ora.pm/project/211667/kanban) (superceded by the\n  sr.ht project, will be decomissioned in the future)\n\n## Build dependencies\n\nYou need:\n\n- [Google's GN](https://gn.googlesource.com/gn) to generate the build files. Building this\n  from source is pretty simple, see the instructions on the site for more info.\n- [Ninja](https://ninja-build.org/) to actually...build stuff.\n- The [Go compiler](http://golang.org).\n- GCC or Clang for compiling cgo code.\n- Python 3, which is used to run some of the build scripts.\n- The systemd development headers.\n\n## Building the code\n\nRun:\n\n```bash\n$ go mod vendor\n$ gn gen out\n$ ninja -C out\n```\n\nThe resulting files should all be under out/install. Then, you can run\n`build/install.py out` to install to /usr/local (or set `--prefix` and/or `--destdir`, with the\nusual meanings).\n\n### Build configuration\n\nRun `gn args --list out` to see all the configuration arguments nsbox supports. You can use\nthese options to set the saved paths (e.g. the libexec directory) to your distro's preferred\nlocations.\n\n## Building the website\n\nRun:\n\n```bash\n$ cd web\n$ yarn\n# Run a development web server:\n$ yarn run dev\n# Build the production docs:\n$ yarn run build\n```\n\n## Contributing\n\n### Submitting Patches\n\nPlease see the [guide for submitting patches on\ngit.sr.ht](https://man.sr.ht/git.sr.ht/#sending-patches-upstream). (If you choose to use\n`git send-email`, the patches should be sent to\n[~refi64/nsbox-devel@lists.sr.ht](https://lists.sr.ht/~refi64/nsbox-devel).)\n\n### Coding Guidelines\n\nTODO\n\n### Running the tests\n\n**These are not currently functional!** I'm doing a major overhaul to the way tests work.\n\nUnit testing is done by running [Expect](https://www.tcl.tk/man/expect5.31/expect.1.html) scripts inside\nan isolated environment. **Do not run the tests on your host system, as they will modify your containers.**\n\nVagrant is used to manage the virtual environments (as a VM is required to test SELinux integration).\nThe libvirt provider is required.\n\nRun:\n\n```bash\nvagrant up\n```\n\nto bring up and provision the box (this includes building and installing nsbox inside). Once that is complete,\nyou can run:\n\n```bash\nvagrant ssh -c /vagrant/tests/main.exp\n```\n\nto run the unit tests.\n\nTODO: document test runner\n\n## Misc. notes\n\n### Updating the theme\n\n```bash\n$ git -C VUEPRESS/packages/@vuepress/theme-default diff --relative v.PREV ':(exclude)__tests__' |\\\n  git apply --reject --directory web/.vuepress/theme\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frefi64%2Fnsbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frefi64%2Fnsbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frefi64%2Fnsbox/lists"}