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.app
gunicorn src.app:app
Update 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