This is where the code for our website lives alongside the .yml files that dictate our Kubernetes infrastructure, and all the glue code required to get our CI/CD pipeline up and running.
To be as buzzword-y as possible, this repo represents a cluster of two (2) Dockerized microservices (this site, and our internal api), each with one (1) deployment by default. If you think that sounds like overkill for a club, you're right. If you think that sounds like fun, feel free to hit us up on Facebook or Slack
In alphabetical order, here's what's happening in this repo.
Contains our CircleCI configuration. We use Circle over Travis or other options because it's really painless to work with Google Cloud, which is where we have all our stuff hosted.
Holds the configuration we're using for our website, our internal api, and our ssl certification, as well as how we route our traffic.
In order to reduce clutter in our CircleCI config file, we moved some of our scripting steps into this folder. This allows for a cleaner separation of concerns, where .circleci/config.yml
contains just the structure of our pipeline, and scripts/
contains the actual execution of steps.
This is where the actual source code for our website lives. It's a Python app running Flask as the web framework.
All of our static files live here -- assets, stylesheets, js files.
These HTML files are actually Jinja templates that Flask uses to render its final output.
We package this app up into a Docker image, which we host on our private GCR registry because it's free and convenient. You can build yourself a copy by cloning this repo and running docker build .