Compare commits

..

17 commits
todo ... main

Author SHA1 Message Date
51a44bca3d
chore: remove stylus definitions
As the syncing of the definitions has become more troublesome and the
stylesheets grew, I moved them to https://git.mfocko.xyz/mfocko/usercss,
which also allows Stylus to update the stylesheets automatically based
on the versions declared in the sheets. Thus making this unmaintained
file obsolete.

Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-11-13 17:48:21 +01:00
bbd265cf95
feat: convert inventories and use Ansible Vault
Fixes #52

Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-11-13 09:45:54 +01:00
8454780c92
feat(porkbun): switch to global variables for keys
- Introduce 2 global variables with API keys
- Remove redundant role that only installs one config file used by
  another role
- Use the said global variables within DDNS and Certbot roles
- Create the config file in the role that uses it (Certbot)

Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-11-12 16:46:34 +01:00
2039bf6570
feat(ddns): support Porkbun in the DDNS
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-11-12 16:40:16 +01:00
f6428b2406
fix(certbot): migrate from Cloudflare to Porkbun
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-11-12 16:40:14 +01:00
45a41d7c99
feat(porkbun): add support for porkbun creds
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-11-11 17:00:42 +01:00
27fe69cfa0
fix(os/el): enable Google repo and RPMfusion
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-07-30 15:11:16 +02:00
67d4083b97
feat(ptyxis): add new role for a terminal
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-07-30 15:08:54 +02:00
1d65e7e176
feat(sshd): adjust for archLinux
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-07-22 11:36:40 +02:00
9d89a874ec
fix(firewalld): adjust firewall only when it's set up
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-07-22 10:39:21 +02:00
eaaf707b60
fix(vscode)!: do not install
Always fails right now

Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-07-22 10:37:20 +02:00
f59e074ef8
fix(zsh): use correct *box script for name
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-07-22 10:37:16 +02:00
044d0e42ab
fix(helix): correct the installation
* Do not use Copr repo for AlmaLinux
* Make a generic install action for Helix from official repositories

Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-07-22 10:36:56 +02:00
ca89c810cd
fix(flatpak): install flatpak if not present
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-07-15 19:42:30 +02:00
7760066325
fix(wg): correct path to config and variable
* use correct path to the template for the config
* use correct variable when adjusting the DNS on AlmaLinux

Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-07-15 15:44:30 +02:00
f2be2f7b95
fix(base/desktop): create applications directory
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-07-15 15:43:43 +02:00
c13adc9084
fix(zsh): adjust the starship config
Signed-off-by: Matej Focko <me@mfocko.xyz>
2024-07-13 10:07:08 +02:00
60 changed files with 346 additions and 1124 deletions

View file

@ -1,3 +1,3 @@
[defaults] [defaults]
inventory = inventory/ inventory = ./inventory
roles_path = roles/ roles_path = roles/

View file

@ -27,17 +27,17 @@ hashicorp_vault_address: None
# Address of the Vaultwarden instance # Address of the Vaultwarden instance
vaultwarden_address: None vaultwarden_address: None
# Used for Certbot and DDNS # Porkbun apikey and secretapikey that are used by Certbot (SSL/TLS renewal)
# Certbot: used for DNS verification of the domain during renewal # and DDNS (updating DNS records)
# DDNS: used to update the DNS records of the public IP porkbun_apikey: None
cloudflare_token: None porkbun_secretapikey: None
# Cloudflare zone, the domain
cloudflare_zone: None
# Public ID tied to the Yubikey OTP # Public ID tied to the Yubikey OTP
yubikey_token_id: None yubikey_token_id: None
# Client IP for the wg-admin VPN
wg_admin_ip: None
# Wireguard connections # Wireguard connections
# List of connections to set up, example: # List of connections to set up, example:
# #

View file

