runner

Ansible role that deployes services on my runner machine

3.4 KBYML
tandoor.yml
3.4 KB116 lines • yaml
1---
2# Runner Services - Tandoor Recipe Management
3
4- name: Create Tandoor 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    - "{{ tandoor_config_dir }}"
13    - "{{ tandoor_data_dir }}"
14    - "{{ tandoor_media_dir }}"
15    - "{{ tandoor_static_dir }}"
16    - "{{ tandoor_data_dir }}/backup"
17
18- name: Generate Tandoor environment file
19  template:
20    src: tandoor.env.j2
21    dest: "{{ tandoor_config_dir }}/tandoor.env"
22    owner: "{{ runner_user }}"
23    group: "{{ runner_group }}"
24    mode: '0664'
25  notify: restart tandoor
26
27- name: Create Tandoor Docker Compose file
28  template:
29    src: tandoor-compose.yml.j2
30    dest: "{{ tandoor_config_dir }}/docker-compose.yml"
31    owner: "{{ runner_user }}"
32    group: "{{ runner_group }}"
33    mode: '0664'
34  notify: restart tandoor
35
36
37- name: Check if Tandoor is already running
38  community.docker.docker_compose_v2:
39    project_src: "{{ tandoor_config_dir }}"
40    state: present
41    restarted: false
42  register: tandoor_running
43  changed_when: false
44  failed_when: false
45
46- name: Start Tandoor service
47  community.docker.docker_compose_v2:
48    project_src: "{{ tandoor_config_dir }}"
49    state: present
50  register: tandoor_start_result
51  check_mode: no
52
53- name: Wait for Tandoor to be healthy
54  uri:
55    url: "http://localhost:{{ tandoor_port }}/accounts/login/"
56    method: GET
57    status_code: 200
58  register: tandoor_health
59  until: tandoor_health.status == 200
60  retries: 30
61  delay: 10
62  when: tandoor_start_result is changed
63  check_mode: no
64
65
66
67- name: Check if initial setup is needed
68  uri:
69    url: "http://localhost:{{ tandoor_port }}/setup/"
70    method: GET
71    status_code: [200, 302, 404]
72  register: tandoor_setup_check
73  failed_when: false
74  check_mode: no
75
76- name: Display Tandoor deployment summary
77  debug:
78    msg: |
79      Tandoor Recipe Management Deployment:
80      - Status: {{ 'Started' if tandoor_start_result is changed else 'Already running' }}
81      - Web UI: http://{{ ansible_default_ipv4.address }}:{{ tandoor_port }}
82      - Admin Interface: http://{{ ansible_default_ipv4.address }}:{{ tandoor_port }}/admin/
83      - API: http://{{ ansible_default_ipv4.address }}:{{ tandoor_port }}/api/
84      - Configuration: {{ tandoor_config_dir }}
85      - Database: PostgreSQL ({{ tandoor_data_dir }}/db)
86      - Media Storage: {{ tandoor_media_dir }}
87      - Static Files: {{ tandoor_static_dir }}
88      - Database Engine: {{ tandoor_db_engine }}
89      
90      Features:
91      - Recipe management and organization
92      - Meal planning and shopping lists
93      - Recipe sharing and import/export
94      - Nutrition tracking
95      - Shopping list generation
96      - Recipe scaling and conversions
97      
98      Management Commands:
99      - tandoor-logs.sh - View service logs
100      - tandoor-restart.sh - Restart service
101      - tandoor-status.sh - Check service status
102      - tandoor-backup.sh - Backup database
103      - tandoor-manage.sh - Django management commands
104      
105      Initial Setup:
106      1. Visit http://{{ ansible_default_ipv4.address }}:{{ tandoor_port }}
107      2. Create your first user account
108      3. Configure recipe sources and preferences
109      4. Import your existing recipes
110      
111      API Access:
112      - REST API available at /api/
113      - Recipe import/export endpoints
114      - Shopping list integration
115      - Third-party app integration ready
116