From f47d7664ed2146f29f6fe7672845b4c5bed4bd50 Mon Sep 17 00:00:00 2001 From: Kenneth Stailey Date: Fri, 17 May 2024 14:20:12 -0400 Subject: [PATCH] Start of instant-conduwuit I will probably add a config toml file. --- instant-conduwuit/Vagrantfile | 104 ++++++++++++++++++ instant-conduwuit/setup-arch-linux-libvirt | 8 ++ instant-conduwuit/setup-arch-linux-virtualbox | 1 + 3 files changed, 113 insertions(+) create mode 100644 instant-conduwuit/Vagrantfile create mode 100644 instant-conduwuit/setup-arch-linux-libvirt create mode 100644 instant-conduwuit/setup-arch-linux-virtualbox diff --git a/instant-conduwuit/Vagrantfile b/instant-conduwuit/Vagrantfile new file mode 100644 index 00000000..209c067a --- /dev/null +++ b/instant-conduwuit/Vagrantfile @@ -0,0 +1,104 @@ +# -*- 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| + config.vm.provider :libvirt do |libvirt| + libvirt.cpus = 4 + libvirt.memory = 4096 + # libvirt.graphics_port = 5901 + # libvirt.graphics_ip = '0.0.0.0' + # libvirt.video_type = 'qxl' + end + + config.ssh.username = "vagrant" + config.ssh.password = "vagrant" + + # 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 = "generic/arch" + + # 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: 80, host: 8080 + + # 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", + :dev => "br0", + :mode => "bridge", + :type => "bridge" + + # 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" + + # Disable the default share of the current code directory. Doing this + # provides improved isolation between the vagrant box and your host + # by making sure your Vagrantfile isn't accessible to the vagrant box. + # If you use this you may want to enable additional shared subfolders as + # shown above. + # config.vm.synced_folder ".", "/vagrant", disabled: true + + # 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 = true + # + # # Customize the amount of memory on the VM: + # vb.memory = "1024" + # 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 + echo "nameserver 1.1.1.2" > /etc/resolv.conf + sync + sleep 2 + pacman-key --init + echo 'Server = http://arch.mirror.constant.com/$repo/os/$arch' > /etc/pacman.d/mirrorlist + pacman -Suy --noconfirm + pacman -S --noconfirm --needed git base-devel + git clone https://aur.archlinux.org/yay-bin.git + cd yay-bin + chown vagrant . + su vagrant -c 'makepkg -si' + cp pkg/yay-bin/usr/bin/yay /usr/bin/yay + su vagrant -c 'yay -S --noconfirm conduwuit' + reboot +SHELL +end diff --git a/instant-conduwuit/setup-arch-linux-libvirt b/instant-conduwuit/setup-arch-linux-libvirt new file mode 100644 index 00000000..55526cf9 --- /dev/null +++ b/instant-conduwuit/setup-arch-linux-libvirt @@ -0,0 +1,8 @@ +#! /bin/bash + +yay -S vagrant libvirt virt-manager qemu-system-x86 qemu-img qtile +sudo usermod -a -G libvirt $(whoami) +sudo systemctl enable --now libvirtd +export VAGRANT_DISABLE_STRICT_DEPENDENCY_ENFORCEMENT=1 +vagrant plugin install vagrant-libvirt +echo You must login again before starting vagrant. diff --git a/instant-conduwuit/setup-arch-linux-virtualbox b/instant-conduwuit/setup-arch-linux-virtualbox new file mode 100644 index 00000000..664b0f7e --- /dev/null +++ b/instant-conduwuit/setup-arch-linux-virtualbox @@ -0,0 +1 @@ +yay -S virtualbox vagrant