2021-07-24 03:12:35 +02:00
# Installing Client Tools
2023-10-05 03:11:27 +02:00
> **NOTE** Running different release versions will likely present incompatibilities. Ensure you're
> running matching release versions of client and server binaries. If you have any issues, check
> that you are running the latest version of Kanidm.
2021-07-24 03:12:35 +02:00
## From packages
2022-11-09 22:42:03 +01:00
Kanidm currently is packaged for the following systems:
2021-07-24 03:12:35 +02:00
2022-12-26 23:52:03 +01:00
- OpenSUSE Tumbleweed
2023-10-05 03:11:27 +02:00
- OpenSUSE Leap 15.4/15.5/15.6
2022-12-26 23:52:03 +01:00
- MacOS
- Arch Linux
- NixOS
2023-11-13 23:38:34 +01:00
- Fedora 38
2022-12-26 23:52:03 +01:00
- CentOS Stream 9
2021-07-24 03:12:35 +02:00
2022-05-31 06:13:21 +02:00
The `kanidm` client has been built and tested from Windows, but is not (yet) packaged routinely.
2023-10-05 03:11:27 +02:00
### OpenSUSE Tumbleweed / Leap 15.6
2021-07-24 03:12:35 +02:00
2023-10-05 03:11:27 +02:00
Kanidm is available in Tumbleweed and Leap 15.6. You can install the clients with:
2021-07-24 03:12:35 +02:00
2022-12-26 23:52:03 +01:00
```bash
zypper ref
zypper in kanidm-clients
```
2021-07-24 03:12:35 +02:00
2023-10-05 03:11:27 +02:00
### OpenSUSE Leap 15.4/15.5
2021-07-24 03:12:35 +02:00
2022-11-09 22:42:03 +01:00
Using zypper you can add the Kanidm leap repository with:
2021-07-24 03:12:35 +02:00
2022-12-26 23:52:03 +01:00
```bash
zypper ar -f obs://network:idm network_idm
```
2021-07-24 03:12:35 +02:00
Then you need to refresh your metadata and install the clients.
2022-12-26 23:52:03 +01:00
```bash
zypper ref
zypper in kanidm-clients
```
2021-07-24 03:12:35 +02:00
2022-11-09 22:42:03 +01:00
### MacOS - Brew
[Homebrew ](https://brew.sh/ ) allows addition of third party repositories for installing tools. On
MacOS you can use this to install the Kanidm tools.
2022-12-26 23:52:03 +01:00
```bash
brew tap kanidm/kanidm
brew install kanidm
```
2022-11-09 22:42:03 +01:00
### Arch Linux
[Kanidm on AUR ](https://aur.archlinux.org/packages?O=0&K=kanidm )
### NixOS
[Kanidm in NixOS ](https://search.nixos.org/packages?sort=relevance&type=packages&query=kanidm )
2022-03-14 08:29:04 +01:00
### Fedora / Centos Stream
2021-07-24 03:12:35 +02:00
2022-12-29 04:02:51 +01:00
<!-- deno - fmt - ignore - start -->
{{#template templates/kani-warning.md
imagepath=images
title=Take Note!
text=Kanidm frequently uses new Rust versions and features, however Fedora and Centos frequently are behind in Rust releases. As a result, they may not always have the latest Kanidm versions available.
}}
<!-- deno - fmt - ignore - end -->
2022-11-09 22:42:03 +01:00
Fedora has limited support through the development repository. You need to add the repository
2022-05-27 01:07:56 +02:00
metadata into the correct directory:
2021-07-24 03:12:35 +02:00
2022-12-26 23:52:03 +01:00
```bash
# Fedora
2023-11-13 23:38:34 +01:00
wget https://download.opensuse.org/repositories/network:/idm/Fedora_38/network:idm.repo
2022-12-26 23:52:03 +01:00
# Centos Stream 9
wget https://download.opensuse.org/repositories/network:/idm/CentOS_9_Stream/network:idm.repo
```
2021-07-24 03:12:35 +02:00
You can then install with:
2022-12-26 23:52:03 +01:00
```bash
dnf install kanidm-clients
```
2021-07-24 03:12:35 +02:00
2022-11-09 22:42:03 +01:00
## Tools Container
In some cases if your distribution does not have native kanidm-client support, and you can't access
cargo for the install for some reason, you can use the cli tools from a docker container instead.
2023-10-05 03:11:27 +02:00
This is a "last resort" and we don't really recommend this for day to day usage.
2023-03-02 03:47:23 +01:00
2022-12-26 23:52:03 +01:00
```bash
2023-03-02 03:47:23 +01:00
echo '{}' > ~/.cache/kanidm_tokens
chmod 666 ~/.cache/kanidm_tokens
2022-12-26 23:52:03 +01:00
docker pull kanidm/tools:latest
docker run --rm -i -t \
2023-03-02 03:47:23 +01:00
--network host \
2022-12-26 23:52:03 +01:00
-v /etc/kanidm/config:/etc/kanidm/config:ro \
-v ~/.config/kanidm:/home/kanidm/.config/kanidm:ro \
-v ~/.cache/kanidm_tokens:/home/kanidm/.cache/kanidm_tokens \
kanidm/tools:latest \
/sbin/kanidm --help
```
2022-11-09 22:42:03 +01:00
2023-03-02 03:47:23 +01:00
If you have a ca.pem you may need to bind mount this in as required as well.
2021-07-24 03:12:35 +02:00
2022-11-09 22:42:03 +01:00
> **TIP** You can alias the docker run command to make the tools easier to access such as:
2021-07-24 03:12:35 +02:00
2022-12-26 23:52:03 +01:00
```bash
alias kanidm="docker run ..."
```
2021-07-24 03:12:35 +02:00
2023-10-05 03:11:27 +02:00
## Cargo
The tools are available as a cargo download if you have a rust tool chain available. To install rust
you should follow the documentation for [rustup ](https://rustup.rs/ ). These will be installed into
2023-11-25 00:55:54 +01:00
your home directory. To update these, re-run the install command. You will likely need to install additional development libraries, specified in the [Developer Guide ](DEVELOPER_README.html ).
2023-10-05 03:11:27 +02:00
```bash
cargo install kanidm_tools
```
2023-06-21 08:48:03 +02:00
## Initializing the configuration
2023-06-27 03:38:22 +02:00
The client requires a configuration file to connect to the server. This should be at
`/etc/kanidm/config` or `~/.config/kanidm` , and configures the kanidm command line tool.
2023-06-21 08:48:03 +02:00
Here is a minimal example:
```toml
uri = "https://idm.example.com"
verify_ca = true
verify_hostnames = true
```
2021-07-24 03:12:35 +02:00
## Checking that the tools work
2022-12-26 23:52:03 +01:00
Now you can check your instance is working. You may need to provide a CA certificate for
verification with the -C parameter:
2021-07-24 03:12:35 +02:00
2022-12-26 23:52:03 +01:00
```bash
kanidm login --name anonymous
kanidm self whoami -H https://localhost:8443 --name anonymous
kanidm self whoami -C ../path/to/ca.pem -H https://localhost:8443 --name anonymous
```
2021-07-24 03:12:35 +02:00
2022-09-02 06:21:20 +02:00
Now you can take some time to look at what commands are available - please
[ask for help at any time ](https://github.com/kanidm/kanidm#getting-in-contact--questions ).