MapProxy
There are some map services that are unreliable because they are unreachable sometimes for days. I think I can solve this problem using MapProxy though.
There is a cache engine built into GeoServer, I write about it here: GeoWebCache, I have tried to make it work but keep coming back to MapProxy because it's easier to set up.
I started to install mapproxy directly on the host then realized yet again I'd be making a bunch of changes to the host just for this one app.
I am developing a relatively portable Docker project of my own now, I want it to run on Windows but right now it's targeted at Linux because it's easier.
I found a Docker containing miniconda and am using that right now.
My github repository is https://github.com/wildsong/docker-mapproxy. The project contains more detailed notes.
I use Conda as the package management tool because it can install things on Windows that I need, notably the libgeos and libproj binaries.
Storage
I am trying to use CouchDB as the data store, because it makes sense to use NoSQL for this. MapProxy supports other back ends, including files.
I have an idea that I can run MapProxy in Windows and CouchDB on some other machine to split up the workload.
Compose
I started off using Docker Compose to start both MapProxy and CouchDB and to link the containers together. It's all working smoothly now so I will move on to Docker Swarm soon.
Currently it works on two different Linux servers, cc-testmaps and bellman.
It's not behind a proxy right now, I just access it on port 8080 on the host network.
Oregon Explorer service glitch
I figured out trial and error that two of the OE services won't deliver usable data on WMS, only on WMTS. Something to be aware of! I will probably drop them a line some day and ask why it's broken.
Multiple services
I want several groups of services, for example,
Oregon Explorer OSIP2018 NAIP2016 etc
and
DOGAMI hillshade BE hillshade
so that I can group things in maps.
I want separate files so that I can manage each service separately but share common settings too.
mapproxy.yaml -- default example cc.yaml -- mapproxy.yaml that includes these: astoria-aerials.yaml county-aerials.yaml