🛠 Status: Maintenance Mode | Stable
This project is currently in maintenance mode - users should feel free to continue to use this app and expect bug fixes, but not expect many additional features.
Resonate ID
Resonate's ID server is a Go OAuth2 Server based on RichardKnop/go-oauth2-server.
See also
Setup
There are three setup tasks when working with the ID server
- Setup the config store
- Setup the data stores
- Compile the server
Config Store
The ID server uses etcd as a config store.
Install etcd (if needed, and platform specific) and run it
brew install etcd
etcd
Load the sample config and verify it
etcdctl put /config/go_oauth2_server.json "$(cat ./config.sample.json)"
etcdctl get /config/go_oauth2_server.json
Data Store
At some point, we will be merging both the ID server and User API repos. Until then, the ID server needs a direct database connection to the User API.
Using resonatecoop/user-api-client, the ID server can also make RESTful requests to the User API.
User API
(How to setup the User API locally, check out user-api github repository)
Compile
To compile the server run
go install .
Templates (pug)
go install github.com/Joker/jade/cmd/jade@latest
make generate
Run
Run the server
go run go-oauth2-server.go runserver
Watch for changes
First, you need to install gow
go install github.com/mitranim/gow@latest
Make sure $GOPATH/bin is in your $PATH
export GOPATH="$HOME/go"
export PATH="$GOPATH/bin:$PATH"
Then run this command to watch template files and reruns on change
gow -g=./go.sh -v -c -e=html,pug,env run go-oauth2-server.go runserver
Deploy
(How to deploy to staging and production using docker)
Develop
Add a git hook for proper formatting
./add_gofmt_hook.sh