Language Map of the US
This language map of the United States provides insight into multilingualism and language use in the United States.
There are two different geographic areas used: states and PUMAs (Public Use Microdata Areas). PUMAs are contained within states, are built on census tracts and counties, and contain at least 100,000 people.
The dataset for this project is the 2012-2016 American Community Survey (ACS) 5-year Public Use Microdata Sample (PUMS).
Docker and Docker Compose is the only dependencies required to run the app.
This project expects to be run on a Unix-like environment (uses a makefile) but the
make targets are just a convenience (the
docker-compose commands can be run directly).
.envfile (and add secrets)
cp .env.dev.sample .env
- Build and install dependencies:
make build deps
- Create database and load it with data:
Alternatively, you can run
make db data
make db-dumpwhich will download a database dump and load it into your database, which should be faster.
To run the app, run
make serve. The app should then be running on http://localhost:4000 (or whatever port you set in
Run tests via
To make a new release, simply run
./scripts/release.sh and follow the prompts (you will need permissions to the GitHub and the Docker Hub repos).
To do a production deploy, you must have Docker and Docker Compose installed on the machine you're deploying to (see Requirements). For deployments, no Docker images should need to be built as they should already exist in Docker Hub (see Releases). Note that the tags for the Docker images correspond to the releases.
To deploy, do the following on the machine you're deploying to:
- Download and unzip the latest master:
wget https://github.com/pcaisse/language-map-us/archive/master.zip unzip master.zip
- Move into new directory:
- Create a production
.envfile and add secrets:
cp .env.prod.sample .env
- Run the deploy script. Note that the script must be run with either the
--recreateflag for an initial or "clean slate" deployment (this will drop and recreate the database) or
--updateto update an existing deployed version.
If you'd like to make a donation to help support this project, you can do so via PayPal. Thank you!