{"id":20156192,"url":"https://github.com/openfun/fun-boxes","last_synced_at":"2025-08-29T16:35:57.316Z","repository":{"id":28451071,"uuid":"31966595","full_name":"openfun/fun-boxes","owner":"openfun","description":"DEPRECATED Virtual images for OpenFUN installs","archived":false,"fork":false,"pushed_at":"2017-08-11T10:09:24.000Z","size":62,"stargazers_count":2,"open_issues_count":1,"forks_count":3,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-04-09T22:38:00.125Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/openfun.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-10T15:56:02.000Z","updated_at":"2019-10-09T10:39:16.000Z","dependencies_parsed_at":"2022-08-03T03:31:01.207Z","dependency_job_id":null,"html_url":"https://github.com/openfun/fun-boxes","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/openfun/fun-boxes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Ffun-boxes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Ffun-boxes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Ffun-boxes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Ffun-boxes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openfun","download_url":"https://codeload.github.com/openfun/fun-boxes/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Ffun-boxes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272721635,"owners_count":24982076,"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","status":"online","status_checked_at":"2025-08-29T02:00:10.610Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-11-13T23:37:56.789Z","updated_at":"2025-08-29T16:35:57.294Z","avatar_url":"https://github.com/openfun.png","language":"Ruby","readme":"=========\nfun-boxes\n=========\n\nThis repository contains scripts to help you launch your own OpenFUN instance.\nInstances are packaged in Virtuabox images managed by Vagrant and configured\nwith Ansible scripts.\n\n\nRequirements\n============\n\nA couple basic development packages are required::\n\n    sudo apt-get install g++ make\n\nYou are going to need vagrant(\u003e= 1.5.3), ansible, and virtualbox to install and\nrun the OpenFUN virtual image::\n\n    sudo apt-get install vagrant ansible virtualbox\n\nNote that recent versions of Vagrant can be downloaded from\nhttp://www.vagrantup.com/downloads.\n\nIf Virtualbox is not available in your package repositories, it may be\ndownloaded directly from https://www.virtualbox.org/wiki/Linux_Downloads.\n\nInstall vagrant-vbguest plugin::\n\n    vagrant plugin install vagrant-vbguest\n\nInstall\n=======\n\nRunning an existing release\n---------------------------\n\nOpenFUN provides ready-made VirtualBox images::\n\n    cd releases/\n    vagrant up\n\n\nThis will instanciate the latest FUN release: 4.0.2 running edX dogwood, but you may choose the release if the related git tag exists on this repository (ex: 3.18 running Cypress)::\n\nDownloading the 4.3+Gb Virtualbox image via HTTP may be time consuming.\nInstead, we suggest to download the image by bittorrent from\nhttp://files.alt.openfun.fr/vagrant-images/fun/ and then run the Vagrantfile::\n\n    FUN_RELEASE=2.9 VAGRANT_BOXES=/home/mytorrents/ vagrant up\n\nProvisioning a VM from scratch\n------------------------------\n\nThis is a risky and lengthy process that will require running the OpenEdx provisioning playbook::\n\n    cd devstack\n    vagrant up --provision # grab a coffee\n\nFor development\n---------------\n\nIf you wish to contribute to OpenFUN you might want to checkout the OpenFUN and\nOpenEdx repositories outside of the VM, in your host machine. The local\nrepositories will then be mounted in the VM::\n\n    export VAGRANT_MOUNT_BASE=\"/path/to/my/repos\"\n\n    # Checkout master branch from fun-apps\n    git clone https://github.com/openfun/fun-apps $VAGRANT_MOUNT_BASE/fun-apps/\n\n    # Checkout latest tag from edx-platform\n    git clone https://github.com/openfun/edx-platform $VAGRANT_MOUNT_BASE/edx-platform/\n    cd $VAGRANT_MOUNT_BASE/edx-platform/\n    git checkout -b latest latest\n\nYou may then start your VM as usual::\n\n    cd releases/\n    vagrant up --no-provision\n\nThe directories containing your repositories will be mounted in your VM so that\nyou can use your favorite IDE in your host environment and see the result in\nthe MV.\n\nUpgrading an existing VM\n------------------------\n\nPackaged VMs should not include mounted folders. So before you package a VM,\nmake sure to unset the VAGRANT_MOUNT_BASE environment variable::\n\n    unset VAGRANT_MOUNT_BASE\n\nStarting from an existing VM, e.g: release 2.9, you may wish to upgrade it to\n2.10, say for packaging. The following will run the `upgrade.yml` playbook::\n\n    cd releases/\n    FUN_RELEASE=2.10 vagrant up --provision\n\nYou may then package the upgraded VM::\n\n    vagrant package --output openfun-2.10.box\n\nAnd even create a torrent file to distribute it::\n\n    ./create_torrent.py openfun-2.10.box\n\nCommands\n========\n\nYou now have a virtual machine containing a working instance of FUN. You can\nlog into the VM::\n\n    vagrant ssh\n\nMost commands should be run as user `edxapp`::\n\n    sudo su edxapp # note that exapp is not sudo user\n\nStart an LMS webserver::\n\n    fun lms.dev run # open http://localhost:8000 in your browser\n\nStart a Studio instance::\n\n    fun cms.dev run # open http://localhost:8001 in your browser\n\nRun OpenFUN unit tests::\n\n    fun lms.test test ../fun-apps\n\nOptional variables\n==================\n\nThe following environment variables can be used to customize your guest environment.\n\n- VAGRANT_NETWORK_DHCP: define this variable to use DHCP instead of a fixed IP.\n- VAGRANT_NETWORK_IP: define this variable to customise the fixed IP of the\n  guest machine. Otherwise it will be 10.1.100.101.\n- VAGRANT_USE_VBOXF: set this variable to \"true\" to use vboxfs instead of nfs.\n- VAGRANT_MOUNT_BASE: set this variable to an existing path that contains the\n  fun-apps and edx-platform repositories (e.g: /home/user/fun/repos/) to mount\n  them to /edx/app/edxapp/\u003creponame\u003e.\n- VAGRANT_NO_PORT_FORWARDING: disable port forwarding.\n- VM_CPU_COUNT: the number of allocated CPUs. Defaults to 2.\n- VM_MEMORY: the amount in Mb of allocated memory, in Mb. Defaults to 2048.\n- FUN_RELEASE, OPENEDX_FUN_RELEASE: the git version of FUN repositories and\n  FUN's edx-platform to checkout. May be a git sha1, tag or remote branch name.\n  Defaults to the latest versions, e.g: 2.11.\n\n\nTroubleshooting\n===============\n\nCannot connect to guest host via ssh\n------------------------------------\n\nThe first step to diagnose this problem is to check the SSH configuration of\nVagrant for this particular VM::\n\n    vagrant ssh-config\n\nYou can then try to login in verbose mode to the virtual machine by specifying\nexplicitely the user, host, port and private key::\n\n    ssh -i /path/to/identity/file -P port -vvv user@host\n\nSome kind of distribute/setuptools python issue\n-----------------------------------------------\n\nThis is a frequent issue with OpenFUN. Some dependencies of FUN require a\nrecent version of setuptools, while Open edX requires an older version of\ndistribute. See [this pull\nrequest](https://github.com/edx/edx-platform/pull/7465/) for reference. In\npractice, this means you might have to manually install the 'right' (i.e: old)\nversion of distribute and setuptools manually in your guest environment::\n\n    pip install setuptools==0.6c11\n    pip install distribute==0.6.49\n\n\"It appears your machine doesn't support NFS\"\n---------------------------------------------\n\nMake sure nfs is supported by your kernel::\n\n    sudo apt-get install nfs-kernel-server\n\napt-get upgrade takes too long\n------------------------------\n\nIt's quite possible that the package upgrade step stalls on a package install\nthat requires user input. If the upgrade step takes too long, you may want to\nto manually log in to the virtual machine and upgrade packages::\n\n    vagrant ssh\n    sudo apt-get update \u0026\u0026 sudo apt-get upgrade\n\nCloning FUN repositories takes forever\n--------------------------------------\n\nIf your repositories use the ssh git remotes, then git might get stuck on\nverifying the fingerprint of the repository. You can solve this issue by\nmanually adding your private key to /edx/app/edxapp/.ssh/.\n\nDHCP error\n----------\n\nOn versions of Vagrant older than 1.7.3 you might encounter the following error:\n\n    A host only network interface you're attempting to configure via DHCP\n    already has a conflicting host only adapter with DHCP enabled. The\n    DHCP on this adapter is incompatible with the DHCP settings. Two\n    host only network interfaces are not allowed to overlap, and each\n    host only network interface can have only one DHCP server. Please\n    reconfigure your host only network or remove the virtual machine\n    using the other host only network.\n\nThe nitty-gritty details are described here: https://github.com/mitchellh/vagrant/issues/3083\n\nThis issue can be solved by running::\n\n    VBoxManage dhcpserver remove --netname HostInterfaceNetworking-vboxnet0\n\nMySQL job \"failed to start\"\n---------------------------\n\nWhen downgrading from mysql-5.6, mysql-server may fail to start after install:\n\n    ...\n    Setting up mysql-server-5.5 (5.5.41-0ubuntu0.12.04.1) ...\n    start: Job failed to start\n    invoke-rc.d: initscript mysql, action \"start\" failed.\n\nYou may diagnose this problem more precisely by starting the mysql daemon manually::\n\n    $ vagrant ssh\n    $ sudo mysqld\n    150415  7:34:08 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.\n    150415  7:34:08 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.\n    150415  7:34:08 [Note] Plugin 'FEDERATED' is disabled.\n    150415  7:34:08 InnoDB: The InnoDB memory heap is disabled\n    150415  7:34:08 InnoDB: Mutexes and rw_locks use GCC atomic builtins\n    150415  7:34:08 InnoDB: Compressed tables use zlib 1.2.3.4\n    150415  7:34:08 InnoDB: Initializing buffer pool, size = 128.0M\n    150415  7:34:08 InnoDB: Completed initialization of buffer pool\n    InnoDB: Error: log file ./ib_logfile0 is of different size 0 50331648 bytes\n    InnoDB: than specified in the .cnf file 0 5242880 bytes!\n    150415  7:34:08 [ERROR] Plugin 'InnoDB' init function returned error.\n    150415  7:34:08 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.\n    150415  7:34:08 [ERROR] Unknown/unsupported storage engine: InnoDB\n    150415  7:34:08 [ERROR] Aborting\n\nThis problem is caused by the InnoDb log file which was not updated prior to\nupgrade. You may simply uninstall all mysql packages, remove the log files and\nrestart install::\n\n    $ sudo apt-get remove --purge mysql-*\n    $ sudo rm -rf /var/lib/mysql/\n    $ sudo apt-get install mysql-server-5.5\n\n\nDjango is very slow\n-------------------\n\nIf you find that your development server is very slow, it might be because of\nDNS resolution. Try to alter the `/etc/hosts` file from the guest machine by\nfollowing the instructions from\nhttp://stackoverflow.com/questions/28562968/django-1-4-18-dev-server-slow-to-respond-under-virtualbox/30356662#30356662\n\nVagrant up asks for root password when using NFS\n------------------------------------------------\n\nVagrant needs to access to `/etc/exports` in order to configure NFS sharing each time the VM boot. Thus it needs to be root...\nMore infos: https://www.vagrantup.com/docs/synced-folders/nfs.html\nCHanging your sudoers file you can say that this privilege escalation (for this /etc/exports file vagrant user) is passwordless.\n\nYou can a add this at the end of your sudoers file (Ubuntu host, check your host type in the doc before) :\n\n.. code-block:: bash\n\n    \u003e sudo visudo\n    Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports\n    Cmnd_Alias VAGRANT_EXPORTS_COPY = /bin/cp /tmp/exports /etc/exports\n    Cmnd_Alias VAGRANT_NFSD_CHECK = /etc/init.d/nfs-kernel-server status\n    Cmnd_Alias VAGRANT_NFSD_START = /etc/init.d/nfs-kernel-server start\n    Cmnd_Alias VAGRANT_NFSD_APPLY = /usr/sbin/exportfs -ar\n    Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /bin/sed -r -e * d -ibak /tmp/exports\n    %sudo ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START, VAGRANT_NFSD_APPLY, VAGRANT_EXPORTS_REMOVE, VAGRANT_EXPORTS_COPY\n\n\n\n\nOther issues\n------------\n\nIf other issues arise, feel free to open a ticket on this Github project.\n\nLicense\n=======\n\nThis project is licensed under the AGPL v3.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfun%2Ffun-boxes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenfun%2Ffun-boxes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfun%2Ffun-boxes/lists"}