├── .ansible-lint ├── .editorconfig ├── .envrc ├── .github └── workflows │ └── main.yml ├── .gitignore ├── .vscode ├── extensions.json └── settings.json ├── LICENSE ├── README.md ├── Taskfile.yml ├── ansible.cfg ├── docs └── APPLICATIONS.md ├── inventory.ini ├── playbooks ├── docker-apps.yml ├── dotfiles.yml ├── setup.yml ├── tuxedo.yml └── update-system.yml ├── renovate.json ├── requirements.txt ├── requirements.yml ├── roles ├── alacritty │ └── tasks │ │ └── main.yml ├── algokit │ └── tasks │ │ └── main.yml ├── alpaca │ └── tasks │ │ └── main.yml ├── amberol │ └── tasks │ │ └── main.yml ├── archives │ └── tasks │ │ └── main.yml ├── asciidraw │ └── tasks │ │ └── main.yml ├── asciinema │ └── tasks │ │ └── main.yml ├── atuin │ └── tasks │ │ └── main.yml ├── audacity │ └── tasks │ │ └── main.yml ├── authenticator │ └── tasks │ │ └── main.yml ├── avvie │ └── tasks │ │ └── main.yml ├── awscli │ └── tasks │ │ └── main.yml ├── bat │ └── tasks │ │ └── main.yml ├── beets │ └── tasks │ │ └── main.yml ├── bitwarden │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── blanket │ └── tasks │ │ └── main.yml ├── bleachbit │ └── tasks │ │ └── main.yml ├── blender │ └── tasks │ │ └── main.yml ├── boxysvg │ └── tasks │ │ └── main.yml ├── brave-browser │ └── tasks │ │ └── main.yml ├── brightnessctl │ └── tasks │ │ └── main.yml ├── brotab │ └── tasks │ │ └── main.yml ├── btop │ └── tasks │ │ └── main.yml ├── btrfs │ └── tasks │ │ └── main.yml ├── cadvisor │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── calligraphy │ └── tasks │ │ └── main.yml ├── chromium │ └── tasks │ │ └── main.yml ├── clapgrep │ └── main.yml ├── cloudflare-warp │ └── tasks │ │ └── main.yml ├── cloudflared │ └── tasks │ │ └── main.yml ├── connections │ └── tasks │ │ └── main.yml ├── copier │ └── tasks │ │ └── main.yml ├── cryptomator │ └── tasks │ │ └── main.yml ├── ctop │ └── tasks │ │ └── main.yml ├── currency-converter │ └── tasks │ │ └── main.yml ├── curtail │ └── tasks │ │ └── main.yml ├── dbcli │ └── tasks │ │ └── main.yml ├── dbeaver │ └── tasks │ │ └── main.yml ├── decoder │ └── tasks │ │ └── main.yml ├── delfin │ └── tasks │ │ └── main.yml ├── denaro │ └── tasks │ │ └── main.yml ├── dev-toolbox │ └── tasks │ │ └── main.yml ├── devcontainers-cli │ └── tasks │ │ └── main.yml ├── dialect │ └── tasks │ │ └── main.yml ├── digger │ └── tasks │ │ └── main.yml ├── direnv │ └── tasks │ │ └── main.yml ├── discord │ └── tasks │ │ └── main.yml ├── distrobox │ └── tasks │ │ └── main.yml ├── dive │ └── tasks │ │ └── main.yml ├── dnf │ └── tasks │ │ └── main.yml ├── dns │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── dnscrypt-proxy.toml.j2 ├── dnsdock │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── docker │ ├── files │ │ └── daemon.json │ ├── handlers │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── doctl │ └── tasks │ │ └── main.yml ├── doggo │ └── tasks │ │ └── main.yml ├── dotfiles │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── dozzle │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── drawio │ └── tasks │ │ └── main.yml ├── eartag │ └── tasks │ │ └── main.yml ├── edge │ └── tasks │ │ └── main.yml ├── eloquent │ └── tasks │ │ └── main.yml ├── embellish │ └── tasks │ │ └── main.yml ├── errands │ └── tasks │ │ └── main.yml ├── exa │ └── tasks │ │ └── main.yml ├── eyedropper │ └── tasks │ │ └── main.yml ├── fastfetch │ └── tasks │ │ └── main.yml ├── fd │ └── tasks │ │ └── main.yml ├── feh │ └── tasks │ │ └── main.yml ├── feishin │ ├── defaults │ │ └── main.yml │ ├── files │ │ └── icon.png │ └── tasks │ │ └── main.yml ├── ffaudioconverter │ └── tasks │ │ └── main.yml ├── filezilla │ └── tasks │ │ └── main.yml ├── firefox │ └── tasks │ │ └── main.yml ├── firewall │ └── tasks │ │ └── main.yml ├── flameshot │ └── tasks │ │ └── main.yml ├── flatpak │ └── tasks │ │ └── main.yml ├── flux │ └── tasks │ │ └── main.yml ├── foliate │ └── tasks │ │ └── main.yml ├── fonts │ ├── files │ │ └── fonts │ │ │ ├── InputMono-Black.ttf │ │ │ ├── InputMono-BlackItalic.ttf │ │ │ ├── InputMono-Bold.ttf │ │ │ ├── InputMono-BoldItalic.ttf │ │ │ ├── InputMono-ExtraLight.ttf │ │ │ ├── InputMono-ExtraLightItalic.ttf │ │ │ ├── InputMono-Italic.ttf │ │ │ ├── InputMono-Light.ttf │ │ │ ├── InputMono-LightItalic.ttf │ │ │ ├── InputMono-Medium.ttf │ │ │ ├── InputMono-MediumItalic.ttf │ │ │ ├── InputMono-Regular.ttf │ │ │ ├── InputMono-Thin.ttf │ │ │ ├── InputMono-ThinItalic.ttf │ │ │ ├── JetBrainsMono-Bold-Italic.ttf │ │ │ ├── JetBrainsMono-Bold.ttf │ │ │ ├── JetBrainsMono-ExtraBold-Italic.ttf │ │ │ ├── JetBrainsMono-ExtraBold.ttf │ │ │ ├── JetBrainsMono-Italic.ttf │ │ │ ├── JetBrainsMono-Medium-Italic.ttf │ │ │ ├── JetBrainsMono-Medium.ttf │ │ │ ├── JetBrainsMono-Regular.ttf │ │ │ ├── MesloLGS NF Bold Italic.ttf │ │ │ ├── MesloLGS NF Bold-1.ttf │ │ │ ├── MesloLGS NF Italic-1.ttf │ │ │ ├── MesloLGS NF Regular.ttf │ │ │ ├── Open Sans_300.ttf │ │ │ ├── Open Sans_300italic.ttf │ │ │ ├── Open Sans_600.ttf │ │ │ ├── Open Sans_600italic.ttf │ │ │ ├── Open Sans_700.ttf │ │ │ ├── Open Sans_700italic.ttf │ │ │ ├── Open Sans_800.ttf │ │ │ ├── Open Sans_800italic.ttf │ │ │ ├── Open Sans_italic.ttf │ │ │ ├── Open Sans_regular.ttf │ │ │ ├── OperatorMono-Bold.otf │ │ │ ├── OperatorMono-Book.otf │ │ │ ├── OperatorMono-BookItalic.otf │ │ │ ├── OperatorMono-Light.otf │ │ │ ├── OperatorMono-LightItalic.otf │ │ │ ├── OperatorMono-Medium.otf │ │ │ ├── OperatorMono-MediumItalic.otf │ │ │ ├── OperatorMono-XLight.otf │ │ │ ├── OperatorMono-XLightItalic.otf │ │ │ ├── Roboto Condensed_300.ttf │ │ │ ├── Roboto Condensed_300italic.ttf │ │ │ ├── Roboto Condensed_700.ttf │ │ │ ├── Roboto Condensed_700italic.ttf │ │ │ ├── Roboto Condensed_italic.ttf │ │ │ ├── Roboto Condensed_regular.ttf │ │ │ ├── Roboto Mono_100.ttf │ │ │ ├── Roboto Mono_100italic.ttf │ │ │ ├── Roboto Mono_300.ttf │ │ │ ├── Roboto Mono_300italic.ttf │ │ │ ├── Roboto Mono_500.ttf │ │ │ ├── Roboto Mono_500italic.ttf │ │ │ ├── Roboto Mono_700.ttf │ │ │ ├── Roboto Mono_700italic.ttf │ │ │ ├── Roboto Mono_italic.ttf │ │ │ ├── Roboto Mono_regular.ttf │ │ │ ├── Roboto_100.ttf │ │ │ ├── Roboto_100italic.ttf │ │ │ ├── Roboto_300.ttf │ │ │ ├── Roboto_300italic.ttf │ │ │ ├── Roboto_500.ttf │ │ │ ├── Roboto_500italic.ttf │ │ │ ├── Roboto_700.ttf │ │ │ ├── Roboto_700italic.ttf │ │ │ ├── Roboto_900.ttf │ │ │ ├── Roboto_900italic.ttf │ │ │ ├── Roboto_italic.ttf │ │ │ └── Roboto_regular.ttf │ └── tasks │ │ └── main.yml ├── fractal │ └── tasks │ │ └── main.yml ├── frog │ └── tasks │ │ └── main.yml ├── fzf │ └── tasks │ │ └── main.yml ├── gcloud │ └── tasks │ │ └── main.yml ├── gearlevel │ └── tasks │ │ └── main.yml ├── ghostty │ └── tasks │ │ └── main.yml ├── gimp │ └── tasks │ │ └── main.yml ├── git │ └── tasks │ │ └── main.yml ├── glow │ └── tasks │ │ └── main.yml ├── gnome-calendar │ └── tasks │ │ └── main.yml ├── gnome-contacts │ └── tasks │ │ └── main.yml ├── gnome-desktop │ ├── files │ │ ├── autostart │ │ │ └── .gitkeep │ │ ├── face.jpg │ │ ├── fonts │ │ │ ├── InputMono-Black.ttf │ │ │ ├── InputMono-BlackItalic.ttf │ │ │ ├── InputMono-Bold.ttf │ │ │ ├── InputMono-BoldItalic.ttf │ │ │ ├── InputMono-ExtraLight.ttf │ │ │ ├── InputMono-ExtraLightItalic.ttf │ │ │ ├── InputMono-Italic.ttf │ │ │ ├── InputMono-Light.ttf │ │ │ ├── InputMono-LightItalic.ttf │ │ │ ├── InputMono-Medium.ttf │ │ │ ├── InputMono-MediumItalic.ttf │ │ │ ├── InputMono-Regular.ttf │ │ │ ├── InputMono-Thin.ttf │ │ │ ├── InputMono-ThinItalic.ttf │ │ │ ├── JetBrainsMono-Bold-Italic.ttf │ │ │ ├── JetBrainsMono-Bold.ttf │ │ │ ├── JetBrainsMono-ExtraBold-Italic.ttf │ │ │ ├── JetBrainsMono-ExtraBold.ttf │ │ │ ├── JetBrainsMono-Italic.ttf │ │ │ ├── JetBrainsMono-Medium-Italic.ttf │ │ │ ├── JetBrainsMono-Medium.ttf │ │ │ ├── JetBrainsMono-Regular.ttf │ │ │ ├── MesloLGS NF Bold Italic.ttf │ │ │ ├── MesloLGS NF Bold-1.ttf │ │ │ ├── MesloLGS NF Italic-1.ttf │ │ │ ├── MesloLGS NF Regular.ttf │ │ │ ├── Open Sans_300.ttf │ │ │ ├── Open Sans_300italic.ttf │ │ │ ├── Open Sans_600.ttf │ │ │ ├── Open Sans_600italic.ttf │ │ │ ├── Open Sans_700.ttf │ │ │ ├── Open Sans_700italic.ttf │ │ │ ├── Open Sans_800.ttf │ │ │ ├── Open Sans_800italic.ttf │ │ │ ├── Open Sans_italic.ttf │ │ │ ├── Open Sans_regular.ttf │ │ │ ├── OperatorMono-Bold.otf │ │ │ ├── OperatorMono-Book.otf │ │ │ ├── OperatorMono-BookItalic.otf │ │ │ ├── OperatorMono-Light.otf │ │ │ ├── OperatorMono-LightItalic.otf │ │ │ ├── OperatorMono-Medium.otf │ │ │ ├── OperatorMono-MediumItalic.otf │ │ │ ├── OperatorMono-XLight.otf │ │ │ ├── OperatorMono-XLightItalic.otf │ │ │ ├── Roboto Condensed_300.ttf │ │ │ ├── Roboto Condensed_300italic.ttf │ │ │ ├── Roboto Condensed_700.ttf │ │ │ ├── Roboto Condensed_700italic.ttf │ │ │ ├── Roboto Condensed_italic.ttf │ │ │ ├── Roboto Condensed_regular.ttf │ │ │ ├── Roboto Mono_100.ttf │ │ │ ├── Roboto Mono_100italic.ttf │ │ │ ├── Roboto Mono_300.ttf │ │ │ ├── Roboto Mono_300italic.ttf │ │ │ ├── Roboto Mono_500.ttf │ │ │ ├── Roboto Mono_500italic.ttf │ │ │ ├── Roboto Mono_700.ttf │ │ │ ├── Roboto Mono_700italic.ttf │ │ │ ├── Roboto Mono_italic.ttf │ │ │ ├── Roboto Mono_regular.ttf │ │ │ ├── Roboto_100.ttf │ │ │ ├── Roboto_100italic.ttf │ │ │ ├── Roboto_300.ttf │ │ │ ├── Roboto_300italic.ttf │ │ │ ├── Roboto_500.ttf │ │ │ ├── Roboto_500italic.ttf │ │ │ ├── Roboto_700.ttf │ │ │ ├── Roboto_700italic.ttf │ │ │ ├── Roboto_900.ttf │ │ │ ├── Roboto_900italic.ttf │ │ │ ├── Roboto_italic.ttf │ │ │ └── Roboto_regular.ttf │ │ ├── nautilus │ │ │ └── templates │ │ │ │ ├── HTML Document.html │ │ │ │ ├── New Casscading Style Sheet.css │ │ │ │ ├── New Java Source Document.java │ │ │ │ ├── New Markdown File.md │ │ │ │ ├── New Python Source File.py │ │ │ │ ├── New Shell Script.sh │ │ │ │ ├── New XML Document.xml │ │ │ │ └── PHP Source Document.php │ │ └── wallpaper.jpg │ └── tasks │ │ ├── autostart.yml │ │ ├── desktop-settings.yml │ │ ├── extensions.yml │ │ ├── main.yml │ │ ├── nautilus-settings.yml │ │ ├── settings.yml │ │ ├── shortcuts.yml │ │ ├── terminal-settings.yml │ │ └── theme.yml ├── gnome-music │ └── tasks │ │ └── main.yml ├── gnome-podcasts │ └── tasks │ │ └── main.yml ├── gnome-web │ └── tasks │ │ └── main.yml ├── golang │ └── tasks │ │ └── main.yml ├── goreleaser │ └── tasks │ │ └── main.yml ├── gradia │ └── tasks │ │ └── main.yml ├── grafana │ ├── defaults │ │ └── main.yml │ ├── files │ │ └── grafana │ │ │ ├── dashboards │ │ │ └── monitoring │ │ │ │ ├── cadvisor_dashboard.json │ │ │ │ ├── node_exporter_dashboard.json │ │ │ │ └── traefik_dashboard.json │ │ │ └── provisioning │ │ │ ├── dashboards │ │ │ └── dashboards.yml │ │ │ └── datasources │ │ │ └── datasources.yml │ └── tasks │ │ └── main.yml ├── graphviz │ └── tasks │ │ └── main.yml ├── grsync │ └── tasks │ │ └── main.yml ├── gum │ └── tasks │ │ └── main.yml ├── handbrake │ └── tasks │ │ └── main.yml ├── hcloud │ └── tasks │ │ └── main.yml ├── helm │ └── tasks │ │ └── main.yml ├── heynote │ ├── defaults │ │ └── main.yml │ ├── files │ │ └── icon.png │ └── tasks │ │ └── main.yml ├── hostctl │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── hostname │ └── tasks │ │ └── main.yml ├── hugo │ └── tasks │ │ └── main.yml ├── impression │ └── tasks │ │ └── main.yml ├── inkscape │ └── tasks │ │ └── main.yml ├── iotas │ └── tasks │ │ └── main.yml ├── iplookup │ └── tasks │ │ └── main.yml ├── java │ └── tasks │ │ └── main.yml ├── jdownloader │ └── tasks │ │ └── main.yml ├── jetbrains-toolbox │ ├── defaults │ │ └── main.yml │ ├── files │ │ └── jetbrains-toolbox.desktop │ └── tasks │ │ └── main.yml ├── jq │ └── tasks │ │ └── main.yml ├── jwt-tui │ └── tasks │ │ └── main.yml ├── k9s │ └── tasks │ │ └── main.yml ├── keeppassxc │ └── tasks │ │ └── main.yml ├── kepubify │ └── tasks │ │ └── main.yml ├── keyrack │ └── tasks │ │ └── main.yml ├── keysmith │ └── tasks │ │ └── main.yml ├── kind │ └── tasks │ │ └── main.yml ├── kiwix │ └── tasks │ │ └── main.yml ├── knock │ └── tasks │ │ └── main.yml ├── kodi │ └── tasks │ │ └── main.yml ├── komikku │ └── tasks │ │ └── main.yml ├── kooha │ └── tasks │ │ └── main.yml ├── ktop │ └── tasks │ │ └── main.yml ├── kubeconform │ └── tasks │ │ └── main.yml ├── kubectl-cnpg-plugin │ └── tasks │ │ └── main.yml ├── kubectl │ └── tasks │ │ └── main.yml ├── kubectx │ └── tasks │ │ └── main.yml ├── lazydocker │ └── tasks │ │ └── main.yml ├── lazygit │ └── tasks │ │ └── main.yml ├── lazyjournal │ └── tasks │ │ └── main.yml ├── lazysql │ └── tasks │ │ └── main.yml ├── lefthook │ └── tasks │ │ └── main.yml ├── libvirt │ └── tasks │ │ └── main.yml ├── lock │ └── tasks │ │ └── main.yml ├── loki │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── loki-local-config.yaml.j2 ├── mainmenu │ └── tasks │ │ └── main.yml ├── meld │ └── tasks │ │ └── main.yml ├── micro │ └── tasks │ │ └── main.yml ├── mines │ └── tasks │ │ └── main.yml ├── minitext │ └── tasks │ │ └── main.yml ├── mission-center │ └── tasks │ │ └── main.yml ├── mkcert │ └── tasks │ │ └── main.yml ├── mongodb │ └── tasks │ │ └── main.yml ├── mounts │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── mousai │ └── tasks │ │ └── main.yml ├── nak │ └── tasks │ │ └── main.yml ├── netpeek │ └── tasks │ │ └── main.yml ├── netscanner │ └── tasks │ │ └── main.yml ├── network-displays │ └── tasks │ │ └── main.yml ├── network-tools │ └── tasks │ │ └── main.yml ├── newsflash │ └── tasks │ │ └── main.yml ├── nextcloud │ └── tasks │ │ └── main.yml ├── nix │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── nixpkgs.config.nix.j2 ├── node-exporter │ └── tasks │ │ └── main.yml ├── node │ └── tasks │ │ └── main.yml ├── ntfy │ └── tasks │ │ └── main.yml ├── nvidia │ └── tasks │ │ └── main.yml ├── obfuscate │ └── tasks │ │ └── main.yml ├── obs │ └── tasks │ │ └── main.yml ├── obsidian │ └── tasks │ │ └── main.yml ├── ohmysvg │ └── tasks │ │ └── main.yml ├── ollama │ └── tasks │ │ └── main.yml ├── opensnitch │ └── tasks │ │ └── main.yml ├── ouch │ └── tasks │ │ └── main.yml ├── pandoc │ └── tasks │ │ └── main.yml ├── papers │ └── tasks │ │ └── main.yml ├── parabolic │ └── tasks │ │ └── main.yml ├── php │ └── tasks │ │ └── main.yml ├── pigment │ └── tasks │ │ └── main.yml ├── pika-backup │ └── tasks │ │ └── main.yml ├── pinta │ └── tasks │ │ └── main.yml ├── pipeline │ └── tasks │ │ └── main.yml ├── pitivi │ └── tasks │ │ └── main.yml ├── polari │ └── tasks │ │ └── main.yml ├── portainer │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── postman │ └── tasks │ │ └── main.yml ├── prometheus │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── prometheus.yml.j2 ├── promtail │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── promtail-local-config.yml.j2 ├── protonmail │ └── tasks │ │ └── main.yml ├── protonvpn │ └── tasks │ │ └── main.yml ├── proxyman │ ├── defaults │ │ └── main.yml │ ├── files │ │ └── proxyman.png │ └── tasks │ │ └── main.yml ├── python │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── qbittorrent │ └── tasks │ │ └── main.yml ├── quickemu │ └── tasks │ │ └── main.yml ├── radicle │ └── tasks │ │ └── main.yml ├── ranger │ └── tasks │ │ └── main.yml ├── rclone │ └── tasks │ │ └── main.yml ├── redis │ └── tasks │ │ └── main.yml ├── remembrance │ └── tasks │ │ └── main.yml ├── restic │ ├── tasks │ │ └── main.yml │ └── templates │ │ ├── restic-b2-backup.service.j2 │ │ ├── restic-b2-backup.timer.j2 │ │ ├── restic-b2-prune.service.j2 │ │ └── restic-b2-prune.timer.j2 ├── retroarch │ └── tasks │ │ └── main.yml ├── rigrep │ └── tasks │ │ └── main.yml ├── rofi │ └── tasks │ │ └── main.yml ├── rpmrepos │ └── tasks │ │ └── main.yml ├── ruby │ └── tasks │ │ └── main.yml ├── rust │ └── tasks │ │ └── main.yml ├── scriptkit │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── sd │ └── tasks │ │ └── main.yml ├── seabird │ └── tasks │ │ └── main.yml ├── selinux │ └── tasks │ │ └── main.yml ├── sgpt │ └── tasks │ │ └── main.yml ├── shellcheck │ └── tasks │ │ └── main.yml ├── shfmt │ └── tasks │ │ └── main.yml ├── shortwave │ └── tasks │ │ └── main.yml ├── signal │ └── tasks │ │ └── main.yml ├── slack │ └── tasks │ │ └── main.yml ├── smile │ └── tasks │ │ └── main.yml ├── snapper │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── snapper.actions.j2 ├── solaar │ └── tasks │ │ └── main.yml ├── sops │ └── tasks │ │ └── main.yml ├── sound-recorder │ └── tasks │ │ └── main.yml ├── sourcegraph │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── speedtest │ └── tasks │ │ └── main.yml ├── spotdl │ └── tasks │ │ └── main.yml ├── spotify │ └── tasks │ │ └── main.yml ├── starship │ └── tasks │ │ └── main.yml ├── steam │ └── tasks │ │ └── main.yml ├── stern │ └── tasks │ │ └── main.yml ├── stu │ └── tasks │ │ └── main.yml ├── sysd-manager │ └── tasks │ │ └── main.yml ├── systemctl-tui │ └── tasks │ │ └── main.yml ├── tactics │ └── tasks │ │ └── main.yml ├── tailscale │ └── tasks │ │ └── main.yml ├── tailspin │ └── tasks │ │ └── main.yml ├── taskfile │ └── tasks │ │ └── main.yml ├── telegram │ └── tasks │ │ └── main.yml ├── television │ └── tasks │ │ └── main.yml ├── terraform │ └── tasks │ │ └── main.yml ├── text-compare │ └── tasks │ │ └── main.yml ├── the-way │ └── tasks │ │ └── main.yml ├── ticktick │ └── tasks │ │ └── main.yml ├── tldr │ └── tasks │ │ └── main.yml ├── traefik │ ├── defaults │ │ └── main.yml │ ├── files │ │ ├── certs │ │ │ ├── dozzle.localhost-key.pem │ │ │ ├── dozzle.localhost.pem │ │ │ ├── grafana.localhost-key.pem │ │ │ ├── grafana.localhost.pem │ │ │ ├── portainer.localhost-key.pem │ │ │ ├── portainer.localhost.pem │ │ │ ├── prometheus.localhost-key.pem │ │ │ ├── prometheus.localhost.pem │ │ │ ├── sourcegraph.localhost-key.pem │ │ │ ├── sourcegraph.localhost.pem │ │ │ ├── traefik.localhost-key.pem │ │ │ └── traefik.localhost.pem │ │ ├── conf │ │ │ └── tls.yaml │ │ └── traefik.yaml │ └── tasks │ │ └── main.yml ├── trayscale │ └── tasks │ │ └── main.yml ├── tuba │ └── tasks │ │ └── main.yml ├── tubeconverter │ └── tasks │ │ └── main.yml ├── turbolift │ └── tasks │ │ └── main.yml ├── tuxedo │ └── tasks │ │ └── main.yml ├── usebruno │ └── tasks │ │ └── main.yml ├── users │ └── tasks │ │ └── main.yml ├── vagrant │ └── tasks │ │ └── main.yml ├── valuta │ └── tasks │ │ └── main.yml ├── video-trimmer │ └── tasks │ │ └── main.yml ├── vim │ └── tasks │ │ └── main.yml ├── vlc │ └── tasks │ │ └── main.yml ├── vscode │ └── tasks │ │ └── main.yml ├── watchexec │ └── tasks │ │ └── main.yml ├── waveterm │ └── tasks │ │ └── main.yml ├── weather │ └── tasks │ │ └── main.yml ├── webapps │ └── tasks │ │ └── main.yml ├── whatip │ └── tasks │ │ └── main.yml ├── whisper │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── wike │ └── tasks │ │ └── main.yml ├── wildcard │ └── tasks │ │ └── main.yml ├── wireshark │ └── tasks │ │ └── main.yml ├── xnconvert │ └── tasks │ │ └── main.yml ├── xournalpp │ └── tasks │ │ └── main.yml ├── yamllint │ └── tasks │ │ └── main.yml ├── yazi │ └── tasks │ │ └── main.yml ├── yq │ └── tasks │ │ └── main.yml ├── yt-dlp │ └── tasks │ │ └── main.yml ├── zapzap │ └── tasks │ │ └── main.yml ├── zeal │ └── tasks │ │ └── main.yml ├── zed │ └── tasks │ │ └── main.yml ├── zellij │ └── tasks │ │ └── main.yml ├── zoom │ └── tasks │ │ └── main.yml ├── zoxide │ └── tasks │ │ └── main.yml ├── zrok │ └── tasks │ │ └── main.yml └── zsh │ └── tasks │ └── main.yml ├── scripts ├── gen-mkdcert-certs.sh ├── restore_home.sh └── setup-snapper.sh ├── setup.sh └── vars └── main.yml /.ansible-lint: -------------------------------------------------------------------------------- 1 | warn_list: 2 | - '204' 3 | - '301' 4 | - '303' 5 | - '306' 6 | skip_list: 7 | - yaml[line-length] 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.{py,rst,ini}] 12 | indent_style = space 13 | indent_size = 4 14 | 15 | [*.yml] 16 | indent_style = space 17 | indent_size = 2 18 | 19 | [{Makefile,**.mk}] 20 | # Use tabs for indentation (Makefiles require tabs) 21 | indent_style = tab 22 | indent_size = 2 23 | -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | - main 8 | pull_request: 9 | branches: 10 | - master 11 | - main 12 | workflow_dispatch: 13 | 14 | concurrency: 15 | group: ${{ github.workflow }}-${{ github.ref }} 16 | cancel-in-progress: true 17 | 18 | jobs: 19 | lint: 20 | name: Lint 21 | runs-on: ubuntu-latest 22 | 23 | steps: 24 | - name: Checkout code 25 | uses: actions/checkout@v4 26 | 27 | - name: Set up Python 28 | uses: actions/setup-python@v5 29 | with: 30 | python-version: 3.x # Use the desired Python version 31 | 32 | - name: Install Dependencies 33 | run: pip install -r requirements.txt 34 | 35 | - name: Install Ansible Galaxy roles 36 | run: | 37 | ansible-galaxy install -p .ansible_galaxy/roles -r requirements.yml 38 | ansible-galaxy collection install -p .ansible_galaxy/collections -r requirements.yml 39 | 40 | - name: Run Ansible Lint 41 | run: ansible-lint playbooks/setup.yml roles 42 | 43 | - name: Check Syntax 44 | run: ansible-playbook --syntax-check playbooks/*.yml 45 | 46 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .venv 3 | .ansible_galaxy 4 | tags 5 | .history 6 | .ansible 7 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "redhat.vscode-yaml", 4 | "redhat.ansible", 5 | "adhoeric.ansible-vault", 6 | "task.vscode-task" 7 | ] 8 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "**/provision/**/*.yml": "ansible", 4 | "**/provision/**/requirements.yml": "yaml", 5 | }, 6 | "ansible.python.interpreterPath": "/bin/python" 7 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Bruno Paz 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Taskfile.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | tasks: 4 | default: 5 | cmds: 6 | - task -l 7 | 8 | dev: 9 | desc: Setup development environment 10 | cmds: 11 | - python3 -m venv .venv && source .venv/bin/activate 12 | - pip install -r requirements.txt 13 | - task galaxy 14 | 15 | galaxy: 16 | desc: Install Ansible Galaxy roles 17 | cmds: 18 | - ansible-galaxy install -p .ansible_galaxy/roles -r requirements.yml 19 | - ansible-galaxy collection install -p .ansible_galaxy/collections -r requirements.yml 20 | 21 | lint: 22 | desc: Runs Ansible Lint agains manifests 23 | cmds: 24 | - ansible-lint playbooks/setup.yml roles 25 | 26 | check: 27 | desc: Check syntax of playbooks 28 | cmds: 29 | - ansible-playbook --syntax-check playbooks/*.yml 30 | 31 | run: 32 | desc: Run main playbook 33 | cmds: 34 | - ansible-playbook --ask-become-pass 35 | 36 | run-i: 37 | desc: Run interactive playbook 38 | interactive: true 39 | silent: true 40 | cmds: 41 | - | 42 | ALL_PLAYBOOKS=$(ls playbooks/*.yml) 43 | PLAYBOOK=$(gum choose --header "Select playbook to run" ${ALL_PLAYBOOKS}) 44 | TAG=$(gum input --header "Enter tag to run") 45 | 46 | ansible-playbook --ask-become-pass ${PLAYBOOK:-setup.yml} --tags ${TAG:-all} 47 | -------------------------------------------------------------------------------- /inventory.ini: -------------------------------------------------------------------------------- 1 | local ansible_connection=local 2 | -------------------------------------------------------------------------------- /playbooks/docker-apps.yml: -------------------------------------------------------------------------------- 1 | - name: Docker apps 2 | hosts: all 3 | roles: 4 | - { role: traefik, tags: [traefik, docker-apps] } 5 | - { role: cadvisor, tags: [cadvisor, docker-app] } 6 | - { role: grafana, tags: [grafana, docker-apps] } 7 | - { role: loki, tags: [loki, docker-apps] } 8 | - { role: node-exporter, tags: [node-exporter, docker-apps] } 9 | - { role: sourcegraph, tags: [sourcegraph, docker-apps] } 10 | - { role: prometheus, tags: [prometheus, docker-apps] } 11 | - { role: promtail, tags: [promtail, docker-apps] } 12 | - { role: portainer, tags: [portainer, docker-apps] } 13 | - { role: dnsdock, tags: [dnsdock, docker-apps] } 14 | - { role: dozzle, tags: [dozzle, docker-apps] } 15 | - { role: whisper, tags: [whisper, docker-apps] } 16 | -------------------------------------------------------------------------------- /playbooks/dotfiles.yml: -------------------------------------------------------------------------------- 1 | - name: Dotfiles 2 | hosts: all 3 | vars_prompt: 4 | - name: github_token 5 | prompt: "What is your GitHub Token?" 6 | default: "{{ lookup('env','GITHUB_TOKEN') }}" 7 | private: true 8 | roles: 9 | - { role: dotfiles } 10 | -------------------------------------------------------------------------------- /playbooks/tuxedo.yml: -------------------------------------------------------------------------------- 1 | - name: Tuxedo setup 2 | hosts: all 3 | roles: 4 | - { role: tuxedo } 5 | -------------------------------------------------------------------------------- /playbooks/update-system.yml: -------------------------------------------------------------------------------- 1 | - name: Update System 2 | hosts: all 3 | tasks: 4 | - name: Update system installed packages 5 | ansible.builtin.dnf: 6 | name: "*" 7 | state: latest 8 | update_only: true 9 | update_cache: true 10 | become: true 11 | - name: Update flatpak installed packages 12 | ansible.builtin.command: flatpak update -y 13 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "config:recommended" 5 | ], 6 | "prHourlyLimit": 5, 7 | "prConcurrentLimit": 20, 8 | "labels": [ 9 | "dependencies" 10 | ], 11 | "reviewers": [ 12 | "brpaz" 13 | ] 14 | } -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | ansible~=11.0 2 | ansible-lint~=24.12 3 | github3.py~=4.0 4 | docker~=7.1 5 | selinux~=0.3 6 | pipx~=1.7 7 | requests~=2.32 8 | -------------------------------------------------------------------------------- /requirements.yml: -------------------------------------------------------------------------------- 1 | # Ansible Galaxy Roles 2 | collections: 3 | - name: community.general 4 | version: 10.2.0 5 | 6 | - name: community.docker 7 | version: 4.1.0 8 | 9 | - name: ansible.posix 10 | version: 1.5.4 11 | -------------------------------------------------------------------------------- /roles/alacritty/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: 4 | - alacritty 5 | state: present 6 | become: true 7 | -------------------------------------------------------------------------------- /roles/algokit/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.pipx: 3 | name: algokit 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/alpaca/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: com.jeffser.Alpaca 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/amberol/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Amberol 2 | community.general.flatpak: 3 | name: io.bassi.Amberol 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/archives/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: dev.geopjr.Archives 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/asciidraw/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: io.github.nokse22.asciidraw 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/asciinema/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: asciinema 4 | state: present 5 | become: true 6 | 7 | - name: Agg | Get latest release 8 | community.general.github_release: 9 | action: latest_release 10 | user: asciinema 11 | repo: agg 12 | token: '{{ github_token }}' 13 | register: release 14 | 15 | - name: Agg | Download and Install 16 | ansible.builtin.get_url: 17 | dest: '{{ bin_dir }}/agg' 18 | force: true 19 | mode: a+x 20 | url: https://github.com/asciinema/agg/releases/download/{{ release.tag }}/agg-x86_64-unknown-linux-gnu 21 | become: true 22 | -------------------------------------------------------------------------------- /roles/atuin/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Atuin | Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: atuinsh 5 | repo: atuin 6 | token: "{{ github_token }}" 7 | register: release 8 | 9 | - name: Atuin | Download 10 | ansible.builtin.unarchive: 11 | src: "https://github.com/atuinsh/atuin/releases/download/v{{ release.tag }}/atuin-x86_64-unknown-linux-gnu.tar.gz" 12 | dest: "{{ setup_dir }}" 13 | remote_src: true 14 | become: true 15 | 16 | - name: Atuin | Install 17 | ansible.builtin.copy: 18 | src: "{{ setup_dir }}/atuin" 19 | dest: "{{ bin_dir }}/atuin" 20 | mode: a+x 21 | -------------------------------------------------------------------------------- /roles/audacity/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Audacity 2 | community.general.flatpak: 3 | name: org.audacityteam.Audacity 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/authenticator/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Gnome Authenticator 2 | community.general.flatpak: 3 | name: com.belmoussaoui.Authenticator 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/avvie/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Avvie 2 | community.general.flatpak: 3 | name: com.github.taiko2k.avvie 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/awscli/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: AWS CLI | Download Installer 2 | ansible.builtin.unarchive: 3 | dest: /tmp 4 | mode: '0755' 5 | remote_src: true 6 | src: https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip 7 | 8 | - name: AWS CLI | Run install command 9 | ansible.builtin.command: ./aws/install -i /usr/local/aws-cli -b /usr/local/bin --update 10 | args: 11 | chdir: /tmp 12 | become: true 13 | -------------------------------------------------------------------------------- /roles/bat/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Bat | Install 2 | ansible.builtin.dnf: 3 | name: bat 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/beets/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install Beets 2 | ansible.builtin.dnf: 3 | name: "{{ item }}" 4 | state: present 5 | loop: 6 | - beets 7 | - beets-plugins 8 | become: true 9 | -------------------------------------------------------------------------------- /roles/bitwarden/defaults/main.yml: -------------------------------------------------------------------------------- 1 | bitwarden_cli_version: v2023.10.0 2 | -------------------------------------------------------------------------------- /roles/bitwarden/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Bitwarden CLI | Download 2 | ansible.builtin.unarchive: 3 | dest: "{{ bin_dir }}" 4 | mode: a+x 5 | remote_src: true 6 | src: https://github.com/bitwarden/clients/releases/download/cli-{{ bitwarden_cli_version }}/bw-linux-{{ bitwarden_cli_version[1:] }}.zip 7 | become: true 8 | 9 | - name: Bitwarden Desktop | Download 10 | ansible.builtin.flatpak: 11 | name: com.bitwarden.desktop 12 | state: present 13 | -------------------------------------------------------------------------------- /roles/blanket/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Blanket 2 | community.general.flatpak: 3 | name: com.rafaelmardojai.Blanket 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/bleachbit/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Bleachbi 2 | community.general.flatpak: 3 | name: org.bleachbit.BleachBit 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/blender/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: org.blender.Blender 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/boxysvg/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: BoxySVG 2 | community.general.flatpak: 3 | name: com.boxy_svg.BoxySVG 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/brave-browser/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Brave | Add Repository 2 | ansible.builtin.yum_repository: 3 | baseurl: https://brave-browser-rpm-release.s3.brave.com/x86_64/ 4 | description: Brave Browser 5 | gpgkey: https://brave-browser-rpm-release.s3.brave.com/brave-core.asc 6 | name: brave 7 | become: true 8 | - name: Brave Browser | Install 9 | ansible.builtin.dnf: 10 | name: brave-browser 11 | become: true 12 | -------------------------------------------------------------------------------- /roles/brightnessctl/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: 4 | - brightnessctl 5 | state: present 6 | become: true 7 | -------------------------------------------------------------------------------- /roles/brotab/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.pipx: 3 | name: brotab 4 | state: present 5 | 6 | - name: Browser setup 7 | ansible.builtin.command: bt install 8 | -------------------------------------------------------------------------------- /roles/btop/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: btop 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/btrfs/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install Btrfs utils 2 | ansible.builtin.dnf: 3 | name: "{{ item }}" 4 | state: present 5 | loop: 6 | - btrfs-assistant 7 | - snapper 8 | - dnf-plugin-snapper 9 | become: true 10 | -------------------------------------------------------------------------------- /roles/cadvisor/defaults/main.yml: -------------------------------------------------------------------------------- 1 | cadvisor_version: "v0.51.0" 2 | -------------------------------------------------------------------------------- /roles/cadvisor/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Ensure Monitoring netweork exists 2 | community.docker.docker_network: 3 | name: monitoring 4 | state: present 5 | 6 | - name: CAdvisor | Start container 7 | community.docker.docker_container: 8 | name: cadvisor 9 | image: gcr.io/cadvisor/cadvisor:{{ cadvisor_version }} 10 | state: started 11 | restart_policy: unless-stopped 12 | labels: 13 | traefik.enable: "false" 14 | networks: 15 | - name: monitoring 16 | command: --logtostderr 17 | --docker_only 18 | --store_container_labels=false 19 | volumes: 20 | - /var/lib/docker/:/var/lib/docker:ro 21 | - /var/run/docker.sock:/var/run/docker.sock:ro 22 | - /:/rootfs:ro 23 | - /sys:/sys:ro 24 | - /dev/disk/:/dev/disk:ro 25 | devices: 26 | - /dev/kmsg:/dev/kmsg 27 | -------------------------------------------------------------------------------- /roles/calligraphy/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: dev.geopjr.Calligraphy 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/chromium/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: chromium 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/clapgrep/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: de.leopoldluley.Clapgrep 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/cloudflare-warp/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Add repository 2 | ansible.builtin.yum_repository: 3 | baseurl: https://pkg.cloudflareclient.com/rpm 4 | description: Cloudflare Warp 5 | gpgkey: https://pkg.cloudflareclient.com/pubkey.gpg 6 | name: cloudflare-warp-stable 7 | become: true 8 | 9 | - name: Install Warp CLI 10 | ansible.builtin.dnf: 11 | name: cloudflare-warp 12 | state: present 13 | become: true 14 | -------------------------------------------------------------------------------- /roles/cloudflared/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: cloudflare 5 | repo: cloudflared 6 | token: '{{ github_token }}' 7 | register: release 8 | 9 | - name: Download and Install 10 | ansible.builtin.get_url: 11 | dest: '{{ bin_dir }}/cloudflared' 12 | mode: a+x 13 | url: "https://github.com/cloudflare/cloudflared/releases/download/{{ release.tag }}/cloudflared-fips-linux-amd64" 14 | become: true 15 | -------------------------------------------------------------------------------- /roles/connections/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Gnome Connections 2 | community.general.flatpak: 3 | name: org.gnome.Connections 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/copier/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install Copier 2 | ansible.builtin.command: pipx install copier 3 | -------------------------------------------------------------------------------- /roles/cryptomator/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Cryptomator 2 | community.general.flatpak: 3 | name: org.cryptomator.Cryptomator 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/ctop/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Ctop | Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: ctop 5 | token: '{{ github_token }}' 6 | user: bcicen 7 | register: release 8 | 9 | - name: Ctop | Download and Install 10 | ansible.builtin.get_url: 11 | dest: '{{ bin_dir }}/ctop' 12 | force: true 13 | mode: a+x 14 | url: https://github.com/bcicen/ctop/releases/download/{{ release.tag }}/ctop-{{ 15 | release.tag[1:] }}-linux-amd64 16 | become: true 17 | -------------------------------------------------------------------------------- /roles/currency-converter/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Currency Converter 2 | community.general.flatpak: 3 | name: io.github.idevecore.CurrencyConverter 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/curtail/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: com.github.huluti.Curtail 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/dbcli/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install PostgresSQL client 2 | ansible.builtin.dnf: 3 | name: libpq-devel 4 | state: present 5 | become: true 6 | 7 | - name: Install MySQL client 8 | ansible.builtin.dnf: 9 | name: community-mysql 10 | state: present 11 | become: true 12 | 13 | - name: RBDMS cli tools 14 | ansible.builtin.dnf: 15 | name: 16 | - pgcli 17 | - mycli 18 | state: present 19 | become: true 20 | 21 | - name: LazySQL | Get latest release 22 | community.general.github_release: 23 | action: latest_release 24 | user: jorgerojas26 25 | repo: lazysql 26 | token: '{{ github_token }}' 27 | register: lazysql_release 28 | 29 | - name: LazySQL | Download and extract 30 | ansible.builtin.unarchive: 31 | dest: '{{ setup_dir }}' 32 | remote_src: true 33 | src: https://github.com/jorgerojas26/lazysql/releases/download/{{ lazysql_release.tag }}/lazysql_Linux_x86_64.tar.gz 34 | become: true 35 | 36 | - name: LazySQL | install 37 | ansible.builtin.copy: 38 | dest: '{{ bin_dir }}/lazysql' 39 | mode: a+x 40 | src: '{{ setup_dir }}/lazysql' 41 | become: true 42 | -------------------------------------------------------------------------------- /roles/dbeaver/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: DBeaver 2 | become: true 3 | community.general.flatpak: 4 | name: io.dbeaver.DBeaverCommunity 5 | state: present 6 | -------------------------------------------------------------------------------- /roles/decoder/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: com.belmoussaoui.Decoder 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/delfin/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: cafe.avery.Delfin 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/denaro/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Denaro 2 | community.general.flatpak: 3 | name: org.nickvision.money 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/dev-toolbox/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Dev Toolbox 2 | community.general.flatpak: 3 | name: me.iepure.devtoolbox 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/devcontainers-cli/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.npm: 3 | name: "@devcontainers/cli" 4 | global: true 5 | -------------------------------------------------------------------------------- /roles/dialect/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Dialect 2 | community.general.flatpak: 3 | name: com.github.gi_lom.dialect 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/digger/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: io.github.tobagin.digger 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/direnv/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Direnv 2 | ansible.builtin.dnf: 3 | name: direnv 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/discord/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: io.github.spacingbat3.webcord 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/distrobox/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Distrobox 2 | ansible.builtin.dnf: 3 | name: distrobox 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/dive/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release version 2 | community.general.github_release: 3 | action: latest_release 4 | repo: dive 5 | token: '{{ github_token }}' 6 | user: wagoodman 7 | register: dive_release 8 | 9 | - name: Download 10 | ansible.builtin.unarchive: 11 | dest: '{{ setup_dir }}' 12 | remote_src: true 13 | src: https://github.com/wagoodman/dive/releases/download/{{ dive_release.tag }}/dive_{{ 14 | dive_release.tag[1:] }}_linux_amd64.tar.gz 15 | become: true 16 | 17 | - name: Install 18 | ansible.builtin.copy: 19 | dest: '{{ bin_dir }}/dive' 20 | mode: a+x 21 | src: '{{ setup_dir }}/dive' 22 | become: true 23 | -------------------------------------------------------------------------------- /roles/dnf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install dnf plugins 2 | ansible.builtin.dnf: 3 | name: "{{ item }}" 4 | state: present 5 | loop: 6 | - dnf-plugins-core 7 | - libdnf5-plugin-actions 8 | become: true 9 | - name: Install core packages 10 | ansible.builtin.dnf: 11 | name: 12 | - curl 13 | - wget 14 | - unzip 15 | - python-psutil 16 | - make 17 | - pwgen 18 | - lnav 19 | - httpie 20 | - htop 21 | - iotop 22 | - ncdu 23 | - tree 24 | - figlet 25 | state: present 26 | become: true 27 | -------------------------------------------------------------------------------- /roles/dns/defaults/main.yml: -------------------------------------------------------------------------------- 1 | dns_homelab_resolver: "192.168.1.10" 2 | dns_homelab_domain: "home.brunopaz.dev" 3 | dns_docker_domain: "docker" 4 | dns_docker_resolver: "172.17.0.1" 5 | -------------------------------------------------------------------------------- /roles/dnsdock/defaults/main.yml: -------------------------------------------------------------------------------- 1 | dnsdock_domain: "docker" 2 | dnsdock_version: "v1.18.0-rc2-amd64" 3 | -------------------------------------------------------------------------------- /roles/dnsdock/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get Docker Bridge ip address 2 | ansible.builtin.shell: | 3 | ip -4 addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}' 4 | register: docker0_ip 5 | changed_when: false 6 | check_mode: false 7 | 8 | - name: Print docker0 ip address 9 | ansible.builtin.debug: 10 | var: docker0_ip.stdout 11 | 12 | - name: Get Docker client API version 13 | ansible.builtin.command: | 14 | docker version --format '\{\{ .Server.APIVersion \}\}' 15 | register: docker_api_version 16 | 17 | - name: Start container 18 | community.docker.docker_container: 19 | name: dnsdock 20 | image: "aacebedo/dnsdock:{{ dnsdock_version }}" 21 | command: "--domain={{ dnsdock_domain }}" 22 | ports: 23 | - "{{ docker0_ip.stdout }}:53:53/udp" 24 | restart_policy: unless-stopped 25 | volumes: 26 | - "/var/run/docker.sock:/var/run/docker.sock" 27 | env: 28 | # This is required, otherwise the container will not start, if there are some differences 29 | DOCKER_API_VERSION: "{{ docker_api_version.stdout }}" 30 | -------------------------------------------------------------------------------- /roles/docker/files/daemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "log-driver": "json-file", 3 | "log-opts": { 4 | "max-size": "10m", 5 | "max-file": "3", 6 | "tag": "{{.ImageName}}|{{.Name}}|{{.ImageFullID}}|{{.FullID}}" 7 | }, 8 | "features": { 9 | "buildkit": true 10 | }, 11 | "bip": "172.17.0.1/24", 12 | "dns": ["8.8.8.8", "8.8.4.4"] 13 | } 14 | -------------------------------------------------------------------------------- /roles/docker/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: Restart docker 2 | ansible.builtin.service: 3 | name: docker 4 | state: restarted 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/docker/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install Repo 2 | ansible.builtin.yum_repository: 3 | baseurl: https://download.docker.com/linux/fedora/{{ ansible_distribution_version }}/$basearch/stable 4 | description: Docker 5 | gpgkey: https://download.docker.com/linux/fedora/gpg 6 | name: docker 7 | enabled: true 8 | become: true 9 | 10 | - name: Install Packages 11 | ansible.builtin.dnf: 12 | name: 13 | - docker-ce 14 | - docker-ce-cli 15 | - containerd.io 16 | - docker-compose-plugin 17 | become: true 18 | 19 | - name: Add current user to Docker group 20 | ansible.builtin.user: 21 | append: true 22 | groups: docker 23 | name: '{{ user }}' 24 | become: true 25 | 26 | - name: Refresh groups 27 | ansible.builtin.command: newgrp docker 28 | become: true 29 | become_user: "{{ user }}" 30 | 31 | - name: Copy Daemon.json 32 | ansible.builtin.copy: 33 | dest: /etc/docker/daemon.json 34 | mode: '0644' 35 | src: daemon.json 36 | become: true 37 | 38 | - name: Start service 39 | ansible.builtin.systemd: 40 | enabled: true 41 | name: docker 42 | state: started 43 | become: true 44 | -------------------------------------------------------------------------------- /roles/doctl/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Doctl | Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: doctl 5 | token: '{{ github_token }}' 6 | user: digitalocean 7 | register: release 8 | 9 | - name: Doctl | Download 10 | ansible.builtin.unarchive: 11 | dest: '{{ bin_dir }}' 12 | remote_src: true 13 | src: https://github.com/digitalocean/doctl/releases/download/{{ release.tag }}/doctl-{{ release.tag[1:] }}-linux-amd64.tar.gz 14 | become: true 15 | -------------------------------------------------------------------------------- /roles/doggo/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release version 2 | community.general.github_release: 3 | action: latest_release 4 | user: mr-karan 5 | repo: doggo 6 | token: "{{ github_token }}" 7 | register: doggo_release 8 | 9 | - name: Download Doggo 10 | ansible.builtin.unarchive: 11 | dest: "{{ setup_dir }}" 12 | mode: a+x 13 | remote_src: true 14 | src: "https://github.com/mr-karan/doggo/releases/download/{{ doggo_release.tag }}/doggo_{{ doggo_release.tag[1:] }}_Linux_x86_64.tar.gz" 15 | 16 | - name: Move Doggo binary to bin directory 17 | ansible.builtin.copy: 18 | src: "{{ setup_dir }}/doggo_{{ doggo_release.tag[1:] }}_Linux_x86_64/doggo" 19 | dest: "{{ bin_dir }}/doggo" 20 | mode: a+x 21 | become: true 22 | -------------------------------------------------------------------------------- /roles/dotfiles/defaults/main.yml: -------------------------------------------------------------------------------- 1 | dotfiles_repo_url: https://brpaz:{{ github_token }}@github.com/brpaz/dotfiles.git 2 | dotfiles_ssh_repo_url: git@github.com:brpaz/dotfiles.git 3 | -------------------------------------------------------------------------------- /roles/dotfiles/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Add YUM repository 2 | ansible.builtin.yum_repository: 3 | baseurl: https://download.opensuse.org/repositories/home:TheLocehiliosan:yadm/Fedora_41/home:TheLocehiliosan:yadm.repo 4 | description: YADM Repository 5 | name: yadm 6 | 7 | - name: Install YADM 8 | ansible.builtin.dnf: 9 | name: yadm 10 | state: present 11 | become: true 12 | 13 | - name: Dotfiles | Clone Repository 14 | ansible.builtin.command: yadm clone -f "{{ dotfiles_repo_url }}" 15 | 16 | - name: Reset dotfiles to the remote repo 17 | ansible.builtin.command: yadm reset --hard 18 | 19 | - name: Dotfiles | Update remote url to ssh 20 | ansible.builtin.command: yadm remote set-url origin "{{ dotfiles_ssh_repo_url }}" 21 | -------------------------------------------------------------------------------- /roles/dozzle/defaults/main.yml: -------------------------------------------------------------------------------- 1 | dozzle_image: amir20/dozzle 2 | dozzle_version: "v8.13.14" 3 | dozzle_domain: dozzle.localhost 4 | dozzle_port: "8080" 5 | -------------------------------------------------------------------------------- /roles/dozzle/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Start container 2 | community.docker.docker_container: 3 | name: dozzle 4 | image: "{{ dozzle_image }}:{{ dozzle_version }}" 5 | networks: 6 | - name: traefik-public 7 | restart_policy: unless-stopped 8 | volumes: 9 | - /var/run/docker.sock:/var/run/docker.sock 10 | ports: 11 | - "8080" 12 | env: 13 | DOZZLE_ENABLE_ACTIONS: "true" 14 | labels: 15 | traefik.enable: "true" 16 | traefik.http.routers.dozzle.entrypoints: websecure 17 | traefik.http.routers.dozzle.rule: Host(`{{ dozzle_domain }}`) 18 | traefik.http.routers.dozzle.tls: "true" 19 | traefik.http.services.dozzle.loadbalancer.server.port: "{{ dozzle_port }}" 20 | -------------------------------------------------------------------------------- /roles/drawio/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Draw.io Desktop 2 | community.general.flatpak: 3 | name: com.jgraph.drawio.desktop 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/eartag/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: EarTag 2 | community.general.flatpak: 3 | name: app.drey.EarTag 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/edge/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Import the Microsoft GPG key 2 | ansible.builtin.rpm_key: 3 | state: present 4 | key: https://packages.microsoft.com/keys/microsoft.asc 5 | become: true 6 | 7 | - name: Add the Microsoft Edge repository 8 | ansible.builtin.yum_repository: 9 | name: microsoft-edge 10 | description: Microsoft Edge Browser 11 | baseurl: https://packages.microsoft.com/yumrepos/edge 12 | gpgcheck: true 13 | gpgkey: https://packages.microsoft.com/keys/microsoft.asc 14 | enabled: true 15 | become: true 16 | 17 | - name: Install Microsoft Edge stable version 18 | ansible.builtin.dnf: 19 | name: microsoft-edge-stable 20 | become: true 21 | -------------------------------------------------------------------------------- /roles/eloquent/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: re.sonny.Eloquent 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/embellish/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: io.github.getnf.embellish 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/errands/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Errands 2 | community.general.flatpak: 3 | name: io.github.mrvladus.List 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/exa/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get Latest Release from GitHub 2 | community.general.github_release: 3 | action: latest_release 4 | user: eza-community 5 | repo: eza 6 | register: eza_release 7 | 8 | - name: Download and Extract 9 | ansible.builtin.unarchive: 10 | src: "https://github.com/eza-community/eza/releases/download/{{ eza_release.tag }}/eza_x86_64-unknown-linux-gnu.tar.gz" 11 | dest: "{{ setup_dir }}" 12 | remote_src: true 13 | 14 | - name: Install 15 | ansible.builtin.copy: 16 | src: "{{ setup_dir }}/eza" 17 | dest: '{{ bin_dir }}/exa' 18 | mode: a+x 19 | become: true 20 | -------------------------------------------------------------------------------- /roles/eyedropper/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: EyeDropper 2 | community.general.flatpak: 3 | name: com.github.finefindus.eyedropper 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/fastfetch/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: fastfetch 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/fd/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Fd install 2 | ansible.builtin.dnf: 3 | name: fd-find 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/feh/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Feh Image viewer 2 | ansible.builtin.dnf: 3 | name: feh 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/feishin/defaults/main.yml: -------------------------------------------------------------------------------- 1 | feishin_icon_path: "{{ app_icons_path }}/Feishin.png" 2 | -------------------------------------------------------------------------------- /roles/feishin/files/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/feishin/files/icon.png -------------------------------------------------------------------------------- /roles/feishin/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get Latest Release from GitHub 2 | community.general.github_release: 3 | action: latest_release 4 | user: jeffvli 5 | repo: feishin 6 | token: "{{ github_token }}" 7 | register: release 8 | 9 | - name: Download App Image 10 | ansible.builtin.get_url: 11 | url: "https://github.com/jeffvli/feishin/releases/download/{{ release.tag }}/Feishin-linux-x86_64.AppImage" 12 | dest: "{{ setup_dir }}/Feishin.AppImage" 13 | 14 | - name: Install App Image 15 | ansible.builtin.copy: 16 | src: "{{ setup_dir }}/Feishin.AppImage" 17 | dest: "/opt/Feishin.AppImage" 18 | mode: "0755" 19 | become: true 20 | 21 | - name: Ensure Icons folder exists 22 | ansible.builtin.file: 23 | path: "{{ feishin_icon_path | dirname }}" 24 | state: directory 25 | mode: "0755" 26 | 27 | - name: Copy Icon from files 28 | ansible.builtin.copy: 29 | src: "icon.png" 30 | dest: "{{ feishin_icon_path }}" 31 | mode: "0644" 32 | 33 | - name: Create Desktop Entry 34 | ansible.builtin.copy: 35 | content: | 36 | [Desktop Entry] 37 | Name=Feishin 38 | Comment=A modern self-hosted music player. 39 | Exec=/opt/Feishin.AppImage 40 | Icon={{ feishin_icon_path }} 41 | Type=Application 42 | Categories=Multimedia;AudioVideo; 43 | Terminal=false 44 | dest: "{{ applications_dir }}/Feishin.desktop" 45 | mode: "0644" 46 | -------------------------------------------------------------------------------- /roles/ffaudioconverter/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: FF Audio Converter 2 | community.general.flatpak: 3 | name: com.github.Bleuzen.FFaudioConverter 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/filezilla/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: filezilla 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/firefox/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Firefox | Install 2 | ansible.builtin.dnf: 3 | name: firefox 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/firewall/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install firewalld 2 | ansible.builtin.dnf: 3 | name: firewalld 4 | state: present 5 | become: true 6 | 7 | - name: Enable and start firewalld 8 | ansible.builtin.systemd: 9 | name: firewalld 10 | enabled: true 11 | state: started 12 | become: true 13 | 14 | - name: Enable masquerading in firewalld 15 | ansible.posix.firewalld: 16 | zone: public 17 | masquerade: true 18 | permanent: true 19 | state: enabled 20 | become: true 21 | 22 | #"- name: Allow access from Docker network to the host 23 | # ansible.posix.firewalld: 24 | # zone: public 25 | # rich_rule: "source address=172.17.0.1/24" 26 | # permanent: true 27 | # state: enabled 28 | # become: true 29 | 30 | - name: Install Firewalld config GUI 31 | ansible.builtin.dnf: 32 | name: firewall-config 33 | state: present 34 | become: true 35 | -------------------------------------------------------------------------------- /roles/flameshot/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Flameshot 2 | ansible.builtin.dnf: 3 | name: flameshot 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/flatpak/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Flatpak | Install 2 | ansible.builtin.dnf: 3 | name: flatpak 4 | state: present 5 | become: true 6 | 7 | - name: Flatpak | Add the flathub flatpak repository remote 8 | become: true 9 | community.general.flatpak_remote: 10 | flatpakrepo_url: https://dl.flathub.org/repo/flathub.flatpakrepo 11 | name: flathub 12 | state: present 13 | 14 | - name: Flatpak | Install Flatseal app 15 | become: true 16 | community.general.flatpak: 17 | name: com.github.tchx84.Flatseal 18 | state: present 19 | 20 | - name: Flatpak | Install Flatswap app 21 | become: true 22 | community.general.flatpak: 23 | name: io.github.giantpinkrobots.flatsweep 24 | state: present 25 | -------------------------------------------------------------------------------- /roles/flux/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: flux2 5 | token: '{{ github_token }}' 6 | user: fluxcd 7 | register: flux_release 8 | 9 | - name: Install 10 | ansible.builtin.unarchive: 11 | dest: '{{ bin_dir }}' 12 | remote_src: true 13 | src: https://github.com/fluxcd/flux2/releases/download/{{ flux_release.tag }}/flux_{{ 14 | flux_release.tag[1:] }}_linux_amd64.tar.gz 15 | become: true 16 | -------------------------------------------------------------------------------- /roles/foliate/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Foliate 2 | community.general.flatpak: 3 | name: com.github.johnfactotum.Foliate 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/InputMono-Black.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/InputMono-BlackItalic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/InputMono-Bold.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/InputMono-BoldItalic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/InputMono-ExtraLight.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/InputMono-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/InputMono-Italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/InputMono-Light.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/InputMono-LightItalic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/InputMono-Medium.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/InputMono-MediumItalic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/InputMono-Regular.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/InputMono-Thin.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/InputMono-ThinItalic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-Bold-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/JetBrainsMono-Bold-Italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/JetBrainsMono-Bold.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-ExtraBold-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/JetBrainsMono-ExtraBold-Italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/JetBrainsMono-ExtraBold.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/JetBrainsMono-Italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-Medium-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/JetBrainsMono-Medium-Italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/JetBrainsMono-Medium.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/JetBrainsMono-Regular.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/MesloLGS NF Bold Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/MesloLGS NF Bold Italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/MesloLGS NF Bold-1.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/MesloLGS NF Bold-1.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/MesloLGS NF Italic-1.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/MesloLGS NF Italic-1.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/MesloLGS NF Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/MesloLGS NF Regular.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Open Sans_300.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Open Sans_300italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_600.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Open Sans_600.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_600italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Open Sans_600italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Open Sans_700.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Open Sans_700italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_800.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Open Sans_800.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_800italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Open Sans_800italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Open Sans_italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Open Sans_regular.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/OperatorMono-Bold.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-Book.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/OperatorMono-Book.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-BookItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/OperatorMono-BookItalic.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/OperatorMono-Light.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-LightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/OperatorMono-LightItalic.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/OperatorMono-Medium.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-MediumItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/OperatorMono-MediumItalic.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-XLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/OperatorMono-XLight.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-XLightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/OperatorMono-XLightItalic.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Condensed_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Condensed_300.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Condensed_300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Condensed_300italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Condensed_700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Condensed_700.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Condensed_700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Condensed_700italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Condensed_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Condensed_italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Condensed_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Condensed_regular.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_100.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Mono_100.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_100italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Mono_100italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Mono_300.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Mono_300italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Mono_500.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_500italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Mono_500italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Mono_700.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Mono_700italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Mono_italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto Mono_regular.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_100.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto_100.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_100italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto_100italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto_300.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto_300italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto_500.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_500italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto_500italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto_700.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto_700italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto_900.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_900italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto_900italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto_italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/fonts/files/fonts/Roboto_regular.ttf -------------------------------------------------------------------------------- /roles/fonts/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install Font Downloader 2 | community.general.flatpak: 3 | name: org.gustavoperedo.FontDownloader 4 | state: present 5 | 6 | - name: Ensure Local Fonts folder exists 7 | ansible.builtin.file: 8 | mode: '0755' 9 | path: '{{ ansible_env.HOME }}/.local/share/fonts' 10 | state: directory 11 | 12 | - name: Copy Fonts 13 | ansible.builtin.copy: 14 | dest: '{{ ansible_env.HOME }}/.local/share' 15 | mode: '0755' 16 | src: fonts 17 | 18 | - name: Install fonts packages 19 | ansible.builtin.dnf: 20 | name: 21 | - jetbrains-mono-fonts 22 | - fira-code-fonts 23 | state: present 24 | become: true 25 | -------------------------------------------------------------------------------- /roles/fractal/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Fractal 2 | community.general.flatpak: 3 | name: org.gnome.Fractal 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/frog/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: com.github.tenderowl.frog 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/fzf/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Fzf install 2 | ansible.builtin.dnf: 3 | name: fzf 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/gcloud/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Add Repository 2 | ansible.builtin.yum_repository: 3 | baseurl: https://packages.cloud.google.com/yum/repos/cloud-sdk-el9-x86_64 4 | description: Google Cloud SDK 5 | enabled: true 6 | gpgcheck: true 7 | gpgkey: 8 | - https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg 9 | name: google-cloud-sdk 10 | become: true 11 | 12 | - name: Install 13 | ansible.builtin.dnf: 14 | name: google-cloud-cli 15 | become: true 16 | -------------------------------------------------------------------------------- /roles/gearlevel/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Gear Lever 2 | community.general.flatpak: 3 | name: it.mijorus.gearlever 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/ghostty/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Add copr repository for Ghostty 2 | ansible.builtin.command: 3 | cmd: dnf copr enable -y pgdev/ghostty 4 | become: true 5 | 6 | - name: Install Ghostty 7 | ansible.builtin.dnf: 8 | name: ghostty 9 | state: present 10 | become: true 11 | -------------------------------------------------------------------------------- /roles/gimp/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Gimp 2 | community.general.flatpak: 3 | name: org.gimp.GIMP 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/git/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Git | Install Git Tools 2 | ansible.builtin.dnf: 3 | name: 4 | - git 5 | - git-extras 6 | - git-delta 7 | state: present 8 | become: true 9 | 10 | - name: GitHub CLI | Get Latest release 11 | community.general.github_release: 12 | action: latest_release 13 | repo: cli 14 | token: '{{ github_token }}' 15 | user: cli 16 | register: release 17 | 18 | - name: GitHub CLI | Install 19 | ansible.builtin.dnf: 20 | name: https://github.com/cli/cli/releases/download/{{ release.tag }}/gh_{{ release.tag[1:] }}_linux_amd64.rpm 21 | state: present 22 | disable_gpg_check: true 23 | become: true 24 | 25 | - name: GitHub CLI | Install plugins 26 | ansible.builtin.command: 27 | cmd: gh extension install {{ item }} 28 | loop: 29 | - "dlvhdr/gh-dash" 30 | 31 | - name: GitLab CLI | Install 32 | ansible.builtin.dnf: 33 | name: https://gitlab.com/gitlab-org/cli/-/releases/v1.46.0/downloads/glab_1.46.0_Linux_x86_64.rpm 34 | state: present 35 | disable_gpg_check: true 36 | become: true 37 | -------------------------------------------------------------------------------- /roles/glow/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Glow | Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: glow 5 | token: '{{ github_token }}' 6 | user: charmbracelet 7 | register: release 8 | - name: Glow | Install 9 | ansible.builtin.dnf: 10 | disable_gpg_check: true 11 | name: https://github.com/charmbracelet/glow/releases/download/{{ release.tag }}/glow-{{ 12 | release.tag[1:] }}-1.x86_64.rpm 13 | state: present 14 | become: true 15 | -------------------------------------------------------------------------------- /roles/gnome-calendar/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Gnome Calendar 2 | ansible.builtin.dnf: 3 | name: gnome-calendar 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/gnome-contacts/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Gnome Contacts 2 | ansible.builtin.dnf: 3 | name: gnome-contacts 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/gnome-desktop/files/autostart/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/autostart/.gitkeep -------------------------------------------------------------------------------- /roles/gnome-desktop/files/face.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/face.jpg -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/InputMono-Black.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/InputMono-BlackItalic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/InputMono-Bold.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/InputMono-BoldItalic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/InputMono-ExtraLight.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/InputMono-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/InputMono-Italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/InputMono-Light.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/InputMono-LightItalic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/InputMono-Medium.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/InputMono-MediumItalic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/InputMono-Regular.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/InputMono-Thin.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/InputMono-ThinItalic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/JetBrainsMono-Bold-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/JetBrainsMono-Bold-Italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/JetBrainsMono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/JetBrainsMono-Bold.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/JetBrainsMono-ExtraBold-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/JetBrainsMono-ExtraBold-Italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/JetBrainsMono-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/JetBrainsMono-ExtraBold.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/JetBrainsMono-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/JetBrainsMono-Italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/JetBrainsMono-Medium-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/JetBrainsMono-Medium-Italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/JetBrainsMono-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/JetBrainsMono-Medium.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/JetBrainsMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/JetBrainsMono-Regular.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/MesloLGS NF Bold Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/MesloLGS NF Bold Italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/MesloLGS NF Bold-1.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/MesloLGS NF Bold-1.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/MesloLGS NF Italic-1.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/MesloLGS NF Italic-1.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/MesloLGS NF Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/MesloLGS NF Regular.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Open Sans_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Open Sans_300.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Open Sans_300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Open Sans_300italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Open Sans_600.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Open Sans_600.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Open Sans_600italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Open Sans_600italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Open Sans_700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Open Sans_700.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Open Sans_700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Open Sans_700italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Open Sans_800.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Open Sans_800.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Open Sans_800italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Open Sans_800italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Open Sans_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Open Sans_italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Open Sans_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Open Sans_regular.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/OperatorMono-Bold.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-Book.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/OperatorMono-Book.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-BookItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/OperatorMono-BookItalic.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/OperatorMono-Light.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-LightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/OperatorMono-LightItalic.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/OperatorMono-Medium.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-MediumItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/OperatorMono-MediumItalic.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-XLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/OperatorMono-XLight.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-XLightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/OperatorMono-XLightItalic.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Condensed_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Condensed_300.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Condensed_300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Condensed_300italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Condensed_700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Condensed_700.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Condensed_700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Condensed_700italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Condensed_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Condensed_italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Condensed_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Condensed_regular.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Mono_100.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Mono_100.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Mono_100italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Mono_100italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Mono_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Mono_300.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Mono_300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Mono_300italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Mono_500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Mono_500.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Mono_500italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Mono_500italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Mono_700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Mono_700.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Mono_700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Mono_700italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Mono_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Mono_italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto Mono_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto Mono_regular.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_100.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto_100.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_100italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto_100italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto_300.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto_300italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto_500.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_500italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto_500italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto_700.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto_700italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto_900.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_900italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto_900italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto_italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/fonts/Roboto_regular.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/nautilus/templates/HTML Document.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/nautilus/templates/HTML Document.html -------------------------------------------------------------------------------- /roles/gnome-desktop/files/nautilus/templates/New Casscading Style Sheet.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/nautilus/templates/New Casscading Style Sheet.css -------------------------------------------------------------------------------- /roles/gnome-desktop/files/nautilus/templates/New Java Source Document.java: -------------------------------------------------------------------------------- 1 | public class ClassNameHere 2 | { 3 | public static void main(String[] args) 4 | { 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/gnome-desktop/files/nautilus/templates/New Markdown File.md: -------------------------------------------------------------------------------- 1 | # Title 2 | -------------------------------------------------------------------------------- /roles/gnome-desktop/files/nautilus/templates/New Python Source File.py: -------------------------------------------------------------------------------- 1 | # This program is free software; you can redistribute it and/or modify 2 | # it under the terms of the GNU General Public License as published by 3 | # the Free Software Foundation; either version 2 of the License, or 4 | # (at your option) any later version. 5 | # 6 | # This program is distributed in the hope that it will be useful, 7 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 8 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 9 | # GNU General Public License for more details. 10 | # 11 | # You should have received a copy of the GNU General Public License 12 | # along with this program; if not, write to the Free Software 13 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 14 | -------------------------------------------------------------------------------- /roles/gnome-desktop/files/nautilus/templates/New Shell Script.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/nautilus/templates/New Shell Script.sh -------------------------------------------------------------------------------- /roles/gnome-desktop/files/nautilus/templates/New XML Document.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/nautilus/templates/New XML Document.xml -------------------------------------------------------------------------------- /roles/gnome-desktop/files/nautilus/templates/PHP Source Document.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/nautilus/templates/PHP Source Document.php -------------------------------------------------------------------------------- /roles/gnome-desktop/files/wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/gnome-desktop/files/wallpaper.jpg -------------------------------------------------------------------------------- /roles/gnome-desktop/tasks/autostart.yml: -------------------------------------------------------------------------------- 1 | - name: Set autostart applications 2 | ansible.builtin.copy: 3 | dest: '{{ ansible_env.HOME }}/.config' 4 | mode: '0755' 5 | src: autostart 6 | -------------------------------------------------------------------------------- /roles/gnome-desktop/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install Gnome Desktop Utilities 2 | ansible.builtin.dnf: 3 | name: 4 | - python3-psutil 5 | - gnome-tweak-tool 6 | - dconf-editor 7 | state: present 8 | become: true 9 | 10 | - name: Remove Pre-installed software 11 | ansible.builtin.dnf: 12 | name: 13 | - rhytmbox 14 | - gnome-boxes 15 | state: absent 16 | become: true 17 | 18 | - name: Copy Wallpaper 19 | ansible.builtin.copy: 20 | dest: '{{ ansible_env.HOME }}/.wallpaper.jpg' 21 | mode: '0644' 22 | src: wallpaper.jpg 23 | 24 | - name: Set Wallpaper 25 | community.general.dconf: 26 | key: /org/gnome/desktop/background/picture-uri 27 | value: '''file://{{ ansible_env.HOME }}/.wallpaper.jpg''' 28 | 29 | - name: Set Wallpaper position 30 | community.general.dconf: 31 | key: /org/gnome/desktop/background/picture-options 32 | value: '''zoom''' 33 | 34 | - name: Set Lock screen wallpaper 35 | community.general.dconf: 36 | key: /org/gnome/desktop/screensaver/picture-uri 37 | value: '''file://{{ ansible_env.HOME }}/.wallpaper.jpg''' 38 | 39 | - name: Gnome Shortcuts 40 | ansible.builtin.import_tasks: shortcuts.yml 41 | 42 | - name: Gnome settings 43 | ansible.builtin.import_tasks: settings.yml 44 | 45 | - name: Gnome extensions 46 | ansible.builtin.import_tasks: extensions.yml 47 | 48 | #- name: Terminal settings 49 | # ansible.builtin.import_tasks: terminal-settings.yml 50 | 51 | - name: Nautilus settings 52 | ansible.builtin.import_tasks: nautilus-settings.yml 53 | 54 | - name: Gnome Themes 55 | ansible.builtin.import_tasks: theme.yml 56 | -------------------------------------------------------------------------------- /roles/gnome-desktop/tasks/nautilus-settings.yml: -------------------------------------------------------------------------------- 1 | - name: Settings | Nautilus 2 | community.general.dconf: 3 | key: '{{ item.key }}' 4 | state: present 5 | value: '{{ item.value }}' 6 | with_items: 7 | - key: /org/gnome/nautilus/preferences/default-folder-viewer 8 | value: '''icon-view''' 9 | - key: /org/gnome/nautilus/preferences/show-hidden-files 10 | value: 'true' 11 | - key: /org/gnome/nautilus/preferences/recursive-search 12 | value: '''never''' 13 | - name: Nautilus | Ensure Templates folder exists 14 | ansible.builtin.file: 15 | mode: '0755' 16 | path: '{{ ansible_env.HOME }}/Templates' 17 | state: directory 18 | - name: Nautilus | Install new file templates 19 | ansible.builtin.copy: 20 | dest: '{{ ansible_env.HOME }}/Templates' 21 | mode: '0755' 22 | src: nautilus/templates 23 | -------------------------------------------------------------------------------- /roles/gnome-desktop/tasks/terminal-settings.yml: -------------------------------------------------------------------------------- 1 | - name: Settings | Gnome terminal 2 | community.general.dconf: 3 | key: '{{ item.key }}' 4 | state: present 5 | value: '{{ item.value }}' 6 | with_items: 7 | - key: /org/gnome/terminal/legacy/theme-variant 8 | value: '''dark''' 9 | - key: /org/gnome/terminal/legacy/new-terminal-mode 10 | value: '''tab''' 11 | - key: /org/gnome/terminal/legacy/menu-accelerator-enabled 12 | value: 'false' 13 | - key: /org/gnome/terminal/legacy/theme-variant 14 | value: '''dark''' 15 | - key: /org/gnome/terminal/legacy/new-terminal-mode 16 | value: '''tab''' 17 | - key: /org/gnome/terminal/legacy/menu-accelerator-enabled 18 | value: 'false' 19 | -------------------------------------------------------------------------------- /roles/gnome-desktop/tasks/theme.yml: -------------------------------------------------------------------------------- 1 | - name: Install Gnome themes 2 | ansible.builtin.dnf: 3 | name: 4 | - papirus-icon-theme 5 | state: present 6 | become: true 7 | 8 | - name: Enable Papirus icon theme 9 | community.general.dconf.dconf: 10 | key: /org/gnome/desktop/interface/icon-theme 11 | value: "'Papirus'" 12 | -------------------------------------------------------------------------------- /roles/gnome-music/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Gnome Music | Install from Flathub 2 | become: true 3 | community.general.flatpak: 4 | name: org.gnome.Music 5 | state: present 6 | -------------------------------------------------------------------------------- /roles/gnome-podcasts/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Gnome Podcasts 2 | community.general.flatpak: 3 | name: org.gnome.Podcasts 4 | state: present 5 | - name: Gnome Podcasts Settings 6 | community.general.dconf: 7 | key: '{{ item.key }}' 8 | state: present 9 | value: '{{ item.value }}' 10 | with_items: 11 | - key: /org/gnome/Podcasts/dark-theme 12 | value: 'true' 13 | -------------------------------------------------------------------------------- /roles/gnome-web/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: 2 | ansible.builtin.dnf: 3 | name: epiphany 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/golang/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Golang 2 | ansible.builtin.dnf: 3 | name: golang 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/goreleaser/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Goreleaser | Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: goreleaser 5 | token: '{{ github_token }}' 6 | user: goreleaser 7 | register: release 8 | 9 | - name: Goreleaser | Install 10 | ansible.builtin.dnf: 11 | disable_gpg_check: true 12 | name: https://github.com/goreleaser/goreleaser/releases/download/{{ release.tag }}/goreleaser-{{ release.tag[1:] }}-1.x86_64.rpm 13 | state: present 14 | become: true 15 | -------------------------------------------------------------------------------- /roles/gradia/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: be.alexandervanhee.gradia 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/grafana/defaults/main.yml: -------------------------------------------------------------------------------- 1 | grafana_version: "11.5.1" 2 | grafana_domain: "grafana.localhost" 3 | -------------------------------------------------------------------------------- /roles/grafana/files/grafana/provisioning/dashboards/dashboards.yml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | providers: 4 | - name: dashboards 5 | type: file 6 | folder: '' 7 | folderUid: '' 8 | updateIntervalSeconds: 120 9 | options: 10 | path: /etc/grafana/dashboards 11 | foldersFromFilesStructure: true 12 | -------------------------------------------------------------------------------- /roles/grafana/files/grafana/provisioning/datasources/datasources.yml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | datasources: 3 | - name: Prometheus 4 | type: prometheus 5 | access: proxy 6 | url: http://prometheus:9090 7 | uid: e816c2ce-ef17-4df4-86e5-6dfa92c108af 8 | 9 | - name: Loki 10 | type: loki 11 | access: proxy 12 | url: http://loki:3100 13 | jsonData: 14 | maxLines: 1000 15 | -------------------------------------------------------------------------------- /roles/graphviz/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Graphviz 2 | ansible.builtin.dnf: 3 | name: graphviz 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/grsync/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Grsync 2 | ansible.builtin.dnf: 3 | name: grsync 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/gum/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Gum | Get Latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: gum 5 | token: '{{ github_token }}' 6 | user: charmbracelet 7 | register: release 8 | 9 | - name: Gum | Install 10 | ansible.builtin.dnf: 11 | disable_gpg_check: true 12 | name: https://github.com/charmbracelet/gum/releases/download/{{ release.tag }}/gum-{{ 13 | release.tag[1:] }}-1.x86_64.rpm 14 | state: present 15 | become: true 16 | -------------------------------------------------------------------------------- /roles/handbrake/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: fr.handbrake.ghb 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/hcloud/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Hetzner Cloud | Get latest version from GitHub 2 | community.general.github_release: 3 | action: latest_release 4 | repo: cli 5 | token: '{{ github_token }}' 6 | user: hetznercloud 7 | register: hcloud_release 8 | - name: Hetzner Cloud Cli | Download 9 | ansible.builtin.unarchive: 10 | dest: '{{ bin_dir }}' 11 | mode: a+x 12 | remote_src: true 13 | src: https://github.com/hetznercloud/cli/releases/download/{{ hcloud_release.tag 14 | }}/hcloud-linux-amd64.tar.gz 15 | become: true 16 | -------------------------------------------------------------------------------- /roles/helm/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: helm 5 | token: '{{ github_token }}' 6 | user: helm 7 | register: helm_release 8 | 9 | - name: Create tmp dir 10 | ansible.builtin.file: 11 | mode: '0755' 12 | path: '{{ setup_dir }}/helm' 13 | state: directory 14 | 15 | - name: Download Archive 16 | ansible.builtin.unarchive: 17 | dest: '{{ setup_dir }}/helm' 18 | remote_src: true 19 | src: https://get.helm.sh/helm-{{ helm_release.tag }}-linux-amd64.tar.gz 20 | 21 | - name: Install 22 | ansible.builtin.copy: 23 | dest: '{{ bin_dir }}' 24 | mode: a+x 25 | src: '{{ setup_dir }}/helm/linux-amd64/helm' 26 | become: true 27 | 28 | - name: Install autocomplete 29 | ansible.builtin.shell: helm completion zsh > {{ shell_completions_dir }}/_helm 30 | -------------------------------------------------------------------------------- /roles/heynote/defaults/main.yml: -------------------------------------------------------------------------------- 1 | heynote_icon_path: "{{ app_icons_path }}/Heynote.png" 2 | -------------------------------------------------------------------------------- /roles/heynote/files/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/heynote/files/icon.png -------------------------------------------------------------------------------- /roles/heynote/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get Latest Release from GitHub 2 | community.general.github_release: 3 | action: latest_release 4 | user: heyman 5 | repo: heynote 6 | token: "{{ github_token }}" 7 | register: release 8 | 9 | - name: Download App Image 10 | get_url: 11 | url: "https://github.com/heyman/heynote/releases/download/{{ release.tag }}/Heynote_{{ release.tag | regex_replace('^v', '') }}_x86_64.AppImage" 12 | dest: "{{ setup_dir }}/Heynote.AppImage" 13 | 14 | - name: Install App Image 15 | ansible.builtin.copy: 16 | src: "{{ setup_dir }}/Heynote.AppImage" 17 | dest: "/opt/Heynote.AppImage" 18 | mode: "0755" 19 | become: true 20 | 21 | - name: Ensure Icons folder exists 22 | ansible.builtin.file: 23 | path: "{{ heynote_icon_path | dirname }}" 24 | state: directory 25 | mode: "0755" 26 | 27 | - name: Copy Icon from files 28 | ansible.builtin.copy: 29 | src: "icon.png" 30 | dest: "{{ heynote_icon_path }}" 31 | mode: "0644" 32 | 33 | - name: Create Desktop Entry 34 | ansible.builtin.copy: 35 | content: | 36 | [Desktop Entry] 37 | Name=Heynote 38 | Comment=A modern note-taking app for Windows/Linux 39 | Exec=/opt/Heynote.AppImage 40 | Icon={{ heynote_icon_path }} 41 | Type=Application 42 | Categories=Office; 43 | Terminal=false 44 | dest: "{{ applications_dir }}/Heynote.desktop" 45 | mode: "0644" 46 | -------------------------------------------------------------------------------- /roles/hostctl/defaults/main.yml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /roles/hostctl/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release version 2 | community.general.github_release: 3 | action: latest_release 4 | repo: hostctl 5 | token: '{{ github_token }}' 6 | user: guumaster 7 | register: latest_release 8 | 9 | - name: Hostctl | Download 10 | ansible.builtin.unarchive: 11 | dest: '{{ bin_dir }}' 12 | mode: a+x 13 | remote_src: true 14 | src: https://github.com/guumaster/hostctl/releases/download/{{ latest_release.tag }}/hostctl_{{ latest_release.tag[1:] }}_linux_64-bit.tar.gz 15 | become: true 16 | -------------------------------------------------------------------------------- /roles/hostname/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Setup hostname 2 | ansible.builtin.hostname: 3 | name: '{{ hostname }}' 4 | become: true 5 | -------------------------------------------------------------------------------- /roles/hugo/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Hugo | Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: hugo 5 | token: '{{ github_token }}' 6 | user: gohugoio 7 | register: release 8 | - name: Hugo | Download 9 | ansible.builtin.unarchive: 10 | dest: '{{ setup_dir }}' 11 | remote_src: true 12 | src: https://github.com/gohugoio/hugo/releases/download/{{ release.tag }}/hugo_{{ 13 | release.tag[1:] }}_Linux-64bit.tar.gz 14 | become: true 15 | - name: Hugo | install 16 | ansible.builtin.copy: 17 | dest: '{{ bin_dir }}/hugo' 18 | mode: a+x 19 | src: '{{ setup_dir }}/hugo' 20 | become: true 21 | -------------------------------------------------------------------------------- /roles/impression/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Impression 2 | community.general.flatpak: 3 | name: io.gitlab.adhami3310.Impression 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/inkscape/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Inkscape 2 | ansible.builtin.dnf: 3 | name: inkscape 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/iotas/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Iotas 2 | community.general.flatpak: 3 | name: org.gnome.World.Iotas 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/iplookup/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: IP lookup 2 | community.general.flatpak: 3 | name: io.github.bytezz.IPLookup 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/java/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Java 2 | ansible.builtin.dnf: 3 | name: java-latest-openjdk-devel 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/jdownloader/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: org.jdownloader.JDownloader 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/jetbrains-toolbox/defaults/main.yml: -------------------------------------------------------------------------------- 1 | jetbrains_toolbox_version: "2.5.2.35332" 2 | -------------------------------------------------------------------------------- /roles/jetbrains-toolbox/files/jetbrains-toolbox.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Exec={{ansbile_env.HOME}}/.local/share/JetBrains/Toolbox/bin/jetbrains-toolbox %u 3 | Icon={{ansbile_env.HOME}}/.local/share/JetBrains/Toolbox/toolbox.svg 4 | MimeType=x-scheme-handler/jetbrains; 5 | Name=JetBrains Toolbox 6 | StartupNotify=false 7 | StartupWMClass=jetbrains-toolbox 8 | Terminal=false 9 | Type=Application 10 | Version=1.0 11 | X-GNOME-Autostart-Delay=10 12 | X-GNOME-Autostart-enabled=true 13 | X-KDE-autostart-after=panel 14 | X-MATE-Autostart-Delay=10% 15 | -------------------------------------------------------------------------------- /roles/jetbrains-toolbox/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Jetbrains Toolbox 2 | ansible.builtin.unarchive: 3 | dest: '{{ bin_dir }}' 4 | extra_opts: 5 | - --strip-components=1 6 | mode: a+x 7 | remote_src: true 8 | src: https://download.jetbrains.com/toolbox/jetbrains-toolbox-{{ jetbrains_toolbox_version }}.tar.gz 9 | become: true 10 | 11 | - name: Jetbrains Toolbox | Install Desktop file 12 | ansible.builtin.copy: 13 | dest: '{{ applications_dir }}/jetbrains-toolbox.desktop' 14 | mode: '0644' 15 | src: jetbrains-toolbox.desktop 16 | -------------------------------------------------------------------------------- /roles/jq/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: JQ 2 | ansible.builtin.dnf: 3 | name: jq 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/jwt-tui/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get Latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: jwt-rs 5 | repo: jwt-ui 6 | token: "{{ github_token }}" 7 | register: latest_release 8 | 9 | - name: Download 10 | ansible.builtin.unarchive: 11 | src: "https://github.com/jwt-rs/jwt-ui/releases/download/{{ latest_release.tag }}/jwtui-linux.tar.gz" 12 | dest: "{{ setup_dir }}" 13 | remote_src: yes 14 | 15 | - name: Install 16 | ansible.builtin.copy: 17 | src: "{{ setup_dir }}/jwtui" 18 | dest: "{{ bin_dir }}" 19 | mode: "a+x" 20 | become: true 21 | -------------------------------------------------------------------------------- /roles/k9s/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: K9s | Get Latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: k9s 5 | token: '{{ github_token }}' 6 | user: derailed 7 | register: release 8 | - name: K9s | Download Tarball 9 | ansible.builtin.unarchive: 10 | dest: '{{ setup_dir }}' 11 | remote_src: true 12 | src: https://github.com/derailed/k9s/releases/download/{{ release.tag }}/k9s_Linux_amd64.tar.gz 13 | - name: K9s | Install binary 14 | ansible.builtin.copy: 15 | dest: '{{ bin_dir }}' 16 | mode: a+x 17 | src: '{{ setup_dir }}/k9s' 18 | become: true 19 | -------------------------------------------------------------------------------- /roles/keeppassxc/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: org.keepassxc.KeePassXC 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/kepubify/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: kepubify 5 | token: '{{ github_token }}' 6 | user: pgaskin 7 | register: release 8 | 9 | - name: Download and Install 10 | ansible.builtin.get_url: 11 | dest: '{{ bin_dir }}/kepubify' 12 | force: true 13 | mode: a+x 14 | url: https://github.com/pgaskin/kepubify/releases/download/{{ release.tag }}/kepubify-linux-64bit 15 | become: true 16 | -------------------------------------------------------------------------------- /roles/keyrack/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: app.drey.KeyRack 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/keysmith/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: io.github.tobagin.keysmith 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/kind/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Kind | Get Latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: kind 5 | token: '{{ github_token }}' 6 | user: kubernetes-sigs 7 | register: kind_release 8 | - name: Kind | Download and install 9 | ansible.builtin.get_url: 10 | dest: '{{ bin_dir }}/kind' 11 | mode: a+x 12 | url: https://github.com/kubernetes-sigs/kind/releases/download/{{ kind_release.tag 13 | }}/kind-linux-amd64 14 | become: true 15 | -------------------------------------------------------------------------------- /roles/kiwix/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.flatpak: 3 | name: org.kiwix.desktop 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/knock/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: knock 5 | token: '{{ github_token }}' 6 | user: BentonEdmondson 7 | register: release 8 | 9 | - name: Download and Install 10 | ansible.builtin.get_url: 11 | dest: '{{ bin_dir }}/knock' 12 | force: true 13 | mode: a+x 14 | url: https://github.com/BentonEdmondson/knock/releases/download/{{ release.tag }}/knock-{{ 15 | release.tag }}-x86_64-linux 16 | become: true 17 | -------------------------------------------------------------------------------- /roles/kodi/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Kodi 2 | community.general.flatpak: 3 | name: tv.kodi.Kodi 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/komikku/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Komiku 2 | community.general.flatpak: 3 | name: info.febvre.Komikku 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/kooha/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Kooha 2 | community.general.flatpak: 3 | name: io.github.seadve.Kooha 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/ktop/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: vladimirvivien 5 | repo: ktop 6 | token: '{{ github_token }}' 7 | register: release 8 | 9 | - name: Download and extract archive 10 | ansible.builtin.unarchive: 11 | src: https://github.com/vladimirvivien/ktop/releases/download/{{ release.tag }}/ktop_{{ release.tag }}_linux_amd64.tar.gz 12 | dest: '{{ setup_dir }}' 13 | remote_src: true 14 | become: true 15 | 16 | - name: Install 17 | ansible.builtin.copy: 18 | src: "{{ setup_dir }}/ktop" 19 | dest: "{{ bin_dir }}/ktop" 20 | mode: a+x 21 | become: true 22 | -------------------------------------------------------------------------------- /roles/kubeconform/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Kubeconform | Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: kubeconform 5 | token: '{{ github_token }}' 6 | user: yannh 7 | register: release 8 | - name: Kubeconform | Download Archive 9 | ansible.builtin.unarchive: 10 | dest: '{{ setup_dir }}' 11 | remote_src: true 12 | src: https://github.com/yannh/kubeconform/releases/download/{{ release.tag }}/kubeconform-linux-amd64.tar.gz 13 | become: true 14 | -------------------------------------------------------------------------------- /roles/kubectl-cnpg-plugin/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: cloudnative-pg 5 | repo: cloudnative-pg 6 | token: "{{ github_token }}" 7 | register: release 8 | 9 | - name: Download latest release 10 | ansible.builtin.dnf: 11 | disable_gpg_check: true 12 | name: "https://github.com/cloudnative-pg/cloudnative-pg/releases/download/{{ release.tag }}/kubectl-cnpg_{{ release.tag[1:] }}_linux_x86_64.rpm" 13 | state: present 14 | become: true 15 | 16 | -------------------------------------------------------------------------------- /roles/kubectl/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get Latest release 2 | ansible.builtin.get_url: 3 | url: https://cdn.dl.k8s.io/release/stable.txt 4 | dest: "{{ setup_dir }}/kubectl_release" 5 | register: kubectl_release 6 | 7 | - name: Read release tag 8 | ansible.builtin.slurp: 9 | src: "{{ setup_dir }}/kubectl_release" 10 | register: kubectl_release_tag 11 | 12 | - name: Download and Install 13 | ansible.builtin.get_url: 14 | dest: "{{ bin_dir }}/kubectl" 15 | force: true 16 | mode: a+x 17 | url: https://dl.k8s.io/release/{{ kubectl_release_tag['content'] | b64decode }}/bin/linux/amd64/kubectl 18 | become: true 19 | -------------------------------------------------------------------------------- /roles/kubectx/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Kubectx | Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: kubectx 5 | token: '{{ github_token }}' 6 | user: ahmetb 7 | register: kubectx_release 8 | 9 | - name: Kubectx | Create tmp dir 10 | ansible.builtin.file: 11 | mode: '0755' 12 | path: '{{ setup_dir }}/kubectx' 13 | state: directory 14 | 15 | - name: Kubectx | Download tarball 16 | ansible.builtin.unarchive: 17 | dest: '{{ setup_dir }}/kubectx' 18 | extra_opts: 19 | - --strip-components=1 20 | remote_src: true 21 | src: https://github.com/ahmetb/kubectx/archive/{{ kubectx_release.tag }}.tar.gz 22 | 23 | - name: Kubectx | Install 24 | ansible.builtin.copy: 25 | dest: '{{ bin_dir }}/kubectx' 26 | mode: a+x 27 | src: '{{ setup_dir }}/kubectx/kubectx' 28 | become: true 29 | 30 | - name: Kubectx | Install Kubens 31 | ansible.builtin.copy: 32 | dest: '{{ bin_dir }}/kubens' 33 | mode: a+x 34 | src: '{{ setup_dir }}/kubectx/kubens' 35 | become: true 36 | -------------------------------------------------------------------------------- /roles/lazydocker/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Lazydocker | Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: lazydocker 5 | token: '{{ github_token }}' 6 | user: jesseduffield 7 | register: release 8 | 9 | - name: Lazydocker | Download 10 | ansible.builtin.unarchive: 11 | dest: '{{ setup_dir }}' 12 | remote_src: true 13 | src: https://github.com/jesseduffield/lazydocker/releases/download/{{ release.tag }}/lazydocker_{{ release.tag[1:] }}_Linux_x86_64.tar.gz 14 | become: true 15 | 16 | - name: Lazydocker | Install 17 | ansible.builtin.copy: 18 | dest: '{{ bin_dir }}/lazydocker' 19 | mode: a+x 20 | src: '{{ setup_dir }}/lazydocker' 21 | become: true 22 | -------------------------------------------------------------------------------- /roles/lazygit/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: jesseduffield 5 | repo: lazygit 6 | token: '{{ github_token }}' 7 | register: release 8 | 9 | - name: Download binary 10 | ansible.builtin.unarchive: 11 | remote_src: true 12 | src: "https://github.com/jesseduffield/lazygit/releases/download/{{ release.tag }}/lazygit_{{ release.tag[1:] }}_Linux_x86_64.tar.gz" 13 | dest: "{{ setup_dir }}" 14 | 15 | 16 | - name: Copy binary to bin 17 | ansible.builtin.copy: 18 | src: "{{ setup_dir }}/lazygit" 19 | dest: "{{ bin_dir }}/lazygit" 20 | mode: a+x 21 | become: true 22 | -------------------------------------------------------------------------------- /roles/lazyjournal/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: Lifailon 5 | repo: lazyjournal 6 | token: "{{ github_token }}" 7 | register: release 8 | 9 | - name: Download 10 | ansible.builtin.get_url: 11 | url: "https://github.com/Lifailon/lazyjournal/releases/download/{{ release.tag }}/lazyjournal-{{ release.tag }}-linux-amd64" 12 | dest: "{{ bin_dir }}/lazyjournal" 13 | mode: a+x 14 | become: true 15 | 16 | -------------------------------------------------------------------------------- /roles/lazysql/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: jorgerojas26 5 | repo: lazysql 6 | token: '{{ github_token }}' 7 | register: release 8 | 9 | - name: Download 10 | ansible.builtin.unarchive: 11 | dest: '{{ setup_dir }}' 12 | remote_src: true 13 | src: https://github.com/jorgerojas26/lazysql/releases/download/{{ release.tag }}/lazysql_Linux_x86_64.tar.gz 14 | become: true 15 | 16 | - name: Install 17 | ansible.builtin.copy: 18 | dest: '{{ bin_dir }}/lazysql' 19 | mode: a+x 20 | src: '{{ setup_dir }}/lazysql' 21 | become: true 22 | -------------------------------------------------------------------------------- /roles/lefthook/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Lefthook | Get Latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: lefthook 5 | token: '{{ github_token }}' 6 | user: evilmartians 7 | register: lefthook_release 8 | 9 | - name: Lefthook | Install 10 | ansible.builtin.dnf: 11 | disable_gpg_check: true 12 | name: https://github.com/evilmartians/lefthook/releases/download/{{ lefthook_release.tag }}/lefthook_{{ lefthook_release.tag[1:] }}_amd64.rpm 13 | state: present 14 | become: true 15 | -------------------------------------------------------------------------------- /roles/libvirt/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install required virtualization packages 2 | ansible.builtin.dnf: 3 | name: 4 | - bridge-utils 5 | - libvirt 6 | - virt-install 7 | - qemu-kvm 8 | - virt-top 9 | - libguestfs-tools 10 | - virt-manager 11 | state: present 12 | become: true 13 | 14 | - name: Run libvirt as non-root user 15 | ansible.builtin.lineinfile: 16 | line: user = {{ user }} 17 | path: /etc/libvirt/qemu.conf 18 | regexp: ^user = 19 | become: true 20 | 21 | - name: Run libvirt as non-root user 22 | ansible.builtin.lineinfile: 23 | line: group = {{ user }} 24 | path: /etc/libvirt/qemu.conf 25 | regexp: ^group = 26 | become: true 27 | 28 | - name: Enable libvirtd service 29 | ansible.builtin.systemd: 30 | enabled: true 31 | name: libvirtd 32 | state: started 33 | become: true 34 | -------------------------------------------------------------------------------- /roles/lock/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: com.konstantintutsch.Lock 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/loki/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Ensure Configuration folder exists 2 | ansible.builtin.file: 3 | mode: "0755" 4 | path: /etc/loki 5 | state: directory 6 | become: true 7 | 8 | - name: Ensure Configuration file exists 9 | ansible.builtin.template: 10 | dest: /etc/loki/config.yaml 11 | mode: "0644" 12 | src: loki-local-config.yaml.j2 13 | become: true 14 | 15 | - name: Ensure data volume exists 16 | community.docker.docker_volume: 17 | name: loki-storage 18 | state: present 19 | 20 | - name: Start container 21 | community.docker.docker_container: 22 | name: loki 23 | image: grafana/loki:3.3.2 24 | state: started 25 | restart_policy: unless-stopped 26 | command: -config.file=/etc/loki/config.yaml 27 | labels: 28 | traefik.enable: "false" 29 | networks: 30 | - name: monitoring 31 | volumes: 32 | - /etc/loki/config.yaml:/etc/loki/config.yaml 33 | - loki-storage:/loki 34 | healthcheck: 35 | interval: 10s 36 | retries: 3 37 | start_period: 10s 38 | test: 39 | - CMD 40 | - wget 41 | - -qO- 42 | - http://localhost:3100/ready 43 | timeout: 2s 44 | -------------------------------------------------------------------------------- /roles/loki/templates/loki-local-config.yaml.j2: -------------------------------------------------------------------------------- 1 | auth_enabled: false 2 | 3 | server: 4 | http_listen_port: 3100 5 | grpc_listen_port: 9096 6 | 7 | common: 8 | instance_addr: 127.0.0.1 9 | path_prefix: /tmp/loki 10 | storage: 11 | filesystem: 12 | chunks_directory: /tmp/loki/chunks 13 | rules_directory: /tmp/loki/rules 14 | replication_factor: 1 15 | ring: 16 | kvstore: 17 | store: inmemory 18 | 19 | query_range: 20 | results_cache: 21 | cache: 22 | embedded_cache: 23 | enabled: true 24 | max_size_mb: 100 25 | 26 | schema_config: 27 | configs: 28 | - from: 2020-10-24 29 | store: tsdb 30 | object_store: filesystem 31 | schema: v13 32 | index: 33 | prefix: index_ 34 | period: 24h 35 | 36 | #ruler: 37 | #alertmanager_url: http://localhost:9093 38 | 39 | # By default, Loki will send anonymous, but uniquely-identifiable usage and configuration 40 | # analytics to Grafana Labs. These statistics are sent to https://stats.grafana.org/ 41 | # 42 | # Statistics help us better understand how Loki is used, and they show us performance 43 | # levels for most users. This helps us prioritize features and documentation. 44 | # For more information on what's sent, look at 45 | # https://github.com/grafana/loki/blob/main/pkg/analytics/stats.go 46 | # Refer to the buildReport method to see what goes into a report. 47 | # 48 | # If you would like to disable reporting, uncomment the following lines: 49 | analytics: 50 | reporting_enabled: false 51 | -------------------------------------------------------------------------------- /roles/mainmenu/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Main Menu 2 | community.general.flatpak: 3 | name: page.codeberg.libre_menu_editor.LibreMenuEditor 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/meld/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Meld 2 | ansible.builtin.dnf: 3 | name: meld 4 | become: true 5 | -------------------------------------------------------------------------------- /roles/micro/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: zyedidia 5 | repo: micro 6 | token: '{{ github_token }}' 7 | register: release 8 | 9 | - name: Download and extract archive 10 | ansible.builtin.unarchive: 11 | src: https://github.com/zyedidia/micro/releases/download/{{ release.tag }}/micro-{{ release.tag[1:] }}-linux64.tar.gz 12 | dest: '{{ setup_dir }}' 13 | remote_src: true 14 | become: true 15 | 16 | - name: Install 17 | ansible.builtin.copy: 18 | src: "{{ setup_dir }}/micro-{{ release.tag[1:] }}/micro" 19 | dest: "{{ bin_dir }}/micro" 20 | mode: a+x 21 | become: true 22 | -------------------------------------------------------------------------------- /roles/mines/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Gnome Mines 2 | community.general.flatpak: 3 | name: org.gnome.Mines 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/minitext/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: io.github.nokse22.minitext 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/mission-center/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Mission Center 2 | community.general.flatpak: 3 | name: io.missioncenter.MissionCenter 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/mkcert/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Mkcert | Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: mkcert 5 | token: '{{ github_token }}' 6 | user: FiloSottile 7 | register: release 8 | 9 | - name: Mkcert | Install Binary 10 | ansible.builtin.get_url: 11 | dest: '{{ bin_dir }}/mkcert' 12 | mode: a+x 13 | url: https://github.com/FiloSottile/mkcert/releases/download/{{ release.tag }}/mkcert-{{ 14 | release.tag }}-linux-amd64 15 | become: true 16 | - name: Mkcert | Install certificates 17 | ansible.builtin.command: mkcert -install 18 | -------------------------------------------------------------------------------- /roles/mongodb/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: MongoDB Compass 2 | ansible.builtin.dnf: 3 | name: https://downloads.mongodb.com/compass/mongodb-compass-1.32.1.x86_64.rpm 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/mounts/defaults/main.yml: -------------------------------------------------------------------------------- 1 | mounts_nfs_default_opts: defaults,nofail,noauto,x-systemd.automount,x-systemd.mount-timeout=30,x-systemd.after=graphical.target,_netdev,rsize=65536,wsize=65536,noatime,hard,intr,vers=4 2 | -------------------------------------------------------------------------------- /roles/mounts/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Check nas_ip is defined 2 | ansible.builtin.fail: 3 | msg: "nas_ip is not defined" 4 | when: nas_ip is not defined 5 | 6 | - name: Ensure mount points exist 7 | ansible.builtin.file: 8 | path: "{{ item }}" 9 | state: directory 10 | mode: '0755' 11 | owner: "{{ user }}" 12 | group: "{{ user }}" 13 | loop: 14 | - /mnt/nas-media 15 | - /mnt/nas-backup 16 | become: true 17 | 18 | - name: Mount NAS media share 19 | ansible.posix.mount: 20 | path: /mnt/nas 21 | src: "{{ nas_ip }}:/media" 22 | fstype: nfs 23 | state: present 24 | opts: "{{ mounts_nfs_default_opts }}" 25 | become: true 26 | 27 | - name: Mount NAS backups share 28 | ansible.posix.mount: 29 | path: /mnt/nas 30 | src: "{{ nas_ip }}:/backups" 31 | fstype: nfs 32 | state: present 33 | opts: "{{ mounts_nfs_default_opts }}" 34 | become: true 35 | -------------------------------------------------------------------------------- /roles/mousai/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Mousai Install 2 | community.general.flatpak: 3 | name: io.github.seadve.Mousai 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/nak/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release from GitHub 2 | community.general.github_release: 3 | action: latest_release 4 | user: fiatjaf 5 | repo: nak 6 | token: "{{ github_token }}" 7 | register: release 8 | 9 | - name: Download and Install 10 | ansible.builtin.get_url: 11 | dest: "{{ bin_dir }}/nak" 12 | force: true 13 | mode: a+x 14 | url: https://github.com/fiatjaf/nak/releases/download/v0.16.2/nak-v0.16.2-linux-amd64 15 | become: true 16 | -------------------------------------------------------------------------------- /roles/netpeek/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: io.github.zingytomato.netpeek 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/netscanner/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get the version of cargo 2 | ansible.builtin.command: 3 | cmd: cargo --version 4 | register: cargo_version 5 | ignore_errors: true 6 | 7 | - name: Fail if cargo is not installed 8 | ansible.builtin.fail: 9 | msg: "cargo is not installed" 10 | when: cargo_version.rc != 0 11 | 12 | - name: Install netscanner 13 | ansible.builtin.command: 14 | cmd: cargo install netscanner 15 | args: 16 | creates: /{{ ansible_env.HOME }}/.cargo/bin/netscanner 17 | -------------------------------------------------------------------------------- /roles/network-displays/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: org.gnome.NetworkDisplays 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/network-tools/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install networking tools 2 | ansible.builtin.dnf: 3 | name: 4 | - net-tools 5 | - traceroute 6 | - whois 7 | - nmap 8 | - iftop 9 | - tcpdump 10 | state: present 11 | become: true 12 | -------------------------------------------------------------------------------- /roles/newsflash/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: NewsFlash 2 | community.general.flatpak: 3 | name: com.gitlab.newsflash 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/nextcloud/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Nextcloud 2 | community.general.flatpak: 3 | name: com.nextcloud.desktopclient.nextcloud 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/nix/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Check if nix is installed 2 | ansible.builtin.command: which nix 3 | register: nix_installed 4 | failed_when: nix_installed.rc != 0 5 | ignore_errors: true 6 | 7 | - name: Install nix 8 | ansible.builtin.shell: curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --no-confirm 9 | when: nix_installed.rc != 0 10 | become: true 11 | 12 | - name: Ensure nixpkgs config directory exists 13 | ansible.builtin.file: 14 | path: "{{ ansible_env.HOME }}/.config/nixpkgs" 15 | state: directory 16 | mode: '0755' 17 | 18 | - name: Configure NUR 19 | ansible.builtin.template: 20 | src: nixpkgs.config.nix.j2 21 | dest: "{{ ansible_env.HOME }}/.config/nixpkgs/config.nix" 22 | mode: '0644' 23 | 24 | - name: Alejandra | Get latest release 25 | community.general.github_release: 26 | action: latest_release 27 | user: kamadorueda 28 | repo: alejandra 29 | token: "{{ github_token }}" 30 | register: alejandra_release 31 | 32 | - name: Alejandra | Install 33 | ansible.builtin.get_url: 34 | url: "https://github.com/kamadorueda/alejandra/releases/download/{{ alejandra_release.tag }}-x86_64-unknown-linux-gnu" 35 | dest: "{{ bin_dir }}/alejandra" 36 | mode: a+x 37 | become: true 38 | -------------------------------------------------------------------------------- /roles/nix/templates/nixpkgs.config.nix.j2: -------------------------------------------------------------------------------- 1 | { 2 | packageOverrides = pkgs: { 3 | nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") { 4 | inherit pkgs; 5 | }; 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /roles/node-exporter/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Start Container 2 | community.docker.docker_container: 3 | name: node-exporter 4 | image: prom/node-exporter:v1.8.2 5 | command: 6 | - --path.procfs=/host/proc 7 | - --path.rootfs=/rootfs 8 | - --path.sysfs=/host/sys 9 | - --collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc|mnt)($$|/) 10 | state: started 11 | restart_policy: unless-stopped 12 | labels: 13 | traefik.enable: "false" 14 | networks: 15 | - name: monitoring 16 | volumes: 17 | - /proc:/host/proc:ro,rslave 18 | - /sys:/host/sys:ro,rslave 19 | - /:/rootfs:ro,rslave 20 | -------------------------------------------------------------------------------- /roles/node/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Node | Install 2 | ansible.builtin.dnf: 3 | name: nodejs 4 | state: present 5 | become: true 6 | 7 | - name: FNM | Get latest release version 8 | community.general.github_release: 9 | action: latest_release 10 | repo: fnm 11 | token: "{{ github_token }}" 12 | user: Schniz 13 | register: fnm_release 14 | 15 | - name: FNM | Install 16 | ansible.builtin.unarchive: 17 | dest: "{{ bin_dir }}" 18 | mode: a+x 19 | remote_src: true 20 | src: https://github.com/Schniz/fnm/releases/download/{{ fnm_release.tag }}/fnm-linux.zip 21 | become: true 22 | 23 | - name: Install Global NPM packages 24 | community.general.npm: 25 | global: true 26 | name: "{{ item }}" 27 | with_items: 28 | - pnpm 29 | - commitizen 30 | - conduct 31 | - pageres-cli 32 | - readme-md-generator 33 | - serve 34 | - svgo 35 | - sharp-cli 36 | - plop 37 | - "@anthropic-ai/claude-code" 38 | - "wrangler" 39 | -------------------------------------------------------------------------------- /roles/ntfy/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Notify 2 | community.general.flatpak: 3 | name: com.ranfdev.Notify 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/nvidia/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Check if Nvidia card is available 2 | ansible.builtin.command: lspci | grep -i nvidia 3 | register: nvidia_card 4 | failed_when: nvidia_card.rc != 0 5 | ignore_errors: true 6 | 7 | - name: Install NVIDIA Drivers 8 | ansible.builtin.dnf: 9 | name: 10 | - akmod-nvidia 11 | - vulkan 12 | state: present 13 | become: true 14 | when: nvidia_card.rc == 0 15 | 16 | - name: Blacklist the nouveau driver module 17 | community.general.kernel_blacklist: 18 | name: nouveau 19 | state: present 20 | when: nvidia_card.rc == 0 21 | -------------------------------------------------------------------------------- /roles/obfuscate/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Obfuscate 2 | community.general.flatpak: 3 | name: com.belmoussaoui.Obfuscate 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/obs/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Gnome Podcasts 2 | community.general.flatpak: 3 | name: com.obsproject.Studio 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/obsidian/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: md.obsidian.Obsidian 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/ohmysvg/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: re.sonny.OhMySVG 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/opensnitch/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get Latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: evilsocket 5 | repo: opensnitch 6 | register: latest_release 7 | 8 | - name: Download 9 | ansible.builtin.get_url: 10 | url: "https://github.com/evilsocket/opensnitch/releases/download/{{ latest_release.tag }}/opensnitch-{{ latest_release.tag[0] }}-1.x86_64.rpm" 11 | dest: "{{ setup_dir }}/opensnitch.rpm" 12 | headers: 13 | Authorization: "token {{ github_token }}" 14 | register: download_result 15 | 16 | - name: Install 17 | ansible.builtin.yum: 18 | name: "{{ setup_dir }}/opensnitch.rpm" 19 | state: present 20 | become: true 21 | -------------------------------------------------------------------------------- /roles/ouch/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Ouch | Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: ouch-org 5 | repo: ouch 6 | token: "{{ github_token }}" 7 | register: release 8 | 9 | - name: Ouch | Download and extract 10 | ansible.builtin.unarchive: 11 | dest: "{{ setup_dir }}" 12 | remote_src: true 13 | src: https://github.com/ouch-org/ouch/releases/download/{{ release.tag }}/ouch-x86_64-unknown-linux-gnu.tar.gz 14 | become: true 15 | 16 | - name: Ouch | install 17 | ansible.builtin.copy: 18 | dest: "{{ bin_dir }}/ouch" 19 | mode: a+x 20 | src: "{{ setup_dir }}/ouch-x86_64-unknown-linux-gnu/ouch" 21 | become: true 22 | -------------------------------------------------------------------------------- /roles/pandoc/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Pandoc 2 | ansible.builtin.dnf: 3 | name: pandoc 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/papers/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: org.gnome.Papers 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/parabolic/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Parabolic Video Downloader 2 | community.general.flatpak: 3 | name: org.nickvision.tubeconverter 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/php/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: PHP | Install 2 | ansible.builtin.dnf: 3 | name: 4 | - php-cli 5 | - php-curl 6 | - php-intl 7 | - php-pdo 8 | - php-mysqlnd 9 | - php-json 10 | - php-mcrypt 11 | - composer 12 | become: true 13 | - name: Symfony CLI | Download Installer 14 | ansible.builtin.get_url: 15 | dest: '{{ setup_dir }}/symfony-installer' 16 | mode: '0644' 17 | url: https://get.symfony.com/cli/installer 18 | - name: Symfony CLI | Install 19 | ansible.builtin.command: bash {{ setup_dir }}/symfony-installer 20 | become: true 21 | -------------------------------------------------------------------------------- /roles/pigment/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: com.jeffser.Pigment 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/pika-backup/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Pika Backup 2 | community.general.flatpak: 3 | name: org.gnome.World.PikaBackup 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/pinta/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: com.github.PintaProject.Pinta 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/pipeline/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: de.schmidhuberj.tubefeeder 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/pitivi/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Pitivi 2 | community.general.flatpak: 3 | name: org.pitivi.Pitivi 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/polari/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: org.gnome.Polari 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/portainer/defaults/main.yml: -------------------------------------------------------------------------------- 1 | portainer_version: "2.26.1-alpine" 2 | portainer_domain: "portainer.localhost" 3 | portainer_port: "9000" 4 | -------------------------------------------------------------------------------- /roles/portainer/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Docker | Ensure Portainer volume is present 2 | community.docker.docker_volume: 3 | name: portainer_data 4 | state: present 5 | 6 | - name: Docker | Start Portainer container 7 | community.docker.docker_container: 8 | name: portainer 9 | image: portainer/portainer-ce:{{ portainer_version }} 10 | networks: 11 | - name: traefik-public 12 | restart_policy: unless-stopped 13 | volumes: 14 | - portainer_data:/data 15 | - /var/run/docker.sock:/var/run/docker.sock 16 | healthcheck: 17 | test: 18 | - CMD 19 | - wget 20 | - -q 21 | - --spider 22 | - http://localhost:9000/api/system/status 23 | interval: 10s 24 | retries: 3 25 | start_period: 10s 26 | timeout: 2s 27 | labels: 28 | traefik.enable: 'true' 29 | traefik.http.routers.portainer.entrypoints: websecure 30 | traefik.http.routers.portainer.rule: Host(`{{ portainer_domain }}`) 31 | traefik.http.routers.portainer.tls: 'true' 32 | traefik.http.services.portainer.loadbalancer.server.port: '{{ portainer_port }}' 33 | -------------------------------------------------------------------------------- /roles/postman/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Postman 2 | community.general.flatpak: 3 | name: com.getpostman.Postman 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/prometheus/defaults/main.yml: -------------------------------------------------------------------------------- 1 | prometheus_version: "v3.1.0" 2 | prometheus_domain: "prometheus.localhost" 3 | -------------------------------------------------------------------------------- /roles/prometheus/templates/prometheus.yml.j2: -------------------------------------------------------------------------------- 1 | global: 2 | scrape_interval: 30s # By default, scrape targets every 15 seconds. 3 | 4 | # Attach these labels to any time series or alerts when communicating with 5 | # external systems (federation, remote storage, Alertmanager). 6 | external_labels: 7 | instance: {{ ansible_hostname }} 8 | 9 | # A scrape configuration containing exactly one endpoint to scrape: 10 | # Here it's Prometheus itself. 11 | scrape_configs: 12 | - job_name: 'prometheus' 13 | static_configs: 14 | - targets: ['localhost:9090'] 15 | relabel_configs: 16 | - source_labels: [__address__] 17 | regex: "([^:]+):\\d+" 18 | target_label: instance 19 | 20 | - job_name: cadvisor 21 | static_configs: 22 | - targets: 23 | - cadvisor:8080 24 | relabel_configs: 25 | - source_labels: [__address__] 26 | regex: "([^:]+):\\d+" 27 | target_label: instance 28 | 29 | - job_name: node_exporter 30 | static_configs: 31 | - targets: 32 | - node-exporter:9100 33 | relabel_configs: 34 | - source_labels: [__address__] 35 | regex: "([^:]+):\\d+" 36 | target_label: instance 37 | 38 | - job_name: traefik 39 | static_configs: 40 | - targets: 41 | - traefik:8080 42 | relabel_configs: 43 | - source_labels: [__address__] 44 | regex: "([^:]+):\\d+" 45 | target_label: instance 46 | -------------------------------------------------------------------------------- /roles/promtail/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Ensure Promtail config exists 2 | ansible.builtin.file: 3 | path: /etc/promtail 4 | mode: "0755" 5 | state: directory 6 | become: true 7 | 8 | - name: Create Promtail configuration file 9 | ansible.builtin.template: 10 | dest: /etc/promtail/promtail-local-config.yml 11 | mode: "0644" 12 | src: promtail-local-config.yml.j2 13 | become: true 14 | 15 | - name: Start container 16 | community.docker.docker_container: 17 | name: promtail 18 | image: grafana/promtail:3.3.2 19 | command: -config.file=/etc/promtail/config.yml 20 | state: started 21 | restart_policy: unless-stopped 22 | networks: 23 | - name: monitoring 24 | labels: 25 | traefik.enable: "false" 26 | volumes: 27 | - /etc/promtail/promtail-local-config.yml:/etc/promtail/config.yml:ro 28 | - /var/log:/var/log:ro 29 | - /var/log/journal:/var/log/journal:ro 30 | - /var/run/docker.sock:/var/run/docker.sock:ro 31 | -------------------------------------------------------------------------------- /roles/protonmail/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: me.proton.Mail 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/protonvpn/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: ProtonVPN 2 | community.general.flatpak: 3 | name: com.protonvpn.www 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/proxyman/defaults/main.yml: -------------------------------------------------------------------------------- 1 | proxyman_icon_path: "{{ app_icons_path }}/Proxyman.png" 2 | -------------------------------------------------------------------------------- /roles/proxyman/files/proxyman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/7c14aa43d294fdff6ace8aeabfb8d8ea67b0e04f/roles/proxyman/files/proxyman.png -------------------------------------------------------------------------------- /roles/proxyman/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get Latest Release from GitHub 2 | community.general.github_release: 3 | action: latest_release 4 | user: ProxymanApp 5 | repo: proxyman-windows-linux 6 | token: "{{ github_token }}" 7 | register: release 8 | 9 | - name: Download App Image 10 | get_url: 11 | url: "https://github.com/ProxymanApp/proxyman-windows-linux/releases/download/{{ release.tag }}/Proxyman-{{ release.tag | regex_replace('^v', '') }}.AppImage" 12 | dest: "{{ setup_dir }}/Proxyman.AppImage" 13 | 14 | - name: Install App Image 15 | ansible.builtin.copy: 16 | src: "{{ setup_dir }}/Proxyman.AppImage" 17 | dest: "/opt/Proxyman.AppImage" 18 | mode: "0755" 19 | become: true 20 | 21 | - name: Ensure Icons folder exists 22 | ansible.builtin.file: 23 | path: "{{ proxyman_icon_path | dirname }}" 24 | state: directory 25 | mode: "0755" 26 | 27 | - name: Copy Icon from files 28 | ansible.builtin.copy: 29 | src: "proxyman.png" 30 | dest: "{{ proxyman_icon_path }}" 31 | mode: "0644" 32 | 33 | - name: Create Desktop Entry 34 | ansible.builtin.copy: 35 | content: | 36 | [Desktop Entry] 37 | Name=Proxyman 38 | Comment=A modern web debugging proxy for Windows/Linux 39 | Exec=/opt/Proxyman.AppImage 40 | Icon={{ proxyman_icon_path }} 41 | Type=Application 42 | Categories=Network; 43 | Terminal=false 44 | dest: "{{ applications_dir }}/Proxyman.desktop" 45 | mode: "0644" 46 | -------------------------------------------------------------------------------- /roles/python/defaults/main.yml: -------------------------------------------------------------------------------- 1 | python_pip_executable: /usr/bin/pip 2 | -------------------------------------------------------------------------------- /roles/python/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Python | Install PIP packages 2 | ansible.builtin.pip: 3 | name: "{{ item }}" 4 | loop: 5 | - requests 6 | - bandit 7 | - ruff 8 | - setuptools 9 | - pipx 10 | - poetry 11 | 12 | 13 | -------------------------------------------------------------------------------- /roles/qbittorrent/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Dev Toolbox 2 | community.general.flatpak: 3 | name: org.qbittorrent.qBittorrent 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/radicle/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.shell: 3 | cmd: curl -sSL https://radicle.xyz/install | sh 4 | args: 5 | executable: /bin/bash 6 | -------------------------------------------------------------------------------- /roles/ranger/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Ranger 2 | ansible.builtin.dnf: 3 | name: ranger 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/rclone/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: rclone 5 | token: '{{ github_token }}' 6 | user: rclone 7 | register: release 8 | 9 | - name: Extract archive 10 | ansible.builtin.unarchive: 11 | src: "https://github.com/rclone/rclone/releases/download/{{ release.tag }}/rclone-{{ release.tag }}-linux-amd64.zip" 12 | dest: "{{ setup_dir }}" 13 | remote_src: true 14 | mode: "0755" 15 | 16 | - name: Install rclone 17 | ansible.builtin.copy: 18 | src: "{{ setup_dir }}/rclone-{{ release.tag }}-linux-amd64" 19 | dest: "/usr/local/bin/rclone" 20 | mode: "a+x" 21 | become: true 22 | -------------------------------------------------------------------------------- /roles/redis/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Redis Desktop Manager 2 | become: true 3 | community.general.flatpak: 4 | name: app.resp.RESP 5 | state: present 6 | -------------------------------------------------------------------------------- /roles/remembrance/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Remembrance 2 | community.general.flatpak: 3 | name: io.github.dgsasha.Remembrance 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/restic/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Restic 2 | ansible.builtin.dnf: 3 | name: restic 4 | state: present 5 | become: true 6 | 7 | - name: Create systemd unit files 8 | ansible.builtin.template: 9 | dest: "{{ ansible_env.HOME }}/.config/systemd/user/{{ item }}" 10 | mode: "0644" 11 | src: "{{ item }}.j2" 12 | loop: 13 | - restic-b2-backup.service 14 | - restic-b2-backup.timer 15 | - restic-b2-prune.service 16 | - restic-b2-prune.timer 17 | 18 | - name: Reload systemd 19 | ansible.builtin.systemd: 20 | daemon_reload: yes 21 | become: true 22 | #- msg: "Run 'systemctl --user enable --now restic-b2-backup.timer' to enable and start the backup timer" 23 | #- msg: "Run 'systemctl --user enable --now restic-b2-prune.timer' to enable and start the prune timer" 24 | -------------------------------------------------------------------------------- /roles/restic/templates/restic-b2-backup.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Restic Backup to B2 3 | Wants=network-online.target 4 | After=network-online.target 5 | 6 | [Service] 7 | Type=oneshot 8 | EnvironmentFile=%h/.config/restic/restic-b2-backup.conf 9 | ExecStart=/bin/sh -c 'restic backup --verbose --exclude-caches --one-file-system --tag systemd.timer --tag $(hostname) -o b2.connections=10 $BACKUP_EXCLUDES $BACKUP_PATHS' 10 | ExecStopPost=/usr/bin/curl -fsS --retry 3 https://hc-ping.com/8a3ef792-7276-473c-b566-73e625530e51 11 | 12 | [Install] 13 | WantedBy=multi-user.target 14 | -------------------------------------------------------------------------------- /roles/restic/templates/restic-b2-backup.timer.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Restic B2 Weekly Backups 3 | [Timer] 4 | OnCalendar=weekly 5 | Persistent=true 6 | [Install] 7 | WantedBy=timers.target 8 | -------------------------------------------------------------------------------- /roles/restic/templates/restic-b2-prune.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Restic B2 Backup Service (Data Pruning) 3 | Wants=network-online.target 4 | After=network-online.target 5 | 6 | [Service] 7 | Type=oneshot 8 | EnvironmentFile=%h/.config/restic/restic-b2-backup.conf 9 | ExecStartPre=/bin/sh -c 'restic forget --verbose --tag systemd.timer --group-by "paths,tags" --keep-daily $RETENTION_DAYS --keep-weekly $RETENTION_WEEKS --keep-monthly $RETENTION_MONTHS --keep-yearly $RETENTION_YEARS' 10 | ExecStart=/bin/sh -c 'restic prune' 11 | 12 | [Install] 13 | WantedBy=multi-user.target 14 | -------------------------------------------------------------------------------- /roles/restic/templates/restic-b2-prune.timer.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Prune data from Restic B2 Backup 3 | [Timer] 4 | OnCalendar=monthly 5 | Persistent=true 6 | [Install] 7 | WantedBy=timers.target 8 | -------------------------------------------------------------------------------- /roles/retroarch/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Retroarch 2 | community.general.flatpak: 3 | name: org.libretro.RetroArch 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/rigrep/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Rigrep 2 | ansible.builtin.dnf: 3 | name: ripgrep 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/rofi/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: rofi 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/rpmrepos/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install rpmfusion repo 2 | ansible.builtin.dnf: 3 | name: "{{ item }}" 4 | state: present 5 | disable_gpg_check: true 6 | loop: 7 | - "https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-{{ ansible_facts['distribution_version'] }}.noarch.rpm" 8 | - "https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-{{ ansible_facts['distribution_version'] }}.noarch.rpm" 9 | become: true -------------------------------------------------------------------------------- /roles/ruby/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Ruby | Install 2 | ansible.builtin.dnf: 3 | name: 4 | - ruby 5 | - zlib 6 | state: present 7 | become: true 8 | 9 | - name: Installs Global Rubygems 10 | community.general.gem: 11 | name: '{{ item }}' 12 | with_items: 13 | - rake 14 | - bundler 15 | -------------------------------------------------------------------------------- /roles/rust/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Download Rustup installation script 2 | ansible.builtin.get_url: 3 | url: https://sh.rustup.rs 4 | dest: "{{setup_dir }}/rustup-init.sh" 5 | mode: '0755' 6 | 7 | - name: Install Rustup 8 | ansible.builtin.shell: "{{ setup_dir }}/rustup-init.sh -y" 9 | -------------------------------------------------------------------------------- /roles/scriptkit/defaults/main.yml: -------------------------------------------------------------------------------- 1 | scriptkit_version: "3.16.7" 2 | -------------------------------------------------------------------------------- /roles/scriptkit/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: https://github.com/script-kit/app/releases/download/v{{ scriptkit_version }}/Script-Kit-Linux-{{ scriptkit_version }}-x86_64.rpm 4 | state: present 5 | disable_gpg_check: true 6 | become: true -------------------------------------------------------------------------------- /roles/sd/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: SD | Get latest release version 2 | community.general.github_release: 3 | action: latest_release 4 | repo: sd 5 | token: '{{ github_token }}' 6 | user: chmln 7 | register: sd_release 8 | - name: SD | Download 9 | ansible.builtin.get_url: 10 | dest: '{{ bin_dir }}/sd' 11 | mode: a+x 12 | url: https://github.com/chmln/sd/releases/download/{{ sd_release.tag }}/sd-{{ sd_release.tag }}-x86_64-unknown-linux-gnu.tar.gz 13 | become: true 14 | -------------------------------------------------------------------------------- /roles/seabird/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: dev.skynomads.Seabird 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/selinux/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Put SELinux in permissive mode, logging actions that would be blocked. 2 | ansible.posix.selinux: 3 | policy: targeted 4 | state: permissive 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/sgpt/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: tbckr 5 | repo: sgpt 6 | token: '{{ github_token }}' 7 | register: release 8 | 9 | - name: Download and extract 10 | ansible.builtin.unarchive: 11 | dest: '{{ setup_dir }}' 12 | remote_src: true 13 | src: https://github.com/tbckr/sgpt/releases/download/{{ release.tag }}/sgpt_Linux_x86_64.tar.gz 14 | become: true 15 | 16 | - name: Install 17 | ansible.builtin.copy: 18 | dest: '{{ bin_dir }}/sgpt' 19 | mode: a+x 20 | src: '{{ setup_dir }}/sgpt' 21 | become: true 22 | -------------------------------------------------------------------------------- /roles/shellcheck/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: shellcheck 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/shfmt/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: mvdan 5 | repo: sh 6 | token: "{{ github_token }}" 7 | register: release 8 | 9 | - name: Download 10 | ansible.builtin.get_url: 11 | url: "https://github.com/mvdan/sh/releases/download/{{ release.tag }}/shfmt_{{ release.tag }}_linux_amd64" 12 | dest: "{{ bin_dir }}/shfmt" 13 | mode: +x 14 | become: true 15 | 16 | -------------------------------------------------------------------------------- /roles/shortwave/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Shortwave | Install 2 | community.general.flatpak: 3 | name: de.haeckerfelix.Shortwave 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/signal/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Signal Desktop 2 | community.general.flatpak: 3 | name: org.signal.Signal 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/slack/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Slack 2 | community.general.flatpak: 3 | name: com.slack.Slack 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/smile/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Smile 2 | community.general.flatpak: 3 | name: it.mijorus.smile 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/snapper/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install snapper 2 | ansible.builtin.dnf: 3 | name: snapper 4 | state: present 5 | become: true 6 | 7 | - name: Install Snapper dnf plugin 8 | ansible.builtin.template: 9 | src: snapper.actions.j2 10 | dest: /etc/dnf/libdnf5-plugins/actions.d/snapper.actions 11 | owner: root 12 | group: root 13 | mode: "0755" 14 | become: true 15 | -------------------------------------------------------------------------------- /roles/snapper/templates/snapper.actions.j2: -------------------------------------------------------------------------------- 1 | # The next two actions emulate the DNF4 snapper plugin. It uses the "snapper" command-line proram. 2 | 3 | # Creates pre snapshot before the transaction and stores the snapshot number in the "tmp.snapper_pre_number" variable. 4 | pre_transaction::::/usr/bin/sh -c echo\ "tmp.snapper_desc=$(ps\ -o\ command\ --no-headers\ -p\ '${pid}')" 5 | pre_transaction::::/usr/bin/sh -c echo\ "tmp.snapper_pre_number=$(snapper\ create\ -t\ pre\ -p\ -d\ '${tmp.snapper_desc}')" 6 | 7 | # If the variable "tmp.snapper_pre_number" exists, it creates post snapshot after the transaction and removes the tmp variables 8 | post_transaction::::/usr/bin/sh -c [\ -n\ "${tmp.snapper_pre_number}"\ ]\ &&\ snapper\ create\ -t\ post\ --pre-number\ "${tmp.snapper_pre_number}"\ -d\ "${tmp.snapper_desc}";\ echo\ tmp.snapper_pre_number\ ;\ echo\ tmp.snapper_desc 9 | -------------------------------------------------------------------------------- /roles/solaar/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: solaar 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/sops/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Sops | Get release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: sops 5 | token: '{{ github_token }}' 6 | user: mozilla 7 | register: release 8 | - name: Sops | Install binary 9 | ansible.builtin.get_url: 10 | dest: '{{ bin_dir }}/sops' 11 | mode: a+x 12 | url: https://github.com/mozilla/sops/releases/download/{{ release.tag }}/sops-{{ 13 | release.tag }}.linux.amd64 14 | become: true 15 | -------------------------------------------------------------------------------- /roles/sound-recorder/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Sound Recorder | Install 2 | community.general.flatpak: 3 | name: org.gnome.SoundRecorder 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/sourcegraph/defaults/main.yml: -------------------------------------------------------------------------------- 1 | sourcegraph_config_dir: "/etc/sourcegraph" 2 | sourcegraph_git_repos_dir: "{{ ansible_env.HOME }}/Code" 3 | sourcegraph_version: "6.4.0" 4 | sourcegraph_domain: "sourcegraph.localhost" 5 | -------------------------------------------------------------------------------- /roles/speedtest/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Speedtest GTK | Install 2 | community.general.flatpak: 3 | name: xyz.ketok.Speedtest 4 | state: present 5 | 6 | - name: Speedtest CLI | Install 7 | ansible.builtin.pip: 8 | name: speedtest-cli 9 | state: present 10 | become: true 11 | -------------------------------------------------------------------------------- /roles/spotdl/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release version 2 | community.general.github_release: 3 | action: latest_release 4 | user: spotDL 5 | repo: spotify-downloader 6 | token: '{{ github_token }}' 7 | register: latest_release 8 | 9 | - name: SpotDL | Download 10 | ansible.builtin.get_url: 11 | dest: '{{ bin_dir }}/spotdl' 12 | mode: a+x 13 | url: "https://github.com/spotDL/spotify-downloader/releases/download/{{ latest_release.tag }}/spotdl-{{ latest_release.tag[1:] }}-linux" 14 | become: true 15 | -------------------------------------------------------------------------------- /roles/spotify/tasks/main.yml: -------------------------------------------------------------------------------- 1 | # - name: Spotify | Install 2 | # community.general.flatpak: 3 | # name: com.spotify.Client 4 | # state: present 5 | 6 | - name: Install 7 | community.general.flatpak: 8 | name: com.github.KRTirtho.Spotube 9 | state: present 10 | -------------------------------------------------------------------------------- /roles/starship/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.shell: sh -c "$(curl -fsSL https://starship.rs/install.sh)" -- -y 3 | become: true -------------------------------------------------------------------------------- /roles/steam/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Steam | Install 2 | community.general.flatpak: 3 | name: com.valvesoftware.Steam 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/stern/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: stern 5 | repo: stern 6 | token: "{{ github_token }}" 7 | register: release 8 | 9 | - name: Download 10 | ansible.builtin.unarchive: 11 | dest: "{{ setup_dir }}" 12 | remote_src: true 13 | src: https://github.com/stern/stern/releases/download/{{ release.tag }}/stern_{{ release.tag[1:] }}_linux_amd64.tar.gz 14 | become: true 15 | 16 | - name: Install 17 | ansible.builtin.copy: 18 | dest: "{{ bin_dir }}" 19 | mode: a+x 20 | src: "{{ setup_dir }}/stern" 21 | become: true 22 | -------------------------------------------------------------------------------- /roles/stu/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get Latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: lusingander 5 | repo: stu 6 | token: "{{ github_token }}" 7 | register: latest_release 8 | 9 | - name: Download 10 | ansible.builtin.unarchive: 11 | src: https://github.com/lusingander/stu/releases/download/{{ latest_release.tag }}/stu-{{ latest_release.tag[1:] }}-x86_64-unknown-linux-gnu.tar.gz 12 | dest: "{{ setup_dir }}" 13 | remote_src: yes 14 | 15 | - name: Install 16 | ansible.builtin.copy: 17 | src: "{{ setup_dir }}/stu" 18 | dest: "{{ bin_dir }}" 19 | mode: "a+x" 20 | become: true 21 | -------------------------------------------------------------------------------- /roles/sysd-manager/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: io.github.plrigaux.sysd-manager 4 | state: present 5 | 6 | -------------------------------------------------------------------------------- /roles/systemctl-tui/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get Lastest Release 2 | community.general.github_release: 3 | action: latest_release 4 | user: rgwood 5 | repo: systemctl-tui 6 | token: '{{ github_token }}' 7 | register: release 8 | 9 | - name: Download and Install 10 | ansible.builtin.unarchive: 11 | dest: '{{ bin_dir }}' 12 | remote_src: true 13 | src: https://github.com/rgwood/systemctl-tui/releases/download/{{ release.tag }}/systemctl-tui-x86_64-unknown-linux-musl.tar.gz 14 | mode: a+x 15 | become: true 16 | -------------------------------------------------------------------------------- /roles/tactics/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: io.gitlab.leesonwai.Tactics 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/tailscale/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Add repository 2 | ansible.builtin.yum_repository: 3 | baseurl: https://pkgs.tailscale.com/stable/fedora/tailscale.repo 4 | description: Tailscale Repository 5 | name: tailscale 6 | become: true 7 | 8 | - name: Install 9 | ansible.builtin.dnf: 10 | name: tailscale 11 | state: present 12 | become: true 13 | -------------------------------------------------------------------------------- /roles/tailspin/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: bensadeh 5 | repo: tailspin 6 | token: "{{ github_token }}" 7 | register: release 8 | 9 | - name: Download and Install 10 | ansible.builtin.unarchive: 11 | src: https://github.com/bensadeh/tailspin/releases/download/{{ release.tag }}/tailspin-x86_64-unknown-linux-musl.tar.gz 12 | dest: "{{ bin_dir }}" 13 | mode: a+x 14 | remote_src: true 15 | become: true 16 | -------------------------------------------------------------------------------- /roles/taskfile/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | token: '{{ github_token }}' 5 | user: go-task 6 | repo: task 7 | register: release 8 | 9 | - name: Download 10 | ansible.builtin.unarchive: 11 | dest: '{{ setup_dir }}' 12 | mode: a+x 13 | remote_src: true 14 | src: https://github.com/go-task/task/releases/download/{{ release.tag }}/task_linux_amd64.tar.gz 15 | become: true 16 | 17 | - name: Install 18 | ansible.builtin.copy: 19 | mode: a+x 20 | src: '{{ setup_dir }}/task' 21 | dest: '{{ bin_dir }}/task' 22 | become: true 23 | -------------------------------------------------------------------------------- /roles/telegram/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Telegram Desktop 2 | community.general.flatpak: 3 | name: org.telegram.desktop 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/television/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: alexpasmantier 5 | repo: television 6 | token: "{{ github_token }}" 7 | register: release 8 | 9 | - name: Download and extract 10 | ansible.builtin.unarchive: 11 | dest: "{{ setup_dir }}" 12 | remote_src: true 13 | src: https://github.com/alexpasmantier/television/releases/download/{{ release.tag }}/tv-{{ release.tag }}-x86_64-unknown-linux-musl.tar.gz 14 | become: true 15 | 16 | - name: Install 17 | ansible.builtin.copy: 18 | dest: "{{ bin_dir }}/tv" 19 | mode: a+x 20 | src: "{{ setup_dir }}/tv-{{ release.tag }}-x86_64-unknown-linux-musl/tv" 21 | become: true 22 | -------------------------------------------------------------------------------- /roles/terraform/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Terraform | Get Latest version 2 | community.general.github_release: 3 | action: latest_release 4 | repo: terraform 5 | token: '{{ github_token }}' 6 | user: hashicorp 7 | register: release 8 | 9 | - name: Terraform | Download and install 10 | ansible.builtin.unarchive: 11 | dest: '{{ bin_dir }}' 12 | mode: u+rwx 13 | remote_src: true 14 | src: https://releases.hashicorp.com/terraform/{{ release.tag[1:] }}/terraform_{{ 15 | release.tag[1:] }}_linux_amd64.zip 16 | become: true 17 | -------------------------------------------------------------------------------- /roles/text-compare/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: io.github.josephmawa.TextCompare 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/the-way/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: The Way | Get latest version from GitHub 2 | community.general.github_release: 3 | action: latest_release 4 | repo: the-way 5 | token: '{{ github_token }}' 6 | user: out-of-cheese-error 7 | register: way_release 8 | - name: The Way | Download 9 | ansible.builtin.unarchive: 10 | dest: '{{ bin_dir }}' 11 | mode: a+x 12 | remote_src: true 13 | src: https://github.com/out-of-cheese-error/the-way/releases/download/{{ way_release.tag 14 | }}/the-way-linux.tar.gz 15 | become: true 16 | -------------------------------------------------------------------------------- /roles/ticktick/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: TickTick 2 | community.general.flatpak: 3 | name: com.ticktick.TickTick 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/tldr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: tldr-pages 5 | repo: tlrc 6 | register: release 7 | 8 | - name: Download 9 | ansible.builtin.unarchive: 10 | dest: '{{ setup_dir }}' 11 | remote_src: true 12 | src: https://github.com/tldr-pages/tlrc/releases/download/{{ release.tag }}/tlrc-{{ release.tag }}-x86_64-unknown-linux-gnu.tar.gz 13 | become: true 14 | 15 | - name: Install 16 | ansible.builtin.copy: 17 | dest: '{{ bin_dir }}' 18 | mode: a+x 19 | src: '{{ setup_dir }}/tldr' 20 | become: true 21 | -------------------------------------------------------------------------------- /roles/traefik/defaults/main.yml: -------------------------------------------------------------------------------- 1 | traefik_version: "v3.4.1" 2 | traefik_domain: "traefik.localhost" 3 | -------------------------------------------------------------------------------- /roles/traefik/files/certs/dozzle.localhost.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIELzCCApegAwIBAgIRAMqbuxdzbn+IrCyr7JG+8UwwDQYJKoZIhvcNAQELBQAw 3 | cTEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMSMwIQYDVQQLDBpicnVu 4 | b0BicnVuby1sYXB0b3AgKEJydW5vKTEqMCgGA1UEAwwhbWtjZXJ0IGJydW5vQGJy 5 | dW5vLWxhcHRvcCAoQnJ1bm8pMB4XDTI1MDYxNDEwMjUzMFoXDTI3MDkxNDEwMjUz 6 | MFowTjEnMCUGA1UEChMebWtjZXJ0IGRldmVsb3BtZW50IGNlcnRpZmljYXRlMSMw 7 | IQYDVQQLDBpicnVub0BicnVuby1sYXB0b3AgKEJydW5vKTCCASIwDQYJKoZIhvcN 8 | AQEBBQADggEPADCCAQoCggEBAPJvw0wRMewcmEfppaWPLXvi+htNCq2AILZ75neW 9 | 5q9zlRw/ui883CG31ES/SssZf/b8ML1L7eWDFPTbPE4XPz5DkIGyz3aPVHzA7+FU 10 | CTs8HkD2pbw4pU/hGrDHCETqoDQ6jTtjtXyKVVYcNv5KfYZ5F2EU7C6xvoiupnBN 11 | xqc8gaP/5reWUZBugtJ5Ry5wgiHaiuV1SX9ym37L9FMDQLrv3yQ/RFOtesjNCUQg 12 | ghUlpeTrsPa2fkn6ltaxiL/NnSNw2F+F09yzufWkDuCqMNTQyNsfHpXhxEaCdF8t 13 | kAwretFKnQJUVEpOrThPbmZ4KEc66sLVhewdEWZLF2KXp3kCAwEAAaNlMGMwDgYD 14 | VR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFMsB 15 | 7hi2bWwtQC6nEcpD9GzwJXyyMBsGA1UdEQQUMBKCEGRvenpsZS5sb2NhbGhvc3Qw 16 | DQYJKoZIhvcNAQELBQADggGBAKatw3wRC1TXAEFKR9djOgj43Mb/PvlQFolEtzz8 17 | rleyTpEENAugXAqc7d0vDN/j+WITiqwPOlyJjnJjmIvNm3pFlW2cXeoiUrDcsli4 18 | khZFhFR/zi52K5BNDrMQKWBlo+fLMS7FPmFn+2hlbOT2/RPoPCRB9u9XruYPuuX3 19 | mvDlCOLfYRtJmzApFaC8R6DJVv2/DWmWtZvz7m7nJQIh3ndMS/WaAcePs1T1Pp+0 20 | 5NWaQNNgZTLkzPyujExg3SbpRpUA7pb8Wapt3rupu3v4zCFoZUiCbp4KESlsGAfr 21 | tfx9S5p8RVdQAo/tIzP3Z2g3pHgIAu+53vaKxW9LSz+jZFGYDRocwvy2smWq+2u1 22 | SUpO8tJm7PDJPJ6W/PrY0P3HlFz1OH0lNV5ozF+U0eovdSeplZsBbSQ0L4apKVfq 23 | y+7upgzDfoMS5bRFTZVRlHl4IXm1ZN1p6kR1dJO1niJhcmaIodX9GrIm2NYom8QQ 24 | OUZeSyd1zD33/482rK4zINk8lA== 25 | -----END CERTIFICATE----- 26 | -------------------------------------------------------------------------------- /roles/traefik/files/certs/grafana.localhost.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIELzCCApegAwIBAgIQZqgKBqUSMAIXIh5BxK2DUzANBgkqhkiG9w0BAQsFADBx 3 | MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExIzAhBgNVBAsMGmJydW5v 4 | QGJydW5vLWxhcHRvcCAoQnJ1bm8pMSowKAYDVQQDDCFta2NlcnQgYnJ1bm9AYnJ1 5 | bm8tbGFwdG9wIChCcnVubykwHhcNMjUwNjE0MTAyNTMwWhcNMjcwOTE0MTAyNTMw 6 | WjBOMScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxIzAh 7 | BgNVBAsMGmJydW5vQGJydW5vLWxhcHRvcCAoQnJ1bm8pMIIBIjANBgkqhkiG9w0B 8 | AQEFAAOCAQ8AMIIBCgKCAQEA7ArPhvODkcJASyxsYbCwVHQeMkQjuZzjFIRgbiX+ 9 | 9ShshayU0PrNVnYsf/ttjBadXIsBs/lJiPyzH6GaUivCNWcBgIT4S+RItOBTWcNR 10 | wooRGU3L/KKDVjDJr1qt4qkupbl+WrvpR5RbG8TBIIurFQpWdF20dyf1een2jPMz 11 | BT33Spw2+RIo3kZ24Gr/CYHQo7VKAdkYEnhlfnjAqKN1yTWMAMCNv7CWsc9b5a+t 12 | eN4LInGmATIlDZP9WAHUHqWaWFQY5bSvGNcYcqgRK5Oh7EL0v2cSAxM+8moWJim7 13 | 3zSAb99lMdovy0IcstVrAvQDfPcwEPse78ofgsA3KhlALwIDAQABo2YwZDAOBgNV 14 | HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUywHu 15 | GLZtbC1ALqcRykP0bPAlfLIwHAYDVR0RBBUwE4IRZ3JhZmFuYS5sb2NhbGhvc3Qw 16 | DQYJKoZIhvcNAQELBQADggGBAIsBTnuG9x3A+rp3TaqgJ81Kyb82CkFsBpsDr9JZ 17 | GNrG0JkIoeuk2VyxaNGis3r9s2QcvH3t3z72aPfgPNrcQjiqat5H1ckAKP26pzY/ 18 | iPbxnV8vG9sbFJtHo1dhcuR2/p1cMNWCabRDCy9TEZFmG1iF+ZgjtXH9HwwlKb73 19 | ApXsg8u6wU8/hqhAP7JuuhlvvoBHxP9wUaLbGe9VPZcvnggXtb0z0m332ELqk5Ln 20 | xx8ip+EtRBy59m3KMjBktnC5YnqfcnP+DPANcAyrmZTeMBP3TiCcryctsT/MlYFb 21 | vkUlEiF0yoG+LO9bn5mHNYROMzNGo7JlykN5/6LnoCgYXNsTBcwiW06h4asxWsNW 22 | 3Wt0W6B6t7BTeF6sZkbbfBVsFPNfJRowxqXUx2235lqY7t/wrHM0yGs/bisKJOFF 23 | 9xJ/WfklAZ0agxnpOdc2WVeauYUYWfGraV6/4SkeLqH6igmGtgaUJFru6fetvQxk 24 | EojbDDKNAVPxv75BJSbvT+iK0Q== 25 | -----END CERTIFICATE----- 26 | -------------------------------------------------------------------------------- /roles/traefik/files/certs/portainer.localhost.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIEMTCCApmgAwIBAgIQUId6lqlZR6CwjyLbeeg3VjANBgkqhkiG9w0BAQsFADBx 3 | MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExIzAhBgNVBAsMGmJydW5v 4 | QGJydW5vLWxhcHRvcCAoQnJ1bm8pMSowKAYDVQQDDCFta2NlcnQgYnJ1bm9AYnJ1 5 | bm8tbGFwdG9wIChCcnVubykwHhcNMjUwNjE0MTAyNTMwWhcNMjcwOTE0MTAyNTMw 6 | WjBOMScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxIzAh 7 | BgNVBAsMGmJydW5vQGJydW5vLWxhcHRvcCAoQnJ1bm8pMIIBIjANBgkqhkiG9w0B 8 | AQEFAAOCAQ8AMIIBCgKCAQEAoIT1plX2zkIscfYc2mfr1j6Ihz+SZV4BlLImUSeV 9 | rSoodgn4Y+TtF0kzt3bsrtelSUaXmAcCy6YUWjRtlEHb5WX8KIfUrPlDxlbsGbIv 10 | 4rGhel7QTswE2zd79iclIRsMrln58iMB5hJNgHCseuiYLICqG5uSy6h+qq/6S1Aw 11 | acSYt0on/fczYfwmLH64D85bC4oVr8cfAZXMla8dLPK4bKOVk7LPKpPhigewKbmD 12 | 0e32AfK/qKPOH4rjI63faSeB3LG9m5hAQGetydJ1eGO/x7qMidrjPCgH4O7/Rz58 13 | FtD+n5r2+lb7gqrVD3wNAO4CwWdCSaqz63Tm36ATUStQ6QIDAQABo2gwZjAOBgNV 14 | HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUywHu 15 | GLZtbC1ALqcRykP0bPAlfLIwHgYDVR0RBBcwFYITcG9ydGFpbmVyLmxvY2FsaG9z 16 | dDANBgkqhkiG9w0BAQsFAAOCAYEAeorq1iW4n19dZtV5gY4Dgp73OMMN+r8NACLb 17 | 1fHlkNb0jztu4slVWDwvSIIlHwy9zqfGN+b15uu8SeUD17gO2UUTp14X8mRi0Kks 18 | dm8PFEGnkIt0nWHHg2gTl8+usVafG4fKmvzV9DdOQNhYFZKhpOI4vQHIK/8SYvin 19 | LZpv5VEWJKYvYpv3KWguPMP3AoASmHx3r9w4Du6jSVZOrsAQ7IooTZAS3/CI/pBW 20 | rpAZBO5OKT58H19BqrNfkas1WdzOTzv4bj5wKaOS44fMLH8A+X60NEljQQbEmv39 21 | AWYY4d5R8kjyucVMa9zFMMU+kB4uXOx4JgWCZNQNoU0vh2VUOXjTjhPZc+tBEsCM 22 | gGOO/yVclCPLgtb9gJC/d97Uq6rhlk5QylCCu/CBniQ944KuSPgGg81cLimfOojU 23 | axPqIpUA+mugEXqJEPQ5zbTFngfL0ssvCWZ6AMhaK8WwsmXV53WYzwbSDgIGFNqj 24 | B94LTLC4oY/rs0mpH3nuSn3dYq1Z 25 | -----END CERTIFICATE----- 26 | -------------------------------------------------------------------------------- /roles/traefik/files/certs/prometheus.localhost.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIEMjCCApqgAwIBAgIQOwfpimDX1wXDAG16KaxrLzANBgkqhkiG9w0BAQsFADBx 3 | MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExIzAhBgNVBAsMGmJydW5v 4 | QGJydW5vLWxhcHRvcCAoQnJ1bm8pMSowKAYDVQQDDCFta2NlcnQgYnJ1bm9AYnJ1 5 | bm8tbGFwdG9wIChCcnVubykwHhcNMjUwNjE0MTAyNTMwWhcNMjcwOTE0MTAyNTMw 6 | WjBOMScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxIzAh 7 | BgNVBAsMGmJydW5vQGJydW5vLWxhcHRvcCAoQnJ1bm8pMIIBIjANBgkqhkiG9w0B 8 | AQEFAAOCAQ8AMIIBCgKCAQEA3CeRAHeDUUsXgb+RLABvE3D6ZToRqoadv/fC6pu3 9 | 1QPWFi4H7SfxNH6iQ9faqKyME5RS8AXa/RceJD4W9l/Ts2RlxA3bmuqBuR1j9lMn 10 | quMdMi3Orl9W3NyZx2q/jWcUEloc1e92Q3teZpdpCV+hdz8Edmocx7vRuyRQRKj+ 11 | CBATARL/kUNuh/RU0xhONfvXTiMtf1+7OTYmdGvO5zgQyOmWqLOjW97P4NTvUIDq 12 | TAln97iBSqLtBYwLbtzbsi0ktf42yvjWYsyTd2aeIY5cgCPhdtD3ZEK5vfgsIFxD 13 | AnMVDn+ZQ3VufVkOwwE3Vje2XNRT148j6RfGM2Ajss1xyQIDAQABo2kwZzAOBgNV 14 | HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUywHu 15 | GLZtbC1ALqcRykP0bPAlfLIwHwYDVR0RBBgwFoIUcHJvbWV0aGV1cy5sb2NhbGhv 16 | c3QwDQYJKoZIhvcNAQELBQADggGBABUNBXgy6fgrHfZWX3ea3ib5NrRuwA9DRSei 17 | LIv/M6T4qFHiw0BU7RF5r5fho3o+4Z+foIoydShTEwWMdzw6ieHnc+77/cGVpdCF 18 | DuqYHz1NbtFC1rvp3h3m/6GjKTVMJYv3Mn/8Gs05YxS0HDgB/laL+KaMoxW2NHnx 19 | 2Cji1mqnhOi6J3zfdH1SksdZtUy42LimFDbWqv7jVB/qt0wLLBrLm45W2KKgFJZ2 20 | ugnVhSO5KlkbGYJj0HDqJwZJDozsF6Vh9TIGbImaL4aoO65TlCDE00t6csLfS0jJ 21 | wfEpRuHIR8XNG8zS7g4kAC6c3NHnZ35ijIF9DIGTXUt4xcT+4UNFY4mVN12sf0l5 22 | AKgZVMd/4PHq/sG0wNa66NyBFCtmkn8hkjfcPSLHmqmffFrRQ9mqbqDMCuSSraaw 23 | Bys19i14mTYTcTudNSUboXaO87lu2rXuo2NbP71dinByqRLyn/9poQGiW+KSIrP4 24 | 0u4BrquXwR1ZxU7uCUAyCkN+uY8Jjw== 25 | -----END CERTIFICATE----- 26 | -------------------------------------------------------------------------------- /roles/traefik/files/certs/sourcegraph.localhost.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIENDCCApygAwIBAgIRAM0SL8Ls2/iZvVCkNPdYTTIwDQYJKoZIhvcNAQELBQAw 3 | cTEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMSMwIQYDVQQLDBpicnVu 4 | b0BicnVuby1sYXB0b3AgKEJydW5vKTEqMCgGA1UEAwwhbWtjZXJ0IGJydW5vQGJy 5 | dW5vLWxhcHRvcCAoQnJ1bm8pMB4XDTI1MDYxNDEwMjUzMVoXDTI3MDkxNDEwMjUz 6 | MVowTjEnMCUGA1UEChMebWtjZXJ0IGRldmVsb3BtZW50IGNlcnRpZmljYXRlMSMw 7 | IQYDVQQLDBpicnVub0BicnVuby1sYXB0b3AgKEJydW5vKTCCASIwDQYJKoZIhvcN 8 | AQEBBQADggEPADCCAQoCggEBAMI0e3SWFO+d1mixCqVZdH/w0vghH2sQWGvkQd97 9 | wAfZprDHh0LaMizi9Wy7S57IJo8tP20xBlnnUGEfVhUYMu7h4cbaS1bLRkza7Mme 10 | dIdz829S5n41k5NxHkepQ3xegjv/dXFn7NQTwg5osLR4oEkfh1vsAmkeTmiG16l4 11 | i9IB/DWuA8siFYRLezhjqS2TMY718r3TuwgPyfps/4ifaMq9fSpRGvMeYuXAGHBW 12 | U0yuPBVJXBwsh00dgt3WJYrtEpMcopm6qYihoWextbjQXJlg/8M0fbeHUmUdkxWS 13 | IAnyAlOlzljTrMZiX2TR6P8lbVanykCvQ3VfykBoJ8YJonsCAwEAAaNqMGgwDgYD 14 | VR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFMsB 15 | 7hi2bWwtQC6nEcpD9GzwJXyyMCAGA1UdEQQZMBeCFXNvdXJjZWdyYXBoLmxvY2Fs 16 | aG9zdDANBgkqhkiG9w0BAQsFAAOCAYEAaetcCeqv9ypxez+tf1+gfVl/4qA07H9u 17 | g6YTBKZRkEvYYAp8nLEYYWm7mEvhz/0zhDf6N4BcP4rH9/drfZvU3vF9KitcDdyD 18 | pLU30/beXVxDySY+kKplm5ta8OE8ZYMJ+Z6IeCcOGL9tVaIlMDMjgspne8mAvitp 19 | Nxpee4NG3MNjkLDnzBtiUlle2R3fjq9q/4ZksSjib42vOwc91pZVeH0OptH1t7Qm 20 | 6SDTyaIWL+PaNXUGSMry0h7iqub7oj1+IMDw3/TCBfOZmrjxnBfDnnSUEMOM+0RI 21 | mfo/sWJY8K0TwzA7kCsQa27QWR7FLq3CAYTYRMUs6iWFqN84RqoFuOil3EBq0lKC 22 | wfh/98LR2CA/Eya3RMdYCNEixMYgdE8Jlh32fT9c7Q91EUUtd8/IZZPNbKrUYcmA 23 | Em5THQITMI2G2AIPY3ug7QUJVPkyuV7EVO2FOBdMZzCE0Xl6XYfqV39WWK+eV2n5 24 | d3MUyWN8iaU7lf0IH2yqLTLXWBEqlY16 25 | -----END CERTIFICATE----- 26 | -------------------------------------------------------------------------------- /roles/traefik/files/certs/traefik.localhost.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIEMDCCApigAwIBAgIRAIRPHYD9ZMpaH9mf/QdBxEYwDQYJKoZIhvcNAQELBQAw 3 | cTEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMSMwIQYDVQQLDBpicnVu 4 | b0BicnVuby1sYXB0b3AgKEJydW5vKTEqMCgGA1UEAwwhbWtjZXJ0IGJydW5vQGJy 5 | dW5vLWxhcHRvcCAoQnJ1bm8pMB4XDTI1MDYxNDEwMjUzMFoXDTI3MDkxNDEwMjUz 6 | MFowTjEnMCUGA1UEChMebWtjZXJ0IGRldmVsb3BtZW50IGNlcnRpZmljYXRlMSMw 7 | IQYDVQQLDBpicnVub0BicnVuby1sYXB0b3AgKEJydW5vKTCCASIwDQYJKoZIhvcN 8 | AQEBBQADggEPADCCAQoCggEBAMHE9P6AfIbkhMAEPiS0QgFkUZBjCWEeQnwYDJqL 9 | XKt4Z0wlNYQqET+MUdg0uS1ZI5VVrHFt4r5uKG2YkgLeBTaYAUtj5V58UtIfxhks 10 | 0C6uPn6nIVV9MZUeiCVJm6Z8ito9BNphzWGWf4TOWFDuX3EYkTA8CuzziGk3Rshc 11 | obXrLDRmDqchIYv9AgQBQnIH5nknyPO75UiCwTiP44P/iJOlUKbQ5NtQ2sWyo8Tg 12 | K6+dsEROcMW7G+WSacsPEfUDdG8Uw7ZN26CoMYZm4Lj0sQkK2C+3HiFJpqcrZwl8 13 | STuLbVOzBkS7i4PKoovVmrhZJBkKifJbHzzizUjQsyVjJ8MCAwEAAaNmMGQwDgYD 14 | VR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFMsB 15 | 7hi2bWwtQC6nEcpD9GzwJXyyMBwGA1UdEQQVMBOCEXRyYWVmaWsubG9jYWxob3N0 16 | MA0GCSqGSIb3DQEBCwUAA4IBgQCHeqiIndFHP6ubxKdDqGzq0wW9awAAMRcBKg/H 17 | y1xlyYCCi3Q4zzFZ0lCJ7qelNtjmXFpY6GRcDl9+Sqrjmxij3ObqWdTW0xWA9C1J 18 | jNKS5Q7JaXjyu6NE/om1gaocTqENHbm4G5BREY8fBnVbi6dIcadjqNsUIrjE6ocW 19 | re5yKDbqHF81z7UjD03y07Q4hK9tpMN4qngTcpcUFZrQAqRCehGAm07+wanuqKla 20 | aWPyELaLhNisoMzlZEHT0gQ7tjyC0TEuLsHg+pkBJVhuHcE2SDcvI7WaQkdbdqu4 21 | xS/8Lx/c1MQcxp9WV3Ec27Jr+N7gNqt8omSSMDo2eIm9S6WaB7Q/sTW6K2m6OWeF 22 | rYfsBGVX/MIB2J6zshWbrGZ7gJNKqSffGE2SqWT2xBI+r1a4WElQxopLnAaRKACO 23 | 3DUGgA5qcwnirYAwodcpn9Vzb3arxQPVhiaIq52w4xNN3CpZAcPFkr3R+08JGgmB 24 | 4tjGGgqCKhC5v7ckFn3DSxvzjQ8= 25 | -----END CERTIFICATE----- 26 | -------------------------------------------------------------------------------- /roles/traefik/files/conf/tls.yaml: -------------------------------------------------------------------------------- 1 | # Configure Traefik to use TLS 2 | # See: https://doc.traefik.io/traefik/https/tls/#certificates-definition 3 | tls: 4 | stores: 5 | default: {} 6 | certificates: 7 | - certFile: /etc/certs/traefik.localhost.pem 8 | keyFile: /etc/certs/traefik.localhost-key.pem 9 | - certFile: /etc/certs/grafana.localhost.pem 10 | keyFile: /etc/certs/grafana.localhost-key.pem 11 | - certfile: /etc/certs/sourcegraph.localhost.pem 12 | keyfile: /etc/certs/sourcegraph.localhost-key.pem 13 | - certFile: /etc/certs/grafana.localhost.pem 14 | keyFile: /etc/certs/grafana.localhost-key.pem 15 | - certFile: /etc/certs/portainer.localhost.pem 16 | keyFile: /etc/certs/portainer.localhost-key.pem 17 | - certFile: /etc/certs/prometheus.localhost.pem 18 | keyFile: /etc/certs/prometheus.localhost-key.pem 19 | - certFile: /etc/certs/dozzle.localhost.pem 20 | keyFile: /etc/certs/dozzle.localhost-key.pem 21 | -------------------------------------------------------------------------------- /roles/trayscale/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: dev.deedles.Trayscale 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/tuba/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: dev.geopjr.Tuba 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/tubeconverter/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: TubeConverter 2 | community.general.flatpak: 3 | name: org.nickvision.tubeconverter 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/turbolift/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Turbolift | Get latest release version 2 | community.general.github_release: 3 | user: Skyscanner 4 | action: latest_release 5 | repo: turbolift 6 | token: "{{ github_token }}" 7 | register: turbolift_release 8 | 9 | - name: Turbolift | Download 10 | ansible.builtin.unarchive: 11 | dest: "{{ setup_dir }}" 12 | remote_src: true 13 | src: https://github.com/Skyscanner/turbolift/releases/download/{{ turbolift_release.tag }}/turbolift_{{ turbolift_release.tag }}_Linux_x86_64.tar.gz 14 | become: true 15 | 16 | - name: Turbolift | install 17 | ansible.builtin.copy: 18 | dest: "{{ bin_dir }}/turbolift" 19 | mode: a+x 20 | src: "{{ setup_dir }}/turbolift" 21 | become: true 22 | -------------------------------------------------------------------------------- /roles/tuxedo/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Add Repository 2 | ansible.builtin.yum_repository: 3 | baseurl: https://rpm.tuxedocomputers.com/fedora/{{ ansible_distribution_version}}/x86_64/base 4 | gpgkey: https://rpm.tuxedocomputers.com/fedora/{{ ansible_distribution_version }}/0x54840598.pub.asc 5 | description: Tuxedo Computers Repository 6 | name: tuxedo 7 | enabled: true 8 | 9 | - name: Install Tuxedo software 10 | ansible.builtin.dnf: 11 | name: "{{ item }}" 12 | state: present 13 | loop: 14 | - tuxedo-drivers 15 | - tuxedo-control-center 16 | become: true 17 | 18 | - name: Install LAN chipset Drivers 19 | ansible.builtin.dnf: 20 | name: https://gitlab.com/-/project/56425584/uploads/d1d6fe84826272e061c5fb3bd2e2a261/tuxedo-yt6801-1.0.28-1.noarch.rpm 21 | state: present 22 | become: true 23 | -------------------------------------------------------------------------------- /roles/usebruno/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: com.usebruno.Bruno 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/users/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Allow sudo without re entering the passowrd 2 | ansible.builtin.lineinfile: 3 | line: '%%wheel ALL=(ALL) NOPASSWD: ALL' 4 | path: /etc/sudoers 5 | regexp: '^# %wheel ALL=(ALL) NOPASSWD: ALL' 6 | state: present 7 | validate: /usr/sbin/visudo -cf %s 8 | become: true 9 | -------------------------------------------------------------------------------- /roles/vagrant/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install Repo 2 | ansible.builtin.yum_repository: 3 | baseurl: https://rpm.releases.hashicorp.com/fedora/hashicorp.repo 4 | description: Hashicorp Repository 5 | name: hashicorp 6 | 7 | - name: Install 8 | ansible.builtin.dnf: 9 | name: 10 | - vagrant 11 | become: true 12 | -------------------------------------------------------------------------------- /roles/valuta/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: io.github.idevecore.Valuta 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/video-trimmer/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Video Trimmer 2 | community.general.flatpak: 3 | name: org.gnome.gitlab.YaLTeR.VideoTrimmer 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/vim/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Vim Install 2 | ansible.builtin.dnf: 3 | name: '{{ item }}' 4 | state: present 5 | become: true 6 | loop: 7 | - vim 8 | - neovim 9 | -------------------------------------------------------------------------------- /roles/vlc/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: VLC 2 | ansible.builtin.dnf: 3 | name: vlc 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/vscode/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: VS Code | Add Repository 2 | ansible.builtin.yum_repository: 3 | baseurl: https://packages.microsoft.com/yumrepos/vscode 4 | description: Visual Studio Code 5 | gpgkey: https://packages.microsoft.com/keys/microsoft.asc 6 | name: vscode 7 | become: true 8 | - name: VS Code | Install 9 | ansible.builtin.dnf: 10 | name: code 11 | become: true 12 | -------------------------------------------------------------------------------- /roles/watchexec/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Watchexec | Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: watchexec 5 | token: '{{ github_token }}' 6 | user: watchexec 7 | register: release 8 | - name: Watchexec | Install 9 | ansible.builtin.dnf: 10 | disable_gpg_check: true 11 | name: https://github.com/watchexec/watchexec/releases/download/{{ release.tag 12 | }}/watchexec-{{ release.tag[1:] }}-x86_64-unknown-linux-gnu.rpm 13 | state: present 14 | become: true 15 | -------------------------------------------------------------------------------- /roles/waveterm/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: wavetermdev 5 | repo: waveterm 6 | token: '{{ github_token }}' 7 | register: release 8 | 9 | - name: Download RPM Install 10 | ansible.builtin.dnf: 11 | name: https://github.com/wavetermdev/waveterm/releases/download/{{ release.tag }}/waveterm-linux-x86_64-{{ release.tag[1:] }}.rpm 12 | state: present 13 | disable_gpg_check: true 14 | become: true 15 | -------------------------------------------------------------------------------- /roles/weather/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Gnome Weather 2 | community.general.flatpak: 3 | name: org.gnome.Weather 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/webapps/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: net.codelogistics.webapps 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/whatip/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: WhatIP 2 | community.general.flatpak: 3 | name: org.gabmus.whatip 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/whisper/defaults/main.yml: -------------------------------------------------------------------------------- 1 | whisper_image: onerahmet/openai-whisper-asr-webservice 2 | whisper_version: v1.8.2 3 | -------------------------------------------------------------------------------- /roles/whisper/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Whisper | Start container 2 | community.docker.docker_container: 3 | name: whisper 4 | image: "{{ whisper_image }}:{{ whisper_version }}" 5 | restart_policy: unless-stopped 6 | ports: 7 | - 127.0.0.1:9010:9000 8 | env: 9 | ASR_MODEL: base 10 | ASR_ENGINE: openai_whisper 11 | -------------------------------------------------------------------------------- /roles/wike/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: com.github.hugolabe.Wike 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/wildcard/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Wildcard | Regex Tester | Download 2 | community.general.flatpak: 3 | name: com.felipekinoshita.Wildcard 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/wireshark/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Wireshark 2 | ansible.builtin.dnf: 3 | name: wireshark 4 | become: true 5 | -------------------------------------------------------------------------------- /roles/xnconvert/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: XnConverter 2 | community.general.flatpak: 3 | name: com.xnview.XnConvert 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/xournalpp/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: com.github.xournalpp.xournalpp 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/yamllint/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.pip: 3 | name: yamllint 4 | -------------------------------------------------------------------------------- /roles/yazi/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get Latest release from GitHub 2 | community.general.github_release: 3 | action: latest_release 4 | user: sxyazi 5 | repo: yazi 6 | token: "{{ github_token }}" 7 | register: release 8 | 9 | - name: Download and Install 10 | ansible.builtin.unarchive: 11 | dest: "{{ setup_dir }}" 12 | remote_src: yes 13 | src: https://github.com/sxyazi/yazi/releases/download/{{ release.tag }}/yazi-x86_64-unknown-linux-gnu.zip 14 | 15 | - name: Copy to bin 16 | ansible.builtin.copy: 17 | src: "{{ setup_dir }}/yazi-x86_64-unknown-linux-gnu/{{ item }}" 18 | dest: "{{ bin_dir }}/{{ item }}" 19 | mode: a+x 20 | loop: 21 | - yazi 22 | - ya 23 | become: true 24 | 25 | 26 | -------------------------------------------------------------------------------- /roles/yq/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: YQ | Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | repo: yq 5 | token: '{{ github_token }}' 6 | user: mikefarah 7 | register: release 8 | - name: YQ | Download and Install 9 | ansible.builtin.get_url: 10 | dest: '{{ bin_dir }}/yq' 11 | mode: a+x 12 | url: https://github.com/mikefarah/yq/releases/download/{{ release.tag }}/yq_linux_amd64 13 | become: true 14 | -------------------------------------------------------------------------------- /roles/yt-dlp/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest version from GitHub 2 | community.general.github_release: 3 | action: latest_release 4 | repo: yt-dlp 5 | token: '{{ github_token }}' 6 | user: yt-dlp 7 | register: ytdlp_release 8 | 9 | - name: Download 10 | ansible.builtin.get_url: 11 | dest: '{{ bin_dir }}/yt-dlp' 12 | mode: a+x 13 | url: https://github.com/yt-dlp/yt-dlp/releases/download/{{ ytdlp_release.tag }}/yt-dlp_linux 14 | become: true 15 | -------------------------------------------------------------------------------- /roles/zapzap/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: WhatsApp Desktop 2 | community.general.flatpak: 3 | name: com.rtosta.zapzap 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/zeal/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: org.zealdocs.Zeal 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/zed/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: dev.zed.Zed 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/zellij/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: zellij-org 5 | repo: zellij 6 | token: "{{ github_token }}" 7 | register: release 8 | 9 | - name: Download the latest release 10 | ansible.builtin.unarchive: 11 | src: " https://github.com/zellij-org/zellij/releases/download/{{ release.tag }}/zellij-x86_64-unknown-linux-musl.tar.gz" 12 | dest: "{{ bin_dir }}" 13 | remote_src: yes 14 | mode: a+x 15 | become: true 16 | 17 | -------------------------------------------------------------------------------- /roles/zoom/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Zoom 2 | community.general.flatpak: 3 | name: us.zoom.Zoom 4 | state: present 5 | -------------------------------------------------------------------------------- /roles/zoxide/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: zoxide 4 | become: true 5 | -------------------------------------------------------------------------------- /roles/zrok/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Get Latest Release 2 | community.general.github_release: 3 | action: latest_release 4 | user: openziti 5 | repo: zrok 6 | token: "{{ github_token }}" 7 | register: latest_release 8 | 9 | - name: Download 10 | ansible.builtin.unarchive: 11 | src: "https://github.com/openziti/zrok/releases/download/{{ latest_release.tag }}/zrok_{{ latest_release.tag[1:] }}_linux_amd64.tar.gz" 12 | dest: "{{ setup_dir }}" 13 | remote_src: yes 14 | 15 | - name: Install 16 | ansible.builtin.copy: 17 | src: "{{ setup_dir }}/zrok" 18 | dest: "{{ bin_dir }}" 19 | mode: "a+x" 20 | become: true 21 | -------------------------------------------------------------------------------- /roles/zsh/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: 4 | - zsh 5 | - util-linux-user 6 | state: present 7 | become: true 8 | 9 | - name: Set as default shell 10 | ansible.builtin.shell: chsh -s $(which zsh) {{ ansible_env.USER }} 11 | become: true 12 | -------------------------------------------------------------------------------- /scripts/gen-mkdcert-certs.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Generate certificates for the traefik proxy 3 | # This script uses mkcert to generate the certificates 4 | # To make traefik use the certificates, you need to to configure the `roles/traefik/files/conf/tls.yaml` file 5 | CERTS_PATH="roles/traefik/files/certs" 6 | 7 | SITES=( 8 | "traefik.localhost" 9 | "grafana.localhost" 10 | "prometheus.localhost" 11 | "portainer.localhost" 12 | "dozzle.localhost" 13 | "sourcegraph.localhost" 14 | ) 15 | 16 | # ENsure we are in the root directory 17 | cd "$(dirname "$0")/../${CERTS_PATH}" 18 | 19 | # Check if mkcert is installed 20 | if ! command -v mkcert &>/dev/null; then 21 | echo "mkcert could not be found. Please follow the instructions at https://github.com/FiloSottile/mkcert?tab=readme-ov-file#installation" 22 | exit 1 23 | fi 24 | 25 | for SITE in "${SITES[@]}"; do 26 | mkcert "${SITE}" 27 | done 28 | -------------------------------------------------------------------------------- /scripts/restore_home.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # ====================================================================== 3 | # This script allows to restore user data folders from a backup location 4 | # to the users $HOME directory. 5 | # ====================================================================== 6 | directoriesToRestore="Code Documents Music Pictures Knowledge Games Education Videos" 7 | 8 | error() { 9 | RED="\033[0;31m" 10 | NC="\033[0m" # No Color 11 | printf "${RED}${1} ${NC}\n" 12 | } 13 | 14 | info() { 15 | YELLOW="\033[1;33m" 16 | NC="\033[0m" # No Color 17 | printf "${YELLOW}${1} ${NC}\n" 18 | } 19 | 20 | # ============================================================ 21 | # Validates the presence of the required envrionment variables 22 | # ============================================================ 23 | validate_args() { 24 | if [[ -z "${BACKUP_PATH}" ]]; then 25 | error "No backup path specified" 26 | exit 1 27 | fi 28 | 29 | if [ ! -d "$BACKUP_PATH" ]; then 30 | error "Backup directory ${BACKUP_PATH} does not exist" 31 | exit 1 32 | fi 33 | } 34 | 35 | validate_args 36 | 37 | for dir in ${directoriesToRestore}; do 38 | info "Restoring ${dir}" 39 | rsync -azhP ${BACKUP_PATH}/${dir} $HOME 40 | done 41 | -------------------------------------------------------------------------------- /scripts/setup-snapper.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | # Setup snapper for root and home subvolumes 3 | # This script is intended to be run after the initial installation of Fedora 4 | # and before the first system update 5 | 6 | set -e 7 | 8 | # Check if the script is being run as root 9 | if [ "$EUID" -ne 0 ]; then 10 | echo "Please run as root" 11 | exit 12 | fi 13 | 14 | # setup config 15 | 16 | # create config for root 17 | snapper -c root create-config / 18 | snapper -c root set-config NUMBER_MIN_AGE="3600" 19 | snapper -c root set-config NUMBER_LIMIT="50" 20 | snapper -c root set-config TIMELINE_CREATE="yes" 21 | snapper -c root set-config TIMELINE_CLEANUP="yes" 22 | snapper -c root set-config TIMELINE_LIMIT_HOURLY="5" 23 | snapper -c root set-config TIMELINE_LIMIT_DAILY="7" 24 | snapper -c root set-config TIMELINE_LIMIT_WEEKLY="0" 25 | snapper -c root set-config TIMELINE_LIMIT_MONTHLY="1" 26 | snapper -c root set-config TIMELINE_LIMIT_YEARLY="0" 27 | 28 | # create config for home 29 | snapper -c home create-config /home 30 | snapper -c home set-config NUMBER_MIN_AGE="3600" 31 | snapper -c home set-config NUMBER_LIMIT="50" 32 | snapper -c home set-config TIMELINE_CREATE="yes" 33 | snapper -c home set-config TIMELINE_CLEANUP="yes" 34 | snapper -c home set-config TIMELINE_LIMIT_HOURLY="5" 35 | snapper -c home set-config TIMELINE_LIMIT_DAILY="7" 36 | snapper -c home set-config TIMELINE_LIMIT_WEEKLY="0" 37 | snapper -c home set-config TIMELINE_LIMIT_MONTHLY="1" 38 | snapper -c home set-config TIMELINE_LIMIT_YEARLY="0" 39 | -------------------------------------------------------------------------------- /vars/main.yml: -------------------------------------------------------------------------------- 1 | user: bruno 2 | hostname: bruno-laptop 3 | setup_dir: /tmp/setup 4 | bin_dir: /usr/local/bin 5 | shell_completions_dir: "{{ ansible_env.HOME }}/.zsh/completion" 6 | applications_dir: "{{ ansible_env.HOME }}/.local/share/applications" 7 | app_icons_path: "{{ ansible_env.HOME }}/.local/share/icons/hicolor/256x256/apps" 8 | nas_ip: "192.168.1.10" 9 | --------------------------------------------------------------------------------