@ -1,985 +0,0 @@
[
{
"settings": {
"openEditInWindow": true,
"openEditInWindow.popup": false,
"windowPosition": {
"height": 1078,
"left": 483,
"top": 929,
"width": 1918
},
"show-badge": true,
"disableAll": false,
"exposeIframes": false,
"exposeStyleName": false,
"newStyleAsUsercss": true,
"styleViaXhr": false,
"patchCsp": false,
"config.autosave": true,
"schemeSwitcher.enabled": "system",
"schemeSwitcher.nightStart": "18:00",
"schemeSwitcher.nightEnd": "06:00",
"popup.breadcrumbs": true,
"popup.breadcrumbs.usePath": false,
"popup.enabledFirst": true,
"popup.stylesFirst": true,
"popup.autoResort": false,
"popup.borders": false,
"popup.findSort": "u",
"manage.onlyEnabled": false,
"manage.onlyLocal": false,
"manage.onlyUsercss": false,
"manage.onlyEnabled.invert": false,
"manage.onlyLocal.invert": false,
"manage.onlyUsercss.invert": false,
"manage.actions.expanded": true,
"manage.backup.expanded": true,
"manage.filters.expanded": true,
"manage.newUI": true,
"manage.newUI.favicons": false,
"manage.newUI.faviconsGray": true,
"manage.newUI.targets": 3,
"manage.newUI.sort": "title,asc",
"editor.options": {},
"editor.toc.expanded": true,
"editor.options.expanded": true,
"editor.lint.expanded": true,
"editor.publish.expanded": true,
"editor.lineWrapping": true,
"editor.smartIndent": true,
"editor.indentWithTabs": false,
"editor.tabSize": 4,
"editor.keyMap": "sublime",
"editor.theme": "tomorrow-night-bright",
"editor.beautify": {
"end_with_newline": false,
"indent_conditional": true,
"newline_after_open_brace": true,
"newline_before_close_brace": true,
"newline_before_open_brace": false,
"newline_between_properties": true,
"newline_between_rules": false,
"preserve_newlines": true,
"selector_separator_newline": true
},
"editor.beautify.hotkey": "",
"editor.lintDelay": 300,
"editor.linter": "stylelint",
"editor.lintReportDelay": 500,
"editor.matchHighlight": "token",
"editor.autoCloseBrackets": true,
"editor.autocompleteOnTyping": false,
"editor.contextDelete": false,
"editor.selectByTokens": true,
"editor.appliesToLineWidget": true,
"editor.autosaveDraft": 10,
"editor.livePreview": true,
"editor.colorpicker": true,
"editor.colorpicker.hexUppercase": false,
"editor.colorpicker.hotkey": "",
"editor.colorpicker.color": "",
"editor.colorpicker.maxHeight": 300,
"hotkey._execute_browser_action": "",
"hotkey.openManage": "",
"hotkey.styleDisableAll": "",
"sync.enabled": "none",
"iconset": 0,
"badgeDisabled": "#8B0000",
"badgeNormal": "#006666",
"headerWidth.edit": 280,
"headerWidth.install": 280,
"headerWidth.manage": 280,
"popupWidth": 256,
"updateInterval": 24
},
"order": {
"main": [],
"prio": []
}
},
{
"enabled": true,
"installDate": 1617790582365,
"name": "is.muni.cz",
"sections": [
{
"code": ".zu_pozn_blok {\n font-size: 15px;\n}",
"domains": ["is.muni.cz"]
}
],
"updateDate": 1631485074509,
"_id": "b0042ad2-4f79-4e97-a828-ac4114322826",
"_rev": 1648230156549,
"id": 6
},
{
"enabled": true,
"installDate": 1626353686077,
"sections": [
{
"code": ""
}
],
"sourceCode": "/* ==UserStyle==\n@name pre,code,kbd,var,samp\n@namespace git.mfocko.xyz/mfocko/dotfiles\n@version 1.0.0\n@description Replaces default monospace font on majority of websites\n@author mfocko <me@mfocko.xyz>\n@var select monospace-font \"Font\" [\n \"monospace*\",\n \"BlexMono Nerd Font\",\n \"CaskaydiaCovePL Nerd Font\",\n \"FiraCode Nerd Font\",\n \"Hack Nerd Font\",\n \"Hasklug Nerd Font\",\n \"Inconsolata Nerd Font\",\n \"InputMono Nerd Font\",\n \"InputMonoNarrow Nerd Font\",\n \"InputMonoCondensed Nerd Font\",\n \"InputMonoCompressed Nerd Font\",\n \"Iosevka Term\",\n \"Iosevka Term Extended\",\n \"Iosevka Term Slab\",\n \"Iosevka Term Slab Extended\",\n \"JetBrainsMono Nerd Font\",\n \"RecMonoLinear Nerd Font\",\n \"RobotoMono Nerd Font\",\n \"SauceCodePro Nerd Font\",\n \"SFMono Nerd Font\",\n \"VictorMono Nerd Font\"\n]\n==/UserStyle== */\n@-moz-document domain(\"codewars.com\"),\ndomain(\"kurzy.kpi.fei.tuke.sk\"),\ndomain(\"doc.rust-lang.org\"),\nregexp(\"https://(www\\\\.)fi\\\\.muni\\\\.cz/pb071/.*\"),\nregexp(\".*fi\\\\.muni\\\\.cz/~xfocko/.*\"),\ndomain(\"softwarefactory-project.io\"),\ndomain(\"stackoverflow.com\"),\ndomain(\"pagure.io\"),\ndomain(\"src.fedoraproject.org\"),\ndomain(\"docs.oracle.com\"),\ndomain(\"docs.rs\"),\ndomain(\"livebook.manning.com\"),\ndomain(\"adventofcode.com\"),\ndomain(\"wiki.gentoo.org\"),\ndomain(\"is.muni.cz\"),\ndomain(\"codeforces.com\"),\ndomain(\"leetcode.com\"),\ndomain(\"hackerrank.com\"),\ndomain(\"en.cppreference.com\"),\ndomain(\"sentry.io\"),\ndomain(\"app.element.io\"),\ndomain(\"docs.microsoft.com\"),\ndomain(\"packit.dev\"),\nregexp(\"https://.*\\\\.fedoraproject.org/.*\"),\nregexp(\"https://packit.github.io/.*\"),\ndomain(\"cppquiz.org\"),\ndomain(\"sprunge.us\") {\n pre,\n code,\n kbd,\n var,\n samp,\n tt,\n textarea {\n font-family: var(--monospace-font) !important;\n }\n}\n\n@-moz-document domain(\"codewars.com\") {\n .CodeMirror,\n .result-type--result,\n .result-type--log .result-type__value {\n font-family: var(--monospace-font) !important;\n }\n}\n\n@-moz-document regexp(\".*fi\\\\.muni\\\\.cz/~kontr/logs/.*\") {\n * {\n font-family: var(--monospace-font) !important;\n }\n}\n\n@-moz-document domain(\"en.cppreference.com\") {\n .mw-geshi,\n .t-lc,\n #wpTextbox1,\n .t-dsc-member-div > div:nth-child(1) {\n font-family: var(--monospace-font) !important;\n }\n}\n\n@-moz-document domain(\"hackerrank.com\") {\n *[ style *='monospace'] {\n font-family: var(--monospace-font) !important;\n }\n}\n\n@-moz-document domain(\"play.rust-lang.org\") {\n .ace_editor,\n div#output-stdout,\n div#output-stderr {\n font-family: var(--monospace-font) !important;\n }\n}\n\n@-moz-document domain(\"docs.oracle.com\") {\n .contentContainer .description dl dd,\n .contentContainer .details dl dd,\n .serializedFormContainer dl dd {\n font-family: var(--monospace-font) !important;\n }\n}\n\n@-moz-document domain(\"lounge.mfocko.xyz\"),\ndomain(\"lounge.fi.muni.cz\") {\n body,\n code,\n pre,\n #chat .msg[data-type=\"monospace_block\"] .text,\n .irc-monospace,\n textarea#user-specified-css-input {\n font-family: var(--monospace-font);\n }\n}\n\n@-moz-document domain(\"adventofcode.com\") {\n body {\n font-family: var(--monospace-font);\n }\n}\n\n@-moz-document domain(\"pagure.io\"),\ndomain(\"src.fedoraproject.org\") {\n .d2h-diff-table {\n font-family: var(--monospace-font) !important;\n }\n}\n\n@-moz-document domain(\"leetcode.com\") {\n .css-1ubm0bb-Value,\n .container__MmrB .testcase-editor__3Tbb,\n .testcase-table-re,\n .testcase-table-wa,\n .ace_editor,\n .css-2usu9f-Error,\n .CodeMirror {\n font-family: var(--monospace-font) !important;\n }\n}\n\n@-moz-document domain(\"sentry.io\") {\n .traceback ol.context > li,\n .css-w0gxse .e1qdl66w1,\n .css-1igmgpv .e1qdl66w1 {\n font-family: var(--monospace-font) !important;\n }\n}\n\n@-moz-document domain(\"app.element.io\") {\n body,\n .mx_EventTile_content .markdown-body code,\n .mx_EventTile_content .markdown-body pre {\n font-family: var(--monospace-font) !important;\n }\n}\n\n@-moz-document domain(\"overleaf.com\") {\n .ace_editor {\n font-family: var(--monospace-font) !important;\n }\n}\n\n@-moz-document regexp(\".*fi\\\\.muni\\\\.cz/~xfocko/.*\") {\n * {\n font-feature-settings: 'liga', 'calt';\n }\n}",
"usercssData": {
"name": "pre,code,kbd,var,samp",
"namespace": "git.mfocko.xyz/mfocko/dotfiles",
"version": "1.0.0",
"description": "Replaces default monospace font on majority of websites",
"author": "mfocko <me@mfocko.xyz>",
"vars": {
"monospace-font": {
"type": "select",
"label": "Font",
"name": "monospace-font",
"value": "monospace",
"default": "monospace",
"options": [
{
"name": "monospace",
"label": "monospace",
"value": "monospace"
},
{
"name": "BlexMono Nerd Font",
"label": "BlexMono Nerd Font",
"value": "BlexMono Nerd Font"
},
{
"name": "CaskaydiaCovePL Nerd Font",
"label": "CaskaydiaCovePL Nerd Font",
"value": "CaskaydiaCovePL Nerd Font"
},
{
"name": "FiraCode Nerd Font",
"label": "FiraCode Nerd Font",
"value": "FiraCode Nerd Font"
},
{
"name": "Hack Nerd Font",
"label": "Hack Nerd Font",
"value": "Hack Nerd Font"
},
{
"name": "Hasklug Nerd Font",
"label": "Hasklug Nerd Font",
"value": "Hasklug Nerd Font"
},
{
"name": "Inconsolata Nerd Font",
"label": "Inconsolata Nerd Font",
"value": "Inconsolata Nerd Font"
},
{
"name": "InputMono Nerd Font",
"label": "InputMono Nerd Font",
"value": "InputMono Nerd Font"
},
{
"name": "InputMonoNarrow Nerd Font",
"label": "InputMonoNarrow Nerd Font",
"value": "InputMonoNarrow Nerd Font"
},
{
"name": "InputMonoCondensed Nerd Font",
"label": "InputMonoCondensed Nerd Font",
"value": "InputMonoCondensed Nerd Font"
},
{
"name": "InputMonoCompressed Nerd Font",
"label": "InputMonoCompressed Nerd Font",
"value": "InputMonoCompressed Nerd Font"
},
{
"name": "Iosevka Term",
"label": "Iosevka Term",
"value": "Iosevka Term"
},
{
"name": "Iosevka Term Extended",
"label": "Iosevka Term Extended",
"value": "Iosevka Term Extended"
},
{
"name": "Iosevka Term Slab",
"label": "Iosevka Term Slab",
"value": "Iosevka Term Slab"
},
{
"name": "Iosevka Term Slab Extended",
"label": "Iosevka Term Slab Extended",
"value": "Iosevka Term Slab Extended"
},
{
"name": "JetBrainsMono Nerd Font",
"label": "JetBrainsMono Nerd Font",
"value": "JetBrainsMono Nerd Font"
},
{
"name": "RecMonoLinear Nerd Font",
"label": "RecMonoLinear Nerd Font",
"value": "RecMonoLinear Nerd Font"
},
{
"name": "RobotoMono Nerd Font",
"label": "RobotoMono Nerd Font",
"value": "RobotoMono Nerd Font"
},
{
"name": "SauceCodePro Nerd Font",
"label": "SauceCodePro Nerd Font",
"value": "SauceCodePro Nerd Font"
},
{
"name": "SFMono Nerd Font",
"label": "SFMono Nerd Font",
"value": "SFMono Nerd Font"
},
{
"name": "VictorMono Nerd Font",
"label": "VictorMono Nerd Font",
"value": "VictorMono Nerd Font"
}
]
}
}
},
"author": "mfocko <me@mfocko.xyz>",
"description": "Replaces default monospace font on majority of websites",
"name": "pre,code,kbd,var,samp",
"updateDate": 1659779587963,
"_id": "dc152c50-d7f1-49c4-ae39-7f641fb6d54d",
"_rev": 1660417880123,
"id": 12,
"customName": "pre,code,kbd,var,samp",
"originalDigest": "b82a009a76123fa9aeb797f496e10953bd0eeff7"
},
{
"enabled": true,
"installDate": 1626692966477,
"sections": [
{
"code": ""
}
],
"sourceCode": "/* ==UserStyle==\n@name notion.so\n@namespace git.mfocko.xyz/mfocko/dotfiles\n@version 1.0.0\n@description Allows switching of the fonts on notion.so\n@author mfocko <me@mfocko.xyz>\n@var select monospace-font \"Font\" [\n \"monospace*\",\n \"BlexMono Nerd Font\",\n \"CaskaydiaCovePL Nerd Font\",\n \"FiraCode Nerd Font\",\n \"Hack Nerd Font\",\n \"Hasklug Nerd Font\",\n \"Inconsolata Nerd Font\",\n \"InputMono Nerd Font\",\n \"InputMonoNarrow Nerd Font\",\n \"InputMonoCondensed Nerd Font\",\n \"InputMonoCompressed Nerd Font\",\n \"Iosevka Term\",\n \"Iosevka Term Extended\",\n \"Iosevka Term Slab\",\n \"Iosevka Term Slab Extended\",\n \"JetBrainsMono Nerd Font\",\n \"RecMonoLinear Nerd Font\",\n \"RobotoMono Nerd Font\",\n \"SauceCodePro Nerd Font\",\n \"SFMono Nerd Font\",\n \"VictorMono Nerd Font\"\n]\n==/UserStyle== */\n@-moz-document domain(\"notion.so\") {\n * [style *=\" monospace\"] {\n font-family: var(--monospace-font) !important;\n }\n\n * [style *=\" serif\"] {\n font-family: \"Roboto Slab\" !important;\n }\n\n * [style *=\" sans\"] {\n font-family: \"Roboto\" !important;\n }\n}",
"usercssData": {
"name": "notion.so",
"namespace": "git.mfocko.xyz/mfocko/dotfiles",
"version": "1.0.0",
"description": "Allows switching of the fonts on notion.so",
"author": "mfocko <me@mfocko.xyz>",
"vars": {
"monospace-font": {
"type": "select",
"label": "Font",
"name": "monospace-font",
"value": "monospace",
"default": "monospace",
"options": [
{
"name": "monospace",
"label": "monospace",
"value": "monospace"
},
{
"name": "BlexMono Nerd Font",
"label": "BlexMono Nerd Font",
"value": "BlexMono Nerd Font"
},
{
"name": "CaskaydiaCovePL Nerd Font",
"label": "CaskaydiaCovePL Nerd Font",
"value": "CaskaydiaCovePL Nerd Font"
},
{
"name": "FiraCode Nerd Font",
"label": "FiraCode Nerd Font",
"value": "FiraCode Nerd Font"
},
{
"name": "Hack Nerd Font",
"label": "Hack Nerd Font",
"value": "Hack Nerd Font"
},
{
"name": "Hasklug Nerd Font",
"label": "Hasklug Nerd Font",
"value": "Hasklug Nerd Font"
},
{
"name": "Inconsolata Nerd Font",
"label": "Inconsolata Nerd Font",
"value": "Inconsolata Nerd Font"
},
{
"name": "InputMono Nerd Font",
"label": "InputMono Nerd Font",
"value": "InputMono Nerd Font"
},
{
"name": "InputMonoNarrow Nerd Font",
"label": "InputMonoNarrow Nerd Font",
"value": "InputMonoNarrow Nerd Font"
},
{
"name": "InputMonoCondensed Nerd Font",
"label": "InputMonoCondensed Nerd Font",
"value": "InputMonoCondensed Nerd Font"
},
{
"name": "InputMonoCompressed Nerd Font",
"label": "InputMonoCompressed Nerd Font",
"value": "InputMonoCompressed Nerd Font"
},
{
"name": "Iosevka Term",
"label": "Iosevka Term",
"value": "Iosevka Term"
},
{
"name": "Iosevka Term Extended",
"label": "Iosevka Term Extended",
"value": "Iosevka Term Extended"
},
{
"name": "Iosevka Term Slab",
"label": "Iosevka Term Slab",
"value": "Iosevka Term Slab"
},
{
"name": "Iosevka Term Slab Extended",
"label": "Iosevka Term Slab Extended",
"value": "Iosevka Term Slab Extended"
},
{
"name": "JetBrainsMono Nerd Font",
"label": "JetBrainsMono Nerd Font",
"value": "JetBrainsMono Nerd Font"
},
{
"name": "RecMonoLinear Nerd Font",
"label": "RecMonoLinear Nerd Font",
"value": "RecMonoLinear Nerd Font"
},
{
"name": "RobotoMono Nerd Font",
"label": "RobotoMono Nerd Font",
"value": "RobotoMono Nerd Font"
},
{
"name": "SauceCodePro Nerd Font",
"label": "SauceCodePro Nerd Font",
"value": "SauceCodePro Nerd Font"
},
{
"name": "SFMono Nerd Font",
"label": "SFMono Nerd Font",
"value": "SFMono Nerd Font"
},
{
"name": "VictorMono Nerd Font",
"label": "VictorMono Nerd Font",
"value": "VictorMono Nerd Font"
}
]
}
}
},
"author": "mfocko <me@mfocko.xyz>",
"description": "Allows switching of the fonts on notion.so",
"name": "notion.so",
"updateDate": 1647122045330,
"_id": "e72a8286-5c06-4827-8bd2-2245db9e3df2",
"_rev": 1648230156601,
"id": 13,
"customName": "notion.so",
"originalDigest": "7b75724f8b8b8902ee2adeb1980215c94254e041"
},
{
"enabled": true,
"installDate": 1626701683202,
"sections": [
{
"code": ""
}
],
"sourceCode": "/* ==UserStyle==\n@name Gitea\n@namespace git.mfocko.xyz/mfocko/dotfiles\n@version 1.0.0\n@description Style for Gitea that allows removal of diff highlight on pull requests.\n@author mfocko <me@mfocko.xyz>\n@preprocessor stylus\n@var select monospace-font \"Font\" [\n \"monospace*\",\n \"BlexMono Nerd Font\",\n \"CaskaydiaCovePL Nerd Font\",\n \"FiraCode Nerd Font\",\n \"Hack Nerd Font\",\n \"Hasklug Nerd Font\",\n \"Inconsolata Nerd Font\",\n \"InputMono Nerd Font\",\n \"InputMonoNarrow Nerd Font\",\n \"InputMonoCondensed Nerd Font\",\n \"InputMonoCompressed Nerd Font\",\n \"Iosevka Term\",\n \"Iosevka Term Extended\",\n \"Iosevka Term Slab\",\n \"Iosevka Term Slab Extended\",\n \"JetBrainsMono Nerd Font\",\n \"RecMonoLinear Nerd Font\",\n \"RobotoMono Nerd Font\",\n \"SauceCodePro Nerd Font\",\n \"SFMono Nerd Font\",\n \"VictorMono Nerd Font\"\n]\n@var checkbox diff-highlight \"Show diff highlighting\" 1\n==/UserStyle== */\n@-moz-document domain(\"git.mfocko.xyz\"),\ndomain(\"git.gauss.mfocko.xyz\") {\n * {\n --fonts-monospace: monospace-font !important;\n }\n\n .code-diff-split .del-code .lines-code-old,\n .code-diff-split .del-code .lines-num-old,\n .code-diff-split .del-code .lines-type-marker-old,\n .code-diff-unified .del-code,\n .code-diff-unified .del-code td,\n .code-diff-split .add-code .lines-code-new,\n .code-diff-split .add-code .lines-num-new,\n .code-diff-split .add-code .lines-type-marker-new,\n .code-diff-split .del-code .add-code.lines-code-new,\n .code-diff-split .del-code .add-code.lines-num-new,\n .code-diff-split .del-code .add-code.lines-type-marker-new,\n .code-diff-unified .add-code,\n .code-diff-unified .add-code td {\n if !diff-highlight {\n background: none;\n }\n }\n}",
"usercssData": {
"name": "Gitea",
"namespace": "git.mfocko.xyz/mfocko/dotfiles",
"version": "1.0.0",
"description": "Style for Gitea that allows removal of diff highlight on pull requests.",
"author": "mfocko <me@mfocko.xyz>",
"preprocessor": "stylus",
"vars": {
"monospace-font": {
"type": "select",
"label": "Font",
"name": "monospace-font",
"value": "monospace",
"default": "monospace",
"options": [
{
"name": "monospace",
"label": "monospace",
"value": "monospace"
},
{
"name": "BlexMono Nerd Font",
"label": "BlexMono Nerd Font",
"value": "BlexMono Nerd Font"
},
{
"name": "CaskaydiaCovePL Nerd Font",
"label": "CaskaydiaCovePL Nerd Font",
"value": "CaskaydiaCovePL Nerd Font"
},
{
"name": "FiraCode Nerd Font",
"label": "FiraCode Nerd Font",
"value": "FiraCode Nerd Font"
},
{
"name": "Hack Nerd Font",
"label": "Hack Nerd Font",
"value": "Hack Nerd Font"
},
{
"name": "Hasklug Nerd Font",
"label": "Hasklug Nerd Font",
"value": "Hasklug Nerd Font"
},
{
"name": "Inconsolata Nerd Font",
"label": "Inconsolata Nerd Font",
"value": "Inconsolata Nerd Font"
},
{
"name": "InputMono Nerd Font",
"label": "InputMono Nerd Font",
"value": "InputMono Nerd Font"
},
{
"name": "InputMonoNarrow Nerd Font",
"label": "InputMonoNarrow Nerd Font",
"value": "InputMonoNarrow Nerd Font"
},
{
"name": "InputMonoCondensed Nerd Font",
"label": "InputMonoCondensed Nerd Font",
"value": "InputMonoCondensed Nerd Font"
},
{
"name": "InputMonoCompressed Nerd Font",
"label": "InputMonoCompressed Nerd Font",
"value": "InputMonoCompressed Nerd Font"
},
{
"name": "Iosevka Term",
"label": "Iosevka Term",
"value": "Iosevka Term"
},
{
"name": "Iosevka Term Extended",
"label": "Iosevka Term Extended",
"value": "Iosevka Term Extended"
},
{
"name": "Iosevka Term Slab",
"label": "Iosevka Term Slab",
"value": "Iosevka Term Slab"
},
{
"name": "Iosevka Term Slab Extended",
"label": "Iosevka Term Slab Extended",
"value": "Iosevka Term Slab Extended"
},
{
"name": "JetBrainsMono Nerd Font",
"label": "JetBrainsMono Nerd Font",
"value": "JetBrainsMono Nerd Font"
},
{
"name": "RecMonoLinear Nerd Font",
"label": "RecMonoLinear Nerd Font",
"value": "RecMonoLinear Nerd Font"
},
{
"name": "RobotoMono Nerd Font",
"label": "RobotoMono Nerd Font",
"value": "RobotoMono Nerd Font"
},
{
"name": "SauceCodePro Nerd Font",
"label": "SauceCodePro Nerd Font",
"value": "SauceCodePro Nerd Font"
},
{
"name": "SFMono Nerd Font",
"label": "SFMono Nerd Font",
"value": "SFMono Nerd Font"
},
{
"name": "VictorMono Nerd Font",
"label": "VictorMono Nerd Font",
"value": "VictorMono Nerd Font"
}
]
},
"diff-highlight": {
"type": "checkbox",
"label": "Show diff highlighting",
"name": "diff-highlight",
"value": "1",
"default": "1",
"options": null
}
}
},
"author": "mfocko <me@mfocko.xyz>",
"description": "Style for Gitea that allows removal of diff highlight on pull requests.",
"name": "Gitea",
"updateDate": 1659780849035,
"_id": "b00f26a5-22df-42b6-9bc5-5131bffd8980",
"_rev": 1659780882575,
"id": 14,
"customName": "Gitea",
"originalDigest": "28516d76f59510ffd1b06b5a8e5b90cc13b48351"
},
{
"enabled": true,
"installDate": 1626883132671,
"sections": [
{
"code": ""
}
],
"customName": "GitLab",
"sourceCode": "/* ==UserStyle==\n@name GitLab\n@namespace git.mfocko.xyz/mfocko/dotfiles\n@version 1.0.0\n@description Style for GitLab that allows switching of the monospace font and also disabling diff highlight on merge requests.\n@author mfocko <me@mfocko.xyz>\n@preprocessor stylus\n@var select monospace-font \"Font\" [\n \"monospace*\",\n \"BlexMono Nerd Font\",\n \"CaskaydiaCovePL Nerd Font\",\n \"FiraCode Nerd Font\",\n \"Hack Nerd Font\",\n \"Hasklug Nerd Font\",\n \"Inconsolata Nerd Font\",\n \"InputMono Nerd Font\",\n \"InputMonoNarrow Nerd Font\",\n \"InputMonoCondensed Nerd Font\",\n \"InputMonoCompressed Nerd Font\",\n \"Iosevka Term\",\n \"Iosevka Term Extended\",\n \"Iosevka Term Slab\",\n \"Iosevka Term Slab Extended\",\n \"JetBrainsMono Nerd Font\",\n \"RecMonoLinear Nerd Font\",\n \"RobotoMono Nerd Font\",\n \"SauceCodePro Nerd Font\",\n \"SFMono Nerd Font\",\n \"VictorMono Nerd Font\"\n]\n@var checkbox diff-highlight \"Show diff highlighting\" 1\n==/UserStyle== */\n@-moz-document domain(\"gitlab.com\"),\ndomain(\"gitlab.fi.muni.cz\"),\ndomain(\"git.kpi.fei.tuke.sk\"),\ndomain(\"gitlab.cee.redhat.com\"),\ndomain(\"gitlab.haskell.org\"),\ndomain(\"gitlab.gnome.org\") {\n pre,\n code,\n kbd,\n samp,\n tt,\n .text-monospace,\n .gl-markdown .monospace,\n .gl-compact-markdown .monospace,\n .search-token-target-branch .value,\n .help-form .form-group .form-control,\n .help-form .form-group .search form,\n .search .help-form .form-group form,\n .file-content.code pre,\n .file-content.code pre code,\n .file-content.code .line-numbers a,\n .job-log,\n .md-suggestion-diff,\n .md code,\n .monospace,\n .commit-sha,\n .gfm-commit,\n .gfm-commit_range,\n .ref-name,\n .pipeline-number,\n .git-revision-dropdown .dropdown-content li:not(.dropdown-menu-empty-item) a,\n textarea.js-gfm-input,\n .diff-table.code,\n table.code,\n .commit-message-container,\n .file-editor .file-title,\n .mr-state-widget .label-branch,\n .discussion-reply-holder .reply-placeholder-text-field,\n .git-clone-holder .form-control,\n .git-clone-holder .search form,\n .search .git-clone-holder form,\n .prometheus-svg-container > svg .deploy-info-text-link,\n .tui-editor-defaultUI .te-md-container .CodeMirror *,\n .project-mirror-settings .known-hosts,\n .gl-font-monospace {\n font-family: monospace-font !important;\n }\n\n :root {\n --font-family-monospace: monospace-font !important;\n }\n\n * [style *=\" monospace\"] {\n font-family: monospace-font !important;\n }\n\n .code.dark .line_holder .diff-line-num.new,\n .code.dark .line_holder .line-coverage.new,\n .code.dark .line_holder .line_content.new,\n\n .code.dark .line_holder .diff-line-num.old,\n .code.dark .line_holder .line-coverage.old,\n .code.dark .line_holder .line_content.old {\n if !diff-highlight {\n background: none;\n }\n }\n}",
"usercssData": {
"name": "GitLab",
"namespace": "git.mfocko.xyz/mfocko/dotfiles",
"version": "1.0.0",
"description": "Style for GitLab that allows switching of the monospace font and also disabling diff highlight on merge requests.",
"author": "mfocko <me@mfocko.xyz>",
"preprocessor": "stylus",
"vars": {
"monospace-font": {
"type": "select",
"label": "Font",
"name": "monospace-font",
"value": "monospace",
"default": "monospace",
"options": [
{
"name": "monospace",
"label": "monospace",
"value": "monospace"
},
{
"name": "BlexMono Nerd Font",
"label": "BlexMono Nerd Font",
"value": "BlexMono Nerd Font"
},
{
"name": "CaskaydiaCovePL Nerd Font",
"label": "CaskaydiaCovePL Nerd Font",
"value": "CaskaydiaCovePL Nerd Font"
},
{
"name": "FiraCode Nerd Font",
"label": "FiraCode Nerd Font",
"value": "FiraCode Nerd Font"
},
{
"name": "Hack Nerd Font",
"label": "Hack Nerd Font",
"value": "Hack Nerd Font"
},
{
"name": "Hasklug Nerd Font",
"label": "Hasklug Nerd Font",
"value": "Hasklug Nerd Font"
},
{
"name": "Inconsolata Nerd Font",
"label": "Inconsolata Nerd Font",
"value": "Inconsolata Nerd Font"
},
{
"name": "InputMono Nerd Font",
"label": "InputMono Nerd Font",
"value": "InputMono Nerd Font"
},
{
"name": "InputMonoNarrow Nerd Font",
"label": "InputMonoNarrow Nerd Font",
"value": "InputMonoNarrow Nerd Font"
},
{
"name": "InputMonoCondensed Nerd Font",
"label": "InputMonoCondensed Nerd Font",
"value": "InputMonoCondensed Nerd Font"
},
{
"name": "InputMonoCompressed Nerd Font",
"label": "InputMonoCompressed Nerd Font",
"value": "InputMonoCompressed Nerd Font"
},
{
"name": "Iosevka Term",
"label": "Iosevka Term",
"value": "Iosevka Term"
},
{
"name": "Iosevka Term Extended",
"label": "Iosevka Term Extended",
"value": "Iosevka Term Extended"
},
{
"name": "Iosevka Term Slab",
"label": "Iosevka Term Slab",
"value": "Iosevka Term Slab"
},
{
"name": "Iosevka Term Slab Extended",
"label": "Iosevka Term Slab Extended",
"value": "Iosevka Term Slab Extended"
},
{
"name": "JetBrainsMono Nerd Font",
"label": "JetBrainsMono Nerd Font",
"value": "JetBrainsMono Nerd Font"
},
{
"name": "RecMonoLinear Nerd Font",
"label": "RecMonoLinear Nerd Font",
"value": "RecMonoLinear Nerd Font"
},
{
"name": "RobotoMono Nerd Font",
"label": "RobotoMono Nerd Font",
"value": "RobotoMono Nerd Font"
},
{
"name": "SauceCodePro Nerd Font",
"label": "SauceCodePro Nerd Font",
"value": "SauceCodePro Nerd Font"
},
{
"name": "SFMono Nerd Font",
"label": "SFMono Nerd Font",
"value": "SFMono Nerd Font"
},
{
"name": "VictorMono Nerd Font",
"label": "VictorMono Nerd Font",
"value": "VictorMono Nerd Font"
}
]
},
"diff-highlight": {
"type": "checkbox",
"label": "Show diff highlighting",
"name": "diff-highlight",
"value": null,
"default": "1",
"options": null
}
}
},
"author": "mfocko <me@mfocko.xyz>",
"description": "Style for GitLab that allows switching of the monospace font and also disabling diff highlight on merge requests.",
"name": "GitLab",
"updateDate": 1659780872343,
"_id": "679e1540-76cc-4116-8e0d-03c24e9c7d78",
"_rev": 1659882327332,
"id": 15,
"originalDigest": "f076c1d85c4b2df3c73e4a015c5aa4b97e0471e0"
},
{
"enabled": true,
"installDate": 1626955622290,
"sections": [
{
"code": ""
}
],
"customName": "github.com",
"sourceCode": "/* ==UserStyle==\n@name github.com\n@namespace git.mfocko.xyz/mfocko/dotfiles\n@version 1.0.0\n@description Style that allows changing monospace font on the GitHub\n@author mfocko <me@mfocko.xyz>\n@var select monospace-font \"Font\" [\n \"monospace*\",\n \"BlexMono Nerd Font\",\n \"CaskaydiaCovePL Nerd Font\",\n \"FiraCode Nerd Font\",\n \"Hack Nerd Font\",\n \"Hasklug Nerd Font\",\n \"Inconsolata Nerd Font\",\n \"InputMono Nerd Font\",\n \"InputMonoNarrow Nerd Font\",\n \"InputMonoCondensed Nerd Font\",\n \"InputMonoCompressed Nerd Font\",\n \"Iosevka Term\",\n \"Iosevka Term Extended\",\n \"Iosevka Term Slab\",\n \"Iosevka Term Slab Extended\",\n \"JetBrainsMono Nerd Font\",\n \"RecMonoLinear Nerd Font\",\n \"RobotoMono Nerd Font\",\n \"SauceCodePro Nerd Font\",\n \"SFMono Nerd Font\",\n \"VictorMono Nerd Font\"\n]\n==/UserStyle== */\n@-moz-document domain(\"github.com\") {\n pre,\n code,\n kbd,\n var,\n tt,\n .blob-code-inner,\n .file-info,\n .text-mono,\n .commit-ref,\n .blob-num,\n .branch-name,\n .commit .sha-block,\n .commit .sha,\n textarea,\n .input-monospace {\n font-family: var(--monospace-font) !important;\n }\n}",
"usercssData": {
"name": "github.com",
"namespace": "git.mfocko.xyz/mfocko/dotfiles",
"version": "1.0.0",
"description": "Style that allows changing monospace font on the GitHub",
"author": "mfocko <me@mfocko.xyz>",
"vars": {
"monospace-font": {
"type": "select",
"label": "Font",
"name": "monospace-font",
"value": "monospace",
"default": "monospace",
"options": [
{
"name": "monospace",
"label": "monospace",
"value": "monospace"
},
{
"name": "BlexMono Nerd Font",
"label": "BlexMono Nerd Font",
"value": "BlexMono Nerd Font"
},
{
"name": "CaskaydiaCovePL Nerd Font",
"label": "CaskaydiaCovePL Nerd Font",
"value": "CaskaydiaCovePL Nerd Font"
},
{
"name": "FiraCode Nerd Font",
"label": "FiraCode Nerd Font",
"value": "FiraCode Nerd Font"
},
{
"name": "Hack Nerd Font",
"label": "Hack Nerd Font",
"value": "Hack Nerd Font"
},
{
"name": "Hasklug Nerd Font",
"label": "Hasklug Nerd Font",
"value": "Hasklug Nerd Font"
},
{
"name": "Inconsolata Nerd Font",
"label": "Inconsolata Nerd Font",
"value": "Inconsolata Nerd Font"
},
{
"name": "InputMono Nerd Font",
"label": "InputMono Nerd Font",
"value": "InputMono Nerd Font"
},
{
"name": "InputMonoNarrow Nerd Font",
"label": "InputMonoNarrow Nerd Font",
"value": "InputMonoNarrow Nerd Font"
},
{
"name": "InputMonoCondensed Nerd Font",
"label": "InputMonoCondensed Nerd Font",
"value": "InputMonoCondensed Nerd Font"
},
{
"name": "InputMonoCompressed Nerd Font",
"label": "InputMonoCompressed Nerd Font",
"value": "InputMonoCompressed Nerd Font"
},
{
"name": "Iosevka Term",
"label": "Iosevka Term",
"value": "Iosevka Term"
},
{
"name": "Iosevka Term Extended",
"label": "Iosevka Term Extended",
"value": "Iosevka Term Extended"
},
{
"name": "Iosevka Term Slab",
"label": "Iosevka Term Slab",
"value": "Iosevka Term Slab"
},
{
"name": "Iosevka Term Slab Extended",
"label": "Iosevka Term Slab Extended",
"value": "Iosevka Term Slab Extended"
},
{
"name": "JetBrainsMono Nerd Font",
"label": "JetBrainsMono Nerd Font",
"value": "JetBrainsMono Nerd Font"
},
{
"name": "RecMonoLinear Nerd Font",
"label": "RecMonoLinear Nerd Font",
"value": "RecMonoLinear Nerd Font"
},
{
"name": "RobotoMono Nerd Font",
"label": "RobotoMono Nerd Font",
"value": "RobotoMono Nerd Font"
},
{
"name": "SauceCodePro Nerd Font",
"label": "SauceCodePro Nerd Font",
"value": "SauceCodePro Nerd Font"
},
{
"name": "SFMono Nerd Font",
"label": "SFMono Nerd Font",
"value": "SFMono Nerd Font"
},
{
"name": "VictorMono Nerd Font",
"label": "VictorMono Nerd Font",
"value": "VictorMono Nerd Font"
}
]
}
}
},
"author": "mfocko <me@mfocko.xyz>",
"description": "Style that allows changing monospace font on the GitHub",
"name": "github.com",
"updateDate": 1647122031896,
"_id": "3b50c750-0f6e-4d80-be7b-d84a43c3a730",
"_rev": 1653554386095,
"id": 16,
"originalDigest": "5a057886983323492e5825a79250f9fcb7587cb3"
},
{
"enabled": true,
"installDate": 1627574254388,
"sections": [
{
"code": ""
}
],
"sourceCode": "/* ==UserStyle==\n@name lists.fedoraproject.org\n@namespace git.mfocko.xyz/mfocko/dotfiles\n@version 1.0.0\n@description Changes default font for the email body.\n@author mfocko <me@mfocko.xyz>\n@var select monospace-font \"Font\" [\n \"monospace*\",\n \"BlexMono Nerd Font\",\n \"CaskaydiaCovePL Nerd Font\",\n \"FiraCode Nerd Font\",\n \"Hack Nerd Font\",\n \"Hasklug Nerd Font\",\n \"Inconsolata Nerd Font\",\n \"InputMono Nerd Font\",\n \"InputMonoNarrow Nerd Font\",\n \"InputMonoCondensed Nerd Font\",\n \"InputMonoCompressed Nerd Font\",\n \"Iosevka Term\",\n \"Iosevka Term Extended\",\n \"Iosevka Term Slab\",\n \"Iosevka Term Slab Extended\",\n \"JetBrainsMono Nerd Font\",\n \"RecMonoLinear Nerd Font\",\n \"RobotoMono Nerd Font\",\n \"SauceCodePro Nerd Font\",\n \"SFMono Nerd Font\",\n \"VictorMono Nerd Font\"\n]\n==/UserStyle== */\n@-moz-document domain(\"lists.fedoraproject.org\") {\n .email-body {\n font-family: var(--monospace-font);\n }\n}",
"usercssData": {
"name": "lists.fedoraproject.org",
"namespace": "git.mfocko.xyz/mfocko/dotfiles",
"version": "1.0.0",
"description": "Changes default font for the email body.",
"author": "mfocko <me@mfocko.xyz>",
"vars": {
"monospace-font": {
"type": "select",
"label": "Font",
"name": "monospace-font",
"value": "monospace",
"default": "monospace",
"options": [
{
"name": "monospace",
"label": "monospace",
"value": "monospace"
},
{
"name": "BlexMono Nerd Font",
"label": "BlexMono Nerd Font",
"value": "BlexMono Nerd Font"
},
{
"name": "CaskaydiaCovePL Nerd Font",
"label": "CaskaydiaCovePL Nerd Font",
"value": "CaskaydiaCovePL Nerd Font"
},
{
"name": "FiraCode Nerd Font",
"label": "FiraCode Nerd Font",
"value": "FiraCode Nerd Font"
},
{
"name": "Hack Nerd Font",
"label": "Hack Nerd Font",
"value": "Hack Nerd Font"
},
{
"name": "Hasklug Nerd Font",
"label": "Hasklug Nerd Font",
"value": "Hasklug Nerd Font"
},
{
"name": "Inconsolata Nerd Font",
"label": "Inconsolata Nerd Font",
"value": "Inconsolata Nerd Font"
},
{
"name": "InputMono Nerd Font",
"label": "InputMono Nerd Font",
"value": "InputMono Nerd Font"
},
{
"name": "InputMonoNarrow Nerd Font",
"label": "InputMonoNarrow Nerd Font",
"value": "InputMonoNarrow Nerd Font"
},
{
"name": "InputMonoCondensed Nerd Font",
"label": "InputMonoCondensed Nerd Font",
"value": "InputMonoCondensed Nerd Font"
},
{
"name": "InputMonoCompressed Nerd Font",
"label": "InputMonoCompressed Nerd Font",
"value": "InputMonoCompressed Nerd Font"
},
{
"name": "Iosevka Term",
"label": "Iosevka Term",
"value": "Iosevka Term"
},
{
"name": "Iosevka Term Extended",
"label": "Iosevka Term Extended",
"value": "Iosevka Term Extended"
},
{
"name": "Iosevka Term Slab",
"label": "Iosevka Term Slab",
"value": "Iosevka Term Slab"
},
{
"name": "Iosevka Term Slab Extended",
"label": "Iosevka Term Slab Extended",
"value": "Iosevka Term Slab Extended"
},
{
"name": "JetBrainsMono Nerd Font",
"label": "JetBrainsMono Nerd Font",
"value": "JetBrainsMono Nerd Font"
},
{
"name": "RecMonoLinear Nerd Font",
"label": "RecMonoLinear Nerd Font",
"value": "RecMonoLinear Nerd Font"
},
{
"name": "RobotoMono Nerd Font",
"label": "RobotoMono Nerd Font",
"value": "RobotoMono Nerd Font"
},
{
"name": "SauceCodePro Nerd Font",
"label": "SauceCodePro Nerd Font",
"value": "SauceCodePro Nerd Font"
},
{
"name": "SFMono Nerd Font",
"label": "SFMono Nerd Font",
"value": "SFMono Nerd Font"
},
{
"name": "VictorMono Nerd Font",
"label": "VictorMono Nerd Font",
"value": "VictorMono Nerd Font"
}
]
}
}
},
"author": "mfocko <me@mfocko.xyz>",
"description": "Changes default font for the email body.",
"name": "lists.fedoraproject.org",
"updateDate": 1647122041883,
"_id": "e9b78d61-a2c4-4158-bb93-efd1ff920391",
"_rev": 1653308418088,
"id": 17,
"originalDigest": "2a518a8eef791a34329e558ecb68fb5a2aa8aa09"
}
]

