A TRMNL plugin for tracking ships using the VesselFinder API. This plugin displays real-time ship position, speed, course, and other relevant data on your TRMNL e-ink display.
- Real-time ship position tracking
- Speed and course display
- Automatic refresh at configurable intervals
- E-ink optimized display
- Error handling and connection status
- Python 3.12+
- TRMNL device and API key
- VesselFinder API key
- Docker (optional)
- Clone the repository:
git clone https://github.com/yourusername/ship-tracker.git
cd ship-tracker- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Create .env file:
cp .env.template .env- Update .env with your configuration:
VESSELFINDER_API_KEY=your_api_key_here
TRMNL_API_KEY=your_trmnl_api_key_here
TRMNL_PLUGIN_UUID=your_plugin_uuid_here
python -m src.appgunicorn src.app:appUpdate the following variables in your .env file:
MMSI: Ship's MMSI number to trackREFRESH_INTERVAL: How often to update the display (in seconds)DISPLAY_WIDTH,DISPLAY_HEIGHT: Display dimensions- API keys and credentials
ship-tracker/
├── src/ # Application source
│ ├── services/ # Core services
│ ├── templates/ # Display templates
│ └── utils/ # Utility functions
└── tests/ # Test files
- Create new service in
src/services/ - Update display template in
src/templates/components/ - Add configuration to
src/config.py - Update main app in
src/app.py
Deploy using render.yaml configuration:
render deploy- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT
