1
0
Fork
You've already forked pretix-attendees
0
Public pretix attendees list
  • Python 66.9%
  • HTML 31.7%
  • Dockerfile 1.4%
Fredrik Sætereng Fyksen 094dc17908
All checks were successful
Build and Push Container / build (push) Successful in 1m10s
development branch workflow
2024年03月25日 12:52:58 +01:00
.forgejo/workflows development branch workflow 2024年03月25日 12:52:58 +01:00
templates tds on one line on event 2024年03月22日 17:51:46 +01:00
.gitignore added instance to gitignore 2024年03月15日 10:13:26 +01:00
Containerfile added -u to get print statements inside containers 2024年03月13日 22:09:09 +01:00
LICENSE Initial commit 2024年03月08日 14:27:17 +00:00
main.py webhooks + admingui 2024年03月25日 12:21:25 +01:00
README.md Updated README with docker-compose volume example 2024年03月15日 12:56:15 +01:00
renovate.json Add renovate.json 2024年03月08日 15:00:48 +00:00
requirements.txt new requirements 2024年03月15日 10:12:36 +01:00

pretix-attendees

Pretix Attendees is a web application designed to provide event attendees with a seamless interface to view event attendees. Built with Flask, it integrates with the Pretix event management system, leveraging its robust API to fetch real-time data about events and their participants.

Pretix Attendees uses Pretix Webhooks to know when to pull new data from Pretix. You need to configure pretix webhooks to point to the domain of https://your-pretix-attendees.com/webhook/pretix/ to make it auto refresh event lists.

Features

  • Event Overview: Get a comprehensive list of all events, including their names, start dates, and the number of attendees.
  • Attendee Details: Choose what Questions from the orders to show the visitor, in the admin interface.
  • Admin interface: is located at /admin
  • Plausible Analytics Integration: Track visitor statistics with privacy-friendly Plausible analytics, configurable via environment variables.
  • Responsive Design: Ensures a great user experience across desktop and mobile devices.

Running in a container

docker run -d -p 5000:5000 \
 -e API_TOKEN='your_pretix_api_token' \
 -e BASE_URL='your_pretix_base_url' \
 -e DOMAIN_URL='your_domain_for_plausible' \
 -e PLAUSIBLE_URL='your_plausible_instance_url' \
 --name pretix-attendees pretix-attendees

Running in docker-compose

docker-compose.yml example:

version: '3.1'
services:
 pretix-attendees:
 image: codeberg.org/fyksen/pretix-attendees:latest
 restart: unless-stopped
 ports:
 - "5000:5000"
 volumes:
 - ./instance:/app/instance
 environment:
 API_TOKEN: "your_pretix_api_token"
 BASE_URL: "https://your_pretix_base_url"
 ORGANIZER_NAME: "your_pretix_ORGANIZER_NAME"
 PLAUSIBLE_URL: "https://your_plausible_url"
 DOMAIN_URL: "https://your_url"
 ADMIN_USERNAME: "your-admin-username"
 ADMIN_PASSWORD: "your-admin-pw"
 

Developing

Prerequisites

  • Python 3.6+
  • A Pretix instance API token and base URL

Run locally with venv

  1. Clone the repository:
git clone https://codeberg.org/fyksen/pretix-attendees.git
cd pretix-attendees
  1. Set up a virtual environment and activate it:
python3 -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
  1. Install the requirements:
pip install -r requirements.txt
  1. Set the necessary environment variables:

export API_TOKEN='your_pretix_api_token'
export BASE_URL='your_pretix_base_url'
export ORGANIZER_NAME='your_pretix_ORGANIZER_NAME'
export DOMAIN_URL='your_domain'
export PLAUSIBLE_URL='your_plausible_instance_url'
export ADMIN_USERNAME='your-admin-username'
export ADMIN_PASSWORD='your-admin-pw'

Use set instead of export if you are on Windows.

  1. Run the application:
python main.py

Your app should now be running on http://localhost:5000

  1. Configuration
  • API_TOKEN: Your Pretix API token.
  • BASE_URL: The base URL of your Pretix instance without the protocol (e.g., example.pretix.eu).
  • ORGANIZER_NAME: The slug for your organizer from Pretix.
  • DOMAIN_URL (optional): The domain you're tracking with Plausible analytics.
  • PLAUSIBLE_URL (optional): The URL of your Plausible analytics script.
  • ADMIN_USERNAME: Sets username for login to admin page
  • ADMIN_PASSWORD: Sets password for login to admin page

Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue.