Skip to content

Email distribution lists for ChurchTools

License

Notifications You must be signed in to change notification settings

daniel-lerch/korga

Folders and files

NameName
Last commit message
Last commit date
Jun 4, 2023
Apr 7, 2023
Sep 8, 2023
Jul 19, 2023
Nov 6, 2020
Sep 7, 2023
Aug 28, 2020
Nov 29, 2022
Mar 16, 2023
Aug 28, 2020
Apr 28, 2023

Repository files navigation

Korga

Ubuntu build and tests

Korga stands for the german term Kirchen Organisation (church organization). It synchronizes people and groups with ChurchTools and provides specialized features like email distribution lists.

What can Korga already do?

Email distribution lists

Once configured, Korga automatically synchronizes people and groups from ChurchTools. This data can be used to create distribution lists.

./Korga.Server distribution-list create --group 137 kids

This command creates a distribution list kids@example.org which forwards emails to every member of group #137.

Event registration

Three screenshots of Korga's event registration

An event registration with multiple programs for each event. The list of participants is public as well as the possibility to delete registrations.

Currently, there is neither an API endpoint nor a graphical user interface available to edit events and programs. Instead you have to write SQL queries.

Installation

The only officially supported distribution are Docker containers. An official image is available at daniellerch/korga. If you are using Docker Compose, take a look our example compose file in the docs folder.

When you start Korga for the first time you have create the database schema via CLI:

docker compose exec app bash
./Korga.Server database migrate

Configuration for ChurchTools synchronization, IMAP, SMTP, etc. can set as enviroment variables. See appsettings.json for an overview of available options and their default values.

Contributing

Contributions are highly welcome. Please open an issue before implementing a feature to discuss your plans.

Korga's source code is split into the backend (located in server) and the frontend (located in webapp). The following instructions are written for Windows but generally also apply to Linux development setups.

Backend

  • Visual Studio 2022
  • .NET SDK 7.0
  • EF Core CLI Tools (e.g. dotnet tool install -g dotnet-ef)
  • MySQL or MariaDB (e.g. from PSModules)
  • OpenLDAP server

Frontend

  • Visual Studio Code
  • Vue Language Features (Volar) Extension
  • NodeJS 18 LTS

During development the frontend running on the Vue CLI development server will use http://localhost:50805 as API endpoint. That means the backend can be running in Visual Studio with Debugger attached.

If you just want to work on the frontend you can also use a public test server by creating a file webapp/.env.development.local to override the defaults with VUE_APP_API_URL=https://lerchen.net/korga. Then you don't have to setup a database server, LDAP server and the ASP.NET Core backend.