55 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# `finallycoffee.services.pretix` ansible role
 | 
						|
 | 
						|
Deploy [pretix](https://pretix.eu) using ansible. Note that this
 | 
						|
role does not configure pretix beyond its own configuration file,
 | 
						|
and requires changing a default admin password after a successful
 | 
						|
installation.
 | 
						|
 | 
						|
## Configuration
 | 
						|
 | 
						|
For all available configuration options, see [`defaults/main/config.yml`](defaults/main/config.yml)
 | 
						|
and other supporting files in the [`defaults/main/`](defaults/main/) folder.
 | 
						|
 | 
						|
To add custom configuration to pretix, populate them in `pretix_config`,
 | 
						|
where they will be (recusively) merged into the default configuration.
 | 
						|
 | 
						|
### Required
 | 
						|
 | 
						|
- `pretix_domain`: domain of the pretix instance
 | 
						|
- `pretix_postgresql_password`: password for the (default: postgresql) database
 | 
						|
- `pretix_config_redis_location`: connection string for the main pretix redis database
 | 
						|
- `pretix_config_celery_backend`: connection string for the celery backend, can be a (different!) redis database
 | 
						|
- `pretix_config_celery_broker`: connection string for the celery broker, can be a (yet another different) redis database
 | 
						|
 | 
						|
For examples on how a redis server (like valkey) can be configured
 | 
						|
for redis, see [`playbooks/pretix.yml`](../../playbooks/pretix.yml).
 | 
						|
 | 
						|
### Mailing
 | 
						|
 | 
						|
Set up mails in pretix by populating the following variables:
 | 
						|
- `pretix_config_mail_host`: domain/IP and optional port of the SMTP server
 | 
						|
- `pretix_config_mail_user`: SMTP user to authenticate
 | 
						|
- `pretix_config_mail_password`: password for the SMTP user
 | 
						|
 | 
						|
### Plugins
 | 
						|
 | 
						|
To install more plugins, list the wanted `pypi` packages as a list in
 | 
						|
`pretix_plugins`. They will be installed in the created virtualenv, and migrations and an asset rebuild will be automatically started.
 | 
						|
 | 
						|
If your plugin requires custom configuration (f.ex.: `pretix-oidc`),
 | 
						|
add the configuration into `pretix_config`.
 | 
						|
 | 
						|
## Troubleshooting
 | 
						|
 | 
						|
### virtualenv
 | 
						|
 | 
						|
By default, the virtualenv is located in `/var/lib/pretix/virtualenv`.
 | 
						|
This can be controlled by setting `pretix_virtualenv_dir`.
 | 
						|
 | 
						|
NOTE: To fix a broken virtualenv, try setting `pretix_virtualenv_state` to `forcereinstall` (see
 | 
						|
[`ansible.builtin.pip` on docs.ansible.com](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/pip_module.html)).
 | 
						|
 | 
						|
NOTE: To install pip packages or execute migrations in the virtualenv, ansible
 | 
						|
needs to become the unprivilated `pretix_user` (default: `pretix`). This might
 | 
						|
require having the `acl` system package installed.
 |