{"id":13586598,"url":"https://github.com/iocage/iocage","last_synced_at":"2025-04-07T18:34:13.953Z","repository":{"id":45446891,"uuid":"78889373","full_name":"iocage/iocage","owner":"iocage","description":"A FreeBSD jail manager written in Python 3","archived":true,"fork":false,"pushed_at":"2024-02-27T17:33:28.000Z","size":6833,"stargazers_count":575,"open_issues_count":0,"forks_count":131,"subscribers_count":42,"default_branch":"master","last_synced_at":"2024-11-06T05:37:42.006Z","etag":null,"topics":["freebsd","freebsd-jail-manager","iocage","jail","jails","python","python36","vnet","zfs"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iocage.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2017-01-13T21:47:59.000Z","updated_at":"2024-11-05T00:24:25.000Z","dependencies_parsed_at":"2024-11-06T05:32:02.931Z","dependency_job_id":"130830c3-55da-4432-8f3d-39fc7e1b7c11","html_url":"https://github.com/iocage/iocage","commit_stats":null,"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iocage%2Fiocage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iocage%2Fiocage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iocage%2Fiocage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iocage%2Fiocage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iocage","download_url":"https://codeload.github.com/iocage/iocage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247707722,"owners_count":20982833,"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":["freebsd","freebsd-jail-manager","iocage","jail","jails","python","python36","vnet","zfs"],"created_at":"2024-08-01T15:05:40.382Z","updated_at":"2025-04-07T18:34:13.343Z","avatar_url":"https://github.com/iocage.png","language":"Python","readme":"# iocage\n\n[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/iocage/iocage.svg)](http://isitmaintained.com/project/iocage/iocage \"Average time to resolve an issue\")\n[![Percentage of issues still open](http://isitmaintained.com/badge/open/iocage/iocage.svg)](http://isitmaintained.com/project/iocage/iocage \"Percentage of issues still open\")\n![Python Version](https://img.shields.io/badge/Python-3.8-blue.svg)\n[![GitHub issues](https://img.shields.io/github/issues/iocage/iocage.svg)](https://github.com/iocage/iocage/issues)\n[![GitHub forks](https://img.shields.io/github/forks/iocage/iocage.svg)](https://github.com/iocage/iocage/network)\n[![GitHub stars](https://img.shields.io/github/stars/iocage/iocage.svg)](https://github.com/iocage/iocage/stargazers)\n[![Twitter](https://img.shields.io/twitter/url/https/github.com/iocage/iocage.svg?style=social)](https://twitter.com/intent/tweet?text=@iocage)\n\n## A FreeBSD jail manager\n\niocage is a jail/container manager amalgamating some of the best features and\ntechnologies the FreeBSD operating system has to offer. It is geared for ease\n of use with a simple and easy to understand command syntax.\n\niocage is in the FreeBSD ports tree as sysutils/py-iocage.\nTo install using binary packages, simply run: `pkg install py38-iocage`\n\n## Installation\n\n### GitHub:\n\nThe FreeBSD source tree ***must*** be located at `$SRC_BASE` (`/usr/src` by default) to build from git.\n\n- `pkg install python38 git-lite py38-cython py38-libzfs py38-pip`\n- `git clone https://github.com/iocage/iocage`\n- `make install` as root\n\nTo install subsequent updates: run `make install` as root.\n\n### Ports:\n\n- Build the port as follows: `cd /usr/ports/sysutils/iocage/ ; make install clean`\n\n### Pkg:\n\n- It is possible to install pre-built packages using pkg(8) if you are using FreeBSD 10 or above: `pkg install py38-iocage`\n\n#### Upgrading from `iocage_legacy`:\n\nThis repository replaces `iocage_legacy`. To upgrade to the current version:\n\n1. Stop the jails (`service iocage stop; iocage stop ALL`)\n1. Back up your data\n1. Remove the old `iocage` package if it is installed (`pkg delete iocage`)\n1. Install `iocage` using one of the methods above\n1. Migrate the jails. This can be done by running `iocage list` as root\n1. Start the jails (`service iocage onestart`)\n\n## Links\n\n- **[iocage Project Website](https://iocage.github.io/)**\n- **[Documentation](http://iocage.readthedocs.org/en/latest/index.html)**\n- **[Mailing list](https://groups.google.com/forum/#!forum/iocage)**\n\n## WARNING:\n- Some features of the previous iocage_legacy are either being dropped or simply not ported yet, feel free to open an issue asking about your favorite feature. But please search before opening a new one. PR's welcome for any feature you want!\n\n## Raising an issue:\n\nWe _like_ issues! If you are having trouble with `iocage` please open a GitHub [issue](https://github.com/iocage/iocage/issues) and we will ~~run around with our hair on fire~~ look into it. Before doing so, please give us some information about the situation:\n\n- Tell us what version of FreeBSD you are using with something like `uname -ro`\n- It would also be helpful if you gave us the output of `iocage --version`\n- Most importantly, try to be detailed. Simply stating \"I tried consoling into a jail and it broke\" will not help us very much.\n- Use the [Markdown Basics](https://help.github.com/articles/markdown-basics/#code-formatting) GitHub page for more information on how to paste lines of code and terminal output.\n\n## Submitting a pull request:\n\nPlease be detailed on the exact use case of your change and a short demo of\nit. Make sure it conforms with PEP-8 and that you supply a test with it if\nrelevant. Lines may not be longer then 80 characters.\n\n## FEATURES\n\n- Ease of use\n- Rapid jail creation within seconds\n- Automatic package installation\n- Virtual networking stacks (vnet)\n- Shared IP based jails (non vnet)\n- Transparent ZFS snapshot management\n- Export and import\n- And many more!\n\n----\n\n## QUICK HOWTO\n\nActivate a zpool:\n\n`iocage activate ZPOOL`\n\n*NOTE: ZPOOL is a placeholder. Use `zpool list` and substitute it for the\nzpool you wish to use.*\n\nFetch a release:\n\n`iocage fetch`\n\nCreate a jail:\n\n`iocage create -n myjail ip4_addr=\"em0|192.168.1.10/24\" -r 11.0-RELEASE`\n\n*NOTE: em0 and 11.0-RELEASE are placeholders. Please replace them with your\nreal interface (`ifconfig`) and RELEASE chosen during `iocage fetch`.*\n\nStart the jail:\n\n`iocage start myjail`\n\nCongratulations, you have created your first jail with iocage!\nYou can now use it like you would a real system.\nSince SSH won't be available by default, `iocage console myjail` is a useful\nspot to begin configuration of your jail.\n\nTo see a list of commands available to you now, type `iocage` outside the jail.\n\n----\n\n### REQUIREMENTS\n\n- FreeBSD 11.4-RELEASE amd64 and higher or HardenedBSD/TrueOS\n- ZFS file system\n- Python 3.8+\n- UTF-8 locale (place into your ~/.login_conf):\n\n```plain\nme:\\\n        :charset=UTF-8:\\\n        :lang=en_US.UTF-8:\\\n        :setenv=LC_COLLATE=C:\n```\n\n### Optional\n\n- Kernel compiled with:\n\n        # This is optional and only needed if you need VNET\n\n        options         VIMAGE # VNET/Vimage support\n\n### Helpful Considerations\n\n- For the explanations on jail properties read jail(8)\n- Create bridge0 and bridge1 interfaces for VNET jails to attach to.\n- Use `iocage set` to modify properties and `iocage get` to retrieve property\n values\n- Type `iocage COMMAND --help` to see any flags the command supports and their help, for example:\n\n        iocage create --help\n        iocage fetch --help\n        iocage list --help\n- If using VNET consider adding the following to `/etc/sysctl.conf` on the host:\n\n        net.inet.ip.forwarding=1       # Enable IP forwarding between interfaces\n        net.link.bridge.pfil_onlyip=0  # Only pass IP packets when pfil is enabled\n        net.link.bridge.pfil_bridge=0  # Packet filter on the bridge interface\n        net.link.bridge.pfil_member=0  # Packet filter on the member interface\n- Lots of jails or a big server? Mount `fdescfs`:\n\n        mount -t fdescfs null /dev/fd\n","funding_links":[],"categories":["Python","Jails (configuration and deployment)"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiocage%2Fiocage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiocage%2Fiocage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiocage%2Fiocage/lists"}