Skip to content

Setting up Gordon's Client

Brice Amen edited this page Nov 5, 2024 · 4 revisions

Setting up Gordon’s Client

⚠️ This is the first draft of the wiki with the bare minimum to get you started with Gordon

Installation

⚠️ This guide focus on Linux users, but the principles should be transferable to other operating systems with minor adjustments.

Download the latest release of Gordon from https://github.com/bnema/gordon/releases/latest

Unzip and move the Gordon binary to a directory included in your system's PATH to make it accessible from any terminal location:

unzip gordon_*.zip && mv gordon ~/.local/bin/

Initial Execution

Run gordon for the first time, you will encounter:

Config file not found, creating it at /home/user/.config/Gordon/config.yml
Are you using podman ? (y/n)

💡 When not running in a container Gordon uses the XDG_CONFIG_DIR environment variable to determine the configuration file location.

Respond with y or n depending on whether you use Podman or Docker.

Configuration

Now let’s have a look at the generated config.yml:

General:
    storageDir: "~/tmp" # <- Where to store the images temporarily
    token: ""
Http:
    port: ""
    domain: ""
    subDomain: ""
    backendURL: ""
    https: false
Admin:
    path: ""
ContainerEngine:
    dockersock: /var/run/docker.sock
    podmansock: /run/user/1000/podman/podman.sock
    podman: true
    network: ""
Traefik:
    entryPoint: web
    secureEntryPoint: websecure
    resolver: myresolver

💡 Both client and backend share this configuration.

⚠️ The https boolean is a backend configuration. When false, it allows you to run as localhost for testing purposes.

As a client, prioritize setting the backendURL (e.g: https://gordon.foobar.com/)

Update your config.yml accordingly

Http:
    backendURL: "<https://gordon.foobar.com>"

Start gordon

With the configuration in place, start Gordon. You'll be greeted with:

gordon
Usage:
  gordon [command]

Available Commands:

  completion  Generate the autocompletion script for the specified shell
  deploy      Deploy an image to your remote Gordon instance
  help        Help about any command
  ping        Send a ping request to your remote Gordon instance
  serve       Start a new Gordon server instance
  update      Update the Gordon executable

Flags:
  -h, --help   help for gordon

Use "gordon [command] --help" for more information about a command.

Test your configuration and retrieve a token

You can try to ping your backend, this will start a device flow authentification process and grant you a token.

gordon ping
Token is not set. Starting OAuth device flow...
Starting device flow authentication...
Please go to https://github.com/login/device and enter the code: 0423-FF4C
Authentication successful!
Configuration saved to /home/user/.config/Gordon/config.yml
Pong!
Server up since: X minutes ago
Server version:

Congratulations! Your Gordon client is now operational.