New Grimoire
This commit is contained in:
parent
77d589a13d
commit
cc574f8aed
157 changed files with 29420 additions and 0 deletions
45
Pocket-Grimoire/Hardware/Inventory.md
Normal file
45
Pocket-Grimoire/Hardware/Inventory.md
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
---
|
||||
title: Hardware Inventory
|
||||
description: Pocket Grimoire hardware — laptop, router, storage, power
|
||||
published: true
|
||||
date: 2026-04-12T00:00:00.000Z
|
||||
tags: pocket, hardware
|
||||
editor: markdown
|
||||
dateCreated: 2026-04-12T00:00:00.000Z
|
||||
---
|
||||
|
||||
# Hardware Inventory
|
||||
|
||||
## Core Compute
|
||||
|
||||
- Laptop (Docker host)
|
||||
- ZFS pool `pocket-green` at `/srv/greenpg/`
|
||||
- Docker Engine (not Swarm)
|
||||
|
||||
## Networking
|
||||
|
||||
- GL.iNet Beryl AX (GL-MT3000)
|
||||
- LAN: `192.168.8.0/24`
|
||||
- WireGuard peer: `PortaPotty` (192.168.32.5)
|
||||
- Short CAT5/6 cable (router ↔ laptop)
|
||||
|
||||
## Storage
|
||||
|
||||
| Drive | Mount | Encrypted | Contents |
|
||||
|-------|-------|-----------|---------|
|
||||
| SSD Vault | ZFS pool | Yes | Git mirrors, wiki backup, Kopia repo, SSH keys, system configs |
|
||||
| SSD Green | ZFS pool | Yes | Personal media, Stash data, VeraCrypt containers — personal trips only |
|
||||
|
||||
## Media Players
|
||||
|
||||
- 2x Onn 4K streaming boxes with power
|
||||
- FireTV Stick with power
|
||||
|
||||
## Power
|
||||
|
||||
- Anker Prime 200W 6-Port GaN desktop charger
|
||||
- Short USB-C cables (router)
|
||||
- Short USB-A to USB-C (laptop power backup)
|
||||
- 2x short USB-3 cables (SSDs)
|
||||
- Longer USB-C to USB-C (laptop primary power)
|
||||
- Longer USB-C to USB-C (phone/tablet)
|
||||
863
Pocket-Grimoire/Hardware/ONN-Media-Streamer.md
Normal file
863
Pocket-Grimoire/Hardware/ONN-Media-Streamer.md
Normal file
|
|
@ -0,0 +1,863 @@
|
|||
---
|
||||
title: Stream Box
|
||||
description: Configure ONN Media Box
|
||||
published: true
|
||||
date: 2026-02-20T04:50:44.701Z
|
||||
tags:
|
||||
editor: markdown
|
||||
dateCreated: 2026-02-20T04:50:34.384Z
|
||||
---
|
||||
|
||||
# Onn 4K Streaming Box Setup Guide
|
||||
|
||||
**Complete configuration guide for Onn 4K streaming boxes used with Pocket Grimoire**
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
This guide covers the complete setup of your Onn 4K streaming boxes for use with Pocket Grimoire, including:
|
||||
- Initial device setup
|
||||
- WiFi configuration (portapotty network)
|
||||
- Required app installations (Jellyfin, StashApp, Netflix, YouTube TV)
|
||||
- Connection to Pocket Grimoire services
|
||||
- Troubleshooting common issues
|
||||
|
||||
**Network Configuration:**
|
||||
- **WiFi SSID:** `portapotty` (GL.iNet Beryl AX travel router)
|
||||
- **Connection:** All devices connect wirelessly to portapotty
|
||||
- **Exception:** Raspberry Pi connects to router via CAT5 ethernet
|
||||
|
||||
---
|
||||
|
||||
## Hardware Information
|
||||
|
||||
### Onn 4K Streaming Box Specifications
|
||||
- **Model:** Onn 4K Streaming Box (Walmart exclusive)
|
||||
- **OS:** Android TV (Google TV interface)
|
||||
- **CPU:** Amlogic S905Y4 quad-core
|
||||
- **RAM:** 2GB
|
||||
- **Storage:** 8GB internal
|
||||
- **Video:** 4K HDR, Dolby Vision, Dolby Atmos
|
||||
- **WiFi:** 802.11ac (WiFi 5) dual-band
|
||||
- **Bluetooth:** 5.0
|
||||
- **Ports:** HDMI 2.1, Micro-USB (power)
|
||||
- **Remote:** Voice remote with Google Assistant
|
||||
|
||||
### What's in the Box
|
||||
- Onn 4K streaming box
|
||||
- Voice remote with batteries
|
||||
- USB power adapter
|
||||
- HDMI cable (short)
|
||||
- Quick start guide
|
||||
|
||||
---
|
||||
|
||||
## Initial Setup
|
||||
|
||||
### First Power-On
|
||||
|
||||
1. **Connect to TV:**
|
||||
- Plug HDMI cable into Onn box
|
||||
- Connect other end to hotel TV HDMI port
|
||||
- Plug Micro-USB power into Onn box
|
||||
- Connect USB power adapter to wall or Anker Prime
|
||||
|
||||
2. **Power On:**
|
||||
- TV should auto-detect HDMI input
|
||||
- If not, use TV remote to select correct HDMI input
|
||||
- Onn box LED will light up (solid white when ready)
|
||||
- Wait for Google TV home screen
|
||||
|
||||
3. **Select Language:**
|
||||
- Use remote to select language (English)
|
||||
- Click OK
|
||||
|
||||
4. **Accessibility Options:**
|
||||
- Skip unless needed (click "Skip")
|
||||
|
||||
### WiFi Configuration
|
||||
|
||||
**Critical: Connect to portapotty network**
|
||||
|
||||
1. **WiFi Setup Screen:**
|
||||
- List of available networks will appear
|
||||
- Scroll to find `portapotty`
|
||||
- Select `portapotty`
|
||||
- Click "Connect"
|
||||
|
||||
2. **Enter Password:**
|
||||
- Enter WiFi password for portapotty network
|
||||
- Use on-screen keyboard
|
||||
- Click "Connect"
|
||||
- Wait for connection (should take 5-10 seconds)
|
||||
- "Connected" message will appear
|
||||
|
||||
3. **Verify Connection:**
|
||||
- Should show "portapotty" with signal strength
|
||||
- Should show "Connected" status
|
||||
|
||||
**Troubleshooting WiFi:**
|
||||
- If portapotty doesn't appear: Ensure Beryl AX router is powered on
|
||||
- If password fails: Double-check portapotty WiFi password
|
||||
- If connection drops: Move closer to router
|
||||
- Signal strength: Should be "Excellent" or "Good" in hotel room
|
||||
|
||||
### Google Account Setup
|
||||
|
||||
**Option A: Sign in with Google Account**
|
||||
1. Select "Sign in"
|
||||
2. Use phone to scan QR code or enter code
|
||||
3. Follow prompts on phone
|
||||
4. Account will sync to Onn box
|
||||
|
||||
**Option B: Set up without Google Account (Limited)**
|
||||
1. Select "Skip"
|
||||
2. Click "Skip" again to confirm
|
||||
3. Some features will be limited (Play Store, purchases)
|
||||
4. **Recommendation:** Use Option A for full functionality
|
||||
|
||||
**For Pocket Grimoire:**
|
||||
- Need Google account for: Play Store (to install apps)
|
||||
- StashApp requires sideloading (see separate section)
|
||||
|
||||
### Complete Initial Setup
|
||||
|
||||
1. **Google Services:**
|
||||
- Accept terms (or skip)
|
||||
- Location services: Your choice
|
||||
- Device name: Name it (e.g., "Onn Box 1", "Onn Box 2")
|
||||
|
||||
2. **Voice Match:**
|
||||
- Set up "Hey Google" voice commands (optional)
|
||||
- Can skip and set up later
|
||||
|
||||
3. **Apps to Install:**
|
||||
- Google will suggest popular apps
|
||||
- Skip for now (we'll install specific apps later)
|
||||
- Click "Next" or "Skip"
|
||||
|
||||
4. **Complete:**
|
||||
- Should arrive at Google TV home screen
|
||||
- Remote should control interface
|
||||
- Ready to install apps
|
||||
|
||||
---
|
||||
|
||||
## App Installations
|
||||
|
||||
### 1. Jellyfin for Android TV
|
||||
|
||||
**Install from Google Play Store:**
|
||||
|
||||
1. **Open Play Store:**
|
||||
- Press Home button on remote
|
||||
- Navigate to "Apps" tab at top
|
||||
- Select "Play Store"
|
||||
|
||||
2. **Search for Jellyfin:**
|
||||
- Click search icon (magnifying glass)
|
||||
- Type "Jellyfin" using on-screen keyboard
|
||||
- Select "Jellyfin for Android TV" from results
|
||||
- **Developer:** Jellyfin
|
||||
- **Note:** Choose "Jellyfin for Android TV" not regular Jellyfin
|
||||
|
||||
3. **Install:**
|
||||
- Click "Install"
|
||||
- Wait for download and installation (~30 seconds)
|
||||
- Click "Open" when complete
|
||||
|
||||
4. **Configure Jellyfin:**
|
||||
- Click "Connect to Server"
|
||||
- **Method 1 - Manual Entry:**
|
||||
- Click "Add server manually"
|
||||
- Host: `pocket-grimoire.local` or `10.0.0.10` (Pi's IP)
|
||||
- Port: `8096`
|
||||
- Click "Connect"
|
||||
|
||||
- **Method 2 - Auto-Discovery (if available):**
|
||||
- Wait for Jellyfin to discover Pocket Grimoire
|
||||
- Select "Pocket Grimoire" from list
|
||||
- Click "Connect"
|
||||
|
||||
5. **Login:**
|
||||
- Enter username and password
|
||||
- Or select "Quick Connect" if configured
|
||||
- Click "Sign In"
|
||||
|
||||
6. **Verify:**
|
||||
- Should see Jellyfin home screen
|
||||
- Libraries (Movies, TV Shows) should appear
|
||||
- Test playing a video (should be direct play, no buffering)
|
||||
|
||||
**Jellyfin Settings (Optional but Recommended):**
|
||||
- Settings → Playback
|
||||
- Video quality: Maximum
|
||||
- Allow direct play: ON
|
||||
- Allow direct stream: ON
|
||||
- Allow video transcoding: OFF (should be disabled on server already)
|
||||
|
||||
### 2. StashApp for Android TV
|
||||
|
||||
**Installation: Requires Sideloading (GitHub Release)**
|
||||
|
||||
StashApp is not available in Play Store, must be installed manually via APK file.
|
||||
|
||||
#### Prerequisites
|
||||
- USB drive (for APK transfer)
|
||||
- Computer with internet access
|
||||
- OR Android phone with file transfer capability
|
||||
|
||||
#### Method 1: USB Drive Installation (Recommended)
|
||||
|
||||
**On Your Computer:**
|
||||
|
||||
1. **Download StashApp APK:**
|
||||
- Open browser: https://github.com/damontecres/StashAppAndroidTV/releases
|
||||
- Find latest release (e.g., v1.x.x)
|
||||
- Download file: `stashapp-tv-release-vX.X.X.apk`
|
||||
- Save to USB drive
|
||||
|
||||
2. **Prepare USB Drive:**
|
||||
- Format as FAT32 or exFAT (if not already)
|
||||
- Copy APK to root of USB drive
|
||||
- Safely eject USB drive
|
||||
|
||||
**On Onn Box:**
|
||||
|
||||
3. **Enable Unknown Sources:**
|
||||
- Press Home button
|
||||
- Navigate to Settings (gear icon)
|
||||
- Select "Device Preferences"
|
||||
- Select "Security & Restrictions"
|
||||
- Enable "Unknown Sources"
|
||||
- Confirm warning (accept risk)
|
||||
|
||||
4. **Install File Manager (if needed):**
|
||||
- Open Play Store
|
||||
- Search "File Commander" or "X-plore File Manager"
|
||||
- Install one of these apps
|
||||
- Open the file manager app
|
||||
|
||||
5. **Connect USB Drive:**
|
||||
- Plug USB drive into Onn box USB port
|
||||
- **Note:** Onn box only has Micro-USB (power), so you need:
|
||||
- USB OTG adapter (Micro-USB to USB-A female)
|
||||
- OR transfer APK via network/Bluetooth
|
||||
|
||||
**Alternative: Network Transfer**
|
||||
|
||||
Since Onn box doesn't have easy USB access:
|
||||
|
||||
1. **Use Send Files to TV App:**
|
||||
- On Onn box: Install "Send Files to TV" from Play Store
|
||||
- On phone/computer: Install companion app
|
||||
- Transfer APK wirelessly
|
||||
- Open with package installer
|
||||
|
||||
2. **Or Use Cloud Storage:**
|
||||
- Upload APK to Google Drive
|
||||
- On Onn box: Install Google Drive app
|
||||
- Download APK from Drive
|
||||
- Open with package installer
|
||||
|
||||
#### Method 2: Direct Download on Onn Box (Easiest)
|
||||
|
||||
**On Onn Box:**
|
||||
|
||||
1. **Install Downloader App:**
|
||||
- Open Play Store
|
||||
- Search "Downloader" (by AFTVnews)
|
||||
- Install and open
|
||||
|
||||
2. **Download StashApp APK:**
|
||||
- In Downloader app, click URL field
|
||||
- Enter: `https://github.com/damontecres/StashAppAndroidTV/releases`
|
||||
- Navigate to latest release
|
||||
- Click APK download link
|
||||
- Save APK
|
||||
|
||||
3. **Install APK:**
|
||||
- Downloader will prompt to install after download
|
||||
- Click "Install"
|
||||
- Click "Done" when complete
|
||||
- APK will be installed
|
||||
|
||||
**Configure StashApp:**
|
||||
|
||||
1. **Open StashApp:**
|
||||
- Find in Apps list (may be under "See all apps")
|
||||
- Or search "Stash" in search bar
|
||||
|
||||
2. **Connect to Server:**
|
||||
- Enter server URL: `http://pocket-grimoire.local:9999`
|
||||
- Or use IP: `http://10.0.0.10:9999`
|
||||
- Enter API key (if required)
|
||||
- Click "Connect"
|
||||
|
||||
3. **Test Connection:**
|
||||
- Should load Stash interface
|
||||
- Browse library
|
||||
- Test playing a preview
|
||||
- Verify scene markers work
|
||||
|
||||
**StashApp Settings:**
|
||||
- Video quality: Original (for direct play)
|
||||
- Hardware acceleration: ON
|
||||
- Cache previews: ON (if storage available)
|
||||
|
||||
### 3. Netflix
|
||||
|
||||
**Install from Google Play Store:**
|
||||
|
||||
1. **Open Play Store:**
|
||||
- Press Home button
|
||||
- Navigate to "Apps"
|
||||
- Select "Play Store"
|
||||
|
||||
2. **Search Netflix:**
|
||||
- Search bar → type "Netflix"
|
||||
- Select "Netflix" (official app)
|
||||
- Click "Install"
|
||||
- Wait for installation
|
||||
|
||||
3. **Open Netflix:**
|
||||
- Click "Open" after installation
|
||||
- Or find in Apps list
|
||||
|
||||
4. **Sign In:**
|
||||
- Enter Netflix email and password
|
||||
- Or scan QR code with phone
|
||||
- Select profile
|
||||
|
||||
5. **Test:**
|
||||
- Browse content
|
||||
- Play a video to verify streaming works
|
||||
- Check video quality (should be HD/4K)
|
||||
|
||||
**Netflix Settings:**
|
||||
- Profile: Select your profile
|
||||
- Video quality: High (auto)
|
||||
- Subtitles/audio: Configure as preferred
|
||||
|
||||
### 4. YouTube TV
|
||||
|
||||
**Install from Google Play Store:**
|
||||
|
||||
1. **Open Play Store:**
|
||||
- Navigate to Play Store
|
||||
- Search "YouTube TV"
|
||||
|
||||
2. **Install:**
|
||||
- Select "YouTube TV" (official app)
|
||||
- Click "Install"
|
||||
- Wait for installation
|
||||
|
||||
3. **Sign In:**
|
||||
- Open YouTube TV
|
||||
- Sign in with Google account (YouTube TV subscription)
|
||||
- Or use TV code activation:
|
||||
- Visit tv.youtube.com/start on computer/phone
|
||||
- Enter code shown on TV
|
||||
- Sign in and authorize
|
||||
|
||||
4. **Test:**
|
||||
- Browse live TV channels
|
||||
- Test DVR recordings
|
||||
- Verify streaming quality
|
||||
|
||||
**YouTube TV Settings:**
|
||||
- Live guide: Configure preferences
|
||||
- DVR: Verify recordings accessible
|
||||
- Picture quality: Auto or 4K (if available)
|
||||
|
||||
---
|
||||
|
||||
## Network Configuration Details
|
||||
|
||||
### portapotty WiFi Network (GL.iNet Beryl AX)
|
||||
|
||||
**Network Details:**
|
||||
- **SSID:** `portapotty`
|
||||
- **Frequency:** 2.4GHz + 5GHz (dual-band)
|
||||
- **Security:** WPA2/WPA3
|
||||
- **DHCP:** Enabled (automatic IP assignment)
|
||||
- **Subnet:** 192.168.8.0/24 (default GL.iNet)
|
||||
- **Router IP:** 192.168.8.1 (Beryl AX admin panel)
|
||||
- **DNS:** Handled by Beryl AX (AdGuard Home)
|
||||
|
||||
**Devices on portapotty Network:**
|
||||
- Raspberry Pi 4: Ethernet (CAT5) → 10.0.0.10 (static, or check DHCP)
|
||||
- Onn Box 1: WiFi → 192.168.8.x (DHCP assigned)
|
||||
- Onn Box 2: WiFi → 192.168.8.x (DHCP assigned)
|
||||
- Laptop: WiFi → 192.168.8.x (DHCP assigned)
|
||||
- Phone/tablet: WiFi → 192.168.8.x (DHCP assigned)
|
||||
|
||||
### Pocket Grimoire Service Addresses
|
||||
|
||||
**When connected to portapotty network:**
|
||||
|
||||
```
|
||||
Jellyfin: http://pocket-grimoire.local:8096
|
||||
or http://10.0.0.10:8096
|
||||
|
||||
Stash: http://pocket-grimoire.local:9999
|
||||
or http://10.0.0.10:9999
|
||||
|
||||
Wiki.js: http://pocket-grimoire.local:3000
|
||||
or http://10.0.0.10:3000
|
||||
|
||||
File Browser: http://pocket-grimoire.local:8080
|
||||
or http://10.0.0.10:8080
|
||||
|
||||
Router Admin: http://192.168.8.1
|
||||
```
|
||||
|
||||
**If `.local` names don't resolve:**
|
||||
- Use IP addresses directly (10.0.0.10)
|
||||
- Check Beryl AX DNS settings
|
||||
- Restart Onn box
|
||||
|
||||
---
|
||||
|
||||
## Configuration Checklist
|
||||
|
||||
### Pre-Deployment (At Home)
|
||||
|
||||
**Before traveling, complete these tasks:**
|
||||
|
||||
- [ ] Both Onn boxes powered on and tested
|
||||
- [ ] Both connected to test WiFi network
|
||||
- [ ] Google accounts signed in on both boxes
|
||||
- [ ] All 4 apps installed on both boxes:
|
||||
- [ ] Jellyfin for Android TV
|
||||
- [ ] StashApp for Android TV (sideloaded)
|
||||
- [ ] Netflix
|
||||
- [ ] YouTube TV
|
||||
- [ ] Jellyfin configured and tested (play test video)
|
||||
- [ ] StashApp configured and tested (browse library)
|
||||
- [ ] Netflix signed in (test streaming)
|
||||
- [ ] YouTube TV signed in (test live TV)
|
||||
- [ ] Both remotes have fresh batteries
|
||||
- [ ] Both boxes labeled (Box 1, Box 2) or distinguishable
|
||||
|
||||
### Hotel Deployment
|
||||
|
||||
**Setup sequence at hotel:**
|
||||
|
||||
1. **Setup Beryl AX Router:**
|
||||
- Power on Beryl AX
|
||||
- Connect to hotel WiFi (via Beryl AX admin or phone app)
|
||||
- Verify internet connection
|
||||
- portapotty WiFi should be active
|
||||
|
||||
2. **Setup Pocket Grimoire:**
|
||||
- Power on Raspberry Pi
|
||||
- Connect via CAT5 to Beryl AX
|
||||
- Wait 2-3 minutes for boot
|
||||
- SSH in and unlock ZFS (if needed)
|
||||
- Verify Docker containers running
|
||||
|
||||
3. **Setup Onn Box 1:**
|
||||
- Connect to TV HDMI port
|
||||
- Power on
|
||||
- Wait for boot (30 seconds)
|
||||
- Should auto-connect to portapotty
|
||||
- If not: Settings → Network → portapotty → Connect
|
||||
- Test Jellyfin (should connect automatically)
|
||||
- Test StashApp (should connect automatically)
|
||||
|
||||
4. **Setup Onn Box 2 (if using):**
|
||||
- Connect to second TV or different HDMI port
|
||||
- Repeat setup steps above
|
||||
- Verify connection to portapotty
|
||||
|
||||
5. **Verify All Services:**
|
||||
- Open Jellyfin → Browse library → Play test video
|
||||
- Open StashApp → Browse library → Test preview
|
||||
- Open Netflix → Test streaming
|
||||
- Open YouTube TV → Test live channel
|
||||
|
||||
**Total setup time: 10-15 minutes**
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### WiFi Connection Issues
|
||||
|
||||
**Onn box won't connect to portapotty:**
|
||||
|
||||
1. **Verify Router is Online:**
|
||||
- Check Beryl AX power LED (should be solid)
|
||||
- Check Beryl AX WiFi LED (should be blinking/solid)
|
||||
- Use phone to verify portapotty network is visible
|
||||
|
||||
2. **Forget and Reconnect:**
|
||||
- Settings → Network & Internet
|
||||
- Select portapotty
|
||||
- Click "Forget network"
|
||||
- Scan again
|
||||
- Reconnect with password
|
||||
|
||||
3. **Check Router Settings:**
|
||||
- Access Beryl AX admin: http://192.168.8.1
|
||||
- Verify WiFi is enabled
|
||||
- Check if DHCP is active
|
||||
- Verify no MAC filtering enabled
|
||||
|
||||
4. **Restart Devices:**
|
||||
- Power cycle Onn box (unplug, wait 10 seconds, plug back in)
|
||||
- Restart Beryl AX router
|
||||
- Try connecting again
|
||||
|
||||
**Weak WiFi Signal:**
|
||||
|
||||
- Move Beryl AX closer to TV/Onn box
|
||||
- Reduce obstacles between router and box
|
||||
- Use 2.4GHz band instead of 5GHz (better range, slower speed)
|
||||
- Check for interference (hotel WiFi channels)
|
||||
|
||||
### Jellyfin Connection Issues
|
||||
|
||||
**Can't connect to Jellyfin server:**
|
||||
|
||||
1. **Verify Server is Running:**
|
||||
- SSH into Pocket Grimoire
|
||||
- Run: `docker ps | grep jellyfin`
|
||||
- Should show `pocketgrimoire_jellyfin` running
|
||||
|
||||
2. **Check Network Connectivity:**
|
||||
- On Onn box, open browser app
|
||||
- Navigate to: `http://pocket-grimoire.local:8096`
|
||||
- Or try IP: `http://10.0.0.10:8096`
|
||||
- Should load Jellyfin web interface
|
||||
|
||||
3. **Reconnect Jellyfin App:**
|
||||
- Open Jellyfin app
|
||||
- Settings → Server
|
||||
- Delete existing server
|
||||
- Add server manually:
|
||||
- Host: `pocket-grimoire.local` or `10.0.0.10`
|
||||
- Port: `8096`
|
||||
- Connect and login
|
||||
|
||||
4. **Check Firewall:**
|
||||
- SSH into Pi
|
||||
- Verify port 8096 is open: `sudo netstat -tlnp | grep 8096`
|
||||
- Should show jellyfin listening
|
||||
|
||||
**Jellyfin Playback Issues:**
|
||||
|
||||
**Video won't play:**
|
||||
- Check media is H.264/AAC (see encoding guide)
|
||||
- Verify network bandwidth (should be strong WiFi)
|
||||
- Try different video file
|
||||
- Check Jellyfin logs: `docker logs pocketgrimoire_jellyfin`
|
||||
|
||||
**Video buffers/stutters:**
|
||||
- Check WiFi signal strength (move router closer)
|
||||
- Verify direct play (check playback info, should NOT say "transcoding")
|
||||
- If transcoding occurs: Media is not properly encoded
|
||||
- Check network activity: `ssh user@pocket-grimoire.local` then `iftop`
|
||||
|
||||
**Subtitles don't work:**
|
||||
- Ensure subtitles are SRT format (not PGS/VobSub)
|
||||
- External .srt files work best
|
||||
- Embedded SRT in MKV also works
|
||||
|
||||
### StashApp Connection Issues
|
||||
|
||||
**Can't connect to Stash server:**
|
||||
|
||||
1. **Verify Stash is Running:**
|
||||
- SSH into Pocket Grimoire
|
||||
- Run: `docker ps | grep stash`
|
||||
- Should show `pocketgrimoire_stash` running
|
||||
|
||||
2. **Test Server Connection:**
|
||||
- Open browser on Onn box
|
||||
- Navigate to: `http://pocket-grimoire.local:9999`
|
||||
- Or try: `http://10.0.0.10:9999`
|
||||
- Should load Stash web interface
|
||||
|
||||
3. **Reconfigure StashApp:**
|
||||
- Open StashApp
|
||||
- Settings → Server
|
||||
- Remove existing server
|
||||
- Add server:
|
||||
- URL: `http://pocket-grimoire.local:9999`
|
||||
- Or: `http://10.0.0.10:9999`
|
||||
- Enter API key (if required)
|
||||
- Connect
|
||||
|
||||
4. **Check API Key:**
|
||||
- If StashApp requires API key
|
||||
- SSH into Pi: `cat /srv/vaultpg/stash/config/config.yml | grep api_key`
|
||||
- Or access Stash web UI → Settings → Security → API Key
|
||||
- Copy key into StashApp
|
||||
|
||||
**StashApp Crashes or Freezes:**
|
||||
- Clear app cache: Settings → Apps → StashApp → Clear cache
|
||||
- Restart Onn box
|
||||
- Reinstall StashApp (download latest APK)
|
||||
- Check Stash server logs: `docker logs pocketgrimoire_stash`
|
||||
|
||||
**Previews won't play:**
|
||||
- Verify previews synced from Netgrimoire
|
||||
- Check: `ssh user@pocket-grimoire.local`
|
||||
- Run: `ls /srv/vaultpg/stash/generated/` (should show preview files)
|
||||
- If empty: Sync hasn't completed, or previews not generated on Netgrimoire
|
||||
|
||||
### Netflix/YouTube TV Issues
|
||||
|
||||
**Netflix won't sign in:**
|
||||
- Verify Netflix subscription is active
|
||||
- Try signing in on phone/computer first
|
||||
- Use "Sign in with code" option (visit netflix.com/tv8 on another device)
|
||||
- Check internet connection (portapotty → hotel WiFi)
|
||||
|
||||
**YouTube TV won't play:**
|
||||
- Verify YouTube TV subscription is active
|
||||
- Check location restrictions (some content blocked outside home area)
|
||||
- Try signing out and back in
|
||||
- Verify internet connection speed
|
||||
|
||||
**Streaming quality poor:**
|
||||
- Check WiFi signal strength
|
||||
- Verify hotel internet speed (not throttled)
|
||||
- Switch to lower quality in app settings temporarily
|
||||
- Move router closer to TV
|
||||
|
||||
### General Onn Box Issues
|
||||
|
||||
**Box won't turn on:**
|
||||
- Check power adapter is plugged in
|
||||
- Check Micro-USB cable is secure
|
||||
- Try different power source
|
||||
- LED should light up (white when on)
|
||||
|
||||
**Remote not working:**
|
||||
- Check batteries (replace if needed)
|
||||
- Re-pair remote: Hold Back + Home for 5 seconds
|
||||
- Check for obstructions between remote and box
|
||||
- Try using Google Home app as remote backup
|
||||
|
||||
**Box is slow/laggy:**
|
||||
- Clear cache: Settings → Storage → Cached data → Clear
|
||||
- Uninstall unused apps
|
||||
- Restart box: Settings → Device Preferences → About → Restart
|
||||
- Factory reset (last resort)
|
||||
|
||||
**Apps keep crashing:**
|
||||
- Clear app cache and data
|
||||
- Uninstall and reinstall app
|
||||
- Check for OS updates: Settings → Device Preferences → About → System update
|
||||
- Factory reset if persistent
|
||||
|
||||
**No sound:**
|
||||
- Check TV volume (not muted)
|
||||
- Check HDMI connection (reseat cable)
|
||||
- Settings → Display & Sound → Audio output → Test
|
||||
- Try different HDMI port on TV
|
||||
- Check if audio is set to "Auto" or "Stereo"
|
||||
|
||||
### DNS Resolution Issues
|
||||
|
||||
**`.local` addresses don't work (pocket-grimoire.local fails):**
|
||||
|
||||
1. **Use IP Address Instead:**
|
||||
- Replace `pocket-grimoire.local` with `10.0.0.10`
|
||||
- Example: `http://10.0.0.10:8096` for Jellyfin
|
||||
|
||||
2. **Check Pi's IP Address:**
|
||||
- SSH into Pi: `ip addr show eth0`
|
||||
- Look for inet address (e.g., 192.168.8.50)
|
||||
- Use this IP in apps instead of .local
|
||||
|
||||
3. **Check Beryl AX DNS:**
|
||||
- Access http://192.168.8.1
|
||||
- Check DNS settings
|
||||
- Verify AdGuard Home is running
|
||||
- Ensure mDNS/Bonjour reflection is enabled (if option available)
|
||||
|
||||
4. **Add Static DNS Entry:**
|
||||
- In Beryl AX admin panel
|
||||
- Add static DNS entry: pocket-grimoire → 10.0.0.10
|
||||
|
||||
---
|
||||
|
||||
## Advanced Configuration
|
||||
|
||||
### Setting Static IP for Raspberry Pi
|
||||
|
||||
**On Beryl AX router:**
|
||||
|
||||
1. Access admin panel: http://192.168.8.1
|
||||
2. Navigate to Network → DHCP Server
|
||||
3. Find Raspberry Pi in client list
|
||||
4. Assign static IP: 10.0.0.10
|
||||
5. Save and apply
|
||||
|
||||
**Or on Raspberry Pi directly:**
|
||||
|
||||
```bash
|
||||
# Edit network config
|
||||
sudo nano /etc/dhcpcd.conf
|
||||
|
||||
# Add at end:
|
||||
interface eth0
|
||||
static ip_address=10.0.0.10/24
|
||||
static routers=192.168.8.1
|
||||
static domain_name_servers=192.168.8.1
|
||||
```
|
||||
|
||||
### Optimizing Video Playback
|
||||
|
||||
**Jellyfin Video Settings (on Onn box):**
|
||||
- Settings → Playback
|
||||
- Max streaming bitrate: Maximum (Auto)
|
||||
- Video quality: Maximum
|
||||
- Allow video playback that may require conversion: OFF
|
||||
- Skip intro: ON (if desired)
|
||||
|
||||
**StashApp Video Settings:**
|
||||
- Settings → Playback
|
||||
- Video quality: Original
|
||||
- Hardware acceleration: ON
|
||||
- Buffer size: Large
|
||||
|
||||
### Remote Control Tips
|
||||
|
||||
**Voice Commands:**
|
||||
- "Hey Google, open Jellyfin"
|
||||
- "Hey Google, play [movie name] on Jellyfin"
|
||||
- "Hey Google, pause"
|
||||
- "Hey Google, turn off TV"
|
||||
|
||||
**Useful Remote Shortcuts:**
|
||||
- Home button (twice): Recent apps
|
||||
- Back button (hold): Return to home
|
||||
- Play/Pause: Works in most video apps
|
||||
- Voice button: Google Assistant
|
||||
|
||||
---
|
||||
|
||||
## App Locations
|
||||
|
||||
**After installation, find apps here:**
|
||||
|
||||
**Home Screen:**
|
||||
- Netflix, YouTube TV usually appear automatically
|
||||
|
||||
**Apps Tab:**
|
||||
- All installed apps listed alphabetically
|
||||
- Jellyfin, StashApp will be here
|
||||
|
||||
**Quick Access:**
|
||||
- Long-press Home → Add to Favorites
|
||||
- Apps appear on home screen for quick access
|
||||
|
||||
---
|
||||
|
||||
## Maintenance
|
||||
|
||||
### Weekly (While Using)
|
||||
- Check for app updates (Play Store → Updates)
|
||||
- Clear cache if apps feel slow
|
||||
- Verify WiFi connection strength
|
||||
|
||||
### Before Each Trip
|
||||
- Test all apps at home
|
||||
- Update apps if updates available
|
||||
- Check remote batteries
|
||||
- Verify all logins still active
|
||||
|
||||
### After Each Trip
|
||||
- Check for OS updates
|
||||
- Review installed apps (remove if unused)
|
||||
- Clear cache to free storage
|
||||
|
||||
---
|
||||
|
||||
## Factory Reset (If Needed)
|
||||
|
||||
**When to factory reset:**
|
||||
- Box is extremely slow
|
||||
- Apps constantly crash
|
||||
- Persistent connection issues
|
||||
- Selling/giving away box
|
||||
|
||||
**How to factory reset:**
|
||||
|
||||
1. **Via Settings:**
|
||||
- Settings → Device Preferences
|
||||
- About → Factory Reset
|
||||
- Confirm reset
|
||||
- Wait for reboot (3-5 minutes)
|
||||
|
||||
2. **Via Recovery Mode:**
|
||||
- Power off box
|
||||
- Hold reset button (if present)
|
||||
- Power on while holding
|
||||
- Navigate with remote to "Factory Reset"
|
||||
- Confirm
|
||||
|
||||
**After reset:**
|
||||
- Complete initial setup again (see beginning of guide)
|
||||
- Reinstall all apps
|
||||
- Reconfigure WiFi and services
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference Card
|
||||
|
||||
**Essential Information:**
|
||||
|
||||
```
|
||||
WiFi Network: portapotty
|
||||
Router Admin: http://192.168.8.1
|
||||
|
||||
Pocket Grimoire Services:
|
||||
- Jellyfin: http://pocket-grimoire.local:8096
|
||||
- Stash: http://pocket-grimoire.local:9999
|
||||
- Wiki: http://pocket-grimoire.local:3000
|
||||
|
||||
If .local fails, use IP: http://10.0.0.10:[PORT]
|
||||
|
||||
Apps Required:
|
||||
✓ Jellyfin for Android TV (Play Store)
|
||||
✓ StashApp for Android TV (Sideload APK)
|
||||
✓ Netflix (Play Store)
|
||||
✓ YouTube TV (Play Store)
|
||||
|
||||
Troubleshooting:
|
||||
1. Restart Onn box
|
||||
2. Check portapotty WiFi connection
|
||||
3. Verify Pocket Grimoire is running (SSH check)
|
||||
4. Use IP addresses instead of .local names
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Appendix: StashApp APK Sources
|
||||
|
||||
**Official GitHub Repository:**
|
||||
- https://github.com/damontecres/StashAppAndroidTV
|
||||
- Releases: https://github.com/damontecres/StashAppAndroidTV/releases
|
||||
- Latest version: Check releases page
|
||||
|
||||
**Verification:**
|
||||
- Download only from official GitHub releases
|
||||
- Verify file integrity (check file size, release notes)
|
||||
- Watch for malware warnings (false positives common with sideloaded APKs)
|
||||
|
||||
**Update Process:**
|
||||
- Check GitHub for new releases periodically
|
||||
- Download new APK
|
||||
- Install over existing app (data preserved)
|
||||
- Or uninstall and reinstall clean
|
||||
|
||||
---
|
||||
|
||||
*This guide was created for Onn 4K streaming box configuration with Pocket Grimoire. Keep updated as apps and configurations change.*
|
||||
64
Pocket-Grimoire/Overview.md
Normal file
64
Pocket-Grimoire/Overview.md
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
---
|
||||
title: Pocket Grimoire
|
||||
description: Portable travel lab — offline-first, encrypted, self-contained
|
||||
published: true
|
||||
date: 2026-04-12T00:00:00.000Z
|
||||
tags: pocket, portable, travel
|
||||
editor: markdown
|
||||
dateCreated: 2026-04-12T00:00:00.000Z
|
||||
---
|
||||
|
||||
# Pocket Grimoire
|
||||
|
||||

|
||||
|
||||
Pocket Grimoire is a portable, encrypted, offline-first companion to Netgrimoire. It travels. It runs without internet. It tunnels home via WireGuard when connectivity is available. And it doubles as one of the two Vault Grimoire offsite nodes — every time it leaves the house, it takes an encrypted copy of the data with it.
|
||||
|
||||
---
|
||||
|
||||
## Hardware at a Glance
|
||||
|
||||
- **Laptop** — Docker host, ZFS pool `pocket-green` at `/srv/greenpg/`
|
||||
- **GL.iNet Beryl AX (GL-MT3000)** — travel router, LAN `192.168.8.0/24`, WireGuard peer `PortaPotty`
|
||||
- **2x Onn 4K streaming boxes** — hotel/TV playback
|
||||
- **Anker 200W GaN charging station** — one plug for everything
|
||||
- **SSDs** — Vault (always connected) + Green (personal trips only)
|
||||
|
||||
---
|
||||
|
||||
## Software Stack
|
||||
|
||||
| Service | Purpose | Mode |
|
||||
|---------|---------|------|
|
||||
| Jellyfin | Media playback | Read/write |
|
||||
| Stash (PocketStash, port 9998) | Adult media | Read-only travel mode |
|
||||
| Wiki.js | Documentation mirror | Pull-only |
|
||||
| Filebrowser | File access | Read/write |
|
||||
|
||||
---
|
||||
|
||||
## WireGuard Home Tunnel
|
||||
|
||||
WireGuard peer `PortaPotty` (192.168.32.5) connects back to OPNsense on Netgrimoire when internet is available. All management traffic and sync operations use the tunnel.
|
||||
|
||||
---
|
||||
|
||||
## As a Vault Node
|
||||
|
||||
Pocket Grimoire receives a `syncoid` push from `znas` before each trip:
|
||||
|
||||
```bash
|
||||
syncoid znas:vault/Green/Pocket pocket:/srv/greenpg/Green
|
||||
```
|
||||
|
||||
This makes it an offsite encrypted backup node whenever it leaves home. See [Vault Architecture](/Vault-Grimoire/Offsite/Vault-Architecture).
|
||||
|
||||
---
|
||||
|
||||
## Sections
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| [Hardware](/Pocket-Grimoire/Hardware/Inventory) | Full hardware list, power kit, storage layout |
|
||||
| [Software](/Pocket-Grimoire/Software/Stack) | Services, Docker config, ZFS pool |
|
||||
| [Sync & Deployment](/Pocket-Grimoire/Sync/Pre-Travel-Sync) | Pre-travel checklist, syncoid, deployment guide |
|
||||
39
Pocket-Grimoire/Software/Stack.md
Normal file
39
Pocket-Grimoire/Software/Stack.md
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
---
|
||||
title: Software Stack
|
||||
description: Services running on Pocket Grimoire
|
||||
published: true
|
||||
date: 2026-04-12T00:00:00.000Z
|
||||
tags: pocket, software, docker
|
||||
editor: markdown
|
||||
dateCreated: 2026-04-12T00:00:00.000Z
|
||||
---
|
||||
|
||||
# Pocket Grimoire Software Stack
|
||||
|
||||
## Services
|
||||
|
||||
| Service | Port | Purpose | Mode |
|
||||
|---------|------|---------|------|
|
||||
| Jellyfin | 8096 | Media playback | Read/write |
|
||||
| PocketStash | 9998 | Adult media (Stash) | Read-only travel mode |
|
||||
| Wiki.js | 3000 | Documentation mirror | Pull-only (no writes) |
|
||||
| Filebrowser | 8080 | File management | Read/write |
|
||||
| Beszel agent | — | Reports back to znas monitoring | Active when tunneled |
|
||||
|
||||
## ZFS Pool
|
||||
|
||||
Pool name: `pocket-green`
|
||||
Mount point: `/srv/greenpg/`
|
||||
|
||||
Dataset layout mirrors the Vault Grimoire structure for Green/Pocket data.
|
||||
|
||||
## Docker
|
||||
|
||||
Docker Engine (standalone, not Swarm). Compose-only. No overlay networks.
|
||||
|
||||
## Host Services
|
||||
|
||||
- Linux (Ubuntu Server)
|
||||
- OpenZFS
|
||||
- systemd timers (sync, health checks)
|
||||
- Cockpit (management)
|
||||
1927
Pocket-Grimoire/Software/Stash-Integration.md
Normal file
1927
Pocket-Grimoire/Software/Stash-Integration.md
Normal file
File diff suppressed because it is too large
Load diff
3703
Pocket-Grimoire/Sync/Deployment-Guide.md
Normal file
3703
Pocket-Grimoire/Sync/Deployment-Guide.md
Normal file
File diff suppressed because it is too large
Load diff
50
Pocket-Grimoire/Sync/Pre-Travel-Sync.md
Normal file
50
Pocket-Grimoire/Sync/Pre-Travel-Sync.md
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
---
|
||||
title: Pre-Travel Sync & Checklist
|
||||
description: Everything to do before Pocket Grimoire leaves the house
|
||||
published: true
|
||||
date: 2026-04-12T00:00:00.000Z
|
||||
tags: pocket, sync, travel, runbook
|
||||
editor: markdown
|
||||
dateCreated: 2026-04-12T00:00:00.000Z
|
||||
---
|
||||
|
||||
# Pre-Travel Sync & Checklist
|
||||
|
||||
## Sync Data from znas
|
||||
|
||||
```bash
|
||||
# Push Green/Pocket dataset to Pocket Grimoire
|
||||
syncoid znas:vault/Green/Pocket pocket:/srv/greenpg/Green
|
||||
|
||||
# Verify pool health after sync
|
||||
ssh pocket "zpool status pocket-green"
|
||||
```
|
||||
|
||||
## Pre-Travel Checklist
|
||||
|
||||
- [ ] Run syncoid push — verify completion, no errors
|
||||
- [ ] Confirm ZFS pool healthy (`zpool status pocket-green`)
|
||||
- [ ] Confirm WireGuard peer `PortaPotty` connects to OPNsense
|
||||
- [ ] Confirm Jellyfin library scan complete
|
||||
- [ ] Confirm PocketStash metadata synced (check last scan date in UI)
|
||||
- [ ] Confirm Wiki.js content is current (last pull timestamp)
|
||||
- [ ] Charge Anker station fully
|
||||
- [ ] Pack SSDs — Vault always, Green for personal trips only
|
||||
|
||||
## While Traveling
|
||||
|
||||
- PocketStash runs read-only — no writes, no new imports
|
||||
- Wiki.js is pull-only — no page edits (edits won't sync back cleanly)
|
||||
- WireGuard tunnel home via `PortaPotty` peer when internet available
|
||||
- Beszel agent reports back to znas when tunneled
|
||||
|
||||
## On Return
|
||||
|
||||
```bash
|
||||
# Sync any Jellyfin watch state or metadata changes back if needed
|
||||
# No automated reverse sync — manual review before writing back
|
||||
```
|
||||
|
||||
## Deployment Guide
|
||||
|
||||
See original [Deployment Guide](/Pocket-Grimoire/Sync/Deployment-Guide) for full from-scratch build procedure.
|
||||
Loading…
Add table
Add a link
Reference in a new issue