summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2025-11-24Add initial firefox role implementation with only GNOME support for passAhmed Abdelhalim15-0/+456
2025-11-24Add the sed role dependency for completenessAhmed Abdelhalim4-0/+31
2025-11-19Update docs about the usage of gateway-init serviceAhmed Abdelhalim1-0/+4
2025-11-19Fix gateway direct-mode not triggering on VPN disconnectAhmed Abdelhalim1-1/+1
The gateway-direct-mode.service was never triggering when WireGuard interfaces were removed, leaving VPN iptables rules active even when VPN was disconnected. This caused internet connectivity to fail in direct mode. Root cause: SYSTEMD_WANTS in udev rules only works for ACTION=="add" events. When a device is removed, the device unit is already gone before systemd can process the SYSTEMD_WANTS dependency, so the service never starts. This is a documented systemd limitation. Fix: Replace SYSTEMD_WANTS with RUN+ for the remove action, which executes systemctl directly during udev event processing without requiring a device unit to exist. References: - https://stackoverflow.com/questions/72208534/why-does-systemd-wants-not-pass-a-parameter-to-a-service-file-from-a-udev-remov - https://stackoverflow.com/questions/73148448/how-to-start-systemd-user-service-when-device-is-removed-and-stop-it-when-devic - https://bugzilla.redhat.com/show_bug.cgi?id=871074https://bugzilla.redhat.com/show_bug.cgi?id=871074 - https://unix.stackexchange.com/questions/528803/systemd-doesnt-stop-the-service-when-the-device-is-removed The VPN mode (ACTION=="add") continues to use SYSTEMD_WANTS as it works correctly for device addition events.
2025-11-14Fix example config, and ignore rpi idempotent test failureAhmed Abdelhalim2-1/+7
The reason the idempotent test fails is the following: - 1st run: wireguard role deploys all the configured VPN connections - 1st run: wg_portal updates the file permissions /etc/wireguard (ACLs) - 2nd run: wireguard sees the file changed, deploys again (idempotent failure)
2025-11-13Minor fixes to autostart connection validation/service logicAhmed Abdelhalim1-6/+15
2025-11-13Add mechanism to clean up wireguard configurationsAhmed Abdelhalim4-10/+34
When a wireguard configuration gets removed from the group/host variables, the role now removes them and make sure only the files found in the vars are the ones to be configured on the hosts
2025-11-11Add neomutt email client role w/testingAhmed Abdelhalim8-0/+37
2025-11-11Fix dotfile setup of gpgAhmed Abdelhalim2-0/+2
2025-11-10Add vim role python dependency (as some plugins need python support)Ahmed Abdelhalim1-0/+1
2025-11-10Enable lingering for userAhmed Abdelhalim1-0/+7
This allows the creation and persisting of the /run/user/UID/ directories required for gpg smart-card forwarding agent.
2025-11-10Fix running rpi configuration as root alwaysAhmed Abdelhalim3-1/+10
The dotfile/vim/password_store required to run as user with root permissions, that's why reverting these changes on rpi and resolving to using a more normal role (in pihole where it was broken)
2025-11-10Refactor vimrc to accept custom setup scriptAhmed Abdelhalim5-10/+15
2025-11-09Re-enable ipv6 back againAhmed Abdelhalim3-0/+0
2025-11-09Fix testing by adding a small testing gpg keyAhmed Abdelhalim1-5/+7
2025-11-09Add vim role w/testingAhmed Abdelhalim10-0/+73
2025-11-09Refactor scattered known_hosts to be part of the ssh roleAhmed Abdelhalim5-14/+17
2025-11-09Add password_store roleAhmed Abdelhalim8-0/+67
2025-11-09Fix install dotfiles script to correct gpg folder permissionsAhmed Abdelhalim2-1/+6
2025-11-09Add gpg public key import to gpg roleAhmed Abdelhalim3-1/+24
2025-11-09Fix git clone by adding ssh keys to known_hostsAhmed Abdelhalim1-0/+7
2025-11-09Fix clean up forwarded socketsAhmed Abdelhalim2-16/+1
2025-11-09Disable ipv6 on machines as not all vpns are ipv6 compatibleAhmed Abdelhalim3-0/+0
2025-11-09Update ansible/molecule versionsAhmed Abdelhalim3-2/+2
2025-11-08Fix python role meta dataAhmed Abdelhalim1-2/+2
2025-11-08Update gpg role to include smart gpg keys dependenciesAhmed Abdelhalim2-0/+19
2025-11-03Add dotfiles setup role w/testingAhmed Abdelhalim13-0/+92
2025-11-03Fix python install not to always report changedAhmed Abdelhalim1-2/+2
2025-11-03Remove unneeded backup of files in wireguardAhmed Abdelhalim1-1/+0
2025-10-24Fix removing the packages the breaks ubuntu DNSAhmed Abdelhalim3-13/+35
This disables install_recommends and revert to using specific gnome packages that are needed/necessary for functioning
2025-10-22Refactor naming of packages and services to follow same conventionsAhmed Abdelhalim17-24/+24
2025-10-22Add gpg role w/testingAhmed Abdelhalim10-0/+48
2025-10-20Ignore failing idempotence test for get_url with note in codeAhmed Abdelhalim1-0/+10
2025-10-20Implement a better download/install for python, pihole and go roleAhmed Abdelhalim3-1/+15
2025-10-20Fix archlinux setupAhmed Abdelhalim1-0/+11
2025-10-20Fix testing to install galaxy collectionsAhmed Abdelhalim5-2/+6
2025-10-20Pin the python and packages versionsAhmed Abdelhalim1-4/+4
2025-10-20Fix molecule testing after refactoring python/goAhmed Abdelhalim3-0/+6
2025-10-20Add weekly scheduled test runAhmed Abdelhalim1-1/+5
2025-10-20Add more vpn configurationAhmed Abdelhalim1-0/+0
2025-10-20Reorder role executionAhmed Abdelhalim1-2/+2
2025-10-20Refactor python role to remove homebrew dependencyAhmed Abdelhalim5-38/+20
2025-10-20Refactor go role to install 1 version and remove homebrew dependencyAhmed Abdelhalim4-35/+36
2025-10-20Remove homebrew for linux as it's not that usefulAhmed Abdelhalim8-82/+0
The roles sometimes fail to install, and on linux it cannot be used with casks which is defeating the purpose of having it to manage apps and packages
2025-09-23Remove SSL directory management from nginxAhmed Abdelhalim1-10/+0
Let the linux distros manage the ssl directories and it's permissions instead of introducing complex logic to match the original created permissions by the distro install
2025-09-23Update the test scenario removing the unused stpsAhmed Abdelhalim4-0/+36
2025-09-23Fix installing gnome on debianAhmed Abdelhalim3-3/+9
2025-09-23Use static values for defaults instead of ansible varsAhmed Abdelhalim10-15/+16
The ansible vars fail on CI because the validate arguments task runs way before the setting of the variables, which causes the ansible undefined vars on CI to cause errors. This is a way better approach of having the static values as defaults and allowing setting the variables to ansible vars in the host/group vars
2025-09-23Update debian gnome packages for better experienceAhmed Abdelhalim1-1/+3
2025-09-23Fix gnome role idempotency testAhmed Abdelhalim4-15/+14
Gnome installs avahi-daemon, and keeps reinstalling it Remove the ubuntu specific tasks and install the packages with recommendations (as we are removing the avahi-daemon afterwords to make the network manager stable and idempotent)