# Learner Account Administration Guide for managing learner accounts on the maubot development server. ## Adding a Learner 1. Get the learner's SSH public key (they run `cat ~/.ssh/id_ed25519.pub`) 2. SSH to the server and run: ```bash sudo /path/to/scripts/learner-add.sh '' ``` Example: ```bash sudo ./scripts/learner-add.sh alice 'ssh-ed25519 AAAAC3... alice@laptop' ``` 3. The script will output onboarding instructions - send these to the learner. ### What Gets Created - Unix user account with SSH access - `~/plugins/hello_/` - starter maubot plugin - The plugin includes a working hello/ping bot ## Removing a Learner ```bash sudo ./scripts/learner-remove.sh ``` With archive (saves home directory before deleting): ```bash sudo ./scripts/learner-remove.sh --archive ``` Archives are saved to `/var/backups/learners/`. ## Maubot Setup (One-Time) After adding the first learner, set up the shared test environment: 1. Create a Matrix bot user for learners (via Element or API) 2. In maubot admin (http://localhost:29316): - Add the bot user as a client - Learners will create instances using this client 3. Create `#learners-sandbox` room: - Create the room in Matrix - Invite the bot user - Give learners the room ID/alias ## Monitoring ### Check Learner Plugin Status ```bash # See what plugins are loaded curl -s http://localhost:29316/_matrix/maubot/v1/plugins \ -H "Authorization: Bearer " | jq ``` ### View Learner Directories ```bash ls -la /home/*/plugins/ ``` ### Check Maubot Logs ```bash journalctl -u maubot -f ``` ## Troubleshooting ### Learner Can't Connect 1. Verify user exists: `id ` 2. Check SSH key: `cat /home//.ssh/authorized_keys` 3. Check SSH logs: `journalctl -u sshd | grep ` ### Plugin Won't Load 1. Check file permissions: ```bash ls -la /home//plugins/ ``` 2. Verify .mbp file structure: ```bash unzip -l /home//plugins/*/dist/*.mbp ``` ### Disk Space Monitor learner disk usage: ```bash du -sh /home/*/ ```