{"id":16950127,"url":"https://github.com/tailhook/vagga-box","last_synced_at":"2025-04-11T20:40:42.318Z","repository":{"id":66116453,"uuid":"66114657","full_name":"tailhook/vagga-box","owner":"tailhook","description":"A virtualbox wrapper around vagga","archived":false,"fork":false,"pushed_at":"2018-08-27T10:46:17.000Z","size":67,"stargazers_count":9,"open_issues_count":5,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T16:45:31.928Z","etag":null,"topics":["containers","macos","osx","vagga","virtualbox"],"latest_commit_sha":null,"homepage":null,"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/tailhook.png","metadata":{"files":{"readme":"README.rst","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-19T21:52:46.000Z","updated_at":"2020-03-20T07:59:18.000Z","dependencies_parsed_at":"2023-02-20T18:00:55.654Z","dependency_job_id":null,"html_url":"https://github.com/tailhook/vagga-box","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/tailhook%2Fvagga-box","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Fvagga-box/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Fvagga-box/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Fvagga-box/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tailhook","download_url":"https://codeload.github.com/tailhook/vagga-box/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248478678,"owners_count":21110747,"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":["containers","macos","osx","vagga","virtualbox"],"created_at":"2024-10-13T21:56:55.028Z","updated_at":"2025-04-11T20:40:42.309Z","avatar_url":"https://github.com/tailhook.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"===================\nVagga in VirtualBox\n===================\n\n:Status: PoC\n\nThis is a prototype which brings vagga as the first-class tool to OS X and\n(possibly) windows using virtualbox\n\n\nInstallation\n============\n\nFirst `download and install virtualbox`__. The project is tested on\nVirtualBox 5.1 but may work on earlier versions too.\n\nThen run the following commands (assuming you have brew_ installed)::\n\n    $ brew install python3 unison wget\n    $ pip3 install git+http://github.com/tailhook/vagga-box\n    [ .. snip .. ]\n    $ vagga\n    Available commands:\n        run\n\nEffectively it requires python \u003e= 3.5 and unison 2.48.4 (unison is very picky\non version numbers)\n\n__ https://www.virtualbox.org/wiki/Downloads\n.. _brew: http://brew.sh\n\nIDE support is enabled by the following command (and requires sudo access)::\n\n    $ vagga _box mount\n    Running sudo mount -t nfs -o vers=4,resvport,port=7049 127.0.0.1:/vagga /Users/myuser/.vagga/remote\n    Password:\n    Now you can add ~/.vagga/remote/\u003cproject-name\u003e/.vagga/\u003ccontainer-name\u003e/dir\n    to the search paths of your IDE\n\nYou need to run it each time your machine is rebooted, or if you restarted your\nvirtualbox manually.\n\n\nUpgrading\n=========\n\nOnce you have installed vagga-box you can upgrade vagga inside the container\nusing the following command-line::\n\n    vagga _box upgrade_vagga\n\nChanging the disk size\n======================\n\nBy default, the disk size in Virtualbox is set to 20 GB. If necessary, it can be increased by the following steps:\n\n1. Change VM's image size::\n\n        $ vagga _box down\n        $ VBoxManage modifyhd ~/.vagga/vm/storage.vdi --resize 40860\n        $ vagga _box up\n\n2. Change partition size inside VM::\n\n        $ vagga _box ssh\n        $ sudo apk add cfdisk e2fsprogs-extra\n        $ sudo cfdisk /dev/sdb\n            [ .. Delete /dev/sdb1 ..]\n            [ .. New partition / default size / Primary .. ]\n            [ .. Write changes / Quit .. ]\n        $ sudo reboot\n\n3. Final steps::\n\n        $ vagga _box ssh\n        $ sudo resize2fs /dev/sdb1\n        $ sudo df -h  # Check size\n\nShort FAQ\n=========\n\n**Why is it in python?** For a quick prototype. It will be integrated into\nvagga as soon as is proven to be useful. Or may be we leave it in python if\nit would be easier to install.\n\n**So should I try this version or wait it integrated in vagga?** Definitely you\nshould try. The integrated version will work the same.\n\n**Is there any difference between this and vagga on linux?** There are two key\ndifferences:\n\n* you need to export ports that you want to be accessible from the\n  host system\n* we keep all the container files (and a copy of the project) in the virtualbox\n* to view it from the host system mount nfs volume (``vagga _box mount``)\n* to make filesync fast you can add some dirs to the ignore list\n  (``_ignore-dirs`` setting)\n\n.. code-block:: yaml\n\n    _ignore-dirs:\n    - .git\n    - tmp\n    - data\n\n    containers:\n      django:\n        setup:\n        - !Alpine v3.3\n        - !Py3Install ['Django \u003e=1.9,\u003c1.10']\n\n    commands:\n      run: !Command\n        description: Start the django development server\n        container: django\n        _expose-ports: [8080]\n        run: python3 manage.py runserver\n\n**Please report if you find any other differences using the tool**. Ah, but\nexact text of some error messages may differ, don't be too picky :)\n\n**Why `_expose-ports` are underscored?** This is a standard\nway to add extension metadata or user-defined things in vagga.yaml. We will\nremove the underscore as soon as integrate it into main code. Fixing\nunderscores isn't going to be a big deal.\n\n**Will linux users add `_expose-ports` for me?** Frankly,\ncurrently probably now. But it's small change that probably no one will need\nto delete. In the future we want to apply ``seccomp`` filters to allow to bind\nonly exposed ports on linux too.\n\n**What will be changed when we integrate this into vagga?** We will move more\noperations from virtualbox into host system. For example list of commands will\nbe executed by mac os. Also ``vagga _list``, some parts of ``vagga _clean`` and\nso on. But we will do our best to keep semantics exactly the same.\n\n\nLICENSE\n=======\n\nThis project has been placed into the public domain.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftailhook%2Fvagga-box","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftailhook%2Fvagga-box","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftailhook%2Fvagga-box/lists"}