2023-10-01 16:25:20 +01:00
|
|
|
# HACK: Fake include some tasks from `ansible_dokku`, so its library plugins can be used below
|
|
|
|
- name: Run role without running any tasks
|
|
|
|
include_role:
|
|
|
|
name: dokku_bot.ansible_dokku
|
|
|
|
tasks_from: init.yml
|
|
|
|
apply:
|
|
|
|
when: false
|
|
|
|
|
|
|
|
- name: Install Dokku
|
|
|
|
package:
|
|
|
|
name: dokku
|
|
|
|
become: true
|
|
|
|
|
|
|
|
- name: List dokku plugins
|
|
|
|
command: dokku plugin:list
|
|
|
|
changed_when: false
|
|
|
|
register: installed_dokku_plugins
|
|
|
|
|
|
|
|
- name: Install Dokku plugins
|
|
|
|
command: dokku plugin:install {{ item.url }} --name {{ item.name }}
|
|
|
|
when: installed_dokku_plugins.stdout.find(item.name) == -1
|
|
|
|
loop: "{{ dokku_plugins }}"
|
|
|
|
loop_control:
|
|
|
|
label: "{{ item.name }}"
|
|
|
|
become: true
|
|
|
|
|
|
|
|
- name: Automatically update Dokku plugins
|
|
|
|
cron:
|
|
|
|
name: "dokku plugin:update {{ item.name }}"
|
|
|
|
minute: "0"
|
|
|
|
hour: "12"
|
|
|
|
user: "root"
|
|
|
|
job: "/usr/bin/chronic /usr/bin/dokku plugin:update {{ item.name }}"
|
|
|
|
cron_file: "dokku-plugin-update-{{ item.name }}"
|
|
|
|
loop: "{{ dokku_plugins }}"
|
|
|
|
loop_control:
|
|
|
|
label: "{{ item.name }}"
|
|
|
|
become: true
|
|
|
|
|
|
|
|
- name: Set up global domain
|
|
|
|
dokku_domains:
|
|
|
|
global: true
|
|
|
|
domains: d.theorangeone.net
|
|
|
|
become: true
|
|
|
|
|
|
|
|
- name: Install custom nginx config
|
|
|
|
template:
|
|
|
|
src: files/nginx.conf
|
|
|
|
dest: /etc/nginx/nginx.conf
|
|
|
|
validate: nginx -t -c %s
|
|
|
|
mode: "644"
|
|
|
|
notify: restart nginx
|
|
|
|
become: true
|
2023-10-01 17:06:09 +01:00
|
|
|
|
|
|
|
# https://dokku.com/docs/advanced-usage/backup-recovery/
|
|
|
|
- name: Sync data to app-data
|
|
|
|
cron:
|
|
|
|
name: clean up docker containers
|
|
|
|
hour: "*/6"
|
|
|
|
minute: 0
|
|
|
|
user: root
|
|
|
|
job: rsync --archive --progress -h /var/lib/dokku/{config,data,services} /home/dokku --exclude '/home/dokku/**/cache/*' /mnt/tank/app-data/dokku/
|
|
|
|
cron_file: dokku-data-sync
|