12
group_vars/all/vars Normal file
View file

@ -0,0 +1,12 @@
target_user: "mfocko"
target_group: "{{ target_user }}"
gitlab_login: "{{ target_user }}"
fullname: "Matej Focko"
git_email: "{{ vault_git_email }}"
gpg_signingkey: "7C47D46246790496"
hashicorp_vault_address: "{{ vault_hashicorp_vault_address }}"
vaultwarden_address: "{{ vault_vaultwarden_address }}"
wg_admin_ip: "{{ vault_wg_admin_ip }}"
wg_connections: "{{ vault_wg_connections }}"

28
group_vars/all/vault Normal file
View file

@ -0,0 +1,28 @@
$ANSIBLE_VAULT;1.1;AES256
63376231613461376465633862633737343864636662306262303530303165623730613833323961
6233383266366236326435656134656437356539326533390a636631613339373366346338666436
38633938316237626662666363343230663533633565643838323137306434376539353439306339
3435623631323865630a333834343066363837643061313063666632383962396435326530633239
30396561643634396632386433633263323830646463643835626639313139663332653638353862
33616434363635396462343533656234393662373533666662623763633363636233626436663931
33633439323531663634613834396330653636353733366336303836646230373165663833363134
39623339353436373862333736353133353331623239663961313835666166323233643964646138
34656332663534626636323531333563653263366330346665663739373335356631386562353531
32613765316661303034616366656462376561363432396663646565353230316238366336376466
32663264313531393136363832393364616538646131653561653762366430396437396361376132
66633035663334323762396361326538343032356432333766346538653864313530653162653131
66383461383036306137343638373831633265303638643366393837373332623538326364643739
32316464376535643933363935383336663438373132643233346133383232653363373337323634
36356531623838306262333733306639336538323630656438383836323437373938373139396131
33643361326362643638306162336132626135393362373431306137383261643335626534353730
32626630633135656432313737326238343264333465313434633961383166313162656666626639
34336438353838376530306630326635633262616631653436313739393438663162313265626431
35333033396265356166356162646462376532616431663530653664323838343833663464653035
31336436316631616135326233363235303032346161393366323930623430376333636661623737
39613464653165366230383539366464336639383666636437323337666566613836376537656466
32346161386163363665373633663961333435613636376165386634366331393835306537323033
39353963633061616466323636396536643338356361353865313139396135663836636162343165
65386162343539336437643630323631353230396566616563613865613261383835353862313134
37336236393862656636376665646466623862633732663833616535373737613538626437303935
65633539663834333564386638626432316166616630653333326431643231626331666634383236
393965363664366531313766383735323335

