Install Streama Media Server on Ubuntu 18

Update OS Package:

sudo su
apt-get upgrade
apt-get update
reboot

Install OpenJDK:

apt install openjdk-8-jre
mkdir /data
mkdir /data/streama
touch /data/streama/README.md

Add User and change user permission:

# new linux user
sudo adduser streama # add password to README.md
sudo usermod -aG sudo streama
sudo chown streama:streama /data/streama/ -R

Download Streama:

# download streama
cd /data/streama
sudo su streama
wget https://github.com/streamaserver/streama/releases/download/v1.7.0/streama-1.7.0.jar # or newer release
chmod ug+x streama-1.7.0.jar # make executable
ln -s streama-1.7.0.jar streama.jar # create link

Install MySQL Server and create database:

# mysql:
sudo apt install mysql-server
sudo mysql_secure_installation # add password to README.md
sudo mysql
> create database streama;
# application.yml 
wget https://raw.githubusercontent.com/streamaserver/streama/master/docs/sample_application.yml
mv sample_application.yml application.yml
vi application.yml # add your mysql username & password

Streama Service Startup Script:

# add system.d service
sudo su
touch /etc/systemd/system/streama.service
vi /etc/systemd/system/streama.service
# START streama.service
[Unit]
Description=streama
After=syslog.target

[Service]
User=streama
ExecStart=/data/streama/streama.jar
SuccessExitStatus=143
ConditionPathExists=/data/kcenter/streama.jar

[Install]
WantedBy=multi-user.target
# 
# END streama.service
chmod 664 /etc/systemd/system/streama.service
sudo systemctl enable streama
sudo systemctl start streama #start streama
sudo journalctl -u streama -f #logs

Install Nginx and LetsEncrypt SSL

# nginx
sudo apt-get -y install certbot nginx python-certbot-nginx
sudo touch /etc/nginx/sites-available/streama
vi /etc/nginx/sites-available/streama
# START nginx-conf
server {
listen 80;
listen [::]:80;

server_name YOUR_DOMAIN.com;

client_max_body_size 128g; # allows larger files (like videos) to be uploaded.

location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# websocket start
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_read_timeout 86400;
# websocket end

proxy_pass http://localhost:8080;
}
}
# END
sudo ln -s /etc/nginx/sites-available/streama /etc/nginx/sites-enabled/streama 
sudo service nginx reload
sudo certbot --nginx -d YOUR_DOMAIN.com

Optionally you may need to convert videos! Use the following ffmpeg command:

ffmpeg -i input.mkv -vcodec h264 -acodec aac -strict -2 output.mp4

Src: 

https://github.com/streamaserver/streama/wiki/Full-streama-setup-on-a-clean-Ubuntu18-with-mysql,-system.d-&-letsencrypt

https://github.com/streamaserver/streama/wiki/FAQs#11-video-playback

Share

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.