Skip to content

Sign up management for the language courses at the KIT Sprachenzentrum.

License

Notifications You must be signed in to change notification settings

spz-signup/spz-signup

Repository files navigation

SPZ Signup

Authors Roman Zukowsky (roman@zukowsky.de)
Daniel Hofmann (daniel+spz@trvx.org)
Marco Neumann (marco@crepererum.net)
Felix Rittler (felix.rittler@web.de)
Tobias Dierich (spz@tobiasdierich.de)
Simon Zimmermann (timzi777@gmail.com)
Organization Sprachenzentrum KIT Karlsruhe
Source https://github.com/spz-signup/spz-signup

About

Sign up management for the language courses at the KIT Sprachenzentrum.

Feel free to report issues to our issue tracker.

Project Structure

This repository contains the Docker Compose files for running our SPZ Signup Managment application. The application consists of several "Images", of which each one fullfills a different function.

Components

App

The WSGI-app makes up the main component of our project: It contains the user interfaces and the actual logic for the Signup Management. The apps source code is contained in a separate repository at https://github.com/spz-signup/spz-signup-app.

Database

The app stores its persistent data in a database. Currently we use PostgreSQL but other database implementations could be used too (with small alterations to the underlying data model).

Webserver

Although the app uses uWSGI, which is already a fully-featured web server, we use NGINX as a proxy for improved performance and security. To simplify the amount of neccessary configuration (especially for LetsEncrypt) we prefer the image nginx-proxy by jwilder over an official nginx build.

Celery + Redis

In the current implmentation we use Celery for several periodic tasks (e.g. Ilias-harvesting). This setup requires quite a few docker images:

  • Celery Beat
  • Celery Workers (default and slow_mails)
  • Redis (which is used for inter process communication)

Mail

We use OpenSMPTD for delivering confirmation mails (and alike) to course applicants and participants. During development we do not send out actual emails but use the image maildev.

Production-only Components

For production we also use the docker images jrcs/letsencrypt-nginx-proxy-companion, spzsignup/docker-postgres-backup and southclaws/restic-robot.

About

Sign up management for the language courses at the KIT Sprachenzentrum.

Resources

License

Stars

Watchers

Forks

Packages

No packages published