Skip to content

Rsync access provided by rsync://unencrypted.nodejs.org/nodejs/release/ contains absolute symbol links #3960

Closed as not planned

Description

@shankerwangmiao

Hi,

The nodejs releases provided in rsync://unencrypted.nodejs.org/nodejs/release/ contains several absolute symbol links (latest, latest-*, and node-latest.tar.gz), which point to absolute paths instead of relative ones. This prevents downstream mirrors from correctly creating such symbol links. It would be better if these symbol links can be recreated pointing to relative ones.

Activity

  1. ryanaslett commented on May 29, 2025

    @ryanaslett
    Contributor

    @shankerwangmiao Hi. We're discussing shutting off the rsync service. Can you let us know what it gets used for if you are still using it?

    See: #4085

  2. shankerwangmiao commented on May 29, 2025

    @shankerwangmiao
    Author

    Hi,

    Thanks for letting us know. We are still relying on it to create a mirror of https://nodejs.org/dist/ at https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/. Rsync is the de facto and the first priority protocol to sync from upstream. This mirror can be also used with n, fnm, volta, nvm and nvs.

    If the rsync service is discontinued, creating and getting the mirror synced can only be done by crawling the http directory listing page, which can cause extra traffic, make it hard to determine modifications, and lose the information of symbol links.

    I hope you can still maintain a rsync service in some way, if the servers behind unencrypted.nodejs.org must be shut down.

  3. taoky commented on May 29, 2025

    @taoky

    If encryption is a concern, you could configure haproxy or nginx to serve rsync with TLS. See https://man7.org/linux/man-pages/man5/rsyncd.conf.5.html#SSL/TLS_Daemon_Setup.

  4. shankerwangmiao commented on Aug 15, 2025

    @shankerwangmiao
    Author

    Hi, @ryanaslett . Are you moving forward to shutting down the rsync service? I notice that the versions newer than v24.1.0 are not shown up on the rsync server.

  5. ryanaslett commented on Sep 12, 2025

    @ryanaslett
    Contributor

    Hi @shankerwangmiao We weren't actually moving forward with shutting it down, yet, however its the kind of service that doesn't have any monitoring, and thus we were not aware it wasn't functioning properly until you commented here.

    The fact that it was broken for 2.5 months before anybody asked about it strongly suggests this isn't that critical of a service, and that it is a good candidate for retiring and being replaced by something else.

    The majority of mirrors out there have been rendered somewhat moot by the fact that the dists are now backed by cloudflare in a globally distributed CDN, enabling fast local downloads. Granted, my understanding of how mirrors and cdns and cloudflare works with china is limited, so any additional understanding of the use cases there would be helpful.

    There may be a possibility to replace rsync with rclone to mirror our dists from a public R2 bucket, which is where they are stored now.

  6. shankerwangmiao commented on Sep 12, 2025

    @shankerwangmiao
    Author

    Hi @shankerwangmiao We weren't actually moving forward with shutting it down, yet, however its the kind of service that doesn't have any monitoring, and thus we were not aware it wasn't functioning properly until you commented here.

    The fact that it was broken for 2.5 months before anybody asked about it strongly suggests this isn't that critical of a service, and that it is a good candidate for retiring and being replaced by something else.

    The majority of mirrors out there have been rendered somewhat moot by the fact that the dists are now backed by cloudflare in a globally distributed CDN, enabling fast local downloads. Granted, my understanding of how mirrors and cdns and cloudflare works with china is limited, so any additional understanding of the use cases there would be helpful.

    In China, the access to https://nodejs.org/dist/, which is hosted on Cloudflare is not blocked, but the bandwidth to the Cloudflare CDN nodes is limited. As a result, users might instead tent to choose a mirror site. A mirror can be configured to work with n, volta, nvm and so on.

    There may be a possibility to replace rsync with rclone to mirror our dists from a public R2 bucket, which is where they are stored now.

    We will be happy to change to a R2 bucket as upstream.

  7. moved this from Backlog to In Progress in OpenJS Infrastructure Project Boardon Sep 23, 2025
  8. 89ao commented on Nov 15, 2025

    @89ao

    Hello, @ryanaslett . We are considering using rclone to mirror npm's dists directory. Do you have any suggestions or experience on how to configure rclone to achieve this? Specifically, we want to sync these package distributions from a public R2 bucket, which is the same location where we currently store them. Your guidance would be greatly appreciated. Thanks!

  9. flakey5 commented on Nov 15, 2025

    @flakey5
    Member

    We can't really speak for npm since we don't control their infrastructure, but if you meant Node, I think a HTTP remote is what you want, with the URL being either https://nodejs.org/dist/ or https://nodejs.org/download/.

  10. moved this from In Progress to Backlog in OpenJS Infrastructure Project Boardon Feb 3, 2026
  11. bensternthal commented on Mar 17, 2026

    @bensternthal

    @89ao We are looking to shut down the rsync service in the next few months (it might already be broken according to @ryanaslett ). Do you have a timeline for moving to rclone?

  12. bensternthal commented on Aug 4, 2026

    @bensternthal

    Speaking with @ryanaslett about this service today. He mentioned that the service has not been operating for more than 18 months. Since we have not received any questions or alerts about this being down, he is going to move forward with shutting it off. He will speak with the Node.js Build WG about specific timing and to get the OK.

  13. ryanaslett commented on Oct 18, 2026

    @ryanaslett
    Contributor

    The slopacalypse is here and I guided claude into making an rclone script so we can shut down the rsync server. Have a look at #4525 and try out the script to see if it suits your needs.

  14. taoky commented on Oct 18, 2026

    @taoky

    @ryanaslett FYI, USTC mirror is syncing nodejs release with tsumugu (https://github.com/taoky/tsumugu/blob/pudding/tsumugu-cli/examples/node.yaml) developed by myself since Nov 2024.

    As mtime on the HTML seems unreliable, its configuration skips if file with same path already exists locally (to avoid giving too much traffic to upstream service), and excludes docs without a file listing (tsumugu parses HTML file listing to get info about filename, size and mtime). Suggestions are appreciated from upstream.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions