Disclaimer: To clear up some misunderstandings, I’m not part of the Elm team at all. I’m just a community member. This is a setup that can be useful or not, this is fine.
As an experimental workaround until a better official solution is found, I have setup forward and reverse proxies in a free tier AWS instance, hopefully not blocked in Russia and elsewhere, and easier to use than VPNs, particularly for CI scripts.
I cannot give any engagement about the sustainability of this solution, but if usage stays below the free tier bandwidth, I don’t see any reason not to keep it at least 12 months if needed, unless it is targeted by attacks unrelated to elm (I tried to restrict the usage to elm packages, but proxies are still easily targeted).
If you have issues with the proxies, you can ping me on slack.
I also put the instructions in this gist to share them more easily.
Here is how to use the proxies:
This requires no configuration, but google results or absolute links won’t be redirected.
2. Automatic proxy configuration URL
Configure your system and/or browser proxy with the following proxy automatic configuration URL:
The proxy only redirects package.elm-lang.org so you need to use the auto-configuration URL. This should work for all documentation links, including google results.
Again two options:
1. https_proxy environment variable
$ https_proxy=elm.dmy.fr:9999 elm <command> ...
As the proxy only accepts domains used by the
elm binary, don’t set it globally or it could break other programs.
If you don’t want to type it each time, wrap the installed
elm binary in a shell script found in your
$PATH before the real one. For example if you installed
https_proxy=elm.dmy.fr:9999 ~/.local/bin/elm "$@"
2. Rebuild the
elm binary to use the proxy
By rebuilding the binary with a single line modification, you can avoid having to set the
https_proxy variable. I won’t provide a binary for security and maintenance reasons, but you can use this Dockerfile (using this guide if needed, just changing the
Dockerfile) to build a Linux x64 one with one command in a few minutes.
The proxies log IP addresses to allow to ban some if there are some abuses unrelated to Elm.