GithubHelp home page GithubHelp logo

rohithadassanayake / 18f.gsa.gov Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 18f/18f.gsa.gov

2.0 1.0 0.0 261.39 MB

This repository contains 18F's website.

Home Page: https://18f.gsa.gov

License: Other

Ruby 12.94% HTML 17.87% CSS 66.79% JavaScript 2.36% Shell 0.04%

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:

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.