STROAM is a media streaming platform built using Service Oriented Architecture, with multiple services.
-
Frontend service
Web-app responsible for orchestrating all services, and the main app gateway. Built with Django (Python). -
Catalog
Service which catalogs all Movies / TV Series available. Built with Spring Boot framework (Java). -
Auth
Authentication service which register and authenticate users into the app. Built with Spring Boot framework (Java). -
Payment
Payment gateway service which takes care of billing. Built with Flask (Python). -
Notification
Service responsible for notifying users upon multiple usage in app. Built with Java -
Streaming CDN
A content delivery network which serves media sources based on user location. Built with Node.js and WebRTC API
- Frontend - 8000
- Catalog - 4000
- Auth - 3000
- Payment - 5000
- Notification - 1884
- Streaming CDN - 1935
-
Cristiano Vagos (GitHub / cristianovagos@ua.pt)
Frontend and Catalog -
António Silva (GitHub / asergio@ua.pt)
Payment -
André Cardoso (GitHub / marquescardoso@ua.pt)
Auth -
João Amaral (GitHub / joaop.amaral@ua.pt)
Streaming CDN -
João Verdasca (GitHub / jfrverdasca@ua.pt)
Notification
There is a docker-compose file available with all services and containers for STROAM deployment, as well as a Ansible playbook file available for quick remote installation of the deployment environment.
- Ansible must be installed on YOUR machine, and Python must be installed on the REMOTE machine (later described as host)
- In our case, the machine where the deployment is done is on a Ubuntu Server 18.04
- It may be required UA/IT VPN access into the deployment host
The Ansible playbook will install all software and packages needed for the Dockerized environment, such as Docker and Docker Compose as well as pull the code from our repository (code.ua.pt), build and run the containers described in the Docker Compose file.
On YOUR machine, copy and paste the hosts file on Ansible config folder ( /etc/ansible/ ):
$ sudo cp hosts /etc/ansible/hosts
(OR, if you already have Ansible hosts installed, just append the contents from this hosts file into your Ansible hosts):
$ sudo cat hosts >> /etc/ansible/hosts
Then run the Ansible playbook, requesting password prompts:
$ ansible-playbook vm-playbook.yml --ask-pass --ask-become-pass
The user password and sudo password of the REMOTE machine will be prompted, as well as YOUR user and password from git repository.
Enjoy STROAM!