Behöver din skola ett eget Youtube med data i Sverige? Sätt upp ett eget!

Behöver din skola ett eget Youtube med data i Sverige? Sätt upp ett eget!

En hel del organisationer och kommuner har sedan Schrems II-domen förbjudit överföring av alla former av personuppgifter till Youtube, Facebook, Twitter med flera, då data inte får lagras i USA. Det här ställer till det, då vi i skolans värld måste förlita oss på att kunna kommunicera via video. Söka Skola, Öppet Hus och skolavslutningar är några exempel på tidigare fysiska evenemang som nu är digitala. Dessvärre så har inte alla egna videotjänster att tillgå, så här tänkte jag visa en enkel videolösning som kanske skulle kunna fungera för er, för en billig peng med data i Sverige.

På Årstaskolan har vi kört egen videolösning i över 10 år på plejtv.se (tidigare Kunskapshubben) enligt denna modell – och här tänkte jag dokumentera hur jag har satt upp EduTV – en tillfällig lösning till några skolor här i Stockholm, tills staden har sin egen lösning på plats.
Sist jag gjorde ett liknande inlägg var 2015 med “Strömmande video på din WordPress-sajt” – och en del har ju hänt sedan sist.

Vad vill vi uppnå? Ett eget Youtube?

Det här inlägget handlar i korthet om att vi sätter upp grunderna till en webbserver med möjlighet att konvertera video samt ett youtube-klon-script som heter Playtube (kostar $99). Playtube har (typ) alla de funktioner som Youtube har. Automatisk konvertering till olika format, inbäddning, delning, statistik, mobilitet och liknande. Detta körs på en liten VPS-server för ett par hundralappar per månad. All data i Sverige. Ni får då en webbplats likt Youtube i miniformat, där användarna kan ladda upp film från datorer, paddor och telefoner, som ni sedan exempelvis kan kan bädda in på skolans webbplats – eller avnjuta direkt på er sajt.

Givetvis är även servern som den här sajten ligger på byggd på samma sätt, vilket innebär att filmerna i detta inlägg kommer från min sajt, konverterat av min server.

Förutsättningar

Grundläggande kunskaper
För att kunna sätta upp detta behöver du åtminstone grundläggande kunskaper i hur du hanterar en linuxserver och webbserver. De flesta som är lite händiga på det dära med it bör kunna fixa det, som valfri person på din it-avdelning eller it-tekniker på skolan. Det går ju allt som oftast också att googla upp det som man har problem med. Eller att fråga en vän. Själv har jag endast grundläggande kunskaper i detta – och det räcker hyfsat långt.
I detta inlägg så går jag inte igenom precis varenda sak som behövs göras, men du kan se det som en grund för hur du sätter upp en server med tillhörande webbserverkomponenter och FFMPEG för konvertering av video.

VPS eller annan Ubuntu-server
Du behöver en VPS eller egen server med Ubuntu på, som jag använder mig av i detta exempel.

Domännamn och SSL-certifikat
Du behöver givetvis ett domännamn och ett SSL-certifikat också och i mitt fall kommer jag sätta upp youtubeklonen på https://edutv.se

Playtube
Du behöver köpa scriptet Playtube om du vill sätta upp det som i detta exempel.
Givetvis kan du använda denna server till att i stället installera WordPress och gratistillägget “Video Embed & Thumbnail Generator” och bygga något eget istället. Servern med alla förutsättningar får du i denna genomgång.

Innehåll

  1. Server
    1. VPS
  2. Installera webbserver samt inställningar
    1. Ny användare samt SSH
    2. Webbserver – nGinx, PHP och MySQL
    3. Brandvägg – UFW
    4. SFTP
  3. Testa webbservern
  4. Installera FFMPEG
  5. MySQL – Skapa databas
  6. PHP – inställningar för stora uppladdningar
  7. nGinx – inställningar för din webbsajt samt PlayTube
  8. Installera Playtube
  9. Vad händer nu?

