This commit is contained in:
Ben Grande 2023-10-19 09:29:43 +00:00
parent 57b3669969
commit fc9f3f6cf9
No known key found for this signature in database
GPG Key ID: 00C64E14F51F9E56
20 changed files with 132 additions and 61 deletions
README.mdTODO.md
qusal
dotfiles
README.md
files/git/.config/git
qubes-builder
remmina
signal
sys-cacher
sys-git
sys-pgp
sys-pihole
sys-ssh-agent
templates
debian-minimal
debian
fedora-minimal
fedora
whonix
terraform
utils/tools

@ -27,36 +27,27 @@ projects.
User policies should always be set on /etc/qubes/policy.d/30-user.policy as
this file will take precedence over the packaged policy.
Qubes global settings (qubes-prefs) that will be managed:
clockvm : disp-sys-net or sys-net
default_audiovm : dom0 # TODO
default_dispvm : reader
default_netvm : sys-pihole or sys-firewall or disp-sys-firewall
management_dispvm : dvm-mgmt
updatevm : sys-pihole or sys-firewall or disp-sys-firewall
## Installation
Clone this repository:
```shell
```sh
git clone https://github.com/ben-grande/qusal.git ~/qusal
git clone ssh://git@github.com/ben-grande/qusal.git ~/qusal
```
Copy this repository from some qube to Dom0 from Dom0:
```shell
```sh
mkdir -p ~/QubesIncoming/QUBE
qvm-run -p <QUBE> tar -cC </PATH/TO> qusal | tar -xvC ~/QubesIncoming/QUBE qusal
```
Example copying repository from the `dev` qube to Dom0 by running in Dom0:
```shell
```sh
mkdir -p ~/QubesIncoming/dev
qvm-run -p dev tar -cC /home/user qusal | tar -xvC ~/QubesIncoming/dev qusal
```
Copy the files to the Salt directories:
```shell
```sh
cd qusal
./setup.sh
```
@ -64,6 +55,15 @@ cd qusal
Qusal is now installed. Please read the README.md of each project for further
information on how to install the desired package.
Qubes global settings (qubes-prefs) that will be managed:
- **clockvm**: disp-sys-net, sys-net
- **default_audiovmm**: dom0 # TODO
- **default_dispvm**: reader
- **default_netvm**: sys-pihole, sys-firewall or disp-sys-firewall
- **management_dispvm**: dvm-mgmt
- **updatevm**: sys-pihole, sys-firewall or disp-sys-firewall
## Format
### File naming

@ -12,6 +12,7 @@
## Medium Priority
- repos: migrate debian .list to .sources
- sys-usb:
- multiple PCI assignment to different qubes fails due to ext_module_qvm.py
bug

