carpentriesoffline / carpentriesoffline-installer

Tools for configuring a Raspberry Pi to serve offline carpentry lessons.
MIT License
6 stars 6 forks source link

Intercept web requests to the carpentries, pypi, cran, anaconda etc #13

Open colinsauze opened 2 years ago

colinsauze commented 2 years ago

To create an environment which is as similar as possible to really being on the internet we could intercept connections to carpentries.org, software-carpentry.org, datacarpentry.org, pypi.org, cran.org, anaconda.org etc and redirect to our own local mirrors that are hosted on the raspberry pi. Some of these will only need to be partial mirrors (e.g. cran or pypi). This would reduce the amount of rewriting of carpentries material which is needed.

Most of these websites probably use encrypted HTTPS connections as default. If they have HSTS enabled (which is recommended for all websites) and the learners have ever visited the site then HSTS should prevent them from visiting an HTTP version of the site. Therefore our mirror will need an SSL certificate to encrypt it, but this certificate will probably be self-signed and that will cause warnings and possible errors. But it would be helpful to mirror a small part of one of these sites and test this to see what really happens.

villanueval commented 1 year ago

This sounds like a bit too convoluted. Maybe it would be easier to have custom installers for binaries that are copied from the workshop server for each software and required package/module.

For example, in R, each package can be installed from a local copy of the zipped binary by setting repos=NULL in install.packages().