A proof-of-concept Identity Management System
- Ruby 2.3.0
- Postgresql
- Redis 2.8+
- Node.js v4.4.x
- libxmlsec1
We have a pre-built development environment made with Docker Compose.
- On non-Linux systems this will involve installing Docker
Toolbox (v1.10+) and
starting a Docker Machine VM by launching the
Docker Quickstart Terminal
app.
-
Copy the sample configuration files:
$ bin/setup --docker
-
Build/download the container images:
$ docker-compose build
-
Start the app:
$ docker-compose up -d
-
Setup the database(s):
$ docker-compose run --rm web rake db:setup RAILS_ENV=development $ docker-compose run --rm web rake db:setup RAILS_ENV=test
Once the docker images are up and running, the app will be accessible
at http://localhost:3000/
. Email messages will be visible in MailCatcher
at http://localhost:1080/
.
-
On non-Linux platforms,
localhost
will need to be replaced with the IP address of your Docker Machine VM, which is192.168.99.100
by default. When you launch theDocker Quickstart Terminal
app on a Mac, it will tell you which machine and IP are in use:
More useful Docker commands:
- Stop this running container:
docker-compose stop
- Stop the Docker Machine VM:
docker-machine stop
- Stop and delete the containers:
docker-compose down
- Open a shell in the web container:
docker-compose run --rm web bash
See the Docker Compose docs for more information.
-
Make sure you have a working development environment with all the dependencies installed. On a Mac, the easiest way to set up a development environment is by running our Laptop script. The script will install all of this project's dependencies, except for
libxmlsec1
, which you can install with Homebrew:$ brew install libxmlsec1
-
Make sure Postgres and Redis are running. For example, on OS X:
$ brew services start redis postgres
-
Run the following command to set up the environment:
$ bin/setup
This command copies sample configuration files, installs required gems and sets up the database.
-
Run the app server with:
$ foreman start
To run all the tests:
$ bundle exec rspec
See RSpec docs for more information.
We currently run dev
and qa
environments at https://upaya-idp-dev.18f.gov
and https://upaya-idp-qa.18f.gov. Core developers can deploy to those hosts
with Capistrano using the following command:
cap <env/stage> deploy
You will need to provide a copy of your SSH public key and you may need to provide your IP address if you are not in a GSA building or on the GSA VPN. Post a message in the Slack channel if you need help.
Notice: This project is still in alpha.
"skill in means" https://en.wikipedia.org/wiki/Upaya