Provides a more complete Linux-like CLI environment on iSH by:
- Adding iSH-specific utilities to
/usr/local/bin
and/usr/local/sbin
- Supplying a custom
/etc/inittab
and application launcher to address iSH quirks - Allowing extensive user configuration (e.g., which apps to install)
- Supporting deployment via Ansible
This step is required only if deploying directly to the iSH device via Ansible.
If you prepare the filesystem in a chroot environment, you can deploy that filesystem
directly.
-
Download a recent Alpine minirootfs image, for example:
https://dl-cdn.alpinelinux.org/alpine/v3.22/releases/x86/alpine-minirootfs-3.22.1-x86.tar.gz
-
Transfer the image to the iOS device (via iCloud or similar if downloaded elsewhere).
-
In the iSH app, go to
Settings → Filesystems → Import
, select the minirootfs, then chooseBoot From This Filesystem
.
Follow instructions here:
https://github.com/ish-app/ish/wiki/Running-an-SSH-server
Deploy initial configurations using templates:
cp conf_templates/inventory.ini .
mkdir vars
cp conf_templates/overrides.yml vars/
inventory.ini
Required for both remote and chroot-based deployments. For remote deployment, add each iSH node under the[servers]
section using the provided name and IP address templates. For chroot-based deployment, this file must be present but typically does not require modification.vars/overrides.yml
Edit this file to customize deployment parameters.
Run the deployment script:
./handle_servers.sh
Download and unpack the Alpine minirootfs:
wget https://dl-cdn.alpinelinux.org/alpine/v3.22/releases/x86/alpine-minirootfs-3.22.1-x86.tar.gz
mkdir chroot-FS
cd chroot-FS
tar xfz ../alpine-minirootfs-3.22.1-x86.tar.gz
cd ..
Copy this repository into the chroot environment:
cp -av ish-fstools chroot-FS/opt
Execute:
/opt/ish-fstools/handle_localhost.sh
Recent versions of mtr
(post 0.92) cannot resolve DNS names on iSH.
This repository installs an older version (0.92-a from Alpine 3.10) that supports
hostname resolution via /etc/hosts
and IP addresses directly.