Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/joegasewicz/locksmith

Identity server 🔐 with admin console
https://github.com/joegasewicz/locksmith

auth authentication authorization identity identity-server jwt

Last synced: 16 days ago
JSON representation

Identity server 🔐 with admin console

Awesome Lists containing this project

README

        

![Locksmith](public/img/locksmith-logo.png?raw=true "Locksmith")
Identity server

This is a WIP & will be production ready in v1.0

### Admin Console
![Admin Console](public/img/screenshot-2.png?raw=true "Admin Console")

### Usages
To run locksmith locally, first run the docker-compose make cmd
```
make docker-compose
```

Now you can run locksmith
```
go run locksmith.go
```

### Config
Create a yaml file called `locksmith.yaml`

To set default users & role types. *The `user.role` must
match the `roles` values*.
```yaml
version: 1
roles:
- admin
- teachers
- students
users:
- name: admin
role: admin
email: [email protected]
password: admin
... etc.
```

### Docker Image
Pull down locksmith from the Docker registry
```
docker pull bandnoticeboard/locksmith:v1.0.2
```

Or select a version here - [bandnoticeboard/locksmith](https://hub.docker.com/r/bandnoticeboard/locksmith)

### Docker Compose
Example of running locksmith with Docker Compose.
This example also include the required postgres database configuration.
```
postgres_locksmith:
image: "postgres:latest"
ports:
- "5431:5432"
environment:
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=admin
- POSTGRES_DB=identity_db
volumes:
- ./db/identitydb_vol/:/var/lib/postgresql/data

locksmith:
image: "bandnoticeboard/locksmith:v1.0.2"
ports:
- "7001:7001"
env_file:
- ".env-dev"
depends_on:
- postgres_locksmith
restart: on-failure
```

### Environment Variables
- `TOKEN_SECRET`
- `PGDATABASE`
- `PGUSER`
- `PGPASSWORD`
- `PGPORT`
- `PGHOST`

Example `.env` file
```text
TOKEN_SECRET=wizard
PGDATABASE=identity_db
PGUSER=admin
PGPASSWORD=admin
PGPORT=5431
PGHOST=host.docker.internal
```

### Endpoints
- GET `http://127.0.0.1:7001/health`
Response:
```
{"Health":"OK"}
```
## Authors

* **joegasewicz** - *Initial work* - [@joegasewicz](https://twitter.com/joegasewicz)

## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.
## License
[MIT](https://choosealicense.com/licenses/mit/)