Files
radiantwave-legacy/docs/kiosk-setup-guide.md
T

190 lines
3.7 KiB
Markdown

# RhemaWave Kiosk Setup Guide - Ubuntu Server 24
Complete setup guide for a fresh Ubuntu Server 24 installation configured as a RhemaWave kiosk.
## Initial System Setup
### 1. Create Kiosk User
```bash
sudo adduser kiosk
sudo usermod -aG sudo kiosk
```
### 2. Install Dependencies
```bash
sudo apt update
sudo apt install -y \
libsdl2-2.0-0 \
libsdl2-ttf-2.0-0 \
libsdl2-mixer-2.0-0 \
libegl1-mesa \
libgles2-mesa \
libgbm1 \
libinput10 \
libxkbcommon0 \
dbus \
network-manager
```
### 3. Install Cage (Wayland Compositor)
```bash
sudo apt install -y cage
```
### 4. Install Greetd
```bash
sudo apt install -y greetd
```
### 5. Configure PAM for Greetd
Create `/etc/pam.d/greetd`:
```bash
sudo tee /etc/pam.d/greetd <<EOF
#%PAM-1.0
auth required pam_unix.so
auth required pam_env.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
session required pam_limits.so
EOF
```
### 6. Configure Greetd Auto-Login
Create `/etc/greetd/config.toml`:
```bash
sudo tee /etc/greetd/config.toml <<EOF
[terminal]
vt = 1
[initial_session]
command = "cage -s -- /usr/local/bin/rhemawave"
user = "kiosk"
[default_session]
command = "cage -s -- /usr/local/bin/rhemawave"
user = "kiosk"
EOF
```
### 7. Disable Network Wait Service
Speed up boot by disabling network wait:
```bash
sudo systemctl disable systemd-networkd-wait-online.service
sudo systemctl mask systemd-networkd-wait-online.service
```
## Install RhemaWave
### Option 1: Via APT Repository (Recommended)
```bash
# Add repository
echo "deb [trusted=yes] https://repository.rhemawavetech.com/release ./" | \
sudo tee /etc/apt/sources.list.d/rhemawave.list
# Install
sudo apt update
sudo apt install rhemawave
```
### Option 2: Manual Installation
```bash
# Download and install .deb package
wget https://repository.rhemawavetech.com/rhemawave_X.X.X_amd64.deb
sudo dpkg -i rhemawave_X.X.X_amd64.deb
sudo apt install -f
```
## Enable and Start Greetd
```bash
sudo systemctl enable greetd
sudo systemctl start greetd
```
## Verify Setup
Check greetd status:
```bash
sudo systemctl status greetd
```
Check logs if issues occur:
```bash
journalctl -xeu greetd
```
## Reboot
```bash
sudo reboot
```
The system should auto-login as `kiosk` and launch RhemaWave in fullscreen via cage.
## Troubleshooting
### Greetd fails to start
- Check PAM config: `cat /etc/pam.d/greetd`
- Check greetd config syntax: `cat /etc/greetd/config.toml`
- View detailed logs: `journalctl -xeu greetd`
### Black screen after login
- Verify cage is installed: `which cage`
- Verify rhemawave exists: `ls -l /usr/local/bin/rhemawave`
- Check cage can access GPU: `ls -l /dev/dri/`
- Add kiosk to video group: `sudo usermod -aG video kiosk`
### Network not connecting
- Check NetworkManager status: `systemctl status NetworkManager`
- Use nmtui for WiFi setup: `sudo nmtui`
- RhemaWave will show WiFi setup page if no connection detected
### Auto-updates not working
- Verify polkit rules: `ls -l /etc/polkit-1/rules.d/99-rhemawave-updater.rules`
- Check updater script: `ls -l /usr/local/bin/rhemawave-updater.py`
- Test manual update: `sudo apt update && sudo apt list --upgradable`
## Security Notes
- The kiosk user keeps their password for SSH and sudo access
- Auto-login only applies to tty1 (the primary console)
- Other TTYs (Ctrl+Alt+F2-F6) still require password
- Polkit rules restrict kiosk user to only RhemaWave package updates
## Remote Management
### SSH Access
```bash
ssh kiosk@<kiosk-ip>
```
### View RhemaWave Logs
```bash
# From SSH session
sudo journalctl -u greetd -f
```
### Restart RhemaWave
```bash
sudo systemctl restart greetd
```
### Update RhemaWave
```bash
sudo apt update
sudo apt upgrade rhemawave
```