.. | ||
clone.sls | ||
clone.top | ||
config.sls | ||
config.top | ||
create.sls | ||
create.top | ||
doc-gitconfig | ||
install.sls | ||
install.top | ||
README.md | ||
split-gpg-config |
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.