Add STEGASOO_PORT env var, improve RPi setup output, channel key accordion
- Add STEGASOO_PORT environment variable support (default: 5000) - Update .env.example with port and fix channel key format docs - Move channel key generation to collapsible accordion in Generate page - Improve RPi setup.sh output with HTTPS and channel key instructions - Add rpi/BUILD_IMAGE.md workflow documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
108
rpi/BUILD_IMAGE.md
Normal file
108
rpi/BUILD_IMAGE.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# Stegasoo Pi Image Build Workflow
|
||||
|
||||
Quick reference for building a distributable SD card image.
|
||||
|
||||
## Step 1: Flash Fresh Raspbian
|
||||
|
||||
Use rpi-imager with these settings:
|
||||
- **OS**: Raspberry Pi OS (64-bit)
|
||||
- **Hostname**: `stegasoo`
|
||||
- **Enable SSH**: Yes (password auth)
|
||||
- **Username**: `pi` (or any)
|
||||
- **Password**: `raspberry` (temporary)
|
||||
- **WiFi**: Skip (use ethernet for clean image)
|
||||
|
||||
## Step 2: Boot & SSH In
|
||||
|
||||
```bash
|
||||
# Wait for Pi to boot (~60 seconds), then:
|
||||
ssh pi@stegasoo.local
|
||||
# or use IP from router DHCP list
|
||||
```
|
||||
|
||||
## Step 3: Run Setup Script
|
||||
|
||||
```bash
|
||||
curl -sSL https://raw.githubusercontent.com/adlee-was-taken/stegasoo/main/rpi/setup.sh | bash
|
||||
```
|
||||
|
||||
This takes ~15-20 minutes and installs:
|
||||
- Python 3.12 via pyenv
|
||||
- jpegio (patched for ARM)
|
||||
- Stegasoo with web UI
|
||||
- Systemd service
|
||||
|
||||
## Step 4: Test It Works
|
||||
|
||||
```bash
|
||||
sudo systemctl start stegasoo
|
||||
curl -k https://localhost:5000
|
||||
# Should return HTML
|
||||
```
|
||||
|
||||
## Step 5: Sanitize for Distribution
|
||||
|
||||
```bash
|
||||
curl -sSL https://raw.githubusercontent.com/adlee-was-taken/stegasoo/main/rpi/sanitize-for-image.sh | sudo bash
|
||||
```
|
||||
|
||||
This removes:
|
||||
- WiFi credentials
|
||||
- SSH authorized keys
|
||||
- Bash history
|
||||
- Stegasoo auth database
|
||||
- Logs and temp files
|
||||
|
||||
The Pi will shut down when complete.
|
||||
|
||||
## Step 6: Copy the Image
|
||||
|
||||
Remove SD card, insert into your Linux machine:
|
||||
|
||||
```bash
|
||||
# Find the SD card device (CAREFUL!)
|
||||
lsblk
|
||||
|
||||
# Copy (replace sdX with actual device, e.g., sda)
|
||||
sudo dd if=/dev/sdX of=stegasoo-rpi-$(date +%Y%m%d).img bs=4M status=progress
|
||||
```
|
||||
|
||||
## Step 7: Shrink & Compress
|
||||
|
||||
```bash
|
||||
# Optional: Shrink image (saves space)
|
||||
wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh
|
||||
chmod +x pishrink.sh
|
||||
sudo ./pishrink.sh stegasoo-rpi-*.img
|
||||
|
||||
# Compress
|
||||
xz -9 -T0 stegasoo-rpi-*.img
|
||||
```
|
||||
|
||||
## Step 8: Distribute
|
||||
|
||||
Upload `.img.xz` to GitHub Releases.
|
||||
|
||||
Users can flash with:
|
||||
```bash
|
||||
# Linux
|
||||
xzcat stegasoo-rpi-*.img.xz | sudo dd of=/dev/sdX bs=4M status=progress
|
||||
|
||||
# Or use rpi-imager "Use custom" option
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Quick Command Summary
|
||||
|
||||
```bash
|
||||
# On Pi:
|
||||
curl -sSL https://raw.githubusercontent.com/adlee-was-taken/stegasoo/main/rpi/setup.sh | bash
|
||||
sudo systemctl start stegasoo
|
||||
curl -k https://localhost:5000
|
||||
curl -sSL https://raw.githubusercontent.com/adlee-was-taken/stegasoo/main/rpi/sanitize-for-image.sh | sudo bash
|
||||
|
||||
# On your machine:
|
||||
sudo dd if=/dev/sdX of=stegasoo-rpi-$(date +%Y%m%d).img bs=4M status=progress
|
||||
xz -9 -T0 stegasoo-rpi-*.img
|
||||
```
|
||||
23
rpi/setup.sh
23
rpi/setup.sh
@@ -182,6 +182,7 @@ WorkingDirectory=$INSTALL_DIR/frontends/web
|
||||
Environment="PATH=$INSTALL_DIR/venv/bin:/usr/bin"
|
||||
Environment="STEGASOO_AUTH_ENABLED=true"
|
||||
Environment="STEGASOO_HTTPS_ENABLED=false"
|
||||
Environment="STEGASOO_PORT=5000"
|
||||
ExecStart=$INSTALL_DIR/venv/bin/python app.py
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
@@ -217,8 +218,28 @@ echo " journalctl -u stegasoo -f"
|
||||
echo ""
|
||||
echo -e "${GREEN}Access Web UI:${NC}"
|
||||
PI_IP=$(hostname -I | awk '{print $1}')
|
||||
echo " http://$PI_IP:5000"
|
||||
echo " http://$PI_IP:5000 (default port, configurable via STEGASOO_PORT)"
|
||||
echo ""
|
||||
echo -e "${YELLOW}Note: On first access, you'll be prompted to create an admin account.${NC}"
|
||||
echo ""
|
||||
echo -e "${GREEN}Enable HTTPS:${NC}"
|
||||
echo " sudo nano /etc/systemd/system/stegasoo.service"
|
||||
echo ""
|
||||
echo " Change: Environment=\"STEGASOO_HTTPS_ENABLED=false\""
|
||||
echo " To: Environment=\"STEGASOO_HTTPS_ENABLED=true\""
|
||||
echo ""
|
||||
echo " Save (Ctrl+O, Enter, Ctrl+X), then:"
|
||||
echo " sudo systemctl daemon-reload"
|
||||
echo " sudo systemctl restart stegasoo"
|
||||
echo ""
|
||||
echo -e "${GREEN}Private Channel Key (optional):${NC}"
|
||||
echo " Generate a key:"
|
||||
echo " source $INSTALL_DIR/venv/bin/activate"
|
||||
echo " stegasoo generate --channel-key"
|
||||
echo ""
|
||||
echo " Add to the service file (same nano command above):"
|
||||
echo " Environment=\"STEGASOO_CHANNEL_KEY=XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX\""
|
||||
echo ""
|
||||
echo " This ensures only users with the same key can decode your images."
|
||||
echo ""
|
||||
echo -e "To start now: ${YELLOW}sudo systemctl start stegasoo${NC}"
|
||||
|
||||
Reference in New Issue
Block a user