This repo contains all the code and contents behind qc-podcast.com.
You will find three directories in the repository, dev
. go
, and site
.
- dev:
- go: an App Engine module written in Go used to
- site: the hugo structure that generates the static website
This directory contains all the tooling we use to build/deploy the podcast.
In particular it has a Dockerfile
that defines an environment with all the tools we
use to generate the website and tag mp3
files.
You can build this image using the Makefile
on the root of this repository.
You will be able to push it or pull it from
Google Container Registry too,
but you might need to modify the TAG
variable to match a project you have
access to.
Finally, once you've built the image, you should be able to create a new interactive
shell by running make shell
or make attach
if you want to attach to an existing one.
- Place .mp3 files in
dev
directory - Use the following format
QC.Podcast.Episode.2.mp3
- Inside Docker, in the
dev
, run the following command to tag:./tag.sh 'QC.Podcast.Episode.1a' 1 'Questionable Pilot - Part 1' '1a'
Where args are: 1-file name, 2-episode real number (this is the actual file number), 3-episode title, 4-episode number. - Upload this file to Google Cloud Storage and make the link public.
su root
- password =
pw
Is used by the tagging script to put the image on the .mp3 file.
site: the hugo structure that generates the static website
This directory contains all the resources that we use to generate the podcast website.
You can use the Makefile
provided in the directory to:
- Run Interactive Hugo Server (port 1313):
make server
- Sassify->CCS Assets:
make assets-update
- does production css generation, compressed and everything. - Deploy the Project to App Engine:
make deploy
- This will not make the version default. Useful if you just want to test/share a version live.make deploy-default
- This will replace the default version (but the old version is kept, in case
- under
site/content/post
create a new episode with following namingepisode-3-episode-name.md
- Modify the meta information and post body.
- Add any necessary pictures to
site/static/images
In order to change images of the Podcast on feeds etc. you need to modify the following files
dev/Album.png
- used on actual tagged mp3slogo_large.png
- 3000x3000logo_transparent.png
- 256x256logo.png
- 256x256site_logo_large.png
- 1000x1000site_logo.png
- 250x250favicon.ico
- icon used form the web favicon - 16x16favicon.png
- png version of favicon - 32x32
Need to change:
- all the social urls
- itunes, google and other urls
I removed:
- reddit and google+ links
Lives under site/content
This directory contains an App Engine service
that provides a way to access the mp3
files stored in Google Cloud Storage
while logging those accesses with Google Analytics.
Make targets that can be run within the go
directory
which is for dynamic modules, such as the module that tracks
episode downloads.
- Run full code lint, vet and goimports over everything:
make code-check
- Start Local Episode Redirect Module:
make serve-eps
- Deploy Episode Redirect Module:
make deploy-eps
What's not clear is that this adds a service to your existing app-engine where the site is hosted.
- For some reason the the code in the Makefile didn't work, so we use gcloud instead. There's a chance that you'll need to add
goapp
as a script. - Might need to also reinstall VIM and re-save the container to have these settings.
This app uses the following open-source libraries:
The Google Cloud Platform Podcast Site and Template GoogleCloudPlatform/podcast is licensed under the Apache License 2.0 A permissive license whose main conditions require preservation of copyright and license notices. Contributors provide an express grant of patent rights. Licensed works, modifications, and larger works may be distributed under different terms and without source code. License License Text