Clone the repository
git clone https://github.com/NorfairKing/intray.git --recursive
A flake is provided in flake.nix
.
Follow the instructions at https://docs.haskellstack.org/en/stable/README/
to install stack
.
For example:
curl -sSL https://get.haskellstack.org/ | sh
Then install autoexporter
:
stack install autoexporter
Finally, install the intray cli:
stack install :intray
To also install the other intray applications like the server and web server:
stack install
If you see an error like this during cloning:
Permission Denied (publickey)
You probably used ssh-based cloning instead of https-based cloning. Make sure to use the clone command as shown.
If you see an error like this during building with stack:
intray-data > ghc: could not execute: autoexporter
You forgot to run stack install autoexporter
.
If you see an error like this during building with stacK:
Aeson exception:
Error in $.packages[10].completed: failed to parse field 'packages': failed to parse field 'completed': [...]
You probably cloned an old version and git pull
-ed recently.
You still need to remove stack.yaml.lock
.
You will only need to do this once.
The intray
cli application looks for config files in these locations by default, in order:
- $XDG_CONFIG_HOME/intray/config.yaml
- $HOME/.config/intray/config.yaml
- $HOME/.intray/config.yaml
Run intray --help
to see how intray can be configured.
Put this in your config file:
url: 'https://api.intray.eu'
username: 'YOUR USERNAME HERE'
Then register:
intray register
and login:
intray login
Now you can sync manually:
intray sync
Note that syncing will occur automatically any time you change anything locally. If you would prefer to schedule syncing manually to decrease latency locally, you can use a different syncing strategy:
sync: NeverSync
See the homeManagerModules.default
in the provided flake.nix
.
Within your home.nix
, add the intray module from this repository:
let
intrayModule = intray.homeManagerModules.${system}.default;
in
{
imports = [
intrayModule
];
programs.intray = {
enable = true;
sync = {
enable = true;
username = "YOUR_USERNAME_HERE";
password-file = "YOUR_PASSWORD_FILE_HERE";
};
};
}
See the nixosModules.default
in the provided flake.nix
.
Within your configuration.nix
, add the intray module from this repository:
let
intrayModule = intray.nixosModules.${system}.default;
in
{
imports = [
intrayModule
];
services.intray.production = {
enable = true;
api-server.enable = true;
web-server.enable = true;
};
}