Web-based 3D interface for antenna rotor control via rotctld
2.6K
🌍 Modern 3D Web Interface for Antenna Rotor Control
A web-based control interface for remote antenna rotor control via rotctld daemon, featuring an interactive 3D globe visualization with real-time beam heading display.

Click anywhere on the globe to point your antenna - Control your rotor from anywhere!
Pull and run the pre-built image from Docker Hub:
# Pull the latest image
docker pull brianbruff/rotctlweb:latest
# Run with environment variables
docker run -d \
--name rotctl-web \
-p 3000:3000 \
-e AUTH_USERNAME=admin \
-e AUTH_PASSWORD=your_secure_password \
-e ROTCTLD_HOST=192.168.100.3 \
-e ROTCTLD_PORT=4533 \
brianbruff/rotctlweb:latest
git clone https://github.com/brianbruff/RotatorControlWeb.git
cd RotatorControlWeb
.env file:cp .env.example .env
# Edit .env with your settings
docker-compose up -d
http://localhost:3000# Clone and build
git clone https://github.com/brianbruff/RotatorControlWeb.git
cd RotatorControlWeb
docker build -t rotctl-web .
# Run the container
docker run -d \
--name rotctl-web \
-p 3000:3000 \
-e AUTH_USERNAME=admin \
-e AUTH_PASSWORD=your_password \
-e ROTCTLD_HOST=192.168.100.3 \
-e ROTCTLD_PORT=4533 \
rotctl-web
git clone https://github.com/brianbruff/RotatorControlWeb.git
cd RotatorControlWeb
npm install
cp .env.example .env
# Edit .env with your settings
npm start
Edit the .env file with your settings:
# Authentication (CHANGE THESE!)
AUTH_USERNAME=admin
AUTH_PASSWORD=your_secure_password_here
# Rotctld Connection
ROTCTLD_HOST=192.168.100.3
ROTCTLD_PORT=4533
# QTH Location
QTH_LATITUDE=52.6667
QTH_LONGITUDE=-8.6333
QTH_GRID_SQUARE=IO52RN
QTH_LOCATION_NAME=Limerick, Ireland
Important: Never commit the .env file to version control!
The interface consists of:
ESC - Emergency stopCtrl+S - Emergency stopEnter - Submit manual azimuth (when input focused)The included docker-compose.yml provides easy deployment:
version: '3.8'
services:
rotctl-web:
build: .
ports:
- "3000:3000"
environment:
- AUTH_USERNAME=${AUTH_USERNAME:-admin}
- AUTH_PASSWORD=${AUTH_PASSWORD:-changeme}
- ROTCTLD_HOST=${ROTCTLD_HOST:-192.168.100.3}
- ROTCTLD_PORT=${ROTCTLD_PORT:-4533}
restart: unless-stopped
# Build image
docker build -t rotctl-web:latest .
# Tag for registry
docker tag rotctl-web:latest your-registry/rotctl-web:latest
# Push to registry
docker push your-registry/rotctl-web:latest
This interface communicates with rotctld using these commands:
p - Get current rotor positionP <azimuth> 0 - Set rotor positionS - Stop rotor movementEnsure your rotctld daemon is:
ps aux | grep rotctldtelnet 192.168.100.3 4533.env filedocker logs rotctl-webdocker exec rotctl-web envContributions are welcome! Please feel free to submit pull requests.
MIT License - See LICENSE file for details
For issues or questions:
73 de [EI6LF]
More reading here: Blog Post
Content type
Image
Digest
sha256:b4c31f802…
Size
45.2 MB
Last updated
10 months ago
docker pull brianbruff/rotctlweb