-
-
Save dalf/60450e19b042bd39b9ce470c095d89b3 to your computer and use it in GitHub Desktop.
#!/bin/sh | |
cd searx | |
git diff > ../shared/searx.patch | |
cd .. | |
vagrant destroy | |
vagrant up | |
vagrant ssh |
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
# All Vagrant configuration is done below. The "2" in Vagrant.configure | |
# configures the configuration version (we support older styles for | |
# backwards compatibility). Please don't change it unless you know what | |
# you're doing. | |
Vagrant.configure("2") do |config| | |
# The most common configuration options are documented and commented below. | |
# For a complete reference, please see the online documentation at | |
# https://docs.vagrantup.com. | |
# Every Vagrant development environment requires a box. You can search for | |
# boxes at https://vagrantcloud.com/search. | |
config.vm.box = "hashicorp/bionic64" | |
config.vm.synced_folder "shared/", "/shared" | |
# Disable automatic box update checking. If you disable this, then | |
# boxes will only be checked for updates when the user runs | |
# `vagrant box outdated`. This is not recommended. | |
# config.vm.box_check_update = false | |
# Create a forwarded port mapping which allows access to a specific port | |
# within the machine from a port on the host machine. In the example below, | |
# accessing "localhost:8080" will access port 80 on the guest machine. | |
# NOTE: This will enable public access to the opened port | |
config.vm.network "forwarded_port", guest: 8888, host: 8888 | |
# Create a forwarded port mapping which allows access to a specific port | |
# within the machine from a port on the host machine and only allow access | |
# via 127.0.0.1 to disable public access | |
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" | |
# Create a private network, which allows host-only access to the machine | |
# using a specific IP. | |
# config.vm.network "private_network", ip: "192.168.33.10" | |
# Create a public network, which generally matched to bridged network. | |
# Bridged networks make the machine appear as another physical device on | |
# your network. | |
# config.vm.network "public_network" | |
# Share an additional folder to the guest VM. The first argument is | |
# the path on the host to the actual folder. The second argument is | |
# the path on the guest to mount the folder. And the optional third | |
# argument is a set of non-required options. | |
# config.vm.synced_folder "../data", "/vagrant_data" | |
# Provider-specific configuration so you can fine-tune various | |
# backing providers for Vagrant. These expose provider-specific options. | |
# Example for VirtualBox: | |
# | |
config.vm.provider "virtualbox" do |vb| | |
# Display the VirtualBox GUI when booting the machine | |
vb.gui = false | |
# Customize the amount of memory on the VM: | |
vb.memory = "4096" | |
end | |
# | |
# View the documentation for the provider you are using for more | |
# information on available options. | |
# Enable provisioning with a shell script. Additional provisioners such as | |
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the | |
# documentation for more information about their specific syntax and use. | |
config.vm.provision "shell", inline: <<-SHELL | |
git config --global user.email johndoe@nowhere.com | |
git config --global user.name johndoe | |
mkdir -p /srv/searx_install | |
cd /srv/searx_install | |
git clone https://github.com/return42/searx/ | |
cd searx | |
git checkout filtron | |
git apply /shared/searx.patch | |
sed -i 's/export GIT_BRANCH=master/export GIT_BRANCH=filtron/g' Makefile | |
make buildenv | |
cd utils | |
# FORCE_TIMEOUT=0 ./searx.sh install all | |
SHELL | |
end |
FYI: I now use synced folder simply by placing the vagrant file in my repository on the HOST system. In the GUEST the repository is now available at /vagrant .. this corresponds roughly to what I called "transparent" at the LXC discussion.
Forwarding one port:
config.vm.network "forwarded_port", guest: 8888, host: 8888
is not enough. For a real live scenario the GUEST IP must be available from the HOST system. I tried to use the DHCP [ref] from virtualbox (this is roughly I know from LXC):
Vagrant.configure("2") do |config|
config.vm.network "private_network", type: "dhcp"
end
but this ends up in issue hashicorp/vagrant#11403 .. I'm looking forward for another solution.
Haven't found a workaround for the vagrant issue. To go further I used a static IP:
config.vm.network "private_network", ip: "192.168.50.4"
Can't say if it works for others (I have a IPv4 class-B subnet).
Hi @dalf I just want to inform you: I asked at vagrant about a work-around for the dhcp issue and got feedback, to test this monky patch.
May be tomorrow I have time to test it . I'll be back ;)
Related: searx/searx#1803 / https://github.com/dalf/searx-install
👍
The scripts from searx/searx#1803 create a searx, a filtron and a morty user. These user do not have read access to /root and /root/searx folder .. this is not a usual use case, so recommend to clone into any other directory