@ -22,12 +22,12 @@ Configuration and scripts targeting:
- Drop-in configuration files
- Tested on Qubes OS Dom0, Debian, Fedora
- Tasks:
- GUI: x11, gtk
- SCM: git, tig, git-shell
- Keys: gpg, ssh
- Networking: curl, urlview, wget, w3m
- Productivity: tmux, vim
- Shell: sh, bash, zsh, less, dircolors
- GUI: x11, gtk
- SCM: git, tig, git-shell
- Keys: gpg, ssh
- Networking: curl, urlview, wget, w3m
- Productivity: tmux, vim
- Shell: sh, bash, zsh, less, dircolors
## Installation
@ -63,14 +63,14 @@ configuration is implemented by including a local file per application.
Supported programs and the expected file names in `$HOME`:
- bash: `.bashrc.local`
- git: `.gitconfig.local`
- sh: `.profile.local`, `.shrc.local`
- ssh: `.ssh/config.d/*.conf`, `.ssh/known_hosts.d/*.host`
- tmux: `.tmux.conf.local`
- vim: `.vimrc.local`
- x11: `.xprofile.local`
- zsh: `.zshrc.local`
- **bash**: .bashrc.local
- **git**: .gitconfig.local
- **sh**: .profile.local, .shrc.local
- **ssh**: .ssh/config.d/*.conf, .ssh/known_hosts.d/*.host
- **tmux**: .tmux.conf.local
- **vim**: .vimrc.local
- **x11**: .xprofile.local
- **zsh**: .zshrc.local
## Copyright

@ -19,8 +19,7 @@
rl = remote -v
cf = config --file "$HOME/.gitconfig.local"
; Helpers
aliases = !git config --get-regexp 'alias.*' | colrm 1 6 | sed 's/[ ]/ = /'
aliases-get = "!f() { git config --get alias.$1;}; f"
aliases = "!sh -c 'if test -n \"$1\"; then git config --get alias.$1; else git config --get-regexp \"alias.*\" | colrm 1 6 | sed \"s/[ ]/ = /\"; fi'" -
; Patch with subject prefix containing repository name and output
; directory has the child directories the repository and branch name.
fp = "!sh -c '\

@ -59,17 +59,10 @@ Extra services added are `qubes.Gpg`, `qubes.Gpg2`, `qusal.GitInit`,
Out of these services, if an argument `+qubes-builder` can be specified to
limit the scope, the action is `allowed`, else the action is to `ask`.
Consult documentation for each service separately on their appropriate
project:
- `qusal.Git*`: sys-git
- `qusal.SshAgent`: sys-ssh-agent
- `qubes.*`: upstream documentation
## Usage
When using the `qubes` executor, set the `dispvm` option to either `dom0` or
`dvm-qubes-builder` in `builder.yml`:
When using the Qubes Executor, configure the builder.yml `dispvm` option to
either `dom0` or `dvm-qubes-builder`:
```yaml
executor:
type: qubes
@ -77,8 +70,8 @@ executor:
dispvm: "dom0"
#dispvm: "dvm-qubes-builder"
```
Setting the `dispvm` to `dom0` works because it will use the `default_dispvm`
preference of `qubes-builder`, which is `dvm-qubes-builder`.
Setting the Disposable VM to Dom0 works because it will use the
`default_dispvm` preference of `qubes-builder`, which is `dvm-qubes-builder`.
There are no further modifications needed to comply with this package. Consult
upstream documentation on how to use the Qubes OS Builder.

@ -11,7 +11,8 @@
Remmina Remote Desktop Client in Qubes OS.
Creates a disposable template named "dvm-remmina". From it, you can create
disposables for Remmina usage for SSH, VNC, SPICE, HTTP(S), X2Go and more.
disposables for Remmina usage for SSH, VNC, SPICE, HTTP(S), X2Go and more. If
you prefer to use an app qube, a qube named "remmina" will also be created.
## Installation

@ -10,6 +10,8 @@
Signal messaging app on Qubes OS.
Install Signal Desktop and creates an app qube named "signal".
## Installation
- Top:

@ -64,7 +64,7 @@ of sys-cacher.
### Non-TemplateVMs integration
Attention: this method will allow for a client qube to bypass the qubes
**Attention**: this method will allow for a client qube to bypass the qubes
firewall and connect to a remote via the updates proxy.
By default, only templates will use the proxy to update, if you want to cache

@ -40,7 +40,7 @@ implementation:
| Push | True | True | False | True |
| Init | True | False | False | False |
| Validates Git communication | False | False | True | False |
| Verify tag signature | False | False | True | False |
| Verifies tag signature | False | False | True | False |
## Installation
@ -154,7 +154,7 @@ You can then use that repository as usual, making commits.
Push to the server and set it as the default upstream:
```sh
git push -u sg master
git push -u sg main
```
Following pushes will be simpler:

@ -48,12 +48,15 @@ qvm-features dev service.split-gpg2-client
_Default policy_: `any qube` can `ask` via the `@default` target if you allow
it to use split-gpg in `sys-pgp`.
Allow the `work` qubes to access `sys-pgp`, but no other qubes from using the
Gpg RPC service:
Allow the `work` qubes to access `sys-pgp`, but not other qubes:
```qrexecpolicy
qubes.Gpg2 * work sys-pgp ask default_target=sys-pgp
qubes.Gpg2 * work @default ask target=sys-pgp default_target=sys-pgp
qubes.Gpg2 * @anyvm @anyvm deny
qubes.Gpg * work sys-pgp ask default_target=sys-pgp
qubes.Gpg * work @default ask target=sys-pgp default_target=sys-pgp
qubes.Gpg * @anyvm @anyvm deny
```
## Usage

@ -57,9 +57,14 @@ Pi-hole will be installed with these default settings:
- Steven Black's Unified Hosts List is included
- Query logging is enabled to show everything.
You can change these settings via the admin interface: http://localhost/admin.
The default Admin Webpage login password is: `UpSNQsy4`
You should change this on first use, by running: `pihole -a -p`
You can change these settings via the admin interface:
- URL: http://localhost/admin
- default password: `UpSNQsy4`
You should change this password on first use by running:
```sh
pihole -a -p
```
## Copyright

@ -246,4 +246,8 @@ Host work
## Copyright
License: GPLv2+
License: GPLv3+
Credits:
- [Unman](https://github.com/unman/qubes-ssh-agent)

@ -1,9 +1,10 @@
# Debian Minimal Template
# debian-minimal
## Table of Contents
* [Description](#description)
* [Installation](#installation)
* [Copyright](#copyright)
## Description
@ -22,3 +23,7 @@ qubesctl top.disable templates.debian-minimal
qubesctl state.apply templates.debian-minimal.create
qubesctl --skip-dom0 --targets=debian-12-minimal state.apply templates.debian-minimal.install
```
## Copyright
License: GPLv2+

@ -1,9 +1,10 @@
# Debian Template
# debian
## Table of Contents
* [Description](#description)
* [Installation](#installation)
* [Copyright](#copyright)
## Description
@ -22,3 +23,7 @@ qubesctl top.disable templates.debian
qubesctl state.apply templates.debian.create
qubesctl --skip-dom0 --targets=debian-12 state.apply templates.debian.install
```
## Copyright
License: GPLv2+

@ -1,9 +1,10 @@
# Fedora Minimal Template
# fedora-minimal
## Table of Contents
* [Description](#description)
* [Installation](#installation)
* [Copyright](#copyright)
## Description
@ -22,3 +23,7 @@ qubesctl top.disable templates.fedora-minimal
qubesctl state.apply templates.fedora-minimal.create
qubesctl --skip-dom0 --targets=fedora-38-minimal state.apply templates.fedora-minimal.install
```
## Copyright
License: GPLv2+

@ -1,9 +1,10 @@
# Fedora Template
# fedora
## Table of Contents
* [Description](#description)
* [Installation](#installation)
* [Copyright](#copyright)
## Description
@ -22,3 +23,7 @@ qubesctl top.disable templates.fedora
qubesctl state.apply templates.fedora.create
qubesctl --skip-dom0 --targets=fedora-38 state.apply templates.fedora.install
```
## Copyright
License: GPLv2+

@ -1,9 +1,10 @@
# Whonix
# whonix
## Table of Contents
* [Description](#description)
* [Installation](#installation)
* [Copyright](#copyright)
## Description
@ -25,3 +26,6 @@ qubesctl state.apply templates.whonix.create
qubesctl state.apply qvm.anon-whonix
qubesctl state.apply qvm.whonix-ws-dvm
```
## Copyright
License: GPLv2+

@ -10,6 +10,8 @@
Terraform installation in Qubes OS.
Install Terraform and use it on the "terraform" app qube.
## Installation
- Top:

@ -0,0 +1,29 @@
# builder
## Table of Contents
* [Description](#description)
* [Installation](#installation)
* [Copyright](#copyright)
## Description
Build tools for packaging on Qubes OS.
This is not necessary for qubes-builder, it is just a set of useful tools for
building packages in UNIX distributions.
## Installation
Install builder tools on templates:
```sh
qubesctl --skip-dom0 --targets=TEMPLATEVMS state.apply utils.tools.builder.core
```
Install documentation tools on templates:
```sh
qubesctl --skip-dom0 --targets=TEMPLATEVMS state.apply utils.tools.builder.doc
```
## Copyright
License: GPLv2+

@ -1,25 +1,33 @@
# Dev
# zsh
## Table of Contents
* [Description](#description)
* [Installation](#installation)
* [Copyright](#copyright)
## Description
Install and configure Zsh.
Zsh installation for Qubes OS.
Install Zsh, setup it to be the user shell and touch ~/.zshrc to avoid
warnings.
## Installation
- Top
```sh
qubesctl top.enable zsh
qubesctl top.enable utils.tools.zsh
qubesctl --targets=TARGET state.apply
qubesctl top.disable zsh
qubesctl top.disable utils.tools.zsh
```
- State
```sh
qubesctl --skip-dom0 --targets=TEMPLATEVMS state.apply zsh.install,zsh.change-shell,zsh.touch-zshrc
qubesctl --skip-dom0 --targets=APPVMS state.apply zsh.touch-zshrc
qubesctl --skip-dom0 --targets=TEMPLATEVMS state.apply utils.tools.zsh.change-shell
qubesctl --skip-dom0 --targets=APPVMS state.apply utils.tools.zsh.touch-zshrc
```
## Copyright
License: GPLv2+