Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

The Lunch Box

The Lunch Box is an alpha-stage portable Raspberry Pi cyberdeck and IoT workstation. It combines a keyboard-driven terminal launcher with system monitoring, Docker, MQTT, ESP32 development, Meshtastic messaging, serial diagnostics, and defensive security tools.

Status: v0.1-alpha
Expect changes, incomplete features, and hardware-specific setup.

Intended Use

The project is intended for:

  • Raspberry Pi and Linux learning
  • ESP32 and LoRa development
  • Meshtastic messaging
  • MQTT and Node-RED experiments
  • Authorized network diagnostics
  • Defensive security auditing
  • Portable IoT monitoring and logging

Use security and radio features only on systems, networks, frequencies, and devices that you own or are explicitly authorized to use.

Current Features

  • Arrow-key terminal launcher
  • System dashboard
  • Git status
  • Mosquitto MQTT status
  • Docker container status
  • ESP32 PlatformIO project browser
  • Separate Python project browser
  • Pi-side Python virtual environments
  • SerialManager with optional logging
  • LoRaMessenger with:
    • Broadcast and direct messages
    • Known-node list
    • Local Inbox and Outbox
    • Automatic reconnect
    • Retry queue
    • Periodic beacon with a five-minute minimum interval
  • GPSConsole project support
  • Lynis security-audit manager
  • Defensive security submenu
  • Reboot, shutdown, and exit controls
  • USB-drive project storage

Hardware Used

The current build is designed around:

  • Raspberry Pi 4
  • Raspberry Pi OS 64-bit
  • 7-inch display
  • USB storage drive
  • Heltec WiFi LoRa 32 V4 / ESP32-S3 / SX1262
  • Data-capable USB cable
  • Optional GPS/GNSS receiver
  • Optional Linux-compatible USB Wi-Fi adapter

Other compatible hardware may work but is not yet tested.

Project Layout

The Lunch box/
├── README.md
├── HOWTO.md
├── .gitignore
├── start-launcher.sh
├── start-launcher.ps1
├── setup-pi-services.sh
├── launcher/
│   ├── launcher.py
│   ├── requirements.txt
│   └── config.yaml
├── Projects/
│   ├── ESP32/
│   │   └── LoRa-Test/
│   └── Python/
│       ├── GPSConsole/
│       ├── HelloLunchbox/
│       ├── LoRaMessenger/
│       ├── LynisManager/
│       └── SerialManager/
└── Backups/

Python virtual environments are deliberately stored on the Raspberry Pi instead of the exFAT USB drive:

~/.local/share/the-lunch-box/venvs/

Application data is stored under:

~/.local/share/the-lunch-box/

Quick Start

Copy the repository to the USB drive, connect it to the Raspberry Pi, and locate its mount point:

lsblk -f
find /media/$USER -name "launcher.py" 2>/dev/null

Move to the repository root and run:

bash ./setup-pi-services.sh
bash ./start-launcher.sh

Launcher controls:

Up / Down   Navigate
Enter       Select
B or Q      Go back
Q           Exit main menu

See HOWTO.md for detailed setup and troubleshooting.

LoRa and Meshtastic

LoRaMessenger expects a Meshtastic-compatible serial device, normally:

/dev/ttyACM0

Only one program can use the serial port at a time. Close SerialManager before starting LoRaMessenger.

LoRaMessenger stores its local message database at:

~/.local/share/the-lunch-box/LoRaMessenger/messages.db

Inbox entries are saved only while LoRaMessenger is connected and running. Outbox entries record locally composed messages and their local handoff status.

Security and Privacy

Never commit or publish:

  • Meshtastic private keys
  • Full Meshtastic configuration exports
  • Channel-sharing URLs or QR codes
  • Wi-Fi passwords
  • API tokens
  • MQTT credentials
  • GPS coordinates or private location history
  • Message databases
  • Logs containing sensitive data
  • .venv directories

A public key may be shared. A private key must remain confidential and should stay on the radio.

Alpha Limitations

  • ESP32-S3 native USB may occasionally disconnect during persistent Meshtastic sessions.
  • LoRaMessenger reconnect behavior requires more testing.
  • Node-RED authentication is not configured automatically.
  • Docker services are minimal and should not be exposed directly to the internet.
  • ESP32 PlatformIO projects require a correct board definition and platformio.ini.
  • The launcher is optimized for Raspberry Pi OS; Windows support is for interface testing only.

Contributing

Issues and pull requests are welcome. Please avoid including sensitive configuration, private keys, precise locations, or captured personal communications.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages