This repository has been archived on 2023-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
meincantor-api/README.md

71 lines
2.0 KiB
Markdown
Raw Permalink Normal View History

2021-06-25 16:18:38 +02:00
# meincantor-api
The API backend for the GCG.MeinCantor school platform built with Rocket.rs in Rust.
It includes a plugin for receiving data from Indiware Mobil and a Keycloak authentication extension.
See the repository of the [main application](https://git.cantorgymnasium.de/cantortechnik/meincantor-app) for additional information.
## Building
Dependencies:
- `openssl-devel`
```bash
cargo build --release
```
## Deployment
### docker-compose
```
version: "3.1"
services:
api:
image: lxdb/meincantor-api
restart: always
ports:
- 8000:8000
environment:
IW_TIMETABLE_URL: https://stundenplan24.de/EXAMPLE_SCHOOL/mobil/mobdaten
IW_TIMETABLE_USER: EXAMPLE_USER
IW_TIMETABLE_PASSWORD: EXAMPLE_PASSWORD
JWT_SECRET: EXAMPLE_SECRET
JWT_ISSUER: Georg-Cantor-Gymnasium Halle(Saale)
KC_OPENID_TOKEN_ENDPOINT: https://example.keycloak.com/auth/realms/EXAMPLE_REALM/protocol/openid-connect/token
KC_OPENID_USERINFO_ENDPOINT: https://example.keycloak.com/auth/realms/EXAMPLE_REALM/protocol/openid-connect/userinfo
KC_CLIENT_ID: EXAMPLE_CLIENT
volumes:
- ./static:/app/static
```
1. Create folder `mkdir meincantor-api`
2. Create `docker-compose.yml` file with the content above
3. Start with `docker-compose up -d`
### local
1. Edit `src/config.rs`
2. Rebuild the binary
3. Execute the binary with `./target/release/api`
## Licensing
```
Copyright (C) 2021-2022 Denys Konovalov
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
```