97 lines
2.2 KiB
YAML
97 lines
2.2 KiB
YAML
---
|
|
|
|
- name: Install prereq
|
|
ansible.builtin.package:
|
|
name:
|
|
- ffmpeg
|
|
- g++
|
|
- make
|
|
- python-is-python3
|
|
- unzip
|
|
state: present
|
|
|
|
- name: Create peertube user
|
|
ansible.builtin.user:
|
|
comment: Peertube
|
|
home: "{{ peertube_home }}"
|
|
name: peertube
|
|
password: '!'
|
|
shell: /bin/bash
|
|
state: present
|
|
|
|
- name: Create peertube .ssh dir
|
|
ansible.builtin.file:
|
|
state: directory
|
|
path: "{{ peertube_home }}/.ssh"
|
|
mode: 0755
|
|
owner: peertube
|
|
group: peertube
|
|
|
|
- name: Set ssh for peertube user
|
|
ansible.builtin.copy:
|
|
remote_src: true
|
|
src: /root/.ssh/authorized_keys
|
|
dest: "{{ peertube_home }}/.ssh/authorized_keys"
|
|
mode: 0644
|
|
owner: peertube
|
|
group: peertube
|
|
|
|
- name: Create peertube dirs
|
|
ansible.builtin.file:
|
|
path: "{{ peertube_home }}/{{ item.path }}"
|
|
state: directory
|
|
owner: peertube
|
|
group: peertube
|
|
mode: "{{ item.mode | default('0755') }}"
|
|
loop:
|
|
- {path: "config", mode: "0750"}
|
|
- {path: "storage"}
|
|
- {path: "versions"}
|
|
|
|
- name: Unzip peertube
|
|
remote_user: peertube
|
|
ansible.builtin.unarchive:
|
|
src: "{{ peertube_url }}"
|
|
remote_src: true
|
|
dest: "{{ peertube_home }}/versions"
|
|
owner: peertube
|
|
group: peertube
|
|
|
|
- name: Symlink latest peertube version
|
|
remote_user: peertube
|
|
ansible.builtin.file:
|
|
state: link
|
|
src: "{{ peertube_home }}/versions/peertube-v{{ peertube_version }}"
|
|
dest: "{{ peertube_home }}/peertube-latest"
|
|
owner: peertube
|
|
group: peertube
|
|
|
|
- name: Install peertube
|
|
remote_user: peertube
|
|
ansible.builtin.command:
|
|
cmd: |
|
|
bash -lic "yarn install --production --pure-lockfile"
|
|
chdir: "{{ peertube_home }}/peertube-latest"
|
|
changed_when: true
|
|
|
|
- name: Install services
|
|
ansible.builtin.template:
|
|
src: peertube.service.j2
|
|
dest: /etc/systemd/system/peertube.service
|
|
mode: 0644
|
|
|
|
- name: Install default configuration
|
|
ansible.builtin.file:
|
|
state: link
|
|
src: "{{ peertube_home }}/peertube-latest/config/default.yaml"
|
|
dest: "{{ peertube_home }}/config/default.yaml"
|
|
owner: peertube
|
|
group: peertube
|
|
|
|
- name: Run services
|
|
ansible.builtin.systemd:
|
|
name: peertube.service
|
|
daemon_reload: true
|
|
state: restarted # restart everytime, this is simpler
|
|
enabled: true
|