Setup for ISSI data

I maintain the website for the Intermountain Suzuki String Institute (ISSI), a summer music institute that my kids attend.

I also create the daily schedules for 500+ students and 90 faculty into 100+ classes across 9 periods and 110 rooms.

This is a complex, interactive process where I use Python scripts to sort all the students and faculty into various classes, getting feedback from staff and faculty along the way.

In the past, students were given a printed copy of their schedule on the first day of the institute. This worked ok, but many parents and students had trouble interpreting the schedule and often request changes when they discover problems.

This year, we'll be sending a copy of each student's schedule in advance, so that we can process these parent requests early and make the first day of institute less chaotic.

So I provisioned https://data.issisuzuki.org/ to facilitate sending these schedules and reports.

DNS record

The main issi site is a Wordpress site hosted by Dreamhost.

I added this DNS record in the Dreamhost admin panel:

Type Hostname Value TTL (seconds)
A data.issisuzuki.org directs to 143.198.58.139 1800

Apache config

My server is running an Apache webserver. Here's how I configured it to serve data.issisuzuki.org.

I created the /var/www/data.issisuzuki.org directory.

cd /var/www
sudo mkdir data.issisuzuki.org
sudo chown -R schaubj:schaubj data.issisuzuki.org

I added /etc/apache2/sites-available/data.issisuzuki.org.conf with this:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName data.issisuzuki.org
    ServerAlias www.data.issisuzuki.org
    DocumentRoot /var/www/data.issisuzuki.org
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

then checked and restarted Apache:

sudo apachectl configtest
sudo systemctl restart apache2

SSL config

I simply ran

sudo certbot --apache

After this completed successfully, I modified /etc/apache2/sites-available/data.issisuzuki.org.conf file to redirect to the secure port.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName data.issisuzuki.org
    ServerAlias www.data.issisuzuki.org
    Redirect permanent / https://data.issisuzuki.org/
</VirtualHost>

and a new file was created and enabled /etc/apache2/sites-available/data.issisuzuki.org-le-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName data.issisuzuki.org
    ServerAlias www.data.issisuzuki.org
    DocumentRoot /var/www/data.issisuzuki.org
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/jeremyschaub.us/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/jeremyschaub.us/privkey.pem
</VirtualHost>
</IfModule>