A software to organize preparatory courses at universities.
Explore a live version »
Report Bug · Request Feature
Caution
For development and testing purposes, SQLite is supported as DB-System. However, in production please use Postgres as we only support this for DB-migrations. You will get no updates otherwise, or break your system. To use SQLite just don't provide Posgres connection environment variables.
volumes: data: services: pepp: image: ghcr.io/fachschaftmathphysinfo/pepp:latest ports: - 8080:8080 env_file: .env depends_on: - postgres postgres: image: postgres:15.6-alpine volumes: - data:/var/lib/postgresql/data env_file: .env- You need the files
gen_certs.sh,postgresql.confand foldertlsfrom this repositorys root - Run
./gen_certs.sh - Deploy with provided keys:
volumes: data: services: pepp: image: ghcr.io/fachschaftmathphysinfo/pepp:latest volumes: - ./tls/certs/root.crt:/app/root.crt:ro - ./tls/certs/client.crt:/app/server.crt:ro - ./tls/certs/client.key:/app/server.key:ro ports: - 8080:8080 env_file: .env depends_on: - postgres postgres: image: postgres:15.6-alpine volumes: - data:/var/lib/postgresql/data - ./postgresql.conf:/etc/postgresql/config/postgresql.conf:ro - ./tls/certs/root.crt:/etc/postgres/security/root.crt:ro - ./tls/certs/server.crt:/etc/postgres/security/server.crt:ro - ./tls/certs/server.key:/etc/postgres/security/server.key:ro command: -c config_file=/etc/postgresql/config/postgresql.conf env_file: .envImportant
After initial startup run docker compose exec pepp pepp db init and docker compose exec pepp pepp db mark_applied
| Key | Description | Example |
|---|---|---|
PUBLIC_URL | Domain under which pepp is deployed | https://pepp.example.com |
PEPPER_KEY | Generate a random 32 characters long string for password security | - |
SMTP_HOST | E-Mail provider | smtp.example.com |
SMTP_USER | The user to log into the SMTP Server | alice@example.com |
SMTP_PASSWORD | The password to log into the SMTP Server | - |
SMTP_PORT | The port of your SMTP Server | 465 |
FROM_ADDRESS | Address from which mails are send | vorkurs@example.com |
POSTGRES_HOST | When given tries to connect. Creates a SQLite per default | postgres |
POSTGRES_PASSWORD | Required if POSTGRES_HOST is given | a string password |
POSTGRES_PORT | Required if POSTGRES_HOST is given | 5433 |
POSTGRES_USER | Required if POSTGRES_HOST is given | postgres |
POSTGRES_DB | Required if POSTGRES_HOST is given | postgres |
| Key | Description | Example |
|---|---|---|
LOG_LEVEL | Default is Info. Set to Debug for more information | Debug |
LOCALE | Default is UTC. This affects mainly the events exported as ICS which get converted. | Europe/Berlin |
ENV | Set to Production on deployment | Production |
ENABLE_TRACING | Application exports traces to an OpenTelemetry Collector | true |
ADMIN_USER | Default is admin@pepp.local. Generated on initial startup | admin@example.com |
OIDC_LOGIN_PROVIDER_URL | When given, initializes an Open ID Endpoint at /sso/oidc | https://auth.example.com |
OIDC_LOGIN_CLIENT_ID | Required if OIDC_LOGIN_PROVIDER_URL is given | pepp |
OIDC_LOGIN_CLIENT_SECRET | Required if OIDC_LOGIN_PROVIDER_URL is given | insecure_secret |
OIDC_LOGIN_SCOPES | Required if OIDC_LOGIN_PROVIDER_URL is given | openid profile email groups |
OIDC_LOGIN_CLAIM_MAPPING | Required if OIDC_LOGIN_PROVIDER_URL is given. Map single name strings to name and splitted to fn and sn | '{"mail":"email","name":"name","groups":"groups"}' |
OIDC_LOGIN_ADMIN_GROUPS | User groups which will automatically get admin rights. | vorkurs-orga root |
Note
When configuring your OIDC-Provider, remember to set the callback uri to https://<your PUBLIC_URL here>/sso/oidc/callback.
cp .env .env.local docker compose build docker compose up -d && docker compose logs -f- Frontend: localhost:8080
- ICal Calendar: localhost:8080/ical
- API: localhost:8080/api
- GraphQL Playground: localhost:8080/playground
cd frontend npm i npm run codegen npm run devImportant
In development, the backend creates some example data and creates an admin user: Mail: admin@pepp.local, Password: admin
cd server go generate ./... go run server.go- create an issue
- from this issue create a branch and work on it
- create a pull request and tag one of the main contributors for a short review
- sanfter Schulterklopfer ♡