2021-07-24 03:12:35 +02:00
# Installing Client Tools
2022-12-26 23:52:03 +01:00
> **NOTE** As this project is in a rapid development phase, 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 software.
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-03-02 03:47:23 +01:00
- OpenSUSE Leap 15.4
2022-12-26 23:52:03 +01:00
- MacOS
- Arch Linux
- NixOS
- Fedora 36
- 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.
2021-07-24 03:12:35 +02:00
### OpenSUSE Tumbleweed
2022-12-26 23:52:03 +01:00
Kanidm has been part of OpenSUSE Tumbleweed since October 2020. 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
2022-03-14 08:29:04 +01:00
### OpenSUSE Leap 15.3/15.4
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
wget https://download.opensuse.org/repositories/network:/idm/Fedora_36/network:idm.repo
# 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
## Cargo
2022-12-26 23:52:03 +01:00
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-03-02 03:47:23 +01:00
your home directory. To update these, re-run the install command.
2022-11-09 22:42:03 +01:00
2022-12-26 23:52:03 +01:00
```bash
2023-03-02 03:47:23 +01:00
cargo install kanidm_tools
2022-12-26 23:52:03 +01: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-03-02 03:47:23 +01:00
This really is a "last resort" and we don't really recommend this for day to day usage.
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-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 ).