15
group_vars/desktops/vars Normal file
View file

@ -0,0 +1,15 @@
sshd_port: 22
sshd_sign_host_keys: false
sshd_auth_password_authentication: "yes"
flatpak_apps:
- "com.chatterino.chatterino/{{ ansible_architecture }}/stable"
- com.discordapp.Discord
- com.spotify.Client
# - net.ankiweb.Anki
- org.gnome.DejaDup
- org.mozilla.Thunderbird
# - org.raspberrypi.rpi-imager
- org.telegram.desktop
# - org.x.Warpinator
- org.flameshot.Flameshot

6
group_vars/servers/vars Normal file
View file

@ -0,0 +1,6 @@
certbot_email: "{{ vault_certbot_email }}"
host_fqdn: "{{ vault_host_fqdn }}"
porkbun_apikey: "{{ vault_porkbun_apikey }}"
porkbun_secretapikey: "{{ vault_porkbun_secretapikey }}"

7
group_vars/servers/vault Normal file
View file

@ -0,0 +1,7 @@
$ANSIBLE_VAULT;1.1;AES256
65363533346631623966613439373365316565326561363833373232633735306538386635306133
3065663736356532656637623031363737346137633534660a613064316533613063663939303966
61386430333631656634653431353337396633303165346462306362336534303339383731313037
3666333931383966320a316565383835323235353230326665636365333330646638366662383937
30626434663564393239613961333761653661643933303264313530366263616538373832343234
3030303234623935383262653236393335363834383838316530