1. Server

Vi kommer att sätta upp en Ubuntu 16.04 LTS serverinstans hos GleSYS, vilka jag har använt länge. På den servern kommer vi installera nGinx, PHP och MySQL så att vi har en färdig webbserver. Utöver detta, så måste vi installera FFMPEG som sköter konvertering av video till olika format.
Ni kan givetvis välja vilken leverentör av VPS ni vill, så länge ni vet att ert data finns där ni vill ha det. Typ i Sverige. Ett annat alternativ är ju också om ni har egna fysiska servrar som ni kan använda.

VPS

Videon ovan visar alla steg i detta kapitel

Det första vi gör är att vi sätter upp en ny serverinstans hos GleSYS eller den leverentör ni har. Jag väljer Ubuntu 16.04 LTS 64-bitar med datacenter i Stockholm. Det fina med en VPS är ju att vi kan öka eller minska resurser vartefter, så jag börjar med 1 CPU-kärna, 1024 MB ramminne, 10 GB hårddisk och 10 Mbit/s bandbredd. Detta kan vi ju utöka senare alltefter hur mycket resurser din sajt kräver.

Att konvertera video kräver en del CPU, så ju mer CPU desto snabbare och fler konverteringar och uppladdningar kan du ha igång. Det samma gäller bandbredden. Ju fler visningar ni har desto mer bandbredd krävs. Men börja lågt och stega uppåt. Den server vi drar igång med nu kommer alltså att kosta oss 144 kr ex. moms per månad. En annan fin sak med en VPS är att du kan dra i reglagen och öka minne, CPU och liknande och göra ändringar direkt utan att behöva starta om.

2. Installera webbserver samt inställningar

Nu när vår server är uppe och rullar är det dags att göra våra inställningar och installera den mjukvara vi behöver, som webbserver och liknande.

Videon ovan visar alla steg i detta kapitel

Terminalen och Nano

terminal i macos
Terminal i MacOS på min dator

Jag använder Terminal i MacOS för att koppla upp mig mot min server, så om du sitter på en Windows-maskin får du leta efter något liknande för Windows alternativt använda HTML5-versionen direkt via GleSYS.

Om du aldrig använt Nano som textedigerare i Linux, så kommer här några användbara kommandon.
Ctrl + x = Avsluta och spara
Ctrl + k = Radera raden du står på
Ctrl + w = Sök. Skriv din söksträng + enter
Ctrl + y = Scrolla upp en sida
Ctrl + n = Scrolla ned en sida
Piltangenter = hoppa runt som vanligt

Ny användare samt SSH

Vi börjar med att öppna terminalen och SSH:ar oss in i vår server som root.

ssh root@ip-adress-till-vår-server

Det första vi gör är att skapa en användare, så vi inte behöver (ska) logga in som root. Jag kommer skapa en användare som heter vpsuser. Sätt ett säkert lösenord även till den användaren när du får frågan.

adduser vpsuser
usermod -aG sudo vpsuser

Därefter öppnar vi konfigurationsfilen för ssh med nano (eller den textredigerare du gillar bäst)

nano /etc/ssh/sshd_config

Här letar vi rätt på följande och ändrar till nedanstående

Port 1256 (eller vilken port ni vill)
PermitRootLogin - no

Sedan startar vi om SSH med

service ssh restart

Logga ut och logga in igen, fast nu som vpsuser (då vi inte längre kan logga in med root) samt med vårt nya portnummer.

ssh -p 1256 vpsuser@ip-adress-till-vår-server

Vi kör lite uppdateringar och installerar lite grundprogram.

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install htop rsync ufw unzip

Webbserver – nGinx, PHP och MySQL

Nu är det dags att installera mjukvaran till vår webbserver.

nGinx

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install nginx-extras

MySQL

sudo apt-get install mysql-server
Sätt ett lösenord för MySQL root user.

