summaryrefslogtreecommitdiff
path: root/roles/gemini/tasks/main.yml
blob: ffc00d48dc6a994e1aafc9b2c1ce65b19081b889 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
- name: Create joeac.net source code directory
  ansible.builtin.file:
    path: ~nginx/src
    state: directory
    recurse: true
    owner: "{{ ansible_ssh_user }}"
    group: "{{ ansible_ssh_user }}"

- name: Checkout joeac.net source code
  ansible.builtin.git:
    repo: git://git.joeac.net/joeac.net.git
    dest: ~nginx/src/joeac.net
    depth: 1
    version: main

- name: Run initial comitium refresh
  register: comitium_refresh
  ansible.builtin.command:
    cmd: /usr/local/bin/comitium refresh --data ~nginx/src/joeac.net/gemini/comitium-data
    creates: ~nginx/src/joeac.net/gemini/comitium-data/feed.gmi

- name: Schedule daily comitium refresh
  ansible.builtin.cron:
    special_time: daily
    job: /usr/local/bin/comitium refresh --data ~nginx/src/joeac.net/gemini/comitium-data
    name: daily comitium refresh for joeac.net capsule
    user: nginx

- name: Build joeac.net capsule
  register: build_capsule
  community.general.make:
    chdir: ~nginx/src/joeac.net/gemini

- name: Chown joeac.net source code for nginx
  ansible.builtin.file:
    path: ~nginx/src
    recurse: true
    owner: nginx
    group: nginx

- name: Install gemini service
  register: install_service
  ansible.builtin.template:
    src: openrc/gemini
    dest: /etc/init.d/gemini
    mode: "775"

- name: Start gemini service and configure to start on boot
  when: not ( comitium_refresh is changed or build_capsule is changed or install_service is changed )
  ansible.builtin.service:
    name: gemini
    enabled: true
    state: started

- name: Restart gemini service and configure to start on boot
  when: comitium_refresh is changed or build_capsule is changed or install_service is changed
  ansible.builtin.service:
    name: gemini
    enabled: true
    state: restarted

- name: Install daily crontab to update gemini
  ansible.builtin.cron:
    special_time: daily
    name: Update gemini
    job: git -C ~nginx/src/joeac.net pull; make -C ~nginx/src/joeac.net/gemini
    user: nginx