Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/joegasewicz/locksmith
- Owner: joegasewicz
- License: apache-2.0
- Created: 2024-02-09T20:30:11.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2024-05-23T22:53:03.000Z (6 months ago)
- Last Synced: 2024-06-21T08:13:20.445Z (5 months ago)
- Topics: auth, authentication, authorization, identity, identity-server, jwt
- Language: Go
- Homepage:
- Size: 8.15 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
![Locksmith](public/img/locksmith-logo.png?raw=true "Locksmith")
Identity serverThis 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/datalocksmith:
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/)