├── .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 ├── asciidraw │ └── tasks │ │ └── main.yml ├── asciinema │ └── 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 ├── btrfs │ └── tasks │ │ └── main.yml ├── cadvisor │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── calligraphy │ └── tasks │ │ └── main.yml ├── carburetor │ └── 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 ├── 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 ├── 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 ├── 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 ├── 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 ├── 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 ├── folio │ └── 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 ├── gimp │ └── tasks │ │ └── main.yml ├── git │ └── tasks │ │ └── main.yml ├── glances │ └── 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 ├── 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 ├── insomnia │ └── 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 ├── k9s │ └── tasks │ │ └── main.yml ├── kepubify │ └── tasks │ │ └── main.yml ├── keyrack │ └── 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 ├── mission-center │ └── tasks │ │ └── main.yml ├── mkcert │ └── tasks │ │ └── main.yml ├── mongodb │ └── tasks │ │ └── main.yml ├── mounts │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── mousai │ └── 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 ├── noscl │ └── tasks │ │ └── main.yml ├── ntfy │ └── tasks │ │ └── main.yml ├── nvidia │ └── tasks │ │ └── main.yml ├── obfuscate │ └── tasks │ │ └── main.yml ├── obs │ └── tasks │ │ └── main.yml ├── obsidian │ └── tasks │ │ └── main.yml ├── ollama │ └── tasks │ │ └── main.yml ├── pandoc │ └── tasks │ │ └── main.yml ├── papers │ └── tasks │ │ └── main.yml ├── parabolic │ └── tasks │ │ └── main.yml ├── php │ └── tasks │ │ └── main.yml ├── pika-backup │ └── tasks │ │ └── main.yml ├── pinta │ └── tasks │ │ └── main.yml ├── pipeline │ └── tasks │ │ └── main.yml ├── pitivi │ └── tasks │ │ └── main.yml ├── portainer │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── portmaster │ └── 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 ├── pulumi │ └── tasks │ │ └── main.yml ├── python │ ├── defaults │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── qbittorrent │ └── tasks │ │ └── main.yml ├── quickemu │ └── 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 ├── 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 ├── snes │ └── tasks │ │ └── main.yml ├── 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 ├── sysd-manager │ └── tasks │ │ └── main.yml ├── systemctl-tui │ └── tasks │ │ └── main.yml ├── tailscale │ └── tasks │ │ └── main.yml ├── taskfile │ └── tasks │ │ └── main.yml ├── telegram │ └── tasks │ │ └── main.yml ├── television │ └── tasks │ │ └── main.yml ├── terraform │ └── tasks │ │ └── main.yml ├── the-way │ └── tasks │ │ └── main.yml ├── ticktick │ └── tasks │ │ └── main.yml ├── tilix │ └── tasks │ │ └── main.yml ├── tldr │ └── tasks │ │ └── main.yml ├── tmux │ └── 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 │ │ │ ├── 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 ├── warp-terminal │ └── 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 ├── yoga │ └── 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 └── 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 | -------------------------------------------------------------------------------- /.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-tag: 37 | desc: Run main playbook with tag 38 | cmds: 39 | - PLAYBOOK=${PLAYBOOK:-setup.yml} ansible-playbook --ask-become-pass --tags {{ .TAG }} playbooks/${PLAYBOOK} 40 | preconditions: 41 | - test -n "${TAG}" 42 | vars: 43 | TAG: ${TAG} 44 | -------------------------------------------------------------------------------- /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/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/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/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/carburetor/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | community.general.flatpak: 3 | name: io.frama.tractor.carburetor 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/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/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: 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/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.10.5" 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 | labels: 13 | traefik.enable: "true" 14 | traefik.http.routers.dozzle.entrypoints: websecure 15 | traefik.http.routers.dozzle.rule: Host(`{{ dozzle_domain }}`) 16 | traefik.http.routers.dozzle.tls: "true" 17 | traefik.http.services.dozzle.loadbalancer.server.port: "{{ dozzle_port }}" 18 | -------------------------------------------------------------------------------- /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/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/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/folio/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: com.toolstack.Folio 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/InputMono-Black.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/InputMono-BlackItalic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/InputMono-Bold.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/InputMono-BoldItalic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/InputMono-ExtraLight.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/InputMono-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/InputMono-Italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/InputMono-Light.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/InputMono-LightItalic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/InputMono-Medium.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/InputMono-MediumItalic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/InputMono-Regular.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/InputMono-Thin.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/InputMono-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/InputMono-ThinItalic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-Bold-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/JetBrainsMono-Bold-Italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/JetBrainsMono-Bold.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-ExtraBold-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/JetBrainsMono-ExtraBold-Italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/JetBrainsMono-ExtraBold.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/JetBrainsMono-Italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-Medium-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/JetBrainsMono-Medium-Italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/JetBrainsMono-Medium.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/JetBrainsMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/JetBrainsMono-Regular.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/MesloLGS NF Bold Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/MesloLGS NF Regular.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Open Sans_300.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Open Sans_300italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_600.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Open Sans_600.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_600italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Open Sans_600italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Open Sans_700.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Open Sans_700italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_800.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Open Sans_800.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_800italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Open Sans_800italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Open Sans_italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Open Sans_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Open Sans_regular.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/OperatorMono-Bold.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-Book.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/OperatorMono-Book.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-BookItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/OperatorMono-BookItalic.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/OperatorMono-Light.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-LightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/OperatorMono-LightItalic.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/OperatorMono-Medium.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-MediumItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/OperatorMono-MediumItalic.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-XLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/OperatorMono-XLight.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/OperatorMono-XLightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/OperatorMono-XLightItalic.otf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Condensed_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Condensed_300.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Condensed_300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Condensed_300italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Condensed_700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Condensed_700.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Condensed_700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Condensed_700italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Condensed_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Condensed_italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Condensed_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Condensed_regular.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_100.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Mono_100.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_100italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Mono_100italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Mono_300.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Mono_300italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Mono_500.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_500italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Mono_500italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Mono_700.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Mono_700italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Mono_italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto Mono_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto Mono_regular.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_100.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto_100.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_100italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto_100italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto_300.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto_300italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto_500.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_500italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto_500italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto_700.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto_700italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto_900.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_900italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto_900italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/fonts/files/fonts/Roboto_italic.ttf -------------------------------------------------------------------------------- /roles/fonts/files/fonts/Roboto_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/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/glances/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: glances 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /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/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/autostart/.gitkeep -------------------------------------------------------------------------------- /roles/gnome-desktop/files/face.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/face.jpg -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/InputMono-Black.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/InputMono-BlackItalic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/InputMono-Bold.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/InputMono-BoldItalic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/InputMono-ExtraLight.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/InputMono-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/InputMono-Italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/InputMono-Light.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/InputMono-LightItalic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/InputMono-Medium.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/InputMono-MediumItalic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/InputMono-Regular.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/InputMono-Thin.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/InputMono-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/JetBrainsMono-ExtraBold.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/JetBrainsMono-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/JetBrainsMono-Medium.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/JetBrainsMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/OperatorMono-Bold.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-Book.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/OperatorMono-Book.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-BookItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/OperatorMono-BookItalic.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/OperatorMono-Light.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-LightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/OperatorMono-LightItalic.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/OperatorMono-Medium.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-MediumItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/OperatorMono-MediumItalic.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-XLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/OperatorMono-XLight.otf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/OperatorMono-XLightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/Roboto_100.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_100italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/Roboto_100italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/Roboto_300.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_300italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/Roboto_300italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/Roboto_500.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_500italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/Roboto_500italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_700.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/Roboto_700.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_700italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/Roboto_700italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/Roboto_900.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_900italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/Roboto_900italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/fonts/Roboto_italic.ttf -------------------------------------------------------------------------------- /roles/gnome-desktop/files/fonts/Roboto_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/bde4c38ee914263791b9e9c59a3dbaa678860c56/roles/gnome-desktop/files/nautilus/templates/PHP Source Document.php -------------------------------------------------------------------------------- /roles/gnome-desktop/files/wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brpaz/my-linux-setup/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/desktop-settings.yml: -------------------------------------------------------------------------------- 1 | - name: Settings | Show Desktop icons 2 | community.general.dconf: 3 | key: /org/gnome/desktop/background/show-desktop-icons 4 | value: "true" 5 | - name: Settings | Set Automatic Timezone 6 | community.general.dconf: 7 | key: /org/gnome/desktop/datetime/automatic-timezone 8 | value: "true" 9 | - name: Settings | Show Week Day on calendar 10 | community.general.dconf: 11 | key: /org/gnome/desktop/calendar/show-weekdate 12 | value: "true" 13 | - name: Settings | Set Static workspaces 14 | community.general.dconf: 15 | key: /org/gnome/mutter/dynamic-workspaces 16 | value: "false" 17 | - name: Settings | Set Number of workspaces 18 | community.general.dconf: 19 | key: /org/gnome/desktop/wm/preferences/num-workspaces 20 | value: "6" 21 | 22 | - name: Settings | Namespaces only on primary monitor 23 | community.general.dconf: 24 | key: "/org/gnome/mutter/workspaces-only-on-primary" 25 | value: "true" 26 | 27 | - name: Settings | Window Titlebars 28 | community.general.dconf: 29 | key: /org/gnome/desktop/wm/preferences/button-layout 30 | value: "'appmenu:minimize,minimize,maximize,close'" 31 | 32 | - name: Configure window manager settings 33 | community.general.dconf: 34 | key: "{{ item.key }}" 35 | state: present 36 | value: "{{ item.value }}" 37 | with_items: 38 | - key: /org/gnome/desktop/wm/preferences/num-workspaces 39 | value: 6 40 | - key: /org/gnome/desktop/wm/preferences/audible-bell 41 | value: "false" 42 | 43 | - name: Set Favorite apps 44 | community.general.dconf: 45 | key: /org/gnome/shell/favorite-apps 46 | value: 47 | "['firefox.desktop', 'org.gnome.Nautilus.desktop', 'com.gexperts.Tilix.desktop', 48 | 'code.desktop', 'md.obsidian.Obsidian.desktop']" 49 | -------------------------------------------------------------------------------- /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/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/grafana/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Create persistent volume 2 | community.docker.docker_volume: 3 | name: grafana-storage 4 | state: present 5 | 6 | - name: Ensure monitoring network exists 7 | community.docker.docker_network: 8 | name: monitoring 9 | state: present 10 | 11 | - name: Create Configuration folder 12 | ansible.builtin.copy: 13 | dest: /etc/grafana 14 | mode: '0755' 15 | src: grafana/ 16 | become: true 17 | 18 | - name: Start Container 19 | community.docker.docker_container: 20 | name: grafana 21 | image: grafana/grafana:{{ grafana_version }} 22 | state: started 23 | restart_policy: unless-stopped 24 | env: 25 | GF_AUTH_ANONYMOUS_ENABLED: 'true' 26 | GF_AUTH_ANONYMOUS_ORG_NAME: Main Org. 27 | GF_AUTH_ANONYMOUS_ORG_ROLE: Admin 28 | healthcheck: 29 | interval: 10s 30 | retries: 5 31 | start_period: 20s 32 | test: 33 | - CMD 34 | - wget 35 | - -q 36 | - --spider 37 | - http://localhost:3000/api/health 38 | timeout: 5s 39 | labels: 40 | traefik.docker.network: traefik-public 41 | traefik.enable: 'true' 42 | traefik.http.routers.grafana.entrypoints: websecure 43 | traefik.http.routers.grafana.rule: Host(`{{ grafana_domain }}`) 44 | traefik.http.routers.grafana.tls: 'true' 45 | traefik.http.services.grafana.loadbalancer.server.port: '3000' 46 | networks: 47 | - name: monitoring 48 | - name: traefik-public 49 | volumes: 50 | - grafana-storage:/var/lib/grafana 51 | - /etc/grafana/provisioning:/etc/grafana/provisioning 52 | - /etc/grafana/dashboards:/etc/grafana/dashboards 53 | -------------------------------------------------------------------------------- /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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/insomnia/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Insomnia 2 | community.general.flatpak: 3 | name: rest.insomnia.Insomnia 4 | state: present 5 | -------------------------------------------------------------------------------- /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/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/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/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/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/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 | -------------------------------------------------------------------------------- /roles/noscl/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Noscl | Get latest release 2 | community.general.github_release: 3 | action: latest_release 4 | user: fiatjaf 5 | repo: noscl 6 | token: '{{ github_token }}' 7 | register: release 8 | 9 | - name: Noscl | Download and Install 10 | ansible.builtin.get_url: 11 | dest: '{{ bin_dir }}/noscl' 12 | force: true 13 | mode: a+x 14 | url: https://github.com/fiatjaf/noscl/releases/download/{{ release.tag }}/noscl 15 | become: true 16 | -------------------------------------------------------------------------------- /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/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/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/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/portmaster/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Portmaster | Install 2 | ansible.builtin.dnf: 3 | disable_gpg_check: true 4 | name: https://updates.safing.io/latest/linux_amd64/packages/portmaster-installer.rpm 5 | state: present 6 | become: true 7 | -------------------------------------------------------------------------------- /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/promtail/templates/promtail-local-config.yml.j2: -------------------------------------------------------------------------------- 1 | server: 2 | http_listen_address: 0.0.0.0 3 | http_listen_port: 9080 4 | 5 | positions: 6 | filename: /tmp/positions.yaml 7 | 8 | clients: 9 | - url: http://loki:3100/loki/api/v1/push 10 | external_labels: 11 | host: {{ ansible_hostname }} 12 | scrape_configs: 13 | - job_name: system 14 | static_configs: 15 | - targets: 16 | - localhost 17 | labels: 18 | job: varlogs 19 | __path__: /var/log/*.log 20 | 21 | - job_name: journal 22 | journal: 23 | json: false 24 | max_age: 12h 25 | path: /var/log/journal 26 | labels: 27 | job: systemd-journal 28 | relabel_configs: 29 | - source_labels: ['__journal__systemd_unit'] 30 | target_label: 'unit' 31 | - source_labels: ['__journal__boot_id'] 32 | target_label: 'boot_id' 33 | - source_labels: ['__journal__transport'] 34 | target_label: 'transport' 35 | - source_labels: ['__journal_priority_keyword'] 36 | target_label: 'level' 37 | 38 | - job_name: containers 39 | docker_sd_configs: 40 | - host: unix:///var/run/docker.sock 41 | refresh_interval: 15s 42 | pipeline_stages: 43 | - docker: {} 44 | - static_labels: 45 | job: "containerlogs" 46 | instance: "{{ ansible_hostname }}" 47 | relabel_configs: 48 | - source_labels: ['__meta_docker_container_name'] 49 | regex: '/(.*)' 50 | target_label: 'container' 51 | - source_labels: ['__meta_docker_container_label_com_docker_compose_project'] 52 | target_label: 'project' 53 | - source_labels: ['__meta_docker_container_label_com_docker_compose_service'] 54 | target_label: 'service' 55 | 56 | -------------------------------------------------------------------------------- /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/bde4c38ee914263791b9e9c59a3dbaa678860c56/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/pulumi/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Pulumi | Ensure bin dir exists 2 | ansible.builtin.file: 3 | mode: '0755' 4 | path: '{{ ansible_env.HOME }}/.pulumi/bin' 5 | state: directory 6 | - name: Pulumi | Get latest release version 7 | community.general.github_release: 8 | action: latest_release 9 | repo: pulumi 10 | token: '{{ github_token }}' 11 | user: pulumi 12 | register: pulumi_release 13 | - name: Pulimi | Install 14 | ansible.builtin.unarchive: 15 | dest: '{{ ansible_env.HOME }}/.pulumi/bin' 16 | extra_opts: 17 | - --strip-components=1 18 | mode: a+x 19 | remote_src: true 20 | src: https://get.pulumi.com/releases/sdk/pulumi-{{ pulumi_release.tag }}-linux-x64.tar.gz 21 | -------------------------------------------------------------------------------- /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/quickemu/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Enable repo 2 | ansible.builtin.yum_repository: 3 | name: quickemu 4 | description: quickemu 5 | baseurl: https://download.copr.fedorainfracloud.org/results/alexhaydock/quickemu/fedora-$releasever-$basearch/ 6 | enabled: yes 7 | gpgcheck: true 8 | gpgkey: https://download.copr.fedorainfracloud.org/results/alexhaydock/quickemu/pubkey.gpg 9 | state: present 10 | become: true 11 | 12 | - name: Install quickemu 13 | ansible.builtin.dnf: 14 | name: quickemu 15 | state: present 16 | become: true 17 | 18 | - name: QuickGUI - Get latest release 19 | community.general.github_release: 20 | action: latest_release 21 | user: quickemu-project 22 | repo: quickgui 23 | token: "{{ github_token }}" 24 | register: quickgui_release 25 | 26 | - name: QuickGUI - Install 27 | ansible.builtin.dnf: 28 | name: https://github.com/quickemu-project/quickgui/releases/download/{{ quickgui_release.tag }}/quickgui-{{ quickgui_release.tag }}+1-linux.rpm 29 | state: present 30 | disable_gpg_check: true 31 | become: true 32 | 33 | - name: Create Quickemu group 34 | ansible.builtin.group: 35 | name: quickemu 36 | state: present 37 | become: true 38 | 39 | - name: Add curent user to quickemu group 40 | ansible.builtin.user: 41 | name: "{{ ansible_env.USER }}" 42 | groups: quickemu 43 | append: true 44 | become: true 45 | 46 | - name: Create directory to store quickemu vms 47 | ansible.builtin.file: 48 | path: /var/lib/quickemu 49 | state: directory 50 | owner: root 51 | group: quickemu 52 | mode: "g+rwX" 53 | become: true 54 | -------------------------------------------------------------------------------- /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/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/snes/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Snes 2 | ansible.builtin.dnf: 3 | name: snes9x 4 | state: present 5 | become: true 6 | -------------------------------------------------------------------------------- /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: "5.2.7" 4 | sourcegraph_domain: "sourcegraph.localhost" 5 | -------------------------------------------------------------------------------- /roles/sourcegraph/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Sourcegraph | Ensure Sourcegraph data volume is present 2 | community.docker.docker_volume: 3 | name: sourcegraph_data 4 | state: present 5 | 6 | - name: Sourcegraph | Create configuration directory 7 | ansible.builtin.file: 8 | mode: '0755' 9 | path: "{{ sourcegraph_config_dir }}" 10 | state: directory 11 | become: true 12 | 13 | - name: Sourcegraph | Create network 14 | community.docker.docker_network: 15 | name: sourcegraph 16 | state: present 17 | 18 | - name: Sourcegraph | Start Server container 19 | community.docker.docker_container: 20 | name: sourcegraph 21 | image: sourcegraph/server:{{ sourcegraph_version }} 22 | labels: 23 | traefik.enable: 'true' 24 | traefik.http.routers.sourcegraph.entrypoints: websecure 25 | traefik.http.routers.sourcegraph.rule: Host(`{{ sourcegraph_domain }}`) 26 | traefik.http.routers.sourcegraph.tls: 'true' 27 | traefik.http.services.sourcegraph.loadbalancer.server.port: '7080' 28 | networks: 29 | - name: traefik-public 30 | - name: sourcegraph 31 | restart_policy: unless-stopped 32 | volumes: 33 | - "{{ sourcegraph_config_dir }}:/etc/sourcegraph" 34 | - sourcegraph_data:/var/opt/sourcegraph 35 | env: 36 | DISABLE_OBSERVABILITY: 'true' 37 | 38 | - name: Start serve-git container 39 | community.docker.docker_container: 40 | name: sourcegraph-serve-git 41 | image: sourcegraph/src-cli:latest 42 | command: serve-git /data/repos 43 | networks: 44 | - name: sourcegraph 45 | restart_policy: unless-stopped 46 | volumes: 47 | - "{{ sourcegraph_git_repos_dir }}:/data/repos:ro" 48 | -------------------------------------------------------------------------------- /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/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/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/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 | 2 | - name: Get latest release 3 | community.general.github_release: 4 | action: latest_release 5 | user: alexpasmantier 6 | repo: television 7 | token: '{{ github_token }}' 8 | register: release 9 | 10 | - name: Download and extract 11 | ansible.builtin.unarchive: 12 | dest: '{{ setup_dir }}' 13 | remote_src: true 14 | src: https://github.com/alexpasmantier/television/releases/download/{{ release.tag }}/tv-{{ release.tag }}-linux-x86_64.tar.gz 15 | become: true 16 | 17 | - name: Install 18 | ansible.builtin.copy: 19 | dest: '{{ bin_dir }}/tv' 20 | mode: a+x 21 | src: '{{ setup_dir }}/tv' 22 | become: true 23 | 24 | -------------------------------------------------------------------------------- /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/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/tilix/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Tilix | Install package 2 | ansible.builtin.dnf: 3 | name: tilix 4 | state: present 5 | become: true 6 | 7 | - name: Tilix | Settings 8 | community.general.dconf: 9 | key: '{{ item.key }}' 10 | state: present 11 | value: '{{ item.value }}' 12 | with_items: 13 | - key: /com/gexperts/Tilix/enable-transparency 14 | value: 'true' 15 | - key: /com/gexperts/Tilix/new-window 16 | value: '''new-session''' 17 | - key: /com/gexperts/Tilix/paste-strip-first-char 18 | value: 'true' 19 | - key: /com/gexperts/Tilix/sidebar-on-right 20 | value: 'true' 21 | - key: /com/gexperts/Tilix/theme-variant 22 | value: '''dark''' 23 | - key: /com/gexperts/Tilix/unsafe-paste-alert 24 | value: 'false' 25 | - key: /com/gexperts/Tilix/use-tabs 26 | value: 'true' 27 | -------------------------------------------------------------------------------- /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/tmux/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | ansible.builtin.dnf: 3 | name: tmux 4 | state: present 5 | become: true 6 | 7 | - name: Install Tmuxp 8 | command: pip install tmuxp 9 | -------------------------------------------------------------------------------- /roles/traefik/defaults/main.yml: -------------------------------------------------------------------------------- 1 | traefik_version: "v3.3.3" 2 | traefik_domain: "traefik.localhost" 3 | -------------------------------------------------------------------------------- /roles/traefik/files/certs/dozzle.localhost.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIELjCCApagAwIBAgIQJhHMSPnEY07CgUED4de/qjANBgkqhkiG9w0BAQsFADBx 3 | MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExIzAhBgNVBAsMGmJydW5v 4 | QGJydW5vLWxhcHRvcCAoQnJ1bm8pMSowKAYDVQQDDCFta2NlcnQgYnJ1bm9AYnJ1 5 | bm8tbGFwdG9wIChCcnVubykwHhcNMjUwMjA1MDk1MjIzWhcNMjcwNTA1MDg1MjIz 6 | WjBOMScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxIzAh 7 | BgNVBAsMGmJydW5vQGJydW5vLWxhcHRvcCAoQnJ1bm8pMIIBIjANBgkqhkiG9w0B 8 | AQEFAAOCAQ8AMIIBCgKCAQEAwnhx0HJmorE5hkdtXRffbPuQ4PmXKSZmITzGQTVu 9 | BSbmlO11m2Epny+8otcktZ/5OZLBH4zC6eNccVHkNwZJqI0j2Y1NhnoZEmSCzuyJ 10 | PLJlZKF7tFvbAkdlLTK/RykQjafrpieH4nNEytfcsIw9+lewS2h8VCfie3RC+Gk3 11 | pzRZHgXHlAwR4FgGOk+VupJK419kIzHok1cczZvksMlxduycPd5aLf/OmuDAQBCJ 12 | hEdeALUHJ9CpdEar7EkLmRfMaPquz/xyn+6RYBt4fF22lPSJ9W0VOGSwNkOn+U5w 13 | 5tWOJGEJeDcahpzH00zkHhTlWh+j8YvpHqOkVj9p3sK0BwIDAQABo2UwYzAOBgNV 14 | HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUywHu 15 | GLZtbC1ALqcRykP0bPAlfLIwGwYDVR0RBBQwEoIQZG96emxlLmxvY2FsaG9zdDAN 16 | BgkqhkiG9w0BAQsFAAOCAYEAGgsRw6NJWBeRh0t3NosepoFH4PHm+pYk8yfd76h/ 17 | uF5R8/FLWCwtnJjCCNZ6Ba3urBcXb9iS9vtzFdMXsrh1H8qDtTpNsu+QNrGpgx2U 18 | yFdxfJIXxR0RkAnVwTNyWIvUDF1gGimCwKQ+7zbgauq6Cv9JU1F1AFRYD1XbHFLI 19 | Mc8MWRGQZXHvxOuWPt4PfVoppnUfVGs8mWstAKk3fjSpPoTrTwlyiGhFvP5sWO7f 20 | isYgWP9jIPmNB3q/3Y2rySW5IvCBkNqPTGJgffKWOyuMs5mQocbLi4PRgcMJmT+i 21 | m0ApEKJU/7f3xsBuL5hiQ8WtZXuHHW73V3cEksdlc2f+UROxB3soryAegoIEjW3i 22 | RrzbHxAq9a14kQDNcbgEwXhzzuh6Wqkd8NFQt0LPZkcnGgNPTfIOO3U5Io3c7qNy 23 | 0w0GPMnBEOYjeiRnRUWV11MwvhWtnoRbeLz/sZwjz8A12HTXyZlOlJmjrMAllqXS 24 | ABEuc1BM4CL0FVRm0mMeHnVZ 25 | -----END CERTIFICATE----- 26 | -------------------------------------------------------------------------------- /roles/traefik/files/certs/grafana.localhost.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIELzCCApegAwIBAgIQOcUjnkKMGiaEyq5GWQmYJTANBgkqhkiG9w0BAQsFADBx 3 | MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExIzAhBgNVBAsMGmJydW5v 4 | QGJydW5vLWxhcHRvcCAoQnJ1bm8pMSowKAYDVQQDDCFta2NlcnQgYnJ1bm9AYnJ1 5 | bm8tbGFwdG9wIChCcnVubykwHhcNMjUwMjA1MDk1MjIyWhcNMjcwNTA1MDg1MjIy 6 | WjBOMScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxIzAh 7 | BgNVBAsMGmJydW5vQGJydW5vLWxhcHRvcCAoQnJ1bm8pMIIBIjANBgkqhkiG9w0B 8 | AQEFAAOCAQ8AMIIBCgKCAQEAzT3QugVm2peoNj7sjNTHjahdn6uvF15dLcMDL/Xj 9 | VEbS9W7ISaCjA1OdzeUasP5nhjryqqG5kE0eOmcF4sxKbtPrXAbRJmIQiDlbOxTI 10 | ookk+SLqaLIHnMvBNzQsxcCaHtK4FMXwatAQPDFQuzBSe5eJLC8Hq0XdKaIMUuLg 11 | oc6t+crxoTaLXCWgZfPRUGwyO03WBfRD1QaUpN3laNYqCLKNIoIOVElbqtA/QHKZ 12 | 4lUsB05J8nG7WyqxAeIwW7onqsYOVoOHOelQ1t9y3UyJ4hmLHPITqowCQIPzLVwI 13 | Q6Zho6U1mLZRmgtc9UifA1HE8NdpFQekGNwe+CXtC6cBgwIDAQABo2YwZDAOBgNV 14 | HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUywHu 15 | GLZtbC1ALqcRykP0bPAlfLIwHAYDVR0RBBUwE4IRZ3JhZmFuYS5sb2NhbGhvc3Qw 16 | DQYJKoZIhvcNAQELBQADggGBAEhEFow5xAjKzMWYehSTadoWgHwXUd7SlDfo/p91 17 | cu1ydByzLe/mUYx5dZ2gHK9NhE7W/pgrqlaP8MdqAlyEo31eCSULJFwJWplhledX 18 | CF/yk30SAPhhOGYuyTTlE0A0quFKLfxinAjoVd/eFrw/rslHx0RMhb3JPMr2AoW0 19 | t8uRIvnSXxNz4fpTHbKJfcb5KPIwDkzIFrlzmYeY1baeGnA2Ol4cWQEotXycoONj 20 | Nj6bUoQ90/1gFiCZ4MXG6WF0Hwn5sOZ8pnRL8abUXdFlpMpz1ya1SOC1m71fXgi+ 21 | KLOnHWUmJdVYJVow4o47aC+UBYyD0jGrrjYXQn6g7od5oqm5RnmXyQKLZlRrWGMA 22 | 8K3dKCmT5aRgWWCHNFRIf8B3ixz4Ebb1zYrl2wtR8v+rbC7eM2kKXAwe5oh4hzD9 23 | aXONEuA0Uto4d+rye5/DDH9/E/0zQFQ3cvn1M4X1LHa47bNQjdYoyu+qBT4GfIeB 24 | yxAtLTC7ORTr9i3ilClIm+2Cww== 25 | -----END CERTIFICATE----- 26 | -------------------------------------------------------------------------------- /roles/traefik/files/certs/portainer.localhost.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIEMTCCApmgAwIBAgIQcbfrlP1ZADducTycRiZHGjANBgkqhkiG9w0BAQsFADBx 3 | MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExIzAhBgNVBAsMGmJydW5v 4 | QGJydW5vLWxhcHRvcCAoQnJ1bm8pMSowKAYDVQQDDCFta2NlcnQgYnJ1bm9AYnJ1 5 | bm8tbGFwdG9wIChCcnVubykwHhcNMjUwMjA1MDk1MjIyWhcNMjcwNTA1MDg1MjIy 6 | WjBOMScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxIzAh 7 | BgNVBAsMGmJydW5vQGJydW5vLWxhcHRvcCAoQnJ1bm8pMIIBIjANBgkqhkiG9w0B 8 | AQEFAAOCAQ8AMIIBCgKCAQEA0SBvgHUMHNHHrj1MiCWOy+EflhDS39df2SKCDSeH 9 | MA0oRri+GFxK04Q+zZQ5it7cCyni4uk+wxn+eu3s9AooQq2DX54UIGh8WPc1NYSt 10 | E7+M+wsAbYrksTyhsHbUHaT9Df3ZgMFATauCq2UuU/84wc1LsXFXzGL0r3tlY6Jt 11 | C3USVwggKPqWhzK4dgHgiOOMdLP+IKGVUBgab3cd8XQbUuTNbsOJZ9E0NvcMSDX2 12 | WI7kegvUSPQIg6TtE8rG2BDsDEei3gr2pnkSMOziqaJWYZ1p1AW0zxyeAzSC21id 13 | Eh+uqD3kV7mvh4MKCB90GwglvNufpN9L7Jn1kFn+Y/WHTQIDAQABo2gwZjAOBgNV 14 | HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUywHu 15 | GLZtbC1ALqcRykP0bPAlfLIwHgYDVR0RBBcwFYITcG9ydGFpbmVyLmxvY2FsaG9z 16 | dDANBgkqhkiG9w0BAQsFAAOCAYEAezQREGBzWKuntDiPRM5laPROUf9IDV1uMvqZ 17 | 5yxwbeHvQHsmPZlM7Zri6UiE7lBTw7JOQ5Iqvc0/bfhydpPAs2Plk7zLd5mfwDtN 18 | Y3asMjW5RxGELXqIJ6LIkWa0Jdlew8/jy/pO1jziELnLCq0U0PZYy8iDiRx/T85i 19 | uuaSjJI3muJJJBthgfTGLLRLGZAxrKxRvJDzFrm42FyKqUCQ2Y0h+c11WcOfRRaL 20 | oT0fYfqQlVI9uJCY4l+UDf/cPM+Cb4gxYlU9Gx7KSE4D7/T4xvrnl2RpWI6cyN0v 21 | q4PS5P7kg85x+BC+jJ4UD0HEeCmQuWCDwxHjApt5bHhni3TQK/Ed6Uw8GBAax2L/ 22 | NpRJ14YF/mJi+8R8MBoWbCualTbxseXP6I6nhMmHa4Lm6rEzckmGy9Zp0LWSoD+M 23 | RFcxjaRYZZ4saQAxshNNi38li2vGkmQJp1ZapochQ9sXatK4A8C9vyzAQPjK+0MX 24 | ZvGp3CoyUWChrQjxSE6kzKHCUB1J 25 | -----END CERTIFICATE----- 26 | -------------------------------------------------------------------------------- /roles/traefik/files/certs/prometheus.localhost.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIEMjCCApqgAwIBAgIQNWImoeSeLZ4YTOZTYxSBuTANBgkqhkiG9w0BAQsFADBx 3 | MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExIzAhBgNVBAsMGmJydW5v 4 | QGJydW5vLWxhcHRvcCAoQnJ1bm8pMSowKAYDVQQDDCFta2NlcnQgYnJ1bm9AYnJ1 5 | bm8tbGFwdG9wIChCcnVubykwHhcNMjUwMjA1MDk1MjIyWhcNMjcwNTA1MDg1MjIy 6 | WjBOMScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxIzAh 7 | BgNVBAsMGmJydW5vQGJydW5vLWxhcHRvcCAoQnJ1bm8pMIIBIjANBgkqhkiG9w0B 8 | AQEFAAOCAQ8AMIIBCgKCAQEAvzjbcdgGrWO9RxIivLNVaexSbZi2CMFrdf2rwNj9 9 | MbZggCTpFMxvgPXv+/pvQ5g8J5kS4utXes3Zkc82hnTTArlel782eBaYCObZcddX 10 | RoxQ638uP9xr4KLRVs/NIb1b2N7I1TC19BlmPFXcUNYYvjZe79mUnv6a4IbFaJqm 11 | 1sfRqt3cCv8NS1heXkQ+ekXXypAoFSYKRe/5Zxs8i1+U8duK51HVLM4OuDxoYLaa 12 | Bj8uelssgnkCuOaJP+ioJa8V3CH1LL+lbZgwa+94FVeSlMQM2TeSIewO0vKRv4cj 13 | ev77zNYidDQLu0rBopHu8iWh/ZudN2D5PIqb1wssc19GcQIDAQABo2kwZzAOBgNV 14 | HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUywHu 15 | GLZtbC1ALqcRykP0bPAlfLIwHwYDVR0RBBgwFoIUcHJvbWV0aGV1cy5sb2NhbGhv 16 | c3QwDQYJKoZIhvcNAQELBQADggGBAEiwHDkBMq26nybdEM+DNHM8NmFr9s+xGe9N 17 | HDIiCocASJXya6Lzfynpi/QorRUxJ6nYZkM2YcDmjvusIkA5PZaKk561HIfXVjZW 18 | 6quY81SBuW5HqoOeT+WFdteTezNoD1EF6Xqq90tU/9UqH/pSX1ramZjiCWFRTwHK 19 | 0iMghWsNdOi0Vpc4Ky2wict61F7RCW9I3tExZ+Ht6IOeiDd2XaXBwLnrMz0zeNYj 20 | /FQOPt2vwG6Im/JWe1HbijQLjs0gI6uyhTuZBQaAR87VFzjOlwK2OV1PiHsgrlU/ 21 | T7VeTQ6LuQ5Y110uq6Svgth7GGZ6a4k2ZQzpVNI0m7VcGUEjwtmsN6+saHqgEoxh 22 | dR4hnw3h4Cc/MK1nH3j0o8hjZKbyrfTg4aou7YlmtnQlJyxvmen3+Ey1YLMY6tq0 23 | PSiH2x8U/KAOrixaE6eq9xuqow0Uhb0IgGBGKADyOKJSV5nklSVpdRddlwO4p8B3 24 | kopFxjZNsNyyTuAscF5NZv2FRYtM1A== 25 | -----END CERTIFICATE----- 26 | -------------------------------------------------------------------------------- /roles/traefik/files/certs/traefik.localhost.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIELzCCApegAwIBAgIQfDFnhhoL+oZh9pOJvL0HuDANBgkqhkiG9w0BAQsFADBx 3 | MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExIzAhBgNVBAsMGmJydW5v 4 | QGJydW5vLWxhcHRvcCAoQnJ1bm8pMSowKAYDVQQDDCFta2NlcnQgYnJ1bm9AYnJ1 5 | bm8tbGFwdG9wIChCcnVubykwHhcNMjUwMjA1MDk1MjIyWhcNMjcwNTA1MDg1MjIy 6 | WjBOMScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxIzAh 7 | BgNVBAsMGmJydW5vQGJydW5vLWxhcHRvcCAoQnJ1bm8pMIIBIjANBgkqhkiG9w0B 8 | AQEFAAOCAQ8AMIIBCgKCAQEAq1TT5F5P5WvCK/pXuTEiz0Q4W3LRZR3W1tLKvf5X 9 | EtHZgYJeP/jXirY/LICq+4gpky1SwJ8ABt5mXwBkHPIi3E3raRC7GvIF4e4Jkeyg 10 | 5nv9ATZ+zFvnUH02wflvq3fpEEoGYOxyEBDkSDA9sAEGOEOcDPe1x72pjnaOfN+K 11 | AP5iIcRNwfTFnsxVQ5JrTu5yNAHFrJ3J04X9ctda8so76MRnRj+HTJOeTKfS5HA7 12 | XHSdV1N+OViKIaTG8DdZJnZfXqFgUMt1xF2VgxdUtB0+wzpolt5kPOblNB5HRye/ 13 | B2HvVVdQaleVkHQcnzN1wqmguo2DdLK0MhVP/ckLHuCrkQIDAQABo2YwZDAOBgNV 14 | HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUywHu 15 | GLZtbC1ALqcRykP0bPAlfLIwHAYDVR0RBBUwE4IRdHJhZWZpay5sb2NhbGhvc3Qw 16 | DQYJKoZIhvcNAQELBQADggGBAJyUcrtJPt7XFz+mPoFMRKoWjM2oow+u9ZIWYc/X 17 | 1k11W5FXU5s5nSBBXmpq4ni2EeNi7BW1bDOYayaXynJSRPrRVlPZxJqd/mfpuWOS 18 | BlF7XxBpO7UnijOjM8AGNRSJERoL2a8VfGl+9qM7s8yRuiwaoWseabVhIcf20cAr 19 | QKeBeCJPvPUqe6FKokOfuvPnRRGDwMprWLIgA7fLQD3h5pPjOSHhELiPJEwfICr3 20 | hPtHFXiZdf+vCYDCRoBTP9/n/XtwjMYcVOPyXD8tEexkeIxvQFYOt2tten4cKiU9 21 | DfGeNkCY88iauxUq0tvhLhDVtdj13zBCdzQe4zFejLHvCjwtxh17cDZ/V8LlYS9R 22 | nqQqXbWv7YaRQ/RYamQwuZjUQz5JBHxi994lrwaH0b+bXEefekTNLvY2jiQK5WF1 23 | nWGgo3Hl2j8OqgYf12wJl57etWZQBNCLGseMFXEovN1FJa/DMSoK2cZBpFyu2CLF 24 | iZ8t5I8qaECTwGpD9By5ajSU3w== 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/warp-terminal/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Download RPM 2 | ansible.builtin.get_url: 3 | url: https://app.warp.dev/download?package=rpm 4 | dest: "{{ setup_dir }}/warp.rpm" 5 | mode: "0644" 6 | 7 | - name: Install 8 | ansible.builtin.dnf: 9 | name: "{{ setup_dir }}/warp.rpm" 10 | disable_gpg_check: true 11 | state: present 12 | become: true 13 | -------------------------------------------------------------------------------- /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/yoga/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Yoga - Compress your images 2 | community.general.flatpak: 3 | name: org.flozz.yoga-image-optimizer 4 | state: present 5 | -------------------------------------------------------------------------------- /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/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 | ) 14 | 15 | # ENsure we are in the root directory 16 | cd "$(dirname "$0")/../${CERTS_PATH}" 17 | 18 | # Check if mkcert is installed 19 | if ! command -v mkcert &>/dev/null; then 20 | echo "mkcert could not be found. Please follow the instructions at https://github.com/FiloSottile/mkcert?tab=readme-ov-file#installation" 21 | exit 1 22 | fi 23 | 24 | for SITE in "${SITES[@]}"; do 25 | mkcert "${SITE}" 26 | done 27 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eo pipefail 3 | 4 | # Trap Ctrl+C and exit 5 | trap "exit" INT 6 | 7 | # Color Variables 8 | NC='\033[0m' 9 | Red='\033[0;31m' # Red 10 | Green='\033[0;32m' # Green 11 | Yellow='\033[0;33m' # Yellow 12 | 13 | # Display ASCII art 14 | cat <<"EOF" 15 | _________ __ 16 | / _____/ _____/ |_ __ ________ 17 | \_____ \_/ __ \ __\ | \____ \ 18 | / \ ___/| | | | / |_> > 19 | /_______ /\___ >__| |____/| __/ 20 | \/ \/ |__| 21 | EOF 22 | 23 | # Install Base Packages (ensure development tools and dependencies are included) 24 | echo -e "${Yellow}Installing essential packages${NC}" 25 | sudo dnf update && sudo dnf install -y git curl python3 python3-pip python3-devel dnf-plugins-core 26 | 27 | # Install Python dependencies from requirements.txt 28 | echo -e "${Yellow}Installing Python dependencies from requirements.txt${NC}" 29 | pip install -r requirements.txt 30 | 31 | # Install Ansible roles and collections 32 | echo -e "${Yellow}Installing Ansible roles and collections from requirements.yml${NC}" 33 | ansible-galaxy install -r requirements.yml 34 | ansible-galaxy collection install -r requirements.yml 35 | 36 | # Setup tuxedo software 37 | echo -e "${Yellow}Setting up tuxedo software${NC}" 38 | ansible-playbook playbooks/tuxedo.yml --ask-become-pass 39 | 40 | # Setup dotfiles playbook 41 | echo -e "${Yellow}Setting up dotfiles${NC}" 42 | ansible-playbook playbooks/dotfiles.yml --ask-become-pass 43 | 44 | # Run Ansible playbook for setup 45 | echo -e "${Yellow}Running Ansible playbook for setup${NC}" 46 | ansible-playbook playbooks/setup.yml --ask-become-pass 47 | 48 | # Set Zsh as the default shell for the session 49 | echo -e "${Yellow}Switching to Zsh${NC}" 50 | exec zsh 51 | 52 | # Final message 53 | echo -e "${Green}Setup complete!${NC}" 54 | -------------------------------------------------------------------------------- /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 | --------------------------------------------------------------------------------