I created covid19.peterleiser.com to provide custom statistics and interactive charts for an “all-at-once” view of what’s going on with COVID-19 in Tennessee at the State and County level.

Technical Details for covid19.peterleiser.com:

1. COVID-19 data is from Tennessee Department of Health

2. TN DoH usually updates data once per day. Those updates are monitored by my site

3. I built the site using the latest version of Ruby on Rails

4. Updates to TN DoH are downloaded and converted from Excel into CSV

5. The data is then imported into a SQLite3 database for use by the charts

6. The website runs on Google Cloud App Engine using the Ruby Flexible Environment

7. The most recent version of SQLite3 is not included in the Ruby runtime for

Google App Engine, so I created a custom Ruby runtime and modified the Dockerfile to include:

# Get compile tools
RUN apt-get update && apt-get install -y \
                autoconf \
                automake \
                libtool \

# build and install the latest version of sqlite3
WORKDIR /sqlite3
COPY sqlite-autoconf-3320200.tar.gz .
RUN tar zxf sqlite-autoconf-3320200.tar.gz

WORKDIR /sqlite3/sqlite-autoconf-3320200
RUN ./configure
RUN make
RUN make install

RUN cp /sqlite3/sqlite-autoconf-3320200/.libs/libsqlite3.so.0.8.6 /usr/lib/x86_64-linux-gnu/

# It's not clear where GCP previous set WORKDIR to /app, but it appears we now need to do that manually

8. Google App Engine also supports Custom Domains, so I setup a CNAME for covid19.peterleiser.com