sudo mysql_secure_installation
Validate password plugin – No
Remove anonymous users – Yes
Disallow root login remotely – Yes
Remove test database – Yes
Reload privilege tables – Yes

PHP

sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install php7.4 php7.4-cli php7.4-common
sudo apt-get install php-pear php7.4-curl php7.4-dev php7.4-gd php7.4-mbstring php7.4-zip php7.4-mysql php7.4-xml php7.4-fpm php7.4-imagick php7.4-tidy php7.4-xmlrpc php7.4-intl

Brandvägg – UFW

Nu är det dags att installera vår brandvägg.

sudo ufw status verbose
Här bör vi få ett svar om att brandväggen är inactive. Om den inte är installerad kan du göra det med apt-get install ufw.

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo sed -i "s/ports=22\/tcp/ports=1256\/tcp/g" /etc/ufw/applications.d/openssh-server
Viktigt ovan är att vi anger vår nya port, istället för port 22, som är default. Annars kommer vi låsa ute oss själva.

sudo ufw app list
sudo ufw allow OpenSSH
sudo ufw allow "Nginx HTTP"
sudo ufw allow "Nginx HTTPS"
sudo ufw allow ntp

Nu slår vi på brandväggen.
sudo ufw enable

SFTP

För att kunna använda en ftp-klient och ladda upp våra filer senare, så slår vi på möjlighet att använda SFTP. Vi börjar med att skapa ett säkert lösenord till vår användare www-data som redan finns i systemet

sudo passwd www-data

Vi öppnar filen passwd

sudo nano /etc/passwd

Leta rätt på raden
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
och ändra den till
www-data:x:33:33:www-data:/var/www:/bin/bash
Spara när du är klar.

3. Testa webbservern

Om nu allt har fungerat, så har vi en webbserver med (nu när jag publicerat detta inlägg) minst nGinx 1.16, PHP 7.4, MySQL 5.7. Nu är det dags att testa om det fungerar.

Videon ovan visar alla steg i detta kapitel

Vi börjar med att redigera konfigurationsfilen för nGinx.

sudo nano /etc/nginx/sites-available/default

Ta bort allt där och klistra in följande

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;

        index index.html index.htm index.php;

        server_name _;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

Spara därefter filen. Nu testar vi om nGinx hittar några fel

sudo nginx -t

Förhoppningsvis får du ett meddelande om att “test is successful”.

Ibland finns webbservern Apache installerad, så först testar vi att stoppa den

sudo service apache2 stop

Sedan avinstallerar vi Apache
sudo apt-get purge apache2 apache2-utils
sudo apt-get autoremove
sudo update-rc.d nginx enable

och därefter startar vi nGinx

sudo service nginx start

Nu går vi till mappen där våra webbfiler finns

cd /var/www/html

Ta bort alla filer i den katalogen

sudo rm *

och sedan skapar vi index.php

sudo nano index.php

och lägger till följande i den filen och sparar.

<?php
phpinfo();

Nu kan du öppna din webbläsare och skriva in ip-adressen till din server i adressfältet. Vi bör då mötas av följande sida som bilden nedan.

Här finns en massa information om vår server-setup och nu vet vi att allt fungerar som det ska. Grattis! Nu har du en webbserver som du kan hosta en massa webbplatser på, exempelvis genom att installera WordPress eller liknande.

Vi avslutar genom att ta bort den filen, då ingen behöver komma åt den.

sudo rm /var/www/html/index.php

4. Installera FFMPEG

Nu när hela webbserverdelen är klar, är det dags att installera mjukvaran på servern som tar hand om dina videofiler. FFMPEG är alltså mjukvaran som gör att dina filer kan konverteras till olika format.

Videon ovan visar alla steg i detta kapitel

Vi börjar med att byta användare till root med kommandot su

su

följt av root-lösenordet. Vissa av komponenterna behöver högre nivå än sudo.

