M README.md => README.md +3 -0
@@ 25,6 25,8 @@ Currently contains the following VMs:
- **debian-rust-playground:** Debian Bullseye 64bit which updates itself and installs Rust via the [script](https://www.rust-lang.org/tools/install) recommended by Rust [official website](https://www.rust-lang.org). Installation is done unattended, with default values. Intended to be a lean but turnkey Rust development playground. This machine has 1024MB of RAM out of the box.
- **debian11-backintime-lab:** Debian Bullseye 64bit which updates itself and installs XFCE4 desktop with Back in Time from repositories. Designed to test the version bundled in the OS repositories. The machine has 4GB RAM and 128MB VRAM.
- **debian12-backintime-lab:** Debian Bookworm 64bit which updates itself and installs XFCE4 desktop with Back in Time from repositories. Designed to test the version bundled in the OS repositories. The machine has 4GB RAM and 128MB VRAM.
+- **debian11-sphinx-builder:** Debian Bullseye 64bit which updates itself and installs Sphinx, Read the Docs theme, Sphinx Toggle Button and an Apache server to build and test Sphinx documentation builds. The machine has 1GB RAM.
+ - **Note:** `requirements.txt` file under `files/` folder is unused (it appears verbatim inside `Vagrantfile`) during build, but it's kept for reference purposes, since the exact versions are necessary for correct builds.
## Private IP List
Following list contains the Private IP addresses of the host-only networking interfaces of the machines:
@@ 51,3 53,4 @@ Following list contains the Private IP addresses of the host-only networking int
- **debian-rust-playground:** `192.168.56.77`
- **debian11-backintime-lab:** `192.168.56.76`
- **debian12-backintime-lab:** `192.168.56.75`
+- **debian-sphinx-builder:** `192.168.56.74`
A debian-sphinx-builder/Vagrantfile => debian-sphinx-builder/Vagrantfile +100 -0
@@ 0,0 1,100 @@
+# -*- 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://atlas.hashicorp.com/search.
+ config.vm.box = "debian/bullseye64"
+
+ # Give a proper hostname to the box
+ config.vm.hostname = "debian-sphinx-builder"
+
+ # 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.
+ # config.vm.network "forwarded_port", guest: 80, host: 8080
+
+ # Create a private network, which allows host-only access to the machine
+ # using a specific IP.
+ config.vm.network "private_network", ip: "192.168.56.74"
+
+ # 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|
+ # Change the network cards to VirtIO for better performance:
+ # Two network cards since I also have a host-only network.
+ vb.customize ["modifyvm", :id, '--nictype1', 'virtio']
+ vb.customize ["modifyvm", :id, '--nictype2', 'virtio']
+
+ # 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.
+
+ # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
+ # such as FTP and Heroku are also available. See the documentation at
+ # https://docs.vagrantup.com/v2/push/atlas.html for more information.
+ # config.push.define "atlas" do |push|
+ # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
+ # end
+
+ # Enable provisioning with a shell script. Additional provisioners such as
+ # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
+ # documentation for more information about their specific syntax and use.
+ config.vm.provision "shell", inline: <<-SHELL
+ # Update repositiories before installing anything.
+ apt-get update
+
+ # Update system to latest packages.
+ DEBIAN_FRONTEND=noninteractive apt-get --yes dist-upgrade
+
+ # Then install convenience packages which makes our life easier.
+ DEBIAN_FRONTEND=noninteractive apt-get install --yes vim screen ncftp mc git build-essential linux-headers-amd64
+
+ # Install the packages we need to install to be able to build documentation.
+ DEBIAN_FRONTEND=noninteractive apt-get install --yes python3 python3-pip python3-wheel graphviz imagemagick apache2
+
+ # Create .local/bin folder, so .profile exports these paths on start.
+ sudo --non-interactive --set-home --login --user vagrant -- mkdir -p /home/vagrant/.local/bin
+
+ # Now install the things we need via pip3.
+ sudo --non-interactive --set-home --login --user vagrant -- pip3 install --no-cache-dir --user alabaster==0.7.12 Babel==2.9.0 certifi==2020.12.5 chardet==4.0.0 docutils==0.16 idna==2.10 imagesize==1.2.0 Jinja2==2.11.3 MarkupSafe==1.1.1 packaging==20.9 Pillow==8.1.2 Pygments==2.8.0 pyparsing==2.4.7 pytz==2021.1 requests==2.25.1 snowballstemmer==2.1.0 Sphinx==3.5.2 sphinx-rtd-theme==0.5.1 sphinx-togglebutton==0.2.3 sphinxcontrib-applehelp==1.0.2 sphinxcontrib-devhelp==1.0.2 sphinxcontrib-htmlhelp==1.0.3 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.4 urllib3==1.26.3
+
+ # Downloading and installing things have ended, clean the downloaded packages.
+ apt-get clean
+
+ # Enable Apache server, becasue we gonna need it.
+ systemctl enable apache2 --now
+
+ SHELL
+
+ config.vm.post_up_message = "Your Debian 11 (Bullseye) Sphinx builder is ready. You can vagrant ssh into it."
+end
A debian-sphinx-builder/files/requirements.txt => debian-sphinx-builder/files/requirements.txt +26 -0
@@ 0,0 1,26 @@
+alabaster==0.7.12
+Babel==2.9.0
+certifi==2020.12.5
+chardet==4.0.0
+docutils==0.16
+idna==2.10
+imagesize==1.2.0
+Jinja2==2.11.3
+MarkupSafe==1.1.1
+packaging==20.9
+Pillow==8.1.2
+Pygments==2.8.0
+pyparsing==2.4.7
+pytz==2021.1
+requests==2.25.1
+snowballstemmer==2.1.0
+Sphinx==3.5.2
+sphinx-rtd-theme==0.5.1
+sphinx-togglebutton==0.2.3
+sphinxcontrib-applehelp==1.0.2
+sphinxcontrib-devhelp==1.0.2
+sphinxcontrib-htmlhelp==1.0.3
+sphinxcontrib-jsmath==1.0.1
+sphinxcontrib-qthelp==1.0.3
+sphinxcontrib-serializinghtml==1.1.4
+urllib3==1.26.3