{"id":32604969,"url":"https://github.com/dockur/chrony","last_synced_at":"2026-04-25T19:01:17.984Z","repository":{"id":195338041,"uuid":"686145940","full_name":"dockur/chrony","owner":"dockur","description":"🕒 chronyd NTP server in a Docker container.","archived":false,"fork":false,"pushed_at":"2026-04-08T16:54:55.000Z","size":317,"stargazers_count":98,"open_issues_count":5,"forks_count":13,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-04-08T18:36:29.540Z","etag":null,"topics":["chrony","chronyd","docker","ntp","ntp-server"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"simonrupf/docker-chronyd","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dockur.png","metadata":{"files":{"readme":".github/readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-01T21:32:28.000Z","updated_at":"2026-04-02T15:13:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dockur/chrony","commit_stats":null,"previous_names":["dockur/chrony"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/dockur/chrony","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dockur%2Fchrony","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dockur%2Fchrony/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dockur%2Fchrony/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dockur%2Fchrony/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dockur","download_url":"https://codeload.github.com/dockur/chrony/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dockur%2Fchrony/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32273223,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chrony","chronyd","docker","ntp","ntp-server"],"created_at":"2025-10-30T10:21:44.100Z","updated_at":"2026-04-25T19:01:17.978Z","avatar_url":"https://github.com/dockur.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003echronyd\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://github.com/dockur/chrony\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/dockur/chrony/master/.github/logo.jpg\" title=\"Logo\" style=\"max-width:100%;\" width=\"128\" /\u003e\u003c/a\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n  \n[![Build]][build_url]\n[![Version]][tag_url]\n[![Size]][tag_url]\n[![Package]][pkg_url]\n[![Pulls]][hub_url]\n\n\u003c/div\u003e\u003c/h1\u003e\n\nDocker container of [chrony](https://chrony-project.org/), a versatile implementation of the Network Time Protocol (NTP).\n\n## Features ✨\n\n  - Synchronise the system clock with NTP servers, reference clocks (e.g. GPS receiver), and manual input using wristwatch and keyboard.\n  - Operate as an NTPv4 (RFC 5905) server and peer to provide a time service to other computers in the network.\n\n## Usage  🐳\n\n##### Via Docker Compose:\n\n```yaml\nservices:\n  ntp:\n    image: dockurr/chrony\n    container_name: ntp\n    environment:\n      NTP_SERVERS: \"pool.ntp.org\"\n    ports:\n      - 123:123/udp\n    restart: always\n```\n\n##### Via Docker CLI:\n\n```bash\ndocker run -it --rm --name chrony -p 123:123/udp docker.io/dockurr/chrony\n```\n\n## Configuration ⚙️\n\nBy default, this container uses the [NTP pool's time servers](https://www.ntppool.org/en/). If you'd\nlike to use one or more different NTP server(s), you can pass this container an `NTP_SERVERS`\nenvironment variable. This can be done by updating the [compose.yml](https://github.com/dockur/chrony/blob/master/compose.yml)\nfiles or manually passing `--env=NTP_SERVERS=\"...\"` to `docker run`.\n\nBelow are some examples of how to configure common NTP Servers.\n\nDo note, to configure more than one server, you must use a comma delimited list WITHOUT spaces.\n\n```\n# (default) NTP pool\nNTP_SERVERS=\"0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org\"\n\n# cloudflare\nNTP_SERVERS=\"time.cloudflare.com\"\n\n# google\nNTP_SERVERS=\"time1.google.com,time2.google.com,time3.google.com,time4.google.com\"\n\n# alibaba\nNTP_SERVERS=\"ntp1.aliyun.com,ntp2.aliyun.com,ntp3.aliyun.com,ntp4.aliyun.com\"\n\n# local (offline)\nNTP_SERVERS=\"127.127.1.1\"\n```\n\n## Setting your timezone ⏲️\n\nBy default the UTC timezone is used, however if you'd like to adjust your NTP server to be running in your\nlocal timezone, all you need to do is provide a `TZ` environment variable following the standard TZ data format.\nAs an example, using `docker-compose.yaml`, that would look like this if you were located in Vancouver, Canada:\n\n```yaml\n  ...\n  environment:\n    TZ: \"America/Vancouver\"\n    ...\n```\n\n## Enable Network Time Security 🛡️\n\nIf **all** the `NTP_SERVERS` you have configured support NTS (Network Time Security) you can pass the `ENABLE_NTS=true`\noption to the container to enable it. As an example, using `docker-compose.yaml`, that would look like this:\n\n```yaml\n  ...\n  environment:\n    ENABLE_NTS: \"true\"\n    NTP_SERVERS: \"time.cloudflare.com\"\n    ...\n```\n\nIf any of the `NTP_SERVERS` you have configured does not support NTS, you will see a message like the\nfollowing during startup:\n\n\u003e NTS-KE session with 164.67.62.194:4460 (tick.ucla.edu) timed out\n\n## Enable control of system clock 🖥️\n\nThis option enables the control of the system clock.\n\nBy default, chronyd will not try to make any adjustments of the clock. It will assume the clock is free running\nand still track its offset and frequency relative to the estimated true time. This allows chronyd to run without\nthe capability to adjust or set the system clock in order to operate as an NTP server.\n\nEnabling the control requires granting SYS_TIME capability and a container run-time allowing that access:\n\n```yaml\n  ...\n  cap_add:\n    - SYS_TIME\n  environment:\n    ENABLE_SYSCLK: \"true\"\n    ...\n```\n\n ## Logging 📒\n\nBy default, this project logs informational messages to stdout, which can be helpful when running the\nntp service. If you'd like to change the level of log verbosity, pass the `LOG_LEVEL` environment\nvariable to the container, specifying the level (`#`) when you first start it. This option matches\nthe chrony `-L` option, which support the following levels can to specified: 0 (informational), 1\n(warning), 2 (non-fatal error), and 3 (fatal error).\n\nFeel free to check out the project documentation for more information at:\n\n * https://chrony-project.org/documentation.html\n\n # Acknowledgements 🙏\n \nSpecial thanks to [@simonrupf](https://github.com/simonrupf) for creating the original project.\n\n## Stars 🌟\n[![Stars](https://starchart.cc/dockur/chrony.svg?variant=adaptive)](https://starchart.cc/dockur/chrony)\n\n[build_url]: https://github.com/dockur/chrony/\n[hub_url]: https://hub.docker.com/r/dockurr/chrony/\n[tag_url]: https://hub.docker.com/r/dockurr/chrony/tags\n[pkg_url]: https://github.com/dockur/chrony/pkgs/container/chrony\n\n[Build]: https://github.com/dockur/chrony/actions/workflows/build.yml/badge.svg\n[Size]: https://img.shields.io/docker/image-size/dockurr/chrony/latest?color=066da5\u0026label=size\n[Pulls]: https://img.shields.io/docker/pulls/dockurr/chrony.svg?style=flat\u0026label=pulls\u0026logo=docker\n[Version]: https://img.shields.io/docker/v/dockurr/chrony/latest?arch=amd64\u0026sort=semver\u0026color=066da5\n[Package]: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fipitio.github.io%2Fbackage%2Fdockur%2Fchrony%2Fchrony.json\u0026query=%24.downloads\u0026logo=github\u0026style=flat\u0026color=066da5\u0026label=pulls\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdockur%2Fchrony","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdockur%2Fchrony","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdockur%2Fchrony/lists"}