Först kollar vi lite uppdateringar och ser till att det inte finns tidigare versioner av ffmpeg.

cd /usr/src
apt-get update && sudo apt-get upgrade
apt-get remove x264 ffmpeg

Därefter installerar vi lite verktyg

apt-get install joe make automake g++ bzip2 unzip patch subversion git yasm

apt-get install yum yum-utils

curl -O https://www.nasm.us/pub/nasm/releasebuilds/2.13.01/nasm-2.13.01.tar.gz
tar xzvf nasm-2.13.01.tar.gz
cd nasm-2.13.01
./configure --prefix=/opt/nasm
make
sudo make install
export PATH=/opt/nasm/bin/:$PATH

Nu ska vi utöka sökvägarna i följande fil, genom att öppna den

nano /etc/ld.so.conf

Om följande rader inte finns med, kopiera och klistra in dem

include /usr/lib
include /usr/local/lib

Kör sedan

ldconfig

Nu ska vi installera lite codecs

apt-get install libsdl1.2-dev zlib1g-dev libfaad-dev libfaac-dev libgsm1-dev libtheora-dev libvorbis-dev libspeex-dev libopencore-amrwb-dev libopencore-amrnb-dev libxvidcore-dev libxvidcore4 libmp3lame-dev libjpeg62 libjpeg62-dev

x264

Om du får svaret att nasm måste vara version 2.13 eller högre, starta om servern med reboot och börja om härifrån igen. Kom ihåg att köra som root och inte bara sudo.

git clone http://git.videolan.org/git/x264.git
cd x264/
./configure --enable-shared --enable-pic —disable-asm
make && make install
cd ..

libvpx

cd /usr/src
git clone https://chromium.googlesource.com/webm/libvpx
cd libvpx
./configure --enable-shared --enable-pic
make
make install
cd ..

FFMPEG

wget https://ffmpeg.org/releases/ffmpeg-4.3.tar.gz
tar -xvzf ffmpeg-4.3.tar.gz
cd ffmpeg-4.3
./configure --enable-gpl --enable-version3 --enable-shared --enable-nonfree --enable-postproc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid
make
make install
ldconfig

qt-faststart

cd tools
make qt-faststart
cp qt-faststart /usr/local/bin/
cd /usr/src

ImageMagick

apt-get install imagemagick 
apt-get install php-imagick
phpenmod imagick

Nu har vi installerat allt rörande FFMPEG och vi går vidare. Vi kan logga ut som root och växla tillbaka till användaren vpsuser genom

exit

5. MySQL – skapa databas

Nu är det dags att skapa vår MySQL-databas som vi kommer använda till vår sajt.

Videon ovan visar alla steg i detta kapitel

Först loggar vi in i MySQL med användaren root i MySQL och dess lösenord
mysql -u root -p

Nu skapar vi vår databas, där du får ersätta namn-på-din-databas med det namn du vill använda samt databasanvändare och lösenord till din databas.

CREATE DATABASE namn-på-din-databas DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT ALL ON namn-på-din-databas.* TO 'databasanvändare'@'localhost' IDENTIFIED BY 'lösenord';
FLUSH PRIVILEGES;
EXIT;

Nu är din databas uppe och redo att användas.

6. PHP – inställningar för stora uppladdningar

Vi måste göra några inställningar i vår konfigurationsfil för PHP så att vi kan tillåta uppladdningar av videofiler på flera GB samt göra så att inte scriptet (PlayTube) time:ar ut medans uppladdningarna sker. Det sker i filen php.ini

Videon ovan visar alla steg i detta kapitel

Vi öppnar filen php.ini

sudo nano /etc/php/7.4/fpm/php.ini

Sök sedan fram och ändra så att inställningarna är som här under. Dessa inställningar tillåter uppladdning av filer upp till 2 GB.
Kortkommando för att söka i nano är ctrl + w

