/
/
/
1---
2# Runner Services - Stirling-PDF Processing Service
3
4- name: Create Stirling-PDF configuration directories
5 file:
6 path: "{{ item }}"
7 state: directory
8 owner: "{{ runner_user }}"
9 group: "users"
10 mode: '2775' # setgid bit for inheritance, group writable (umask 002)
11 loop:
12 - "{{ stirling_pdf_config_dir }}"
13 - "{{ stirling_pdf_data_dir }}"
14 - "{{ stirling_pdf_data_dir }}/logs"
15 - "{{ stirling_pdf_data_dir }}/customFiles"
16 - "{{ stirling_pdf_data_dir }}/pipeline"
17
18- name: Generate Stirling-PDF environment file
19 template:
20 src: stirling-pdf.env.j2
21 dest: "{{ stirling_pdf_config_dir }}/stirling-pdf.env"
22 owner: "{{ runner_user }}"
23 group: "users"
24 mode: '0664' # group writable
25 notify: restart stirling-pdf
26
27- name: Create Stirling-PDF Docker Compose file
28 template:
29 src: stirling-pdf-compose.yml.j2
30 dest: "{{ stirling_pdf_config_dir }}/docker-compose.yml"
31 owner: "{{ runner_user }}"
32 group: "users"
33 mode: '0664' # group writable
34 notify: restart stirling-pdf
35
36- name: Check if Stirling-PDF is already running
37 community.docker.docker_compose_v2:
38 project_src: "{{ stirling_pdf_config_dir }}"
39 state: present
40 restarted: false
41 register: stirling_pdf_running
42 changed_when: false
43 failed_when: false
44
45- name: Start Stirling-PDF services
46 community.docker.docker_compose_v2:
47 project_src: "{{ stirling_pdf_config_dir }}"
48 state: present
49 register: stirling_pdf_start_result
50
51- name: Wait for Stirling-PDF to be healthy
52 uri:
53 url: "http://localhost:{{ stirling_pdf_port }}/api/v1/info/status"
54 method: GET
55 status_code: 200
56 timeout: 10
57 register: stirling_pdf_health
58 until: stirling_pdf_health.status == 200
59 retries: 15
60 delay: 10
61 failed_when: false
62 when: stirling_pdf_start_result is changed
63
64- name: Display Stirling-PDF deployment summary
65 debug:
66 msg: |
67 Stirling-PDF Processing Service Deployment:
68 - Status: {{ 'Started' if stirling_pdf_start_result is changed else 'Already running' }}
69 - Health: {{ 'OK' if (stirling_pdf_health.status | default(0)) == 200 else 'Check manually' }}
70 - Web UI: http://{{ ansible_default_ipv4.address }}:{{ stirling_pdf_port }}
71 - API Endpoint: http://{{ ansible_default_ipv4.address }}:{{ stirling_pdf_port }}/api/v1
72 - Configuration: {{ stirling_pdf_config_dir }}
73 - Data Storage: {{ stirling_pdf_data_dir }}
74 - Custom Files: {{ stirling_pdf_data_dir }}/customFiles
75 - Pipeline Configs: {{ stirling_pdf_data_dir }}/pipeline
76
77 API Features:
78 - PDF Conversion (Office docs, images, etc.)
79 - OCR and text extraction
80 - PDF manipulation (merge, split, rotate)
81 - Digital signatures and security
82 - Form filling and annotation
83 - Batch processing capabilities
84