Vagrant for Friendica Developers
Vagrant is a virtualization solution for developers.
No need to setup up a webserver, database etc. before actually starting.
Vagrant creates a virtual machine for you that you can just run inside VirtualBox and start to work directly on Friendica.
You can choose between two different Ubuntu Linux versions:
- Ubuntu Trusty (14.04) with PHP 5.5.9 and MySQL 5.5.53
- Ubuntu Xenial (16.04) with PHP 7.0 and MySQL 5.7.16
What you need to do:
- Install VirtualBox and vagrant.
Please use an up-to-date vagrant version from https://www.vagrantup.com/downloads.html.
- Git clone your Friendica repository.
Inside, you'll find a "Vagrantfile" and some scripts in the utils folder.
- Choose the Ubuntu version you'll need und run "vagrant up " from inside the friendica clone:
$> vagrant up trusty
$> vagrant up xenial
Be patient: When it runs for the first time, it downloads an Ubuntu Server image.
- Run "vagrant ssh " to log into the virtual machine to log in to the VM:
$> vagrant ssh trusty
$> vagrant ssh xenial
- Open you test installation in a browser.
If you selected an Ubuntu Trusty go to 192.168.22.10.
If you started a Xenial machine go to 192.168.22.11.
The mysql database is called "friendica", the mysql user and password both are "root".
- Work on Friendica's code in your git clone on your machine (not in the VM).
Your local working directory is set up as a shared directory with the VM (/vagrant).
- Check the changes in your browser in the VM.
Debug via the "vagrant ssh " login.
Find the Friendica log file /vagrant/logfile.out.
- Commit and push your changes directly back to Github.
If you want to stop vagrant after finishing your work, run the following command
$> vagrant halt <ubuntu-version>
in the development directory.
The vagrant Friendica instance contains a test database.
You will then have the following accounts to login:
- admin, password admin
- friendica1, password friendica1
- friendica2, password friendica2 and so on until friendica5
- friendica1 is connected to all others. friendica1 has two groups: group1 with friendica2 and friendica4, group2 with friendica3 and friendica5.
- friendica2 and friendica3 are conntected. friendica4 and friendica5 are connected.
For further documentation of vagrant, please see the vagrantdocs.