file_uploads = On
post_max_size = 2024M
upload_max_filesize = 2024M
output_buffering = Off
max_execution_time = 6000
max_input_vars = 5000
max_input_time = 7000
zlib.output_compression = Off

När du sparat detta, startar vi om PHP-fpm med

sudo service php7.4-fpm restart

7. nGinx – inställningar för din webbsajt samt Playtube

Nu är det dags att göra våra inställningar i nGinx för att få din sajt att fungera. Här kommer jag inte gå igenom hur du gör med att sätta upp SSL och liknande, utan utgår från att du antingen har koll på detta eller kan googla fram den informationen. I konfigurationsfilen har jag med inställningar för SSL, så du kan utgå från dessa.
Det vi tar upp här är inställningar för att få Playtube att fungera.

Videon ovan visar alla steg i detta kapitel

Vi börjar med att skapa en ny mapp för vår sajt, som i mitt fall är eduTV, så jag kommer använda det i exemplet. Vi skapar en mapp som heter edutv.se. I den mappen skapar jag ytterligare två mappar; en som heter public där alla våra filer som ska vara åtkomliga från webben ligger samt en mapp som heter logs, där vi kan spara loggfiler om vi vill.

sudo mkdir /var/www/edutv.se
sudo mkdir /var/www/edutv.se/public
sudo mkdir /var/www/edutv.se/logs

Vi ger rättigheterna till dessa mappar till användaren www-data

sudo chown -R www-data:www-data /var/www

playtube.conf

Den nGinx-konfigurations-fil som kommer med Playtube fungerar inte. Så vi skapar en egen fil som heter playtube.conf som har de korrekta värdena.

sudo nano /etc/nginx/snippets/playtube.conf

Kopiera därefter nedanstående och klistra in. Spara sedan filen.

### PlayTube ###

    location / {
    if (!-e $request_filename){
    rewrite ^/$ /index.php?link1=home;
    }
    if (!-e $request_filename){
    rewrite ^/aj/([^/.]+)/?$ /ajax.php?type=$1&first=$2;
    rewrite ^/aj/([^/.]+)/([^/.]+)/?$ /ajax.php?type=$1&first=$2;
    rewrite ^/aj/([^/.]+)/([^/.]+)/([^/.]+)/?$ /ajax.php?type=$1&first=$2&second=$3;
    }
    rewrite ^/@([^\/]+)(\/|)$ /index.php?link1=timeline&id=$1;
    if (!-e $request_filename){
    rewrite ^/([^\/]+)(\/|)$ /index.php?link1=$1;
    }
    }

    location /reset {
    rewrite ^/reset-password/([^\/]+)(\/|)$ /index.php?link1=reset-password&code=$1;
    }

    location /confirm {
    rewrite ^/confirm/(.*)/(.*)$ /index.php?link1=confirm&code=$1&email=$2;
    }

    location /api {
    rewrite ^/api/v(([0-9])([.][0-9]+))(\/|)$ /api.php?v=$1;
    }

    location /admin {
    rewrite ^/admin-cp$ /admincp.php;
    rewrite ^/admin-cp/(.*)$ /admincp.php?page=$1;
    }

    location /admin-cdn/ {
    alias /admin-panel/;
    }

    location /videos {
    rewrite ^/videos/category/(.*)/rss(\/|)$ /index.php?link1=videos&page=category&id=$1&feed=rss;
    rewrite ^/videos/category/(.*)$ /index.php?link1=videos&page=category&id=$1;
    rewrite ^/videos/(.*)/rss(\/|)$ /index.php?link1=videos&page=$1&feed=rss;
    rewrite ^/videos/(.*)$ /index.php?link1=videos&page=$1;
    }

    location /articles {
    rewrite ^/articles(\/|)$ /index.php?link1=articles;
    rewrite ^/articles/category/(\d+)(\/|)$ /index.php?link1=articles&category_id=$1;
    rewrite ^/articles/read/(.*)(\/|)$ /index.php?link1=read&id=$1;
    }

    location /edit {
    rewrite ^/edit-video/(.*)?$ /index.php?link1=edit-video&id=$1;
    }

    location /watch {
    rewrite ^/watch/([^\/]+)(\/|)?$ /index.php?link1=watch&id=$1;
    rewrite ^/watch/([^\/]+)/list/([^\/]+)(\/|)?$ /index.php?link1=watch&id=$1&list=$2;
    }

    location /embed {
    rewrite ^/embed/(.*)?$ /index.php?link1=embed&id=$1;
    }

    location /resend {
    rewrite ^/resend/(.*)/(.*)?$ /index.php?link1=resend&id=$1&u_id=$2;
    }

    location /redirect {
    rewrite ^/redirect/(.*)?$ /index.php?link1=redirect&id=$1;
    }

    location /settings {
    rewrite ^/settings/(.*)/(.*)$ /index.php?link1=settings&page=$1&user=$2;
    rewrite ^/settings/(.*)$ /index.php?link1=settings&page=$1;
    }

    location /terms {
    rewrite ^/terms/([^\/]+)(\/|)$ /index.php?link1=terms&type=$1;
    }

    location /go_pro {
    rewrite ^/go_pro(\/|)$ /index.php?link1=go_pro;
    }

    location /ads {
    rewrite ^/ads(\/|)$ /index.php?link1=ads;
    rewrite ^/ads/create(\/|)$ /index.php?link1=create_ads;
    rewrite ^/ads/edit/(\d+)(\/|)$ /index.php?link1=edit_ads&id=$1;
    }

    location /contact {
    rewrite ^/contact-us(\/|)$ /index.php?link1=contact;
    }

