diff --git a/.ansible/README.md b/.ansible/README.md index ad7db59..b4b87b7 100644 --- a/.ansible/README.md +++ b/.ansible/README.md @@ -36,7 +36,9 @@ You can use tags to run specific parts of the playbook using the `--tags` flag. | `eget` | Installs `eget` and configured binary packages. | | `install` | Installs the list of packages defined in `apt.install` and `eget` packages. | | `nvidia` | Handles NVIDIA/CUDA related installations. | +| `protonvpn` | Installs Proton VPN app from the official Proton APT repository. | | `upgrade` | Performs `apt upgrade` and updates `eget` packages. | +| `vpn` | Runs VPN related tasks. | | `vscode` | Installs Visual Studio Code. | Example: @@ -55,8 +57,9 @@ The `setup-linux.yml` playbook performs the following operations: 3. **CUDA Toolkit**: Configures and installs NVIDIA CUDA drivers and toolkit. 4. **VS Code**: Adds the Microsoft repository and installs Visual Studio Code. 5. **Brave Browser**: Adds the Brave repository and installs the browser. -6. **Eget**: Installs the `eget` binary and a set of useful CLI tools to `~/.local/bin`. -7. **Dotfiles**: Symlinks configuration files from this repository into your `$HOME`. +6. **Proton VPN**: Adds the official Proton VPN repository and installs the GUI app. +7. **Eget**: Installs the `eget` binary and a set of useful CLI tools to `~/.local/bin`. +8. **Dotfiles**: Symlinks configuration files from this repository into your `$HOME`. ### Note on Dotfiles Conflicts diff --git a/.ansible/playbooks/setup-linux.yml b/.ansible/playbooks/setup-linux.yml index cca34c7..5e6bd0a 100644 --- a/.ansible/playbooks/setup-linux.yml +++ b/.ansible/playbooks/setup-linux.yml @@ -45,6 +45,12 @@ become: true tags: [apt, brave] + - name: Import Proton VPN installation tasks + ansible.builtin.import_tasks: tasks/apt-release-protonvpn.yml + when: (apt.releases.protonvpn | default(false)) if apt.releases is defined else false + become: true + tags: [apt, protonvpn, vpn] + - name: Import eget installation tasks ansible.builtin.import_tasks: tasks/eget.yml when: eget | default(false) | bool diff --git a/.ansible/playbooks/tasks/apt-release-protonvpn.yml b/.ansible/playbooks/tasks/apt-release-protonvpn.yml new file mode 100644 index 0000000..0ad0363 --- /dev/null +++ b/.ansible/playbooks/tasks/apt-release-protonvpn.yml @@ -0,0 +1,17 @@ +--- +- name: Download Proton VPN stable release package + ansible.builtin.get_url: + url: https://repo.protonvpn.com/debian/dists/stable/main/binary-all/protonvpn-stable-release_1.0.8_all.deb + dest: /tmp/protonvpn-stable-release_1.0.8_all.deb + mode: '0644' + +- name: Install Proton VPN repository package + ansible.builtin.apt: + deb: /tmp/protonvpn-stable-release_1.0.8_all.deb + state: present + +- name: Install Proton VPN app + ansible.builtin.apt: + name: proton-vpn-gnome-desktop + state: present + update_cache: true diff --git a/.ansible/playbooks/tasks/eget.yml b/.ansible/playbooks/tasks/eget.yml index ff30697..35c3b74 100644 --- a/.ansible/playbooks/tasks/eget.yml +++ b/.ansible/playbooks/tasks/eget.yml @@ -83,7 +83,10 @@ jq: >- -a {{ 'linux64' if eget_arch == 'x86_64' else 'linux-arm64' if eget_arch == 'arm64' else 'linux-arm' }} jqlang/jq + oyster: "--tag pearl-wallet-v1.0.0 -a .tar.gz --file oyster --to oyster pearl-research-labs/pearl" pandoc: "-a linux-{{ 'amd64' if eget_arch == 'x86_64' else 'arm64' }}.tar.gz jgm/pandoc" + pearld: "--tag pearl-wallet-v1.0.0 -a .tar.gz --file pearld --to pearld pearl-research-labs/pearl" + prlctl: "--tag pearl-wallet-v1.0.0 -a .tar.gz --file prlctl --to prlctl pearl-research-labs/pearl" rg: "-a {{ eget_plain_arch }}-unknown-linux-musl.tar.gz BurntSushi/ripgrep" tealdeer: "-a tealdeer-linux-{{ eget_arch }}-musl -a ^sha256 dbrgn/tealdeer" vale: "-a {{ 'Linux_64-bit' if eget_arch == 'x86_64' else 'Linux_arm64' }}.tar.gz errata-ai/vale" diff --git a/.ansible/variables-example.yml b/.ansible/variables-example.yml index 85e7021..6559bf3 100644 --- a/.ansible/variables-example.yml +++ b/.ansible/variables-example.yml @@ -6,6 +6,7 @@ apt: install: - 7zip - btrfs-progs + - cifs-utils # The SMB/CIFS protocol for cross-platform file sharing. - coreutils - curl - fdupes @@ -18,8 +19,10 @@ apt: - git-lfs - gpg - gzip + - hashcat - htop - iotop + - john - libhyperscan-dev - libicu-dev - libpcre2-dev @@ -28,6 +31,7 @@ apt: - libzstd-dev - lz4 - mawk + - mkisofs - net-tools # ifconfig - p7zip - parallel @@ -41,14 +45,17 @@ apt: - speedtest-cli - sqlite3 - time + - transmission - tmux - unrar - vim + - vlc - wget - zstd releases: brave: true code: true + protonvpn: true upgrade: true # List of files and directories to symlink into the home directory. @@ -107,18 +114,21 @@ dotfiles: eget: true eget_packages: - - alpha-miner - - bat - - btop - - duf - - eza - - fd - - jq - - pandoc - - rg - - tealdeer - - vale - - yq + - alpha-miner # Fastest Available Pearl Mining Software (AlphaMine-Tech/alpha-miner) + - bat # A cat(1) clone with wings (sharkdp/bat) + - btop # Resource monitor that shows usage and stats (aristocratos/btop) + - duf # Disk Usage/Free Utility - a better 'df' (muesli/duf) + - eza # A modern, maintained replacement for 'ls' (eza-community/eza) + - fd # A simple, fast and user-friendly alternative to 'find' (sharkdp/fd) + - jq # Command-line JSON processor (jqlang/jq) + - oyster # Pearl Wallet management (pearl-research-labs/pearl) + - pandoc # Universal markup converter (jgm/pandoc) + - pearld # Pearl Full node (pearl-research-labs/pearl) + - prlctl # Pearl Control utility (pearl-research-labs/pearl) + - rg # ripgrep recursively searches directories for a regex pattern (BurntSushi/ripgrep) + - tealdeer # A fast tldr client written in Rust (dbrgn/tealdeer) + - vale # A syntax-aware linter for prose (errata-ai/vale) + - yq # Portable command-line YAML, JSON, XML, CSV, TOML and properties processor (mikefarah/yq) nvidia: cuda_toolkit: true diff --git a/.gitignore b/.gitignore index 058f34c..819404a 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,6 @@ node_modules/ # Ansible local variables .ansible/variables.yml + +# NAS +.nas_credentials diff --git a/.nas_credentials.example b/.nas_credentials.example new file mode 100644 index 0000000..2109f04 --- /dev/null +++ b/.nas_credentials.example @@ -0,0 +1,3 @@ +username=admin +password=YOUR_PASSWORD +domain= # leave empty or put WORKGROUP