NOMAD, a portable app installer
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
| 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 |
Status
It is working (I’m using it at my work). Basic UI is the next big step.
How
- Download latest release
- To install / update / get status an app (Filezilla for instance), start a terminal and run
nomad install filezilla
nomad update filezilla
nomad status filezilla
- To list available apps
nomad list
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)
Essential options
| Flag |
Description |
| -configs <folder> |
runs on all .json files in given folder |
| -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) |
| -verbose |
verbose output useful for debug |
Other options
Please run
nomad --help
General config
Github
To reduce network traffic, when possible, GitHub API is used to retrieve last release info.
As GitHub API limit traffic to guest requests, a PAT (GitHub token) is very useful.
If you have a PAT, please add it in your env (GITHUB_PAT) or put the following file in
the same directory as the binary.
Create a PAT
Please follow this link to create a basic PAT.
App definition structure
Please refer to this file or to real examples.
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.