edutv.se

Nu ska vi göra våra inställningar för vår sajt. Jag kommer att skapa en konfigurationsfil för min sajt edutv.se – där ni får döpa den till vad ni vill. Vi börjar med att skapa filen

sudo nano /etc/nginx/sites-available/edutv.se

Kopiera därefter nedanstående och klistra in. Här får ni givetvis ändra sökvägarna till SSL så att det stämmer för er. Jag har, som ni ser, lagt mina SSL-certifkat i mappen /etc/nginx/ssl. Om ni har dem någon annanstans får ni ändra det också.
Ni måste givetvis ändra allt som rör domännamn och liknande också. Det här är en grundläggande uppsättning, som ni kan jobba vidare med.

server {
    listen 80;
    server_name edutv.se www.edutv.se;
    return 301 https://edutv.se$request_uri;
}

server {
    listen [::]:443 ssl http2 ipv6only=on;
    listen 443 ssl http2;
    server_name edutv.se;

    add_header Strict-Transport-Security "max-age=15768000" always;

    server_tokens off;
    server_name_in_redirect off;

    reset_timedout_connection on;
    ssl_certificate /etc/nginx/ssl/dinsajt.crt;
    ssl_certificate_key /etc/nginx/ssl/dinsajt.key;
    ssl_session_timeout  10m;
    ssl_prefer_server_ciphers on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_session_cache shared:SSL:10m;
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    keepalive_timeout   70;

    error_log /var/www/edutv.se/logs/error.log;
    access_log /var/www/edutv.se/logs/access.log;
    
    root /var/www/edutv.se/public;
    autoindex off;
    index index.php index.htm index.html;
    
    client_max_body_size 2024M;

    location ~* .(ico|jpg|webp|jpeg|gif|css|png|js|ico|bmp|zip|woff)$ {
    access_log off;
    log_not_found off;
    add_header Pragma public;
    add_header Cache-Control "public";
    expires 14d;
    }

    gzip on;
    gzip_disable "msie6";
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;	
    gzip_types application/javascript application/rss+xml application/vnd.ms-fontobject application/x-font application/x-font-opentype application/x-font-otf application/x-font-truetype application/x-font-ttf application/x-javascript application/xhtml+xml application/xml font/opentype font/otf font/ttf image/svg+xml image/x-icon text/css text/javascript text/plain text/xml;

    location ~* .(ico|jpg|webp|jpeg|gif|css|png|js|ico|bmp|zip|woff)$ {
    access_log off;
    log_not_found off;
    add_header Pragma public;
    add_header Cache-Control "public";
    expires 14d;
    }

    location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /\.ht {
    deny all;
    }

    # Include configuration files
    include /etc/nginx/snippets/playtube.conf;
}

 

