isle/docs/user/getting-started.md

130 lines
3.8 KiB
Markdown
Raw Normal View History

# Getting Started
This document will guide you through the process of obtaining an isle
binary and joining a network.
NOTE currently only linux machines with the following architectures are
supported:
2024-07-07 11:37:26 +00:00
- `x86_64` (aka `amd64`)
- `aarch64` (aka `arm64`)
- `i686`
2024-07-07 11:37:26 +00:00
(`i686` has not been tested.)
More OSs and architectures coming soon!
2024-07-07 11:37:26 +00:00
## Install isle
2024-07-07 11:37:26 +00:00
How isle gets installed depends on which Linux distribution you are using.
2024-07-07 11:37:26 +00:00
### Archlinux (also Manjaro)
2024-07-07 11:37:26 +00:00
Download the latest `.pkg.tar.zst` package file for your platform from
[this link][latest].
2024-07-07 11:37:26 +00:00
Install the package using pacman:
```
2024-07-07 11:37:26 +00:00
sudo pacman -U /path/to/isle-*.pkg.tar.zst
```
2024-07-07 11:37:26 +00:00
### Other Distributions
2024-07-07 11:37:26 +00:00
If a package file is not available for your distribution you can still install
an AppImage directly. It is assumed that all commands below are run as root.
2024-07-07 11:37:26 +00:00
Download the latest `.AppImage` binary for your platform from
[this link][latest], and place it in your `/usr/bin` directory.
2024-07-07 11:37:26 +00:00
Create a `daemon.yml` file using default values by doing:
```
mkdir -p /etc/isle/
isle daemon --dump-config > /etc/isle/daemon.yml
```
2023-12-23 16:06:16 +00:00
2024-07-07 11:37:26 +00:00
Create a system user for the isle daemon to run as:
```
useradd -r -s /bin/false -C "isle Daemon" isle
```
2023-12-23 16:06:16 +00:00
2024-07-07 11:37:26 +00:00
If your distro uses systemd, download [the latest systemd service
file][serviceFile] and place it in `/etc/systemd/system`. Run `systemctl
daemon-reload` to ensure systemd has seen the new service file.
2024-07-07 11:37:26 +00:00
If your distro uses an init system other than systemd then you will need to
configure that yourself. You can use the systemd service file linked above as a
reference.
2024-07-07 11:37:26 +00:00
[serviceFile]: https://code.betamike.com/micropelago/isle/src/branch/main/dist/linux/isle.service
### From Source
(TODO probably move these instructions into the Dev docs section).
2024-07-07 11:37:26 +00:00
Building from source requires [nix][nix].
2024-07-07 11:37:26 +00:00
You can build your own AppImage by running the following from the project's
root:
```
2024-07-07 11:37:26 +00:00
nix-build -A appImageBin
```
2024-07-07 11:37:26 +00:00
(*NOTE* The first time you run this a lot of things will be built from scratch.
If you have not otherwise configured it, nix might be using a tmpfs as its build
directory, and the capacity of this tmpfs will probably be exceeded by this
build. You can change your build directory to somewhere on-disk by setting the
TMPDIR environment variable for `nix-daemon` (see
[this github issue][tmpdir-gh].))
2024-07-07 11:37:26 +00:00
The resulting binary can be found under `result/bin`. From here you can continue
with the instructions under the "AppImage" section above.
2024-07-07 11:37:26 +00:00
[nix]: https://nixos.wiki/wiki/Nix_package_manager
[tmpdir-gh]: https://github.com/NixOS/nix/issues/2098#issuecomment-383243838
2024-07-07 11:37:26 +00:00
## Add Users to the `isle` Group (Optional)
2024-07-07 11:37:26 +00:00
If you wish to run isle commands as a user other than root, you can add that
user to the `isle` group:
```
2024-07-07 11:37:26 +00:00
sudo usermod -aG isle username
```
2024-07-07 11:37:26 +00:00
## Start the isle Service
2024-07-07 11:37:26 +00:00
Once installed and bootstrapped you can enable and start the isle service by
doing:
```
sudo systemctl enable --now isle
```
2024-07-07 11:37:26 +00:00
(NOTE If your distro uses an init system other than systemd then you will need
to instead start isle according to that system's requirements.)
2024-07-07 11:37:26 +00:00
## Join a Network
This section will guide you through the process of joining an existing network
of isle hosts. If instead you wish to create a new network for others to join
then see the [Creating a New Network][creating-a-new-network] page.
To join an existing network you will need to first obtain a `bootstrap.json`
file. The `bootstrap.json` file contains all information required for your
particular host to join the network, and must be generated and provided to you
by an admin for the network.
2024-07-07 11:37:26 +00:00
Once obtained, you can join the network by doing:
```
2024-07-07 11:37:26 +00:00
isle network join --bootstrap-path /path/to/bootstrap.json
```
2024-07-07 11:37:26 +00:00
After a few moments you will have successfully joined the network!
[creating-a-new-network]: ../admin/creating-a-new-network.md
[latest]: https://code.betamike.com/micropelago/isle/releases/latest