1
host_vars/ampere/vars Normal file
View file

@ -0,0 +1 @@
git_email: mfocko@redhat.com

6
host_vars/ampere/vault Normal file
View file

@ -0,0 +1,6 @@
$ANSIBLE_VAULT;1.1;AES256
37346330376565653933653934653564643163356637666632393964366632363336353463323432
3765303739303338326463396635653834396361316331340a326239666464363739363562613233
30353039313564353866663838626366663064633332313662656238323262393131626462373064
6566376239356530300a303362633534636565386636393764396362653263323362306264383461
31363065383436313062336338303762316164663036393533376130643138646237

6
host_vars/hertz/vault Normal file
View file

@ -0,0 +1,6 @@
$ANSIBLE_VAULT;1.1;AES256
61353931363939383464363938643136373433643736333361646566393863663136336162643962
3038666635616462623231656565663764643666663536390a316232623638396239636234376330
64663638363766343536373236366434356135366435336661393935396161393161626361313662
6664343835393263310a623439323739666362356335653538646331316331613165393263343039
34363335393961363265646263653138346563633339653039613831366565326638

View file

@ -0,0 +1,10 @@
system_sshd_port: 22022
certbot_domains:
- mountainside.mfocko.xyz
- '*.mountainside.mfocko.xyz'
ddns_domain: "mfocko.xyz"
ddns_subdomains:
- mountainside
- '*.mountainside'