Vi avslutar med nedanstående – där du givetvis måste ändra beroende på om du döpte din konfigurationfil till något annat.

sudo ln -s /etc/nginx/sites-available/edutv.se /etc/nginx/sites-enabled/edutv.se

Nu testar vi om vår nGinx-konfiguration fungerar genom

sudo nginx -t

och förhoppningsvis så ser allt bra ut. Vi laddar om nGinx-servern nu, när allt ser bra ut med

sudo service nginx reload

och sedan skapar vi en enkel index.php för att se att vår domän fungerar och att vi har SSL.

sudo nano /var/www/edutv.se/public/index.php

I filen skriver jag bara “hej hej” och sparar. Öppna sedan webbläsaren och surfa in på din domän, i mitt fall edutv.se. Om allt fungerar så kommer vi mötas av föjande, där vi ser vår text samt att vi har “låset” – och att anslutningen är säker.

Nu är allt klart och det är dags att installera Playtube.

8. Installera Playtube

Nu är vi nästan klara och ska bara installera scriptet Playtube. Eftersom det redan finns dokumentation kring hur du installerar detta i paketet för Playtube, så kommer jag inte att gå in på det något djupare. Dock är detta den enkla biten, eftersom vi redan gjort allt förarbete.

Det första vi gör är att ladda upp filerna till vår webbserver. Detta gör vi via SFTP och jag använder Filezilla som ftp-klient. Logga in med kontot www-data och dess användarnamn.
Ladda upp alla filer i den lokala Playtube-mappen Script till /var/www/edutv.se/public – där du får byta ut edutv.se mot det namn du gett din mapp på servern.

Se sedan till att dina mappar och filer har rätt rättigheter (mapp = 0755 och filer = 0644).

Öppna därefter din webbläsare och skriv in din URL – i mitt fall edutv.se/install och fyll i alla uppgifter som efterfrågas.

När du fyll i uppgifterna och klickat på install och du är färdig raderar du mappen install på din server.

Nu är du färdig och det är bara att logga in på din sajt och börja utforska alla funktioner som finns där. Det första vi gör dock är att gå in i Settings > General Settings och ändrar inställarna för FFMPEG.

Här ska vi ändra sökvägen till FFMPEG till /usr/local/bin/ffmpeg
Utöver det, så kan du ställa in hur många samtidiga processer som FFMPEG får jobba med, alltså hur många filmer som samtidigt kan konverteras. Det här beror helt enkelt på hur kraftfull din server är och hur ofta det laddas upp film. Ju fler processer, desto mer CPU på din server.
Detsamma gäller även Convert Video Speed. Jag har den satt till medium.

Du kan alltid använda dig av kommandot htop på din server

htop

för att övervaka resurserna på din server. Testa att ladda upp filmer och se hur din server påverkas.

9. Vad händer nu?

Nu är det egentligen bara för dig att mecka runt och utforska Playtube, fixa en egen logo, skapa konton och köra igång. Givetvis finns det också en uppsjö av optimering och säkerhetsgrejande att fixa med gällande både server, nGinx och PHP, men det är inget jag tar upp här. Det finns massvis av information kring detta på internet.

Om du har frågor eller bara vill säga något, så är du välkommen att gör det här i kommentarerna eller på valfritt socialt medie.

Skrivet av
Micke Kring
Diskutera detta