A smart NTP proxy that fixes time for devices without proper timezone or DST support.
862
š¦ Docker Images ⢠š GitHub Repositoryā ⢠šØ Built with GitHub Actions
ntp-dst-proxy is a lightweight and resilient NTP proxy designed for legacy or embedded devices that lack proper timezone and DST support.
Instead of returning UTC like a standard NTP server, it dynamically adjusts time based on a configured timezone (e.g. Europe/Paris), including automatic Daylight Saving Time transitions.
Features:
Use case: Ideal for IP cameras, DVRs, and IoT devices that cannot correctly handle timezones or DST.
ā ļø This implementation intentionally deviates from the NTP standard by serving localized time instead of UTC.
docker run -d -p 123:123/udp routmoute/ntp-dst-proxy
Your NTP server is now running and serving time in Europe/Paris timezone (default).
You can customize the proxy using environment variables:
TZ (default: Europe/Paris): System timezone as IANA timezone identifier (e.g., America/New_York, Asia/Tokyo)NTP_SERVERS (default: 0.pool.ntp.org,1.pool.ntp.org): Comma-separated list of NTP servers to sync withdocker run -d -p 123:123/udp \
-e TZ="America/New_York" \
-e NTP_SERVERS="time.google.com,time.cloudflare.com" \
routmoute/ntp-dst-proxy
services:
ntp-proxy:
image: routmoute/ntp-dst-proxy
ports:
- "123:123/udp"
environment:
TZ: "Europe/Paris"
NTP_SERVERS: "0.pool.ntp.org,1.pool.ntp.org"
restart: unless-stopped
If you see repeated Initial sync FAIL messages:
docker exec <container> nc -u <server> 123time.google.com)TZ environment variable is set correctly (must be a valid IANA timezone)docker logs <container>The proxy won't start if an invalid timezone is provided. Use one from the IANA timezone databaseā :
docker run -e TZ="America/New_York" ...
Content type
Image
Digest
sha256:f1619f6e2ā¦
Size
20.5 MB
Last updated
6 months ago
docker pull routmoute/ntp-dst-proxy