Categorygithub.com/jonathanMelly/nomad
repository
1.27.0
Repository: https://github.com/jonathanmelly/nomad.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# README

NOMAD, a portable app installer

Install

Run this command in a cmd and in a nomad folder (or whatever else folder)

powershell -Command Invoke-WebRequest -Uri https://github.com/jonathanMelly/nomad/raw/main/install.bat -OutFile %TEMP%\downloaded.bat && %TEMP%\downloaded.bat

Credits

This initial structure of this app was based on goappmation. It has then a lot evolved...

Why ?

I needed a fast, reliable and simple way to manage portable apps (mainly on windows).

Just use Scoop ?

If you like scoop, save yourself some time and stop reading this ;-) Otherwise, go ahead :-)

Other solutions ?

  • portableapps was too slow or buggy (do some fs stuff before/after run)
  • scoop status was uncertain (it seems back on track now)

3.3.2023 brief comparison with scoop

featurescoopnomadcomments
checksumsyesnoPR welcome
lots of appsyesnoCopy/paste a conf and adapt it for your needs
version pattern shortcutnoyesI love it
shortcutsyesyesScoop uses shims... Nomad can use custom image index for shortcut
push for 100% portabilitynoyesExample: putty conf not saved with scoop standard bucket
uses github api (when possible)noyesConsequence: Use less bandwidth but needs a PAT
single go binarynoyesScoop is a list of ps scripts

Status

It is working (I’m using it at my work). Basic UI is the next big step.

How

  1. Download latest release
  2. To install / update / get status an app (Filezilla for instance), start a terminal and run
nomad i[nstall] filezilla
nomad up[grade] filezilla
nomad st[atus] filezilla
  1. To list available apps
nomad l[ist]
  1. To check status of all installed apps
nomad st[atus]
  • To check status of one app (installed or not)
    nomad status filezilla
    
  • To check status of multiple apps (installed or not)
    nomad status filezilla rclone putty
    
  1. To view app version
nomad v[ersion]
  1. To update nomad (and get new apps)
nomad self

Available apps are listed here, and you can add yours by adding any valid json file in a folder named app-definitions OR in a config file that must be placed in the same folder as the executable). Please have a look at Configuration for more info

Essential options

FlagDescription
-forceforce reinstall (removes existing folder)
-skip=falsedo not reuse already downloaded archive
-latest=falsedo not check for latest version (if url provided in config)
-version=1.2.0install/upgrade/downgrade to custom version
-verboseverbose output useful for debug

Other options

Please run

nomad --help

Configuration

Zero Config by default

The single binary is self-sufficient (no need for any config)

Opened for config

You may add a nomad.toml in the same directory as the binary to configure any custom app definition and github token.

Custom app definition

You can add any custom definition either in the nomad.toml config file or in a app-definitions directory in which you can put a json/toml definition following this structure (AppDefinition) or imitating real examples

Github

To reduce network traffic, when possible, GitHub API is used to retrieve lastest app versions info. As GitHub API limits traffic to guest requests, a PAT (GitHub token) is very useful, thus a generic token is included and if you have a PAT (or it seems fairly easy for you to get one), please add it in your env (GITHUB_PAT) or put the following file in the same directory as the binary to reduce pressure on the generic token.

Create a PAT

Please follow this link to create a basic PAT.

Next steps

UI and lots of new apps

Contribute

Please open an issue if you see a bug or think of a nice improvement. PR are also welcome.

Build

Windows

go generate .\cmd\nomad go build -o build .\cmd\nomad\

Linux

view action