diff --git a/debian/.gitignore b/debian/.gitignore new file mode 100644 index 00000000..2523b228 --- /dev/null +++ b/debian/.gitignore @@ -0,0 +1,5 @@ +files +*debhelper.log +*substvars +spreed-webrtc-server +*.debhelper diff --git a/debian/compat b/debian/compat new file mode 100644 index 00000000..7ed6ff82 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +5 diff --git a/debian/control b/debian/control new file mode 100644 index 00000000..8733bc9d --- /dev/null +++ b/debian/control @@ -0,0 +1,15 @@ +Source: spreed-webrtc-server +Section: admin +Priority: optional +Maintainer: Benjamin Renard +Build-Depends: debhelper (>= 5.0.0) +Build-Depends-Indep: automake, autogen, autoconf, golang, nodejs, ruby-compass +Standards-Version: 3.8.0 + +Package: spreed-webrtc-server +Section: admin +Priority: standard +Architecture: all +Depends: sed +Description: Spreed WebRTC server + This package provide Spreed WebRTC server. diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000..d160fa82 --- /dev/null +++ b/debian/rules @@ -0,0 +1,8 @@ +#!/usr/bin/make -f + +%: + dh $@ + +override_dh_auto_configure: + ./autogen.sh + dh_auto_configure diff --git a/debian/spreed-webrtc-server.dirs b/debian/spreed-webrtc-server.dirs new file mode 100644 index 00000000..cbe272c0 --- /dev/null +++ b/debian/spreed-webrtc-server.dirs @@ -0,0 +1,2 @@ +/etc/spreed-webrtc +/usr/share/doc/spreed-webrtc-server diff --git a/debian/spreed-webrtc-server.docs b/debian/spreed-webrtc-server.docs new file mode 100644 index 00000000..8c656035 --- /dev/null +++ b/debian/spreed-webrtc-server.docs @@ -0,0 +1,6 @@ +server.conf.in +NEWS +README.md +AUTHORS +ChangeLog +LICENSE diff --git a/debian/spreed-webrtc-server.logrotate b/debian/spreed-webrtc-server.logrotate new file mode 100644 index 00000000..13e414e1 --- /dev/null +++ b/debian/spreed-webrtc-server.logrotate @@ -0,0 +1,10 @@ +/var/log/spreed-webrtc-server.log { + weekly + missingok + rotate 4 + compress + delaycompress + notifempty + create 0640 spring-webrtc adm + sharedscripts +} diff --git a/debian/spreed-webrtc-server.postinst b/debian/spreed-webrtc-server.postinst new file mode 100644 index 00000000..4eb0e70f --- /dev/null +++ b/debian/spreed-webrtc-server.postinst @@ -0,0 +1,79 @@ +#!/bin/bash +# postinst script for spreed-webrtc-server +# +# see: dh_installdeb(1) + +set -e + +CONF_FILE=/etc/spreed-webrtc/server.conf +DEFAULT_CONF_FILE=/usr/share/doc/spreed-webrtc-server/server.conf.in.gz +ROOT_DIR=/usr/share/spreed-webrtc-server/www +LOG_FILE=/var/log/spreed-webrtc-server.log + +# Source debconf library. +if [ -e /usr/share/debconf/confmodule ]; then + . /usr/share/debconf/confmodule +fi + +case "$1" in + configure) + # user spreed-webrtc + getent passwd spreed-webrtc >/dev/null + if [ $? -ne 0 ] + then + adduser --quiet \ + --system \ + --quiet \ + --disabled-login \ + --disabled-password \ + --home /usr/share/spreed-webrtc-server \ + --no-create-home \ + -gecos "Spread WebRTC" \ + spreed-webrtc + fi + if [ ! -e /var/log/spreed-webrtc-server.log ] + then + touch /var/log/spreed-webrtc-server.log + chown spreed-webrtc:adm /var/log/spreed-webrtc-server.log + fi + + if [ ! -e $CONF_FILE ] + then + # Install example configuration file + gzip -k --stdout -d $DEFAULT_CONF_FILE > $CONF_FILE + + # Configure root directory + sed -i "s|^[; ]*root = .*$|root = $ROOT_DIR|" $CONF_FILE + + # Configure log file + sed -i "s|^[; ]*logfile = .*$|logfile = $LOG_FILE|" $CONF_FILE + + # Configure HTTP Listener + db_input medium spreed-webrtc-server/http_ip_port + db_go + db_get spreed-webrtc-server/http_ip_port + if [ -n "$RET" ] + then + sed -i "s/^[; ]*listen = 127.0.0.1:8080$/listen = $RET/" $CONF_FILE + fi + + # Configure STUN servers + db_input medium spreed-webrtc-server/stun_servers + db_go + db_get spreed-webrtc-server/stun_servers + if [ -n "$RET" ] + then + sed -i "s/^\([; ]*stunURIs = .*\)$/\1\nstunURIs = $RET\n/" $CONF_FILE + fi + + # Generate random secrets + for secret in sessionSecret encryptionSecret serverToken + do + KEY=$( tr -dc A-Za-z0-9_ < /dev/urandom | head -c32 ) + sed -i "s/^\([; ]*$secret = .*\)$/\1\n$secret = $KEY\n/" $CONF_FILE + done + fi + ;; +esac + +#DEBHELPER# diff --git a/debian/spreed-webrtc-server.service b/debian/spreed-webrtc-server.service new file mode 100644 index 00000000..3e8209c4 --- /dev/null +++ b/debian/spreed-webrtc-server.service @@ -0,0 +1,11 @@ +[Unit] +Description=Spreed WebRTC server +After=network.target + +[Service] +User=spreed-webrtc +WorkingDirectory=/usr/share/spreed-webrtc-server/www +ExecStart=/usr/sbin/spreed-webrtc-server -c=/etc/spreed-webrtc/server.conf + +[Install] +WantedBy=multi-user.target diff --git a/debian/spreed-webrtc-server.templates b/debian/spreed-webrtc-server.templates new file mode 100644 index 00000000..9cbe2a00 --- /dev/null +++ b/debian/spreed-webrtc-server.templates @@ -0,0 +1,16 @@ +Template: spreed-webrtc-server/http_ip_port +Type: string +Default: 127.0.0.1:8080 +Description: HTTP Listener + Please enter HTTP listener in format host:port + . + If this field is left blank, the default value will be used : 127.0.0.1:8080 + +Template: spreed-webrtc-server/stun_servers +Type: string +Description: STUN server(s) URI(s) + Please enter STUN server(s) URI(s) in format 'stun:host:port' + . + You can provide multiple seperated by space. If you do not have one use a + public one like stun.spreed.me:443. If you have a TURN server you do not + need to set an STUN server as the TURN server will provide STUN services.