Giter Club home page Giter Club logo

18f.gsa.gov's Introduction

Code Climate

18F’s flagship website

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.

History

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.

Installation

Run each of the following steps to get the site up and running.

  1. git clone [email protected]:18F/18f.gsa.gov
  2. cd 18f.gsa.gov
  3. bundle install
  4. ./serve

To enable the ability to search and see all pages related to the blog, you can run bundle exec jekyll serve instead of ./serve for the server start command. This will slow down rebuild times dramatically, so use this command with discretion.

To enable the ability to see the most recent posts, you can run ./serve-blog. This takes longer than ./serve, but significantly less time than building the entire site.

You should be able to see the site at: http://127.0.0.1:4000

Alternative Installation using Docker

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:

  1. Install Docker Toolbox.
  2. Make sure Docker is running and cd into your project folder
  3. 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 so docker-compose build --no-cache to avoid using the old version of the docker image.
  4. Run docker-compose up. Note: if you want to run a single command and bypass your Dockerfile for debugging purposes, you can do like so docker-compose run app <COMMAND> (for instance, you can run bundle docker-compose run app bundle install)
  5. Visit http://192.168.99.100:4000 in your browser.

System security controls

The site is a static website with HTML, CSS, and Javascript. Deployments are done through the Federalist platform.

  1. Federalist runs in its own organization and space in CloudFoundry
  2. Federalist Admin: https://federalist.18f.gov/
  3. 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
  4. 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/*
  5. Federalist responds to a webhook on GitHub and runs Jekyll to generate static web files and puts them in an S3 bucket
  6. We map 18f.gsa.gov URL to the S3 bucket

Constraints

  • We use Cloudfront to map 18f.gsa.gov to an S3 endpoint
  • Federalist, and Cloudfront do not support the following HTTPS implementations:

18f.gsa.gov's People

Contributors

aaronsnow avatar adelevie avatar afeld avatar amoose avatar batemapf avatar catherinedevlin avatar cscairns avatar dhcole avatar elainekamlley avatar emileighoutlaw avatar gbinal avatar gboone avatar gemfarmer avatar hlieberman avatar jeanninehunter avatar konklone avatar mbland avatar meiqimichelle avatar monfresh avatar noahkunin avatar onezerojeremy avatar parkr avatar polastre avatar quepol avatar scottoneal avatar theresaanna avatar ultrasaurus avatar vdavez avatar waldoj avatar wslack avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.