mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-21 07:55:00 +00:00
- This means that systemd sandbox will be in effect even during development. We won't miss out on bugs in sandbox configuration. - We won't have disable systemd sandbox features just because we can test properly on development setup. Such as JoinsNamespaceOf=. - This also leads to significant reduction in hacky code for setting up for development and functional tests. - One disadvantage is that first setup is run before user gets a chance to interact with the started container/VM. However, this is okay since first setup can be re-run easily by removing the /var/lib/plinth/plinth.sqlite3 file and also the need for doing this is rare. Tests: - Start a fresh container and run functional tests with './container run-tests' on it. The tests run as expected (succeed or fail). - While first setup is in progress, running the command 'make wait-while-first-setup' waits while printing dots. After the first setup is done, it exists. - Running the command freedombox-logs shows FreedomBox logs for both the web and privileged services. - Changing a source code file in the /freedombox directory (or on the host) leads to a restart of the Plinth web service. Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: Veiko Aasa <veiko17@disroot.org>
44 lines
1.5 KiB
Ruby
44 lines
1.5 KiB
Ruby
# -*- mode: ruby -*-
|
|
# vi: set ft=ruby :
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
require 'etc'
|
|
|
|
Vagrant.configure(2) do |config|
|
|
config.vm.box = "freedombox/freedombox-testing-dev"
|
|
config.vm.network "forwarded_port", guest: 443, host: 4430
|
|
config.vm.network "forwarded_port", guest: 445, host: 4450
|
|
config.vm.synced_folder ".", "/freedombox", owner: "plinth", group: "plinth"
|
|
config.vm.provider "virtualbox" do |vb|
|
|
vb.cpus = Etc.nprocessors
|
|
vb.memory = 2048
|
|
vb.linked_clone = true
|
|
end
|
|
config.vm.provision "shell", run: 'always', inline: <<-SHELL
|
|
# Disable automatic upgrades
|
|
echo -e 'APT::Periodic::Update-Package-Lists "0";\nAPT::Periodic::Unattended-Upgrade "0";' > //etc/apt/apt.conf.d/20auto-upgrades
|
|
# Do not run system plinth
|
|
systemctl stop plinth
|
|
systemctl disable plinth
|
|
SHELL
|
|
config.vm.provision "shell", inline: <<-SHELL
|
|
cd /freedombox/
|
|
make provision-dev
|
|
SHELL
|
|
config.vm.provision "tests", run: "never", type: "shell", path: "plinth/tests/functional/install.sh"
|
|
config.vm.post_up_message = "FreedomBox virtual machine is ready
|
|
for development. Plinth will be available at https://localhost:4430/plinth
|
|
(with an invalid SSL certificate). To watch logs:
|
|
$ vagrant ssh
|
|
$ sudo freedombox-logs
|
|
"
|
|
|
|
config.trigger.after [:up, :resume, :reload] do |trigger|
|
|
trigger.info = "Set plinth user permissions for development environment"
|
|
trigger.run_remote = {
|
|
path: ".vagrant-scripts/plinth-user-permissions.py"
|
|
}
|
|
end
|
|
config.vm.boot_timeout=1200
|
|
end
|