This repo houses the 18F website. We use the Draft U.S. Web Design standards as a front end framework. The site is built and served through the Federalist platform.
A detailed history of the work that went into developing this redesign can be found at 18F/beta.18f.gov. An archived copy of the original website can be found on a Federalist preview.
Run each of the following steps to get the site up and running.
git clone [email protected]:18F/18f.gsa.gov
cd 18f.gsa.gov
bundle install
./serve
To dramatically reduce the build time, there are two commands that you can run instead of ./serve
:
./serve-fast
: This will eliminate all of the blog posts and the search index, but generates all other pages./serve-blog
: This will eliminate all but the latest three blog posts, but keeps the rest of the site intact.
You should be able to see the site at: https://127.0.0.1:4000
Using Docker can make dependencies management easier, but can also slow down your build time. You can find out more in this discussion
To try this out on MacOS:
- Install Docker Toolbox.
- Make sure Docker is running and
cd
into your project folder - Run
docker-compose build
to build the docker image and its dependencies. You only need to build once, but if there was an error with the build , rebuild using the--no-cache
option like sodocker-compose build --no-cache
to avoid using the old version of the docker image. - Run
docker-compose up
. Note: if you want to run a single command and bypass yourDockerfile
for debugging purposes, you can do like sodocker-compose run app <COMMAND>
(for instance, you can run bundledocker-compose run app bundle install
) - Visit https://192.168.99.100:4000 in your browser.
The site is a static website with HTML, CSS, and Javascript. Deployments are done through the Federalist platform.
- Federalist runs in its own organization and space in CloudFoundry
- Federalist Admin: https://federalist.18f.gov/
- Using the Federalist editor that requires GitHub Oauth and writes commits as auth'd GitHub user, changes are then passed through a webhook back to Federalist
- Federalist uses a CloudFoundry S3 service to write to the bucket, the Federalist instance only derives S3 credentials from the CloudFoundry S3 service and can only read/write to federalist.18f.gov/*
- Federalist responds to a webhook on GitHub and runs Jekyll to generate static web files and puts them in an S3 bucket
- We map 18f.gsa.gov URL to the S3 bucket
- We use Cloudfront to map 18f.gsa.gov to an S3 endpoint
- Federalist, and Cloudfront do not support the following HTTPS implementations: