Verified Commit 96db8ed6 authored by Clark's avatar Clark
Browse files

Adding in-place Fedora template update details

parent 1bcb106d
......@@ -331,6 +331,7 @@ class "backup-vault" as backup_vault {
class "pw-vault" as pw_vault {
{static} TemplateVM <fed30>
{static} NetVM <none>
{method} +KeePassXC
}
}
......@@ -446,14 +447,86 @@ fedora <.. fedora_gpg_vault
ubuntu <.. ubuntu_ws
#+end_src
#+RESULTS[7ff8ea01591d7e5fc7de323fdd5f733cb3eca7b8]:
#+RESULTS[a1f2911af9e905ead1d25ef8c0e3120c01d69537]:
[[file:img/Qubes-VM-architecture.svg]]
* Custom VMs
* TODO VM administration
Qubes OS is all about VM control.
** TODO VM maintenance
Updates are important.
*** Fedora VM updates
Procedure is taken from [[https://www.qubes-os.org/doc/template/fedora/upgrade/][Qubes OS documentation]]. If any errors are encountered using the below procedure, refer to the Qubes OS documentation.
Replace all instances of <old> with the old Fedora version number, and instances of <new> with the new Fedora version.
Run the following on =dom0=.
#+BEGIN_SRC sh
qvm-shutdown fedora-<old>
qvm-clone fedora-<old> fedora-<new>
qvm-run -a fedora-<new> gnome-terminal
#+END_SRC
Run the following in the <new> Fedora template terminal to perform the update.
#+BEGIN_SRC sh
sudo dnf clean all
sudo dnf --releasever=<new> distro-sync --best --allowerasing
#+END_SRC
Import the GPG key after validating the fingerprint online. I've made upgrades from Fedora 30 to Fedora 33. GPG keys for each release are as follows, but please validate this yourself.
| Fedora Release | GPG Key Fingerprint |
|----------------+---------------------------------------------------|
| 31 | 7D22 D586 7F2A 4236 474B F7B8 50CB 390B 3C33 59C4 |
| 32 | 97A1 AE57 C3A2 372C CA3A 4ABA 6C13 026D 12C9 44D0 |
| 33 | 963A 2BEB 0200 9608 FE67 EA42 49FD 7749 9570 FF31 |
Optionally, confirm the updated version and trim the new template from <new> terminal.
#+BEGIN_SRC sh
cat /etc/fedora-release
sudo fstrim -av
#+END_SRC
From =dom0=, restart the <new> template.
#+BEGIN_SRC sh
qvm-shutdown fedora-<new>
qvm-run -a fedora-<new> gnome-terminal
#+END_SRC
From the <new> template, finish trimming the filesystem.
#+BEGIN_SRC sh
sudo fstrim -av
#+END_SRC
Optionally set the new template as the default template from =dom0=.
#+BEGIN_SRC sh
qvm-shutdown fedora-<new>
qubes-prefs --set default_template fedora-<new>
#+END_SRC
Update all AppVMs that used the <old> template to use the <new> template. Also, if desired, uninstall the <old> template from =dom0=.
#+BEGIN_SRC sh
sudo dnf remove qubes-template-fedora-<old>
#+END_SRC
*** TODO Debian VM updates
** Custom VMs
Creating custom virtual machines for QubesOS for Ubuntu and Windows.
** Ubuntu
*** Ubuntu
Going to use qubes-builder package to build a "official" Ubuntu template. Start by creating a template (later to be deleted) that is used to build the Ubuntu template from =dom0=, then launch a terminal.
......@@ -541,7 +614,7 @@ Then =sudo apt update= and install some additional qubes packages.
sudo apt install qubes-gpg-split qubes-usb-proxy qubes-pdf-converter qubes-img-converter
#+END_SRC
** VPN ProxyVM
*** VPN ProxyVM
Following this guide: https://github.com/Qubes-Community/Contents/blob/master/docs/configuration/vpn.md#set-up-a-proxyvm-as-a-vpn-gateway-using-networkmanager
......@@ -647,6 +720,32 @@ sudo chmod +x /rw/config/rc.local
Start it manually with: =sudo openvpn --cd /rw/config/vpn --config openvpn-client.ovpn=
** Autostarted applications
In AppVMs that I set to start on boot, I automatically start applications when the VM launches. To do so, this requires creating the autostart directory in the AppVM, and linking the desktop application in the autostart directory. Here is a non-exhaustive list of autostarted applications for particular AppVMs.
In =pw-vault=, run the following.
#+BEGIN_SRC sh
mkdir -p ~/.config/autostart
ln -s /usr/share/applications/org.keepassxc.KeePassXC.desktop ~/.config/autostart/org.keepassxc.KeePassXC.desktop
#+END_SRC
In =bytecache-email=, run the following.
#+BEGIN_SRC sh
mkdir -p ~/.config/autostart
ln -s /usr/share/applications/protonmail-bridge.desktop ~/.config/autostart/protonmail-bridge.desktop
ln -s /usr/share/applications/thunderbird.desktop ~/.config/autostart/thunderbird.desktop
#+END_SRC
In =bytecache-social=, run the following.
#+BEGIN_SRC sh
mkdir -p ~/.config/autostart
ln -s /usr/share/applications/element-desktop.desktop ~/.config/autostart/element-desktop.desktop
#+END_SRC
* Split SSH
In Qubes OS, ssh keypairs can be split between the =private key location= (an offline AppVM) and users (any other AppVM, such as a development VM). I have a separate /ssh-vault/ for each ssh keypair. In this section I demonstrate setting up split ssh for my ByteCache development VM, =bytecache-dev=.
......
......@@ -30,7 +30,7 @@ class work_social--><rect fill="#F0F8FF" height="221.625" id="work_social" style
class work_gpg_vault--><rect fill="#F0F8FF" height="109.875" id="work_gpg_vault" style="stroke: #A80036; stroke-width: 1.5;" width="397" x="1929.5" y="1249.7837"/><ellipse cx="2033" cy="1268.7837" fill="#ADD1B2" rx="14" ry="14" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2036.6719,1277.2837 Q2035.8438,1277.7056 2034.9375,1277.9087 Q2034.0469,1278.1275 2033.0469,1278.1275 Q2029.5156,1278.1275 2027.6406,1275.7993 Q2025.7813,1273.4556 2025.7813,1269.0493 Q2025.7813,1264.6275 2027.6406,1262.2993 Q2029.5156,1259.9712 2033.0469,1259.9712 Q2034.0469,1259.9712 2034.9531,1260.19 Q2035.875,1260.3931 2036.6719,1260.815 L2036.6719,1264.6587 Q2035.7813,1263.8306 2034.9375,1263.4556 Q2034.1094,1263.0806 2033.2188,1263.0806 Q2031.3125,1263.0806 2030.3438,1264.5806 Q2029.375,1266.0806 2029.375,1269.0493 Q2029.375,1272.0025 2030.3438,1273.5181 Q2031.3125,1275.0181 2033.2188,1275.0181 Q2034.1094,1275.0181 2034.9375,1274.6431 Q2035.7813,1274.2525 2036.6719,1273.44 L2036.6719,1277.2837 Z "/><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" textLength="180" x="2058" y="1277.0923">work-gpg-vault</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1930.5" x2="2325.5" y1="1287.7837" y2="1287.7837"/><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="385" x="1935.5" y="1314.061">TemplateVM &lt;fed30-gpg-vault&gt;</text><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="184" x="1935.5" y="1341.9985">NetVM &lt;none&gt;</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1930.5" x2="2325.5" y1="1351.6587" y2="1351.6587"/><!--MD5=[02a9f16222e94fa170c3278cecfd133b]
class work_ssh_vault--><rect fill="#F0F8FF" height="109.875" id="work_ssh_vault" style="stroke: #A80036; stroke-width: 1.5;" width="391" x="2361.5" y="1249.7837"/><ellipse cx="2465" cy="1268.7837" fill="#ADD1B2" rx="14" ry="14" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2468.6719,1277.2837 Q2467.8438,1277.7056 2466.9375,1277.9087 Q2466.0469,1278.1275 2465.0469,1278.1275 Q2461.5156,1278.1275 2459.6406,1275.7993 Q2457.7813,1273.4556 2457.7813,1269.0493 Q2457.7813,1264.6275 2459.6406,1262.2993 Q2461.5156,1259.9712 2465.0469,1259.9712 Q2466.0469,1259.9712 2466.9531,1260.19 Q2467.875,1260.3931 2468.6719,1260.815 L2468.6719,1264.6587 Q2467.7813,1263.8306 2466.9375,1263.4556 Q2466.1094,1263.0806 2465.2188,1263.0806 Q2463.3125,1263.0806 2462.3438,1264.5806 Q2461.375,1266.0806 2461.375,1269.0493 Q2461.375,1272.0025 2462.3438,1273.5181 Q2463.3125,1275.0181 2465.2188,1275.0181 Q2466.1094,1275.0181 2466.9375,1274.6431 Q2467.7813,1274.2525 2468.6719,1273.44 L2468.6719,1277.2837 Z "/><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" textLength="174" x="2490" y="1277.0923">work-ssh-vault</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2362.5" x2="2751.5" y1="1287.7837" y2="1287.7837"/><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="379" x="2367.5" y="1314.061">TemplateVM &lt;fed30-ssh-vault&gt;</text><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="184" x="2367.5" y="1341.9985">NetVM &lt;none&gt;</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2362.5" x2="2751.5" y1="1351.6587" y2="1351.6587"/><!--MD5=[cd7c3efa36c01998855c920b54dde7b8]
class backup_vault--><rect fill="#F0F8FF" height="109.875" id="backup_vault" style="stroke: #A80036; stroke-width: 1.5;" width="275" x="2787.5" y="1249.7837"/><ellipse cx="2843" cy="1268.7837" fill="#ADD1B2" rx="14" ry="14" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2846.6719,1277.2837 Q2845.8438,1277.7056 2844.9375,1277.9087 Q2844.0469,1278.1275 2843.0469,1278.1275 Q2839.5156,1278.1275 2837.6406,1275.7993 Q2835.7813,1273.4556 2835.7813,1269.0493 Q2835.7813,1264.6275 2837.6406,1262.2993 Q2839.5156,1259.9712 2843.0469,1259.9712 Q2844.0469,1259.9712 2844.9531,1260.19 Q2845.875,1260.3931 2846.6719,1260.815 L2846.6719,1264.6587 Q2845.7813,1263.8306 2844.9375,1263.4556 Q2844.1094,1263.0806 2843.2188,1263.0806 Q2841.3125,1263.0806 2840.3438,1264.5806 Q2839.375,1266.0806 2839.375,1269.0493 Q2839.375,1272.0025 2840.3438,1273.5181 Q2841.3125,1275.0181 2843.2188,1275.0181 Q2844.1094,1275.0181 2844.9375,1274.6431 Q2845.7813,1274.2525 2846.6719,1273.44 L2846.6719,1277.2837 Z "/><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" textLength="154" x="2868" y="1277.0923">backup-vault</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2788.5" x2="3061.5" y1="1287.7837" y2="1287.7837"/><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="263" x="2793.5" y="1314.061">TemplateVM &lt;fed30&gt;</text><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="184" x="2793.5" y="1341.9985">NetVM &lt;none&gt;</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2788.5" x2="3061.5" y1="1351.6587" y2="1351.6587"/><!--MD5=[6ebd68f52dddfda567f9404b1295ce29]
class pw_vault--><rect fill="#F0F8FF" height="109.875" id="pw_vault" style="stroke: #A80036; stroke-width: 1.5;" width="275" x="3097.5" y="1249.7837"/><ellipse cx="3178.5" cy="1268.7837" fill="#ADD1B2" rx="14" ry="14" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3182.1719,1277.2837 Q3181.3438,1277.7056 3180.4375,1277.9087 Q3179.5469,1278.1275 3178.5469,1278.1275 Q3175.0156,1278.1275 3173.1406,1275.7993 Q3171.2813,1273.4556 3171.2813,1269.0493 Q3171.2813,1264.6275 3173.1406,1262.2993 Q3175.0156,1259.9712 3178.5469,1259.9712 Q3179.5469,1259.9712 3180.4531,1260.19 Q3181.375,1260.3931 3182.1719,1260.815 L3182.1719,1264.6587 Q3181.2813,1263.8306 3180.4375,1263.4556 Q3179.6094,1263.0806 3178.7188,1263.0806 Q3176.8125,1263.0806 3175.8438,1264.5806 Q3174.875,1266.0806 3174.875,1269.0493 Q3174.875,1272.0025 3175.8438,1273.5181 Q3176.8125,1275.0181 3178.7188,1275.0181 Q3179.6094,1275.0181 3180.4375,1274.6431 Q3181.2813,1274.2525 3182.1719,1273.44 L3182.1719,1277.2837 Z "/><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" textLength="103" x="3203.5" y="1277.0923">pw-vault</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3098.5" x2="3371.5" y1="1287.7837" y2="1287.7837"/><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="263" x="3103.5" y="1314.061">TemplateVM &lt;fed30&gt;</text><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="184" x="3103.5" y="1341.9985">NetVM &lt;none&gt;</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3098.5" x2="3371.5" y1="1351.6587" y2="1351.6587"/><!--MD5=[0d613dff25f7e47f08ccb8bbcf8608df]
class pw_vault--><rect fill="#F0F8FF" height="137.8125" id="pw_vault" style="stroke: #A80036; stroke-width: 1.5;" width="275" x="3097.5" y="1235.7837"/><ellipse cx="3178.5" cy="1254.7837" fill="#ADD1B2" rx="14" ry="14" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3182.1719,1263.2837 Q3181.3438,1263.7056 3180.4375,1263.9087 Q3179.5469,1264.1275 3178.5469,1264.1275 Q3175.0156,1264.1275 3173.1406,1261.7993 Q3171.2813,1259.4556 3171.2813,1255.0493 Q3171.2813,1250.6275 3173.1406,1248.2993 Q3175.0156,1245.9712 3178.5469,1245.9712 Q3179.5469,1245.9712 3180.4531,1246.19 Q3181.375,1246.3931 3182.1719,1246.815 L3182.1719,1250.6587 Q3181.2813,1249.8306 3180.4375,1249.4556 Q3179.6094,1249.0806 3178.7188,1249.0806 Q3176.8125,1249.0806 3175.8438,1250.5806 Q3174.875,1252.0806 3174.875,1255.0493 Q3174.875,1258.0025 3175.8438,1259.5181 Q3176.8125,1261.0181 3178.7188,1261.0181 Q3179.6094,1261.0181 3180.4375,1260.6431 Q3181.2813,1260.2525 3182.1719,1259.44 L3182.1719,1263.2837 Z "/><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" textLength="103" x="3203.5" y="1263.0923">pw-vault</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3098.5" x2="3371.5" y1="1273.7837" y2="1273.7837"/><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="263" x="3103.5" y="1300.061">TemplateVM &lt;fed30&gt;</text><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="184" x="3103.5" y="1327.9985">NetVM &lt;none&gt;</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3098.5" x2="3371.5" y1="1337.6587" y2="1337.6587"/><ellipse cx="3108.5" cy="1348.6587" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" textLength="130" x="3120.5" y="1363.936">KeePassXC</text><!--MD5=[0d613dff25f7e47f08ccb8bbcf8608df]
class debian--><rect fill="#F0F8FF" height="54" id="debian" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="5481.5" y="195.7837"/><ellipse cx="5499.5" cy="214.7837" fill="#B4A7E5" rx="14" ry="14" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5494.0156,209.3306 L5494.0156,206.2837 L5504.4375,206.2837 L5504.4375,209.3306 L5500.9531,209.3306 L5500.9531,220.7368 L5504.4375,220.7368 L5504.4375,223.7837 L5494.0156,223.7837 L5494.0156,220.7368 L5497.5,220.7368 L5497.5,209.3306 L5494.0156,209.3306 Z "/><text fill="#404040" font-family="sans-serif" font-size="24" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="119" x="5516.5" y="223.0923">debian-10</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5482.5" x2="5637.5" y1="233.7837" y2="233.7837"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5482.5" x2="5637.5" y1="241.7837" y2="241.7837"/><!--MD5=[e8984c5f1acfae1c7bb2c846ec9d0842]
class debian_ws--><rect fill="#F0F8FF" height="277.5" id="debian_ws" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="5248.5" y="435.2837"/><ellipse cx="5267.85" cy="454.2837" fill="#A9DCDF" rx="14" ry="14" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5268.0688,447.7056 L5266.4438,454.8618 L5269.7094,454.8618 L5268.0688,447.7056 Z M5265.9594,444.5337 L5270.1938,444.5337 L5274.9125,462.0337 L5271.4594,462.0337 L5270.3813,457.7056 L5265.7563,457.7056 L5264.6938,462.0337 L5261.2406,462.0337 L5265.9594,444.5337 Z "/><text fill="#404040" font-family="sans-serif" font-size="24" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="116" x="5285.15" y="462.5923">deb10-ws</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5249.5" x2="5404.5" y1="473.2837" y2="473.2837"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5249.5" x2="5404.5" y1="481.2837" y2="481.2837"/><ellipse cx="5259.5" cy="492.2837" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><a href="https://blog.bytecache.io/Self-hosted/Workstation.html#emacs" target="_top" title="https://blog.bytecache.io/Self-hosted/Workstation.html#emacs" xlink:actuate="onRequest" xlink:href="https://blog.bytecache.io/Self-hosted/Workstation.html#emacs" xlink:show="new" xlink:title="https://blog.bytecache.io/Self-hosted/Workstation.html#emacs" xlink:type="simple"><text fill="#0000FF" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="78" x="5271.5" y="507.561">Emacs</text></a><ellipse cx="5259.5" cy="520.2212" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><a href="https://blog.bytecache.io/Self-hosted/Workstation.html#rust" target="_top" title="https://blog.bytecache.io/Self-hosted/Workstation.html#rust" xlink:actuate="onRequest" xlink:href="https://blog.bytecache.io/Self-hosted/Workstation.html#rust" xlink:show="new" xlink:title="https://blog.bytecache.io/Self-hosted/Workstation.html#rust" xlink:type="simple"><text fill="#0000FF" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="53" x="5271.5" y="535.4985">Rust</text></a><ellipse cx="5259.5" cy="548.1587" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><a href="https://blog.bytecache.io/Self-hosted/Workstation.html#python-3" target="_top" title="https://blog.bytecache.io/Self-hosted/Workstation.html#python-3" xlink:actuate="onRequest" xlink:href="https://blog.bytecache.io/Self-hosted/Workstation.html#python-3" xlink:show="new" xlink:title="https://blog.bytecache.io/Self-hosted/Workstation.html#python-3" xlink:type="simple"><text fill="#0000FF" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="97" x="5271.5" y="563.436">Python3</text></a><ellipse cx="5259.5" cy="576.0962" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><a href="https://blog.bytecache.io/Self-hosted/Workstation.html#r" target="_top" title="https://blog.bytecache.io/Self-hosted/Workstation.html#r" xlink:actuate="onRequest" xlink:href="https://blog.bytecache.io/Self-hosted/Workstation.html#r" xlink:show="new" xlink:title="https://blog.bytecache.io/Self-hosted/Workstation.html#r" xlink:type="simple"><text fill="#0000FF" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="17" x="5271.5" y="591.3735">R</text></a><ellipse cx="5259.5" cy="604.0337" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><a href="https://blog.bytecache.io/Self-hosted/Workstation.html#gdb" target="_top" title="https://blog.bytecache.io/Self-hosted/Workstation.html#gdb" xlink:actuate="onRequest" xlink:href="https://blog.bytecache.io/Self-hosted/Workstation.html#gdb" xlink:show="new" xlink:title="https://blog.bytecache.io/Self-hosted/Workstation.html#gdb" xlink:type="simple"><text fill="#0000FF" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="53" x="5271.5" y="619.311">GDB</text></a><ellipse cx="5259.5" cy="631.9712" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><a href="https://blog.bytecache.io/Self-hosted/Workstation.html#radare-2" target="_top" title="https://blog.bytecache.io/Self-hosted/Workstation.html#radare-2" xlink:actuate="onRequest" xlink:href="https://blog.bytecache.io/Self-hosted/Workstation.html#radare-2" xlink:show="new" xlink:title="https://blog.bytecache.io/Self-hosted/Workstation.html#radare-2" xlink:type="simple"><text fill="#0000FF" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="107" x="5271.5" y="647.2485">Radare 2</text></a><ellipse cx="5259.5" cy="659.9087" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><a href="https://blog.bytecache.io/Self-hosted/Workstation.html#libreoffice" target="_top" title="https://blog.bytecache.io/Self-hosted/Workstation.html#libreoffice" xlink:actuate="onRequest" xlink:href="https://blog.bytecache.io/Self-hosted/Workstation.html#libreoffice" xlink:show="new" xlink:title="https://blog.bytecache.io/Self-hosted/Workstation.html#libreoffice" xlink:type="simple"><text fill="#0000FF" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="128" x="5271.5" y="675.186">LibreOffice</text></a><rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="5256.5" y="684.8462"/><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" textLength="68" x="5271.5" y="703.1235">nmap</text><!--MD5=[4d649f4ed891f9d345565464276ebfcd]
class debian_email--><rect fill="#F0F8FF" height="137.8125" id="debian_email" style="stroke: #A80036; stroke-width: 1.5;" width="238" x="5441" y="505.2837"/><ellipse cx="5481.95" cy="524.2837" fill="#A9DCDF" rx="14" ry="14" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5482.1688,517.7056 L5480.5438,524.8618 L5483.8094,524.8618 L5482.1688,517.7056 Z M5480.0594,514.5337 L5484.2938,514.5337 L5489.0125,532.0337 L5485.5594,532.0337 L5484.4813,527.7056 L5479.8563,527.7056 L5478.7938,532.0337 L5475.3406,532.0337 L5480.0594,514.5337 Z "/><text fill="#404040" font-family="sans-serif" font-size="24" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="149" x="5504.05" y="532.5923">deb10-email</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5442" x2="5678" y1="543.2837" y2="543.2837"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5442" x2="5678" y1="551.2837" y2="551.2837"/><polygon fill="#FFFF44" points="5452,557.2837,5456,561.2837,5452,565.2837,5448,561.2837" style="stroke: #B38D22; stroke-width: 1.0;"/><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" textLength="209" x="5464" y="577.561">ProtonMail Bridge</text><polygon fill="#FFFF44" points="5452,585.2212,5456,589.2212,5452,593.2212,5448,589.2212" style="stroke: #B38D22; stroke-width: 1.0;"/><text fill="#404040" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" textLength="146" x="5464" y="605.4985">Thunderbird</text><ellipse cx="5452" cy="618.1587" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><a href="https://blog.bytecache.io/Self-hosted/Workstation.html#libreoffice" target="_top" title="https://blog.bytecache.io/Self-hosted/Workstation.html#libreoffice" xlink:actuate="onRequest" xlink:href="https://blog.bytecache.io/Self-hosted/Workstation.html#libreoffice" xlink:show="new" xlink:title="https://blog.bytecache.io/Self-hosted/Workstation.html#libreoffice" xlink:type="simple"><text fill="#0000FF" font-family="sans-serif" font-size="24" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="128" x="5464" y="633.436">LibreOffice</text></a><!--MD5=[77bda1a483bdc657612b4e68126b36a5]
......@@ -72,7 +72,7 @@ link untruster to work_social--><!--MD5=[5b5ac684bba496e83bede0298292ff54]
link work_social to work_gpg_vault--><!--MD5=[c9b2b407748ab57341a85d6fa6b4871d]
link work_gpg_vault to work_ssh_vault--><!--MD5=[1f84be97b53aff923fefb24237500232]
link work_ssh_vault to backup_vault--><!--MD5=[d9b1a0698573df1df41f87eebfebdb05]
link backup_vault to pw_vault--><!--MD5=[ec8b6e1685df0ff268fb2b7dd41f04f0]
link backup_vault to pw_vault--><!--MD5=[2e24843920d87d153be8dca725d35de4]
@startuml
' Specifying aesthetics
......@@ -331,6 +331,7 @@ class "backup-vault" as backup_vault {
class "pw-vault" as pw_vault {
{static} TemplateVM <fed30>
{static} NetVM <none>
{method} +KeePassXC
}
}
......@@ -702,6 +703,7 @@ class "backup-vault" as backup_vault {
class "pw-vault" as pw_vault {
{static} TemplateVM <fed30>
{static} NetVM <none>
{method} +KeePassXC
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment