Hi
I have a bit of experience with R, and I like ProGet, so I thought I would add my 5p to this thread.
CRAN mainly hosts the package sources. The actual repository is this folder:
https://cran.rstudio.com/src/contrib/
This is just what it looks like, a list of tar.gz files which are essentially package sources. The only "special" files are the PACKAGES* ones. The one without extension is a yaml file with some metadata of all the packages in the folder. The .gz one is the same thing compressed, the .rds one is the same thing in a special R data format. I believe you can get away with just the PACKAGES and the PACKAGES.gz files.
Every package (tar.gz) will have a DESCRIPTION file in its root, which is another yaml file with all the metadata for the package. To build the PACKAGES file, the fields of the example below are copied:
Package: A3
Version: 1.0.0
Depends: R (>= 2.15.0), xtable, pbapply
Suggests: randomForest, e1071
License: GPL (>= 2)
NeedsCompilation: no
and they are pasted all together separated by empty lines.
For windows clients, CRAN also generates binary versions of the packages for the different versions of R. These are listed here:
https://cran.rstudio.com/bin/windows/contrib/
Each one of the numeric folders, look very much like the sources folder with the same PACKAGES files. The only difference is that in the R subfolder of the zip packages, instead of the source of the R functions there is now a compiled binary. The DESCRIPTION file is still there though with all the metadata.
The folder structure is important, since essentially, in the R client the command will be something like:
install.packages("lubridate", repos = "http://my-private-host")
This command knows to look exactly in the right folders depending on the environment of the caller (operating system, version of R, etc). For windows, it will work even without the binaries at all, but it would make a big difference in terms of speed.
As far as hosting in-house packages, I wouldn't expect from ProGet to compile them and provide binaries, leaving them as source only should be fine. For the packages coming from CRAN though, it would be good to relay the windows binary versions as well as the source one.
DISCLAIMER: This is part experience, part guesswork so any of those might not work. I have only used CRAN as a package consumer.