.. | ||
provision/etc/nginx/sites-available | ||
.gitignore | ||
bootstrap.sh | ||
README.md | ||
Vagrantfile |
This Vagrant setup is still a "Work in Progress", though it can be used as is.
Disroot Howto Development Environment using Vagrant
Requirements
- Vagrant 2.2.6
Commands for Vagrant installation
On Debian based operating systems
wget https://releases.hashicorp.com/vagrant/2.2.6/vagrant_2.2.6_x86_64.deb
sudo dpkg -i vagrant_2.2.6_x86_64.deb
sudo apt install -f
On Arch based operating systems
sudo pacman -S vagrant
- VirtuaBox
Commands for VirtuaBox installation
On Debian Jessie
sudo apt install virtualbox-6.0
On Debian Buster
sudo echo 'deb http://download.virtualbox.org/virtualbox/debian buster contrib' > /etc/apt/sources.list.d/virtualbox.list
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
sudo apt-get update ; sudo apt-get install virtualbox-6.0
On Arch based operating systems
sudo pacman -S virtualbox
- Vagrant plugins vagrant-vbguest
Commands for Vagrant plugins installation
vagrant plugin install vagrant-vbguest
- Git
Commands for git installation
On Debian based operating systems
sudo apt install git
On Arch based operating systems
sudo pacman -S git
Installing the Vagrant virtual machine
- Create the Disroot folder in which the repositories will be cloned, and enter it
mkdir ~/Disroot ; cd ~/Disroot
- Clone the Howto repository inside the Disroot folder
git clone https://git.disroot.org/Disroot/Howto.git
- Clone the grav-plugin-language-selector repository inside this same Disroot folder
git clone https://git.disroot.org/Disroot/grav-plugin-language-selector.git
- Add the local domain name for the hub to your host machine's
/etc/hosts
file.
echo "192.168.33.11 howto.disroot.lan" >> /etc/hosts
- Go to the Vagrant folder inside the cloned repository...
cd ~/Disroot/howto/vagrant
... and launch Vagrant to build the virtual machine (VM). This will take several minutes.
vagrant up howto_disroot_lan
Congratulations! You should now have a fully functioning Nginx + GRAV server running locally in a VirtualBox-hosted VM managed by Vagrant.
Next time you want to run Vagrant simply use the commands
cd ~/Disroot/howto/vagrant
vagrant up howto_disroot_lan
vagrant provision
Enable SSH access
To make your development workflow more efficient, you may wish to use an SSH connection to quickly synchronize the files you are developing in your local (host machine) development environment.
- On your host machine, copy your public key.
user@host:~$ cat ~/.ssh/id_rsa.public
ssh-rsa eLX1UQbJHUCHf2V3K7YlMP0YmIT+50rlEsWre1eobApKb0Ac/WbvssX/Gh/ user@host
- Use
vagrant ssh howto_disroot_lan
to log in to the virtual machine.
user@host:~$ cd ~/Disroot/howto/vagrant
user@host:hubzilla-vagrant$ vagrant ssh howto_disroot_lan
- Switch to root and add your host user public key.
vagrant@stretch:~$ sudo -i
root@jessie:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
b4:e3:00:40:4f:c5:af:27:05:09:d4:70:29:ac:f8:51 root@jessie
The key's randomart image is:
+---[RSA 2048]----+
| .oo=*oo |
| +E.* |
| . oo. o. |
|. o . .o. |
| . . .oS |
| . oo.. |
| o. |
| |
| |
+-----------------+
root@stretch:~# echo "ssh-rsa eLX1UQbJHUCHf2V3K7YlMP0YmIT+50rlEsWre1eobApKb0Ac/WbvssX/Gh/ user@host" >> ~/.ssh/authorized_keys
- From your host machine, you may now SSH into the virtual machine using
ssh root@howto.disroot.lan