View file

@ -0,0 +1,18 @@
$ANSIBLE_VAULT;1.1;AES256
36636438356436373332646664346661373963643733333236363633643064623636663239383965
3635646338663966303232306532393934336261646537300a363838643037656339393937366633
66303139376663626136353838353961626533623031316565393639363538636666633633656532
6533643435663638380a663565313230326166343431666266663737393032326334633537653763
39323464636231333931646430313539613332623435323833643763333637643438633431303166
38386434323565343266663331313664316333373032613238326139333038383134336134316666
62633364613830323935653839373235376566393863363565376463346263653837643534376333
32666233613036616366363263353030633966343066623731343763313537373433663266393362
32376636313465373932633435306363313262613161353234313063396362333732343864373964
37323333356235336530343761316335623366646536623233353062396439613834663963326230
33376235626165346530623931663832633363373139323237353664663562336235366538623538
39636230326639613637653431666564343831663438623738323635343237656463333637306563
36346131363737613633383763333032373635393730626435343565353065653265653563646562
38366630373166373266633030323066653866363238323738666137656435653133643336316463
63666236343534303636643630613838336466623530613436356362333732303666636239663665
38396166333837393737303138636133323933613932313030386664303865626130626661663337
35613532613062346435343330633232393038303862326632303033623031306433

