Merge pull request #26 from moan0s/owncast

Add Owncast
This commit is contained in:
Slavi Pantaleev 2023-03-30 09:41:42 +03:00 committed by GitHub
commit 348ca52fe5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 101 additions and 1 deletions

48
docs/services/owncast.md Normal file
View file

@ -0,0 +1,48 @@
# Owncast
[Owncast](https://owncast.online/) is a free and open source live video and web chat server for use with existing popular broadcasting software. This playbook can install owncast, powered by the [mother-of-all-self-hosting/ansible-role-owncast](https://github.com/mother-of-all-self-hosting/ansible-role-owncast) Ansible role.
## Dependencies
This service requires the following other services:
- a [Traefik](traefik.md) reverse-proxy server
## Configuration
To enable this service, add the following configuration to your `vars.yml` file and re-run the [installation](../installing.md) process:
```yaml
########################################################################
# #
# owncast #
# #
########################################################################
owncast_enabled: true
owncast_hostname: live.example.com
########################################################################
# #
# /owncast #
# #
########################################################################
```
### Networking
By default, the following ports will be exposed by the container on **all network interfaces**:
- `1935` over **TCP**, controlled by `owncast_container_rtmp_bind_port` - used for TCP based [RTMP](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol)
Docker automatically opens this port in the server's firewall, so you **likely don't need to do anything**. If you use another firewall in front of the server, you may need to adjust it.
## Usage
After installation, you can go to the owncast URL, as defined in `owncast_hostname`.
To customize your installation visit `live.example.com/admin`. **You should immediatly change the stream key which is set to `abc123` by default**.

View file

@ -20,6 +20,7 @@
| [Navidrome](https://www.navidrome.org/) | [Subsonic-API](http://www.subsonic.org/pages/api.jsp) compatible music server | [Link](services/navidrome.md)
| [NetBox](https://docs.netbox.dev/en/stable/) | Web application that provides [IP address management (IPAM)](https://en.wikipedia.org/wiki/IP_address_management) and [data center infrastructure management (DCIM)](https://en.wikipedia.org/wiki/Data_center_management#Data_center_infrastructure_management) functionality | [Link](services/netbox.md) |
| [Nextcloud](https://nextcloud.com/) | The most popular self-hosted collaboration solution for tens of millions of users at thousands of organizations across the globe. | [Link](services/nextcloud.md) |
| [Owncast](https://owncast.online/) | Owncast is a free and open source live video and web chat server for use with existing popular broadcasting software. | [Link](services/owncast.md) |
| [PeerTube](https://joinpeertube.org/) | A tool for sharing online videos | [Link](services/peertube.md) |
| [Postgres](https://www.postgresql.org) | A powerful, open source object-relational database system | [Link](services/postgres.md) |
| [Postgres Backup](https://github.com/prodrigestivill/docker-postgres-backup-local) | A solution for backing up PostgresSQL to local filesystem with periodic backups. | [Link](services/postgres-backup.md) |

View file

@ -113,6 +113,8 @@ devture_systemd_service_manager_services_list_auto: |
+
([{'name': (nextcloud_identifier + '-cron.timer'), 'priority': 2500, 'groups': ['mash', 'nextcloud', 'nextcloud-cron']}] if nextcloud_enabled else [])
+
([{'name': (owncast_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'owncast']}] if owncast_enabled else [])
+
([{'name': (peertube_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'peertube']}] if peertube_enabled else [])
+
([{'name': (prometheus_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'metrics', 'prometheus']}] if prometheus_enabled else [])
@ -1502,6 +1504,14 @@ hubsite_service_nextcloud_logo_location: "{{ role_path }}/assets/nextcloud.png"
hubsite_service_nextcloud_description: "Sync your files & much more"
hubsite_service_nextcloud_priority: 1000
# Owncast
hubsite_service_owncast_enabled: "{{ owncast_enabled }}"
hubsite_service_owncast_name: owncast
hubsite_service_owncast_url: "https://{{ owncast_hostname }}{{ owncast_path_prefix }}"
hubsite_service_owncast_logo_location: "{{ role_path }}/assets/owncast.png"
hubsite_service_owncast_description: "Livestream & Chat"
hubsite_service_owncast_priority: 1000
# Peertube
hubsite_service_peertube_enabled: "{{ peertube_enabled }}"
hubsite_service_peertube_name: Peertube
@ -1567,6 +1577,8 @@ hubsite_service_list_auto: |
+
([{'name': hubsite_service_nextcloud_name, 'url': hubsite_service_nextcloud_url, 'logo_location': hubsite_service_nextcloud_logo_location, 'description': hubsite_service_nextcloud_description, 'priority': hubsite_service_nextcloud_priority}] if hubsite_service_nextcloud_enabled else [])
+
([{'name': hubsite_service_owncast_name, 'url': hubsite_service_owncast_url, 'logo_location': hubsite_service_owncast_logo_location, 'description': hubsite_service_owncast_description, 'priority': hubsite_service_owncast_priority}] if hubsite_service_owncast_enabled else [])
+
([{'name': hubsite_service_peertube_name, 'url': hubsite_service_peertube_url, 'logo_location': hubsite_service_peertube_logo_location, 'description': hubsite_service_peertube_description, 'priority': hubsite_service_peertube_priority}] if hubsite_service_peertube_enabled else [])
+
([{'name': hubsite_service_radicale_name, 'url': hubsite_service_radicale_url, 'logo_location': hubsite_service_radicale_logo_location, 'description': hubsite_service_radicale_description, 'priority': hubsite_service_radicale_priority}] if hubsite_service_radicale_enabled else [])
@ -1677,3 +1689,37 @@ gotosocial_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certRe
# /gotosocial #
# #
########################################################################
########################################################################
# #
# owncast #
# #
########################################################################
owncast_enabled: false
owncast_identifier: "{{ mash_playbook_service_identifier_prefix }}owncast"
owncast_uid: "{{ mash_playbook_uid }}"
owncast_gid: "{{ mash_playbook_gid }}"
owncast_base_path: "{{ mash_playbook_base_path }}/{{ mash_playbook_service_base_directory_name_prefix }}owncast"
owncast_container_additional_networks: |
{{
([mash_playbook_reverse_proxyable_services_additional_network] if mash_playbook_reverse_proxyable_services_additional_network else [])
}}
owncast_container_labels_traefik_enabled: "{{ mash_playbook_traefik_labels_enabled }}"
owncast_container_labels_traefik_docker_network: "{{ mash_playbook_reverse_proxyable_services_additional_network }}"
owncast_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}"
owncast_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}"
########################################################################
# #
# /owncast #
# #
########################################################################

View file

@ -106,5 +106,8 @@
version: 3a2a1e4c6b484b643a847941937a80d0efd86d6c
name: firezone
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-gotosocial.git
version: d608eb330af28b75d3e4881b2e8c09af64d078f1
name: gotosocial
version: d608eb330af28b75d3e4881b2e8c09af64d078f1
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-owncast.git
name: owncast
version: ff233df159fbda65b2bb637adbfaf34383ec4229

View file

@ -84,6 +84,8 @@
- role: galaxy/nextcloud
- role: galaxy/owncast
- role: galaxy/peertube
- role: galaxy/prometheus