Pagure is split over multiple components, each having their purpose and all but one (the core application) being optional.
These components are:
The core application is the flask application interacting with gitolite to provide a web UI to the git repositories as well as tickets and pull-requests. This is the main application for the forge.
While integrated into the main application at first, it has been split out for security concern, displaying information directly provided by the user without a clear/safe way of filtering for un-safe script or hacks is a security hole. For this reason we also strongly encourage anyone wanting to deploy their own instance of pagure with the doc server, to run this application on a completely different domain name (not just a sub-domain) in order to reduce the cross-site forgery risks.
Pagure can be run just fine without the doc server, all you need to do is to
not define the variable DOC_APP_URL
in the configuration file.
The milter is a script, receiving an email as input and performing an action with it.
In the case of pagure, the milter is used to allow replying on a comment of a ticket or a pull-request by directly replying to the notification sent. No need to go to the page anymore to reply to a comment someone made.
The milter integrates with a MTA such as postfix or sendmail that you will have running and have access to in order to change its configuration.
Eventsource or Server Sent Events are messages sent from a server to a browser.
For pagure this technology is used to allow live-refreshing of a page when someone is viewing it. For example, while you are reading a ticket if someone comments on it, the comment will automatically show up on the page without the need for you to reload the entire page.