homelab/roles/peertube/tasks/main.yml

68 lines
1.6 KiB
YAML

---
- name: Create peertube network
become: true
community.docker.docker_network:
name: peertube
- name: Create redis container
include_role:
name: redis
vars:
preset: persistent
container_name: peertube-redis
docker_networks:
- name: peertube
docker_volume: peertube-redis
- name: Create peertube config dir
become: true
ansible.builtin.file:
path: /etc/peertube
state: directory
mode: '1700'
owner: "999"
group: "999"
- name: Copy default config
become: true
ansible.builtin.copy:
src: default.yaml
dest: /etc/peertube/default.yaml
owner: "999"
group: "999"
- name: Copy production config
become: true
ansible.builtin.template:
src: production.yaml.j2
dest: /etc/peertube/production.yaml
owner: "999"
group: "999"
register: cfg
- name: Create peertube-data volume
become: true
community.docker.docker_volume:
name: peertube-data
- name: Run peertube container
become: true
community.docker.docker_container:
name: peertube
image: chocobozzz/peertube:v6.3.2-bookworm
networks:
- name: peertube
- name: haproxy
- name: postgresql
- name: monitoring
volumes:
- /mnt/hdd/peertube:/data
- /etc/peertube:/config
mounts:
- type: tmpfs
target: /data/tmp
tmpfs_size: "4G"
recreate: "{{ cfg.changed }}"
restart_policy: unless-stopped
healthcheck:
test: ["CMD", "curl", "--fail", "http://127.0.0.1:9000/.well-known/nodeinfo"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
# TODO: enable after ansible update
# state: healthy