6
host_vars/ohm/vault Normal file
View file

@ -0,0 +1,6 @@
$ANSIBLE_VAULT;1.1;AES256
39613963623737303136636165366264616163393832663536353438303531326537626530383739
3635393366636431636232663433616437313037326430340a323865383730653761323939643832
64613364663265616239333465336232326165633539396538363137303132633064396239643134
3733353132613664310a393830626335623236626364353530386631396261373731323464656235
35663438656465626364376335353831613439363335343633613339393733613365

6
host_vars/pascal/vault Normal file
View file

@ -0,0 +1,6 @@
$ANSIBLE_VAULT;1.1;AES256
37343037373839623562376137666464336335333264653438343536336365646566383730313439
3133646234353136353361643261393461643863363533370a326539376438303663323032633938
35393162346338646464356535373337333364636333623531316638386363626365613962346461
6435313634376330350a636632373533323762656131336431656266303136373031313932343963
66323135373033363262613633353731386135646138346265653237343438376462

3
host_vars/poincare/vars Normal file
View file

@ -0,0 +1,3 @@
certbot_domains:
- mfocko.xyz
- '*.mfocko.xyz'

16
host_vars/poincare/vault Normal file
View file

@ -0,0 +1,16 @@
$ANSIBLE_VAULT;1.1;AES256
32373735633265643033656563343839666566353330653231353538646537643363373438636664
3535373337356161653838653734616431336539623338630a663766393436343964623737663064
36323130313462306333663932386438613731336163343434333833313065366130313462633532
6533663439313565310a623161333466376166656630323636366435336334316635623138353761
36346539646632326166643935623137363964383036373632616466396239346533626239356565
37613331613238336561326161343163303733393262303230663732386334323232353037396334
34326633663031613837353464616436666663623733386463306164393562613061383031623137
35616564396562653163653938353163306362666530373663373361383434323962656236326164
61376434643365633863363833323665363662633638626663356164383864353064393163383532
65613739373665396333326631323663316561383932666662376137316636363536376532336632
65333562626530643835636561376166653732343731633737363237313263313464656162623138
30623939373930316239366336316466393333656365326135393964396538656638663066393832
65623438343562343332313438306235363839383136376333393933303730316265303133373939
62303838313036333262616438303263663666393063393030646336343239383631396130346361
313061323037333237623965396362373936

16
inventory Normal file
View file

@ -0,0 +1,16 @@
[ssh_only]
# FI
aisa
anxur
# FIT
merlin
[servers]
poincare # VPS
mountainside # Raspberry Pi
[desktops]
ampere # X1 G9 (RH)
hertz # X570
ohm # T490

View file

@ -1,23 +0,0 @@
---
desktops:
hosts:
hertz:
ampere:
git_email: "mfocko@redhat.com"
ohm:
vars:
sshd_port: 22
sshd_sign_host_keys: false
sshd_auth_password_authentication: "yes"
flatpak_apps:
- "com.chatterino.chatterino/{{ ansible_architecture }}/stable"
- com.discordapp.Discord
- com.spotify.Client
# - net.ankiweb.Anki
- org.gnome.DejaDup
- org.mozilla.Thunderbird
# - org.raspberrypi.rpi-imager
- org.telegram.desktop
# - org.x.Warpinator

View file

@ -1,9 +0,0 @@
---
all:
vars:
target_user: "mfocko"
target_group: "{{ target_user }}"
gitlab_login: "{{ target_user }}"
fullname: "Matej Focko"
git_email: "me@mfocko.xyz"
gpg_signingkey: "7C47D46246790496"

View file

@ -1,9 +0,0 @@
---
servers:
hosts:
poincare:
maxwell:
system_sshd_port: 6969
vars:
cloudflare_token: None

View file

@ -1,6 +0,0 @@
---
ssh_only:
hosts:
aisa:
anxur:
merlin:

View file

@ -72,6 +72,11 @@
- role: terminals/kitty - role: terminals/kitty
tags: kitty tags: kitty
# Install Ptyxis terminal
- role: terminals/ptyxis
when: ansible_distribution != "Ubuntu"
tags: ptyxis
# Install fonts # Install fonts
- role: fonts - role: fonts
tags: fonts tags: fonts

View file

@ -1,8 +1,8 @@
--- ---
- name: Install script for toolbox name retrieval - name: Install script for toolbox/distrobox name retrieval
ansible.builtin.copy: ansible.builtin.copy:
src: files/toolbox_name.sh src: files/boxname.sh
dest: ~/.local/bin/toolbox_name dest: ~/.local/bin/boxname
mode: 0700 mode: 0700
- name: Install script for paste.sr.ht - name: Install script for paste.sr.ht

View file

@ -9,6 +9,7 @@
loop: loop:
- ~/.local/bin - ~/.local/bin
- ~/.local/share - ~/.local/share
- ~/.local/share/applications
- ~/.ssh - ~/.ssh
- name: Create empty file for tokens - name: Create empty file for tokens

View file

@ -0,0 +1,13 @@
---
# List of domains to be certified by Certbot
certbot_domains: []
# Email to be used when requesting the Let's Encrypt certificate
certbot_email: None
# Defines the frequency of running the Certbot renewal, follow OnCalendar docs
# in the systemd for syntax
certbot_frequency: weekly
# Delay for propagating of the TXT DNS records when renewing the certificates
certbot_propagation_delay: 60

View file

@ -3,5 +3,4 @@
ansible.builtin.package: ansible.builtin.package:
name: name:
- certbot - certbot
- python3-certbot-dns-cloudflare
state: present state: present

View file

@ -3,10 +3,39 @@
ansible.builtin.include_tasks: install.yml ansible.builtin.include_tasks: install.yml
tags: install tags: install
- name: Install the Cloudflare secrets - name: Install the CLI configuration for Certbot
ansible.builtin.template: ansible.builtin.template:
src: templates/cloudflare.ini src: templates/cli.ini
dest: /root/.secrets/cloudflare.ini dest: /etc/letsencrypt/cli.ini
mode: 0600 mode: 0600
owner: root owner: root
group: root group: root
- name: Create the file with Porkbun secrets
ansible.builtin.template:
src: templates/porkbun.ini
dest: /etc/porkbun.ini
mode: 0600
- name: Install the Porkbun Certbot container definition (quadlet)
ansible.builtin.template:
src: templates/certbot.container
dest: /etc/containers/systemd/certbot.container
mode: 0644
owner: root
group: root
- name: Install the timer for the Certbot quadlet
ansible.builtin.template:
src: templates/certbot.timer
dest: /etc/systemd/system/certbot.timer
mode: 0644
owner: root
group: root
- name: Enable the timer
ansible.builtin.systemd_service:
daemon_reload: true
enabled: true
name: certbot.timer
state: "started"

View file

@ -0,0 +1,12 @@
[Unit]
Description=Certbot renewal
[Container]
Image=docker.io/infinityofspace/certbot_dns_porkbun:latest
Volume=/etc/letsencrypt:/etc/letsencrypt:z
Volume=/var/log/letsencrypt:/var/log/letsencrypt:z
Volume=/etc/porkbun.ini:/conf/porkbun.ini:z
Exec=certonly -d "{{ ','.join(certbot_domains) }}"
[Service]
Restart=on-failure

View file

@ -0,0 +1,11 @@
[Unit]
Description=Run certbot once a week
[Timer]
OnCalendar={{ certbot_frequency }}
AccuracySec=1h
Persistent=true
RandomizedDelaySec=100min
[Install]
WantedBy=timers.target

View file

@ -0,0 +1,10 @@
email = {{ certbot_email }}
agree-tos = true
non-interactive = true
preferred-challenges = dns
authenticator = dns-porkbun
dns-porkbun-credentials = /conf/porkbun.ini
dns-porkbun-propagation-seconds = {{ certbot_propagation_delay }}

View file

@ -1 +0,0 @@
dns_cloudflare_api_token = {{ cloudflare_token }}

View file

@ -0,0 +1,2 @@
dns_porkbun_key={{ porkbun_apikey }}
dns_porkbun_secret={{ porkbun_secretapikey }}

View file

@ -15,6 +15,7 @@
immediate: true immediate: true
permanent: true permanent: true
state: enabled state: enabled
when: ansible_facts.services['firewalld'] is defined
tags: firewall tags: firewall
- name: Enable cups - name: Enable cups

View file

