This commit is contained in:
kennethstailey 2024-05-17 18:14:38 -04:00 committed by GitHub
commit 9cc72a2e15
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 146 additions and 0 deletions

View file

@ -0,0 +1,33 @@
You will need a public IP address with a DNS name.
Be sure and set the user name and password in the Vagrentfile.
Make sure that there is no other VM named "arch" or edit the
Vagrantfile to include setting the hostname.
The helper scripts:
setup-arch-linux-libvirt
setup-arch-linux-virtualbox
are there to help you install either KVM/QEMU/libvirt or VirtualBox.
Read those scripts and apply any missing configuration to you Computer.
To get the VM to launch, just run:
vagrant up
Once the VM is running, login to it using the user name and password
from the Vagrantfile which you should have modified like in the
first instruction.
Once more than 25 minutes have passed, you can ssh into your VM:
ssh vagrant@arch
Edit /etc/conduwuit.toml changing server_name to be
your public DNS name.
Then just run:
sudo conduwuit -c /etc/conduwuit.toml
That's it, you will have a working conduit or raise an issue to:
kstailey@proton.me
Please study how to write a decent bug report:
http://www.catb.org/~esr/faqs/smart-questions.html

104
instant-conduwuit/Vagrantfile vendored Normal file
View file

@ -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

View file

@ -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.

View file

@ -0,0 +1 @@
yay -S virtualbox vagrant