This Ansible Role deploys the Peertube Typescript code in a rootless container using Podman. It is intended to be composed with separate roles for the other Peertube requirements.
Thus, besides its own code (which this role deploys) it also needs:
- postgres + 2 extensions
- https certificates
- web proxy
- redis
- mail server (optional)
Tested on:
- Ubuntu 22.04
Relevant parts of requirements.yml
:
collections:
- name: containers.podman
src: https://github.com/containers/ansible-podman-collections
roles:
- src: https://github.com/alvistack/ansible-role-podman
name: alvistack.podman
- postgresql
- nginx_conf (optional)
See the role defaults. For a working example, see this homelab stack.
- hosts: peertube
roles:
- role: nginxinc.nginx_core.nginx
become: true
- role: anxs.postgresql
become: true
- role: alvistack.podman
become: true
- role: bleetube.peertube
tags: peertube
tasks:
- import_tasks: nginx_conf.yml
become: true
The container administrator password grep password peertube.log
"The administrator username is root" and it's logged on first startup to {{ peertube_root_path }}/storage/logs/peertube.log
. For example:
grep password /var/www/peertube/storage/logs/peertube.log
systemctl --user status container-peertube.service
- Review the development changelog and mind any meaningful changes to production.yml
- Configure
peertube_version
.
ansible-playbook playbooks/peertube.yml --tags peertube
The peertube 5.0.1 container would only read some config from production.yaml
, and some config from environment variables. This is handled by the role, but for posterity:
- postgres config must be in production.yaml
- redis config must be in production.yaml
- smtp config must be in the environment variables
- the peertube secret must be in the environment variables