shaker/qubes-doc
2024-07-15 01:10:53 +00:00
..
clone.sls Doc - states to produce documentataion builder 2024-07-15 01:10:53 +00:00
clone.top Doc - states to produce documentataion builder 2024-07-15 01:10:53 +00:00
config.sls Doc - states to produce documentataion builder 2024-07-15 01:10:53 +00:00
config.top Doc - states to produce documentataion builder 2024-07-15 01:10:53 +00:00
create.sls Doc - states to produce documentataion builder 2024-07-15 01:10:53 +00:00
create.top Doc - states to produce documentataion builder 2024-07-15 01:10:53 +00:00
doc-gitconfig Doc - states to produce documentataion builder 2024-07-15 01:10:53 +00:00
install.sls Doc - states to produce documentataion builder 2024-07-15 01:10:53 +00:00
install.top Doc - states to produce documentataion builder 2024-07-15 01:10:53 +00:00
README.md Doc - states to produce documentataion builder 2024-07-15 01:10:53 +00:00
split-gpg-config Doc - states to produce documentataion builder 2024-07-15 01:10:53 +00:00

Introduction

These salt files can be used to set-up a template for building the Qubes website and documentation. The template is a clone of the fedora-40 template. A qubes-doc qube is created and configured to use git and split-gpg.

Installation

Copy the qubes-doc directory to /srv/salt, then run:

sudo qubesctl state.apply qubes-doc.create
sudo qubesctl --skip-dom0 --targets=template-qubes-doc state.apply qubes-doc.install  
sudo qubesctl --skip-dom0 --targets=qubes-doc state.apply qubes-doc.config

If you want to use git, a boilerplate ~.gitconfig is included in qubes-doc. Remember to edit this file with your details. split-gpg is automatically configured to use sys-gpg as the backend qube holding the PGP key. Edit the policy if you want to use a different backend qube to store your gpg key.

Building the site

cd qubesos.github.io
bundle exec jekyll serve

You may need to edit Gemfile to include gem webrick

Notes

create.sls uses include to call clone.sls. This state ensures that a fedora-40 template is installed, and will install it if not: the template is cloned to create a template for qubes-doc. The remainder of the state creates the qubes-doc qube, and creates the split-gpg policy.

install.sls configures qubes-doc repositories to use the caching proxy if present. (Look at the use of the if statement checking for the existence of the relevant pillar.) pkg.installed is used to install the needed packages.

config.sls is applied to the new qubes-doc qube. file.managed is used to transfer configuration files for split-gpg to the qube. git.latest is used to clone the git repository - submodules: True is used to pull in all submodules.

There is a salt gem state, which could be used to install gems:

qubes_doc_gems:
  gem.installed:
    - names:
      - jekyll

But the results are variable, and some gems cannot be installed by this method. So we fall back to using cmd.run again to get gems installed.