1. Personal Access Token

  • Browse to https://github.com/login.

  • Sign in with username smru.

  • Click Your profile photo in the upper-right corner and select Settings.

  • Select the Developer settings page.

  • Select Personal access tokens.

  • Click Generate new token.

  • Type Repositories in the Note field.

  • Check repo.

  • Check delete_repo.

  • Click Generate token.

  • Click to copy the details to the Windows clipboard.

  • Save the token in KeePass password manager.

2. Linux

2.1. GitHub CLI

2.1.1. Installation

  • See https://github.com/cli/cli/blob/trunk/docs/install_linux.md#debian.

    (type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) \
            && sudo mkdir -p -m 755 /etc/apt/keyrings \
            && out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \
            && cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
            && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
            && sudo mkdir -p -m 755 /etc/apt/sources.list.d \
            && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
            && sudo apt update \
            && sudo apt install gh -y
    
    which gh

3. Windows

3.1. GitHub CLI

3.1.1. Installation

  • Run the gh_2.49.0_windows_amd64.msi file with administrative privileges.

  • ???

3.2. GitHub Desktop

3.2.1. Installation

  • Run the GitHubDesktopSetup-x64-3.3.14.msi file with administrative privileges.

  • ???

4. GitHub Actions

4.1. VPS server

2026-02-10 21:40:50 team@vps-web ~$ sudo cat /root/.ssh/authorized_keys
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINtXBPrORya2hUrspLPaB/cjH0fgN59R8A2Ek1Fe1c0n smru@HOMENB-FRL01

2026-02-10 21:41:03 team@vps-web ~$ sudo cat /home/team/.ssh/authorized_keys
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINtXBPrORya2hUrspLPaB/cjH0fgN59R8A2Ek1Fe1c0n smru@HOMENB-FRL01

4.3. Secrets

HOST                    vps-web.deltasoftware.frl
PASSWORD                KeePassXC: FRL Level 2 Password
PERSONAL_GITHUB_TOKEN   KeePassXC: GitHub - Delta - PAT
PORT                    22
SSH_PASSPHRASE          KeePassXC: FRL Level 2 Password
SSH_PRIVATE_KEY         KeePassXC: GitLab - Delta - SSH Keys
USERNAME                team
VPS_IP                  185.62.58.28
VPS_USERNAME            team

4.4. Get Secrets

  • Contents of deploy.yml file.

    # See https://stackoverflow.com/questions/63003669/how-can-i-see-my-git-secrets-unencrypted
    
    # Source - https://stackoverflow.com/a/72881741
    # Posted by micronyks, modified by community. See post 'Timeline' for change history
    # Retrieved 2026-02-10, License - CC BY-SA 4.0
    
    name: Get secrets
    on: [push]
    
    jobs:
      debug:
        name: Debug
        runs-on: ubuntu-latest
    
        steps:
        - name: Check out code
          uses: actions/checkout@v2
    
        - name: Set up secret file
          env:
            HOST: ${{ secrets.HOST }}
            PASSWORD: ${{ secrets.PASSWORD }}
            PERSONAL_GITHUB_TOKEN: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
            PORT: ${{ secrets.PORT }}
            SSH_PASSPHRASE: ${{ secrets.SSH_PASSPHRASE }}
            USERNAME: ${{ secrets.USERNAME }}
            VPS_IP: ${{ secrets.VPS_IP }}
            VPS_USERNAME: ${{ secrets.VPS_USERNAME }}
            # Retrieval of ${{ secrets.SSH_PRIVATE_KEY }} fails.
          run: |
            echo ${{ secrets.HOST }} | sed 's/./& /g'
            echo ${{ secrets.PASSWORD }} | sed 's/./& /g'
            echo ${{ secrets.PERSONAL_GITHUB_TOKEN }} | sed 's/./& /g'
            echo ${{ secrets.PORT }} | sed 's/./& /g'
            echo ${{ secrets.SSH_PASSPHRASE }} | sed 's/./& /g'
            echo ${{ secrets.USERNAME }} | sed 's/./& /g'
            echo ${{ secrets.VPS_IP }} | sed 's/./& /g'
            echo ${{ secrets.VPS_USERNAME }} | sed 's/./& /g'
  • Contents of deploy.yml file.

    # See https://stackoverflow.com/questions/63003669/how-can-i-see-my-git-secrets-unencrypted
    
    # Source - https://stackoverflow.com/a/74731496
    # Posted by Moro, modified by community. See post 'Timeline' for change history
    # Retrieved 2026-02-10, License - CC BY-SA 4.0
    
    name: Get secret
    on: [push]
    
    jobs:
      debug:
        name: Debug
        runs-on: ubuntu-latest
    
        steps:
        - name: Check out code
          uses: actions/checkout@v2
    
        - name: Get secret
          env:
            MY_VAL: ${{ secrets.SSH_PRIVATE_KEY }}
          run: |
            import os
            for q in (os.getenv("MY_VAL")):
              print(q)
          shell: python