feat: Add pretix role

This commit is contained in:
2025-10-19 12:18:39 +02:00
parent e37432e333
commit af154477b1
8 changed files with 153 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
---
- name: Create DB user password
ansible.builtin.command:
cmd: openssl rand -hex 32
register: pretix_db_password
changed_when: false
- name: Create DB user
community.postgresql.postgresql_user:
name: "{{ ssh_user }}_pretix"
password: "{{ pretix_db_password.stdout }}"
state: present
- name: Create database
community.postgresql.postgresql_db:
name: "{{ ssh_user }}_pretix"
owner: "{{ ssh_user }}_pretix"
encoding: UTF-8
template: template0
comment: Database for pretix
state: present
register: pretix_db
+16
View File
@@ -0,0 +1,16 @@
---
- name: List domains
ansible.builtin.command: uberspace web domain list
changed_when: false
register: domains
- name: Set up domain
when: domains.stdout.find(pretix_domain) == -1
block:
- name: Add domain
ansible.builtin.command: uberspace web domain add {{ pretix_domain }}
register: new_domain
changed_when: true
- name: Print out important information
changed_when: false
ansible.builtin.debug:
msg: "{{ new_domain.stdout }}"
+22
View File
@@ -0,0 +1,22 @@
---
- name: Create database
ansible.builtin.import_tasks: database.yaml
- name: Set up domain
ansible.builtin.import_tasks: domain.yaml
- name: Set up pretix
ansible.builtin.import_tasks: setup.yaml
- name: Configure pretix web backend
ansible.builtin.command:
cmd: uberspace web backend set / --http --port 9000
- name: Configure static files
ansible.builtin.command:
cmd: uberspace web backend set /static --apache
- name: Configure media files
ansible.builtin.command:
cmd: uberspace web backend set /media --apache
- name: Set up cronjob
ansible.builtin.cron:
name: pretix periodic
minute: "18,48"
job: "cd ~/pretix_data && {{ python_executable }} -m pretix runperiodic"
state: present
+48
View File
@@ -0,0 +1,48 @@
---
- name: Create data folder
ansible.builtin.file:
state: directory
path: /home/{{ ssh_user }}/pretix_data
owner: "{{ ssh_user }}"
group: "{{ ssh_user }}"
mode: "755"
- name: Install pretix
ansible.builtin.pip:
executable: "{{ pip_executable }}"
name:
- pretix
- gunicorn
extra_args: --user
- name: Create config file
ansible.builtin.template:
src: pretix.cfg.j2
dest: /home/{{ ssh_user }}/.pretix.cfg
owner: "{{ ssh_user }}"
group: "{{ ssh_user }}"
mode: "600"
- name: Populate database
ansible.builtin.command:
cmd: "{{ python_executable }} -m pretix migrate"
when: pretix_db.changed
- name: Prepare static files
ansible.builtin.command:
cmd: "{{ python_executable }} -m pretix rebuild"
- name: Move static files to Apache
ansible.builtin.copy:
remote_src: true
src: /home/{{ ssh_user }}/.local/lib/{{ python_executable }}/site-packages/pretix/static.dist/
dest: /var/www/virtual/{{ ssh_user }}/html/static
owner: "{{ ssh_user }}"
group: "{{ ssh_user}}"
mode: "755"
- name: Create service
ansible.builtin.template:
src: etc/services.d/pretix.ini.j2
dest: /home/{{ ssh_user }}/etc/services.d/pretix.ini
owner: "{{ ssh_user }}"
group: "{{ ssh_user }}"
mode: "644"
- name: Start pretix
community.general.supervisorctl:
state: started
name: pretix