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
This initial structure of this app was based on goappmation. It has then a lot evolved...
I needed a fast, reliable and simple way to manage portable apps (mainly on windows).
If you like scoop, save yourself some time and stop reading this ;-) Otherwise, go ahead :-)
- portableapps was too slow or buggy (do some fs stuff before/after run)
- scoop status was uncertain (it seems back on track now)
feature | scoop | nomad | comments |
---|---|---|---|
checksums | yes | no | PR welcome |
lots of apps | yes | no | Copy/paste a conf and adapt it for your needs |
version pattern shortcut | no | yes | I love it |
shortcuts | yes | yes | Scoop uses shims... Nomad can use custom image index for shortcut |
push for 100% portability | no | yes | Example: putty conf not saved with scoop standard bucket |
uses github api (when possible) | no | yes | Consequence: Use less bandwidth but needs a PAT |
single go binary | no | yes | Scoop is a list of ps scripts |
It is working (I’m using it at my work). Basic UI is the next big step.
- Download latest release
- 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
- To list available apps
nomad l[ist]
- 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
- To view app version
nomad v[ersion]
- 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
Flag | Description |
---|---|
-force | force reinstall (removes existing folder) |
-skip=false | do not reuse already downloaded archive |
-latest=false | do not check for latest version (if url provided in config) |
-version=1.2.0 | install/upgrade/downgrade to custom version |
-verbose | verbose output useful for debug |
Please run
nomad --help
The single binary is self-sufficient (no need for any config)
You may add a nomad.toml in the same directory as the binary to configure any custom app definition and github token.
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
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.
Please follow this link to create a basic PAT.
UI and lots of new apps
Please open an issue if you see a bug or think of a nice improvement. PR are also welcome.
go generate .\cmd\nomad go build -o build .\cmd\nomad\
view action