Skip to content

havron/web

Repository files navigation

Sam's personal webpages

Build Status Website

About

This repository contains all of the source code for my personal website. The code is compiled into web pages (HTML, CSS, JS) with Hugo, and the theme is based on Cocoa Enhanced, with some modifications. There are a lot of nice benefits to making a website this way.

Editing

When editing the content of my pages with a text editor, I can see how the website will look by running make server in a terminal to start Hugo's (offline) development server, and then navigating to localhost:1313 in a web browser to view and interact with the pages locally before publishing them anywhere online.

Deploying (Hosting)

My web pages are accessible at https://www.cs.cornell.edu/~havron/, https://havron.xyz, and https://havron.dev. Each of these URLs serve the same content, but they are hosted with different cloud providers (eventually I'll consolidate these).

When I'm done editing the source code, I run the command make commit-deploy to push my local changes to this repository, and also automatically deploy them to each of the above URLs. The Makefile contains more details on how this is done. If you would like to deploy your own web pages, I recommend going with the approach I used for havron.dev (with GitHub Pages). It's free and the least hassle if you are not using a personal server or one associated with your school or workplace.

havron.dev (recommended way to host)

When there is a new commit pushed to this repository, Travis CI spins up a server to run this script, which compiles the source code and pushes the results to the havron.github.io. GitHub Pages then hosts the contents of that repo at https://havron.dev. GitHub Pages uses a content delivery network to ensure fast and reliable access to the website from anywhere in the world.

cs.cornell.edu

Hosted by Cornell's COECIS IT Service Group. The cs.cornell.edu target in the Makefile builds the content and then copies/syncs it to the internal Cornell CS webserver under my personal directory using rsync.

havron.xyz

Hosted by Amazon Web Services. The havron.xyz target in the Makefile builds the content and then copies/syncs it to S3. Cloudfront then distributes the contents of my S3 bucket to make a content delivery network.