--- /dev/null
+{% if grains['id'] == 'dom0' %}
+
+dev-website--create-qube:
+ qvm.vm:
+ - name: q-dev-website
+ - present:
+ - template: template-dev-website
+ - label: orange
+ - prefs:
+ - label: orange
+ - netvm: sys-vpn-mullvad
+ - features:
+ - set:
+ - menu-items: xterm.desktop
+ - service:
+ - enable:
+ - shutdown-idle
+ - require:
+ - qvm: dev-website--create-template
+
+{% endif %}
--- /dev/null
+{% import "templates/versions.jinja" as version %}
+
+include:
+ - templates.templates--install-fedora-minimal
+
+{% if grains['id'] == 'dom0' %}
+
+dev-website--create-template:
+ qvm.clone:
+ - name: template-dev-website
+ - source: fedora-{{ version.fedora }}-minimal
+ - class: TemplateVM
+ - require:
+ - qvm: templates--install-fedora-{{ version.fedora }}-minimal
+
+dev-website--template-prefs:
+ qvm.prefs:
+ - name: template-dev-website
+ - label: orange
+ - audiovm:
+ - guivm:
+ - netvm:
+ - require:
+ - qvm: dev-website--create-template
+
+{% endif %}
--- /dev/null
+{% if grains['id'] == 'dom0' %}
+
+dev-website--firewall:
+ cmd.run:
+ - name: |
+ qvm-firewall q-dev-website reset
+ qvm-firewall q-dev-website del accept
+ qvm-firewall q-dev-website add accept specialtarget=dns
+ qvm-firewall q-dev-website add accept proto=icmp
+ qvm-firewall q-dev-website add accept github.com proto=tcp
+ qvm-firewall q-dev-website add accept git.andreasglashauser.com proto=tcp
+ qvm-firewall q-dev-website add drop
+ - unless: |
+ CURRENT=$(qvm-firewall --raw q-dev-website list)
+ DESIRED=$(echo -e 'action=accept specialtarget=dns
+ action=accept proto=icmp
+ action=accept proto=tcp dsthost=github.com
+ action=accept proto=tcp dsthost=git.andreasglashauser.com
+ action=drop')
+ [ "$CURRENT" = "$DESIRED" ]
+ - output_loglevel: quiet
+ - require:
+ - qvm: dev-website--create-qube
+
+{% endif %}
--- /dev/null
+{% if grains['id'] == 'template-dev-website' %}
+
+dev-website--install-packages:
+ pkg.installed:
+ - refresh: True
+ - pkgs:
+ - qubes-core-agent-networking
+ - qubes-app-shutdown-idle
+ - neovim
+ - tmux
+ - git
+ - git-delta
+ - python3-virtualenvwrapper
+ - tree
+ - firefox
+
+{% endif %}
--- /dev/null
+include:
+ - dev-website.dev-website--create-template
+ - dev-website.dev-website--install-packages
+ - dev-website.dev-website--create-qube
+ - dev-website.dev-website--firewall