Vagrant for Friendica Developers
Getting started
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.
It brings up an Debian Bullseye with PHP 8.0, Apache2 and MariaDB.
What you need to do
Prepare
- 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
Run Vagrant
- Run
vagrant up
from inside the friendica clone:$> vagrant up
. 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
- Open your test installation in a browser. Go to (up to Friendica 2022.10)
192.168.22.10
(after Friendica 2022.10)192.168.56.10
1) . The mysql database is calledfriendica
, the mysql user and password both arefriendica
Developing Friendica
- Work on Friendicas 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
Stopping Vagrant
- If you want to stop vagrant after finishing your work, run the following command
$> vagrant halt
in the development directory. This will not delete the virtual machine. - To ultimately delete the virtual machine run
$> vagrant destroy
and$> rm /vagrant/config/local.config.php
to make sure that you can start from scratch with another “vagrant up”.
Accounts and Passwords
The vagrant Friendica instance contains a test database. You will then have the following accounts to login:
- user:
admin
, password:admin
- user:
friendica
, passwordfriendica
For further documentation of vagrant, please see the vagrant*docs*.
1)
Virtualbox has made some changes regarding the IP address a guest system can use. If you get an error about the network address, you might need to change the IP address in the Vagrantfile, the Vagrant config file and the provision script (see this change set (at github)