@ -0,0 +1,6 @@
---
# Domain for which the DDNS manages DDNS entries
ddns_domain: None
# List of all subdomains on the said domain for which the IP should be set
ddns_subdomains: []

View file

@ -1,7 +0,0 @@
[Unit]
Description=Run inadyn in a container to update DNS
After=network.target
[Service]
Type=oneshot
ExecStart=podman run --rm -v "/etc/inadyn.conf:/etc/inadyn.conf" -v "/var/cache/inadyn:/var/cache/inadyn" docker.io/troglobit/inadyn:latest -1 --cache-dir=/var/cache/inadyn

View file

@ -1,10 +0,0 @@
[Unit]
Description=Run inadyn every 15 minutes
[Timer]
OnCalendar=*:00,15,30,45:00
RandomizedDelaySec=1h
Persistent=true
[Install]
WantedBy=timers.target

View file

@ -1,34 +1,23 @@
--- ---
- name: Install the config file - name: Install the config file for DDNS
ansible.builtin.template: ansible.builtin.template:
src: templates/inadyn.conf src: templates/ddns.ini
dest: /etc/inadyn.conf dest: /etc/ddns.ini
mode: 0600 mode: 0600
owner: root owner: root
group: root group: root
- name: Create the cache directory - name: Install the DDNS quadlet
ansible.builtin.file: ansible.builtin.template:
path: /var/cache/inadyn src: templates/ddns.container
state: directory dest: /etc/containers/systemd/ddns.container
mode: 0700
owner: root
group: root
- name: Install the unit files
ansible.builtin.copy:
src: files/{{ item }}
dest: /etc/systemd/system/{{ item }}
mode: 0644 mode: 0644
owner: root owner: root
group: root group: root
loop:
- ddns.service
- ddns.timer
- name: Enable the timer - name: Enable the DDNS quadlet
ansible.builtin.systemd_service: ansible.builtin.systemd_service:
daemon_reload: true daemon_reload: true
enabled: true enabled: true
name: ddns.timer name: ddns.service
state: "started" state: "started"

View file

@ -0,0 +1,12 @@
[Unit]
Description=DDNS Update
[Container]
Image=docker.io/mietzen/porkbun-ddns:latest
EnvironmentFile=/etc/ddns.ini
[Service]
Restart=always
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,4 @@
DOMAIN={{ ddns_domain }}
SUBDOMAINS={{ ','.join(ddns_subdomains) }}
APIKEY={{ porkbun_apikey }}
SECRETAPIKEY={{ porkbun_secretapikey }}

View file

@ -1,15 +0,0 @@
period = 300
allow-ipv6 = true
provider cloudflare.com:1 {
username = {{ cloudflare_zone }}
password = {{ cloudflare_token }}
hostname = {{ host_fqdn }}
}
provider cloudflare.com:2 {
username = {{ cloudflare_zone }}
password = {{ cloudflare_token }}
hostname = {{ host_fqdn }}
wildcard = true
}

View file

@ -0,0 +1 @@
install_generic.yml

View file

@ -3,6 +3,7 @@
community.general.copr: community.general.copr:
name: varlad/helix name: varlad/helix
state: enabled state: enabled
when: ansible_distribution not in ("AlmaLinux")
become: true become: true
- name: Install the Helix - name: Install the Helix

View file

@ -1 +1 @@
install_suse.yml install_generic.yml

View file

@ -38,4 +38,5 @@
cmd: bash /home/{{ target_user }}/.local/bin/code-update.sh cmd: bash /home/{{ target_user }}/.local/bin/code-update.sh
creates: /opt/VSCode-linux-x64 creates: /opt/VSCode-linux-x64
become: true become: true
when: false
tags: install tags: install

View file

@ -1,3 +0,0 @@
---
# TODO
# Consider moving it to the firewall…

View file

@ -0,0 +1,6 @@
---
- name: Install the required packages
ansible.builtin.package:
name: flatpak
state: present
become: true

View file

@ -1,4 +1,8 @@
--- ---
- name: Packages
ansible.builtin.include_tasks: install.yml
tags: install
- name: Enable Flathub - name: Enable Flathub
community.general.flatpak_remote: community.general.flatpak_remote:
name: flathub name: flathub

View file

@ -1,2 +0,0 @@
---
# TODO

View file

@ -80,6 +80,7 @@
loop: loop:
- http - http
- https - https
when: ansible_facts.services['firewalld'] is defined
tags: firewall tags: firewall
- name: Enable nginx - name: Enable nginx

View file

@ -0,0 +1,6 @@
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub

View file

@ -29,5 +29,23 @@
community.general.copr: community.general.copr:
name: mfocko/mfocko name: mfocko/mfocko
state: enabled state: enabled
chroot: "epel-9-{{ ansible_architecture }}" chroot: "epel-{{ ansible_distribution_major_version }}-{{ ansible_architecture }}"
become: true become: true
- name: Install RPMFusion RPMs with GPG keys
ansible.builtin.dnf:
name:
- "https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-{{ ansible_distribution_major_version }}.noarch.rpm"
- "https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-{{ ansible_distribution_major_version }}.noarch.rpm"
disable_gpg_check: true
state: present
tags: os-el-rpmfusion
- name: Install Google Chrome repository
ansible.builtin.copy:
src: files/google-chrome.repo
dest: /etc/yum.repos.d/google-chrome.repo
mode: 0640
owner: root
group: root
tags: os-el-chrome

View file

@ -1,2 +0,0 @@
---
# TODO

View file

@ -36,20 +36,13 @@ format = '\([$state( $progress_current/$progress_total)]($style)\) '
style = "cyan" style = "cyan"
[git_status] [git_status]
format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)" format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style) "
style = "cyan" style = "cyan"
conflicted = ""
untracked = ""
modified = ""
staged = ""
renamed = ""
deleted = ""
stashed = "≡"
[custom.toolbox] [custom.toolbox]
when = "ls /run/.containerenv" when = "ls /run/.containerenv"
symbol = " " symbol = "󰡨 "
command = "~/.local/bin/toolbox_name.sh" command = "~/.local/bin/boxname"
format = "in [$symbol($output )]($style)" format = "in [$symbol($output )]($style)"
style = "bold purple" style = "bold purple"

View file

@ -1,13 +1,18 @@
--- ---
- name: SSH family packages for co-Ubuntu
ansible.builtin.set_fact:
ssh_packages: [openssh, openssh-clients, openssh-server]
when: ansible_distribution not in ("Ubuntu", "Archlinux")
- name: SSH family packages for Ubuntu - name: SSH family packages for Ubuntu
ansible.builtin.set_fact: ansible.builtin.set_fact:
ssh_packages: [openssh-client, openssh-server] ssh_packages: [openssh-client, openssh-server]
when: ansible_distribution == "Ubuntu" when: ansible_distribution == "Ubuntu"
- name: SSH family packages for co-Ubuntu - name: SSH family package for archLinux
ansible.builtin.set_fact: ansible.builtin.set_fact:
ssh_packages: [openssh, openssh-clients, openssh-server] ssh_packages: [openssh]
when: ansible_distribution != "Ubuntu" when: ansible_distribution == "Archlinux"
- name: Install the SSH family - name: Install the SSH family
ansible.builtin.package: ansible.builtin.package:

View file

@ -41,6 +41,7 @@
immediate: true immediate: true
permanent: true permanent: true
state: enabled state: enabled
when: ansible_facts.services['firewalld'] is defined
notify: "Restart SSH server" notify: "Restart SSH server"
tags: firewall tags: firewall
@ -49,6 +50,7 @@
service: ssh service: ssh
permanent: true permanent: true
state: disabled state: disabled
when: ansible_facts.services['firewalld'] is defined
tags: firewall tags: firewall
- name: Set trusted CA - name: Set trusted CA

View file

@ -0,0 +1,6 @@
---
- name: Install Ptyxis
community.general.flatpak:
name: "https://nightly.gnome.org/repo/appstream/org.gnome.Ptyxis.Devel.flatpakref"
state: present
become: true

View file

@ -41,7 +41,7 @@
gateway: "{{ wg_gateway }}" gateway: "{{ wg_gateway }}"
peers: "{{ wg_peers }}" peers: "{{ wg_peers }}"
ansible.builtin.template: ansible.builtin.template:
src: "{{ wg_ifname }}.conf" src: "templates/wg.conf"
dest: "/etc/wireguard/{{ wg_ifname }}.conf" dest: "/etc/wireguard/{{ wg_ifname }}.conf"
owner: root owner: root
group: root group: root
@ -49,7 +49,7 @@
- name: Set up the DNS on AlmaLinux - name: Set up the DNS on AlmaLinux
ansible.builtin.include_tasks: "dns_{{ ansible_distribution }}.yml" ansible.builtin.include_tasks: "dns_{{ ansible_distribution }}.yml"
when: domain and ansible_distribution == "AlmaLinux" when: wg_domain and ansible_distribution == "AlmaLinux"
- name: Enable and start the wireguard connection - name: Enable and start the wireguard connection
ansible.builtin.service: ansible.builtin.service: