Skip to content

emrahcom/emrah-buster-templates

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of contents


About

emrah-buster is an installer to create the containerized systems on Debian Buster (version 10) host. It built on top of LXC (Linux containers). This repository contains the emrah-buster templates.

Usage

Download the installer, run it with a template name as an argument and drink a coffee. That's it.

wget https://raw.githubusercontent.com/emrahcom/emrah-buster-base/master/installer/eb
wget https://raw.githubusercontent.com/emrahcom/emrah-buster-templates/master/installer/<TEMPLATE_NAME>.conf
bash eb <TEMPLATE_NAME>

Example

To install a streaming media system, login a Debian Buster (version 10) host as root and

wget https://raw.githubusercontent.com/emrahcom/emrah-buster-base/master/installer/eb
wget https://raw.githubusercontent.com/emrahcom/emrah-buster-templates/master/installer/eb-livestream.conf
bash eb eb-livestream

Available templates

eb-base

Install only a containerized Debian Buster.

To install eb-base

wget https://raw.githubusercontent.com/emrahcom/emrah-buster-base/master/installer/eb
wget https://raw.githubusercontent.com/emrahcom/emrah-buster-templates/master/installer/eb-base.conf
bash eb eb-base

eb-livestream

Install a ready-to-use live streaming media system. See the livestream page for details.

Main components of eb-livestream

  • Nginx server with nginx-rtmp-module as a stream origin. It gets the RTMP stream and convert it to HLS and DASH.

  • Nginx server with standart modules as a stream edge. It publish the HLS and DASH stream.

  • Web based HLS video player.

  • Web based DASH video player.

To install eb-livestream

wget https://raw.githubusercontent.com/emrahcom/emrah-buster-base/master/installer/eb
wget https://raw.githubusercontent.com/emrahcom/emrah-buster-templates/master/installer/eb-livestream.conf
bash eb eb-livestream

After installing eb-livestream

  • rtmp://<IP_ADDRESS>/livestream/<CHANNEL_NAME> to push an RTMP stream.

  • http://<IP_ADDRESS>/livestream/hls/<CHANNEL_NAME>/index.m3u8 to pull the HLS stream.

  • http://<IP_ADDRESS>/livestream/dash/<CHANNEL_NAME>/index.mpd to pull the DASH stream.

  • http://<IP_ADDRESS>/livestream/hlsplayer/<CHANNEL_NAME> for the HLS video player page.

  • http://<IP_ADDRESS>/livestream/dashplayer/<CHANNEL_NAME> for the DASH video player page.

  • http://<IP_ADDRESS>:8000/livestream/status for the RTMP status page.

  • http://<IP_ADDRESS>:8000/livestream/cloner for the stream cloner page. Thanks to nejdetckenobi

Related links to eb-livestream


eb-gitea

Install a ready-to-use self-hosted Git service. Only AMD64 architecture is supported for this template. Please contact me if you need eb-gitea for an other architecture.

Main components of eb-gitea

To install eb-gitea

wget https://raw.githubusercontent.com/emrahcom/emrah-buster-base/master/installer/eb
wget https://raw.githubusercontent.com/emrahcom/emrah-buster-templates/master/installer/eb-gitea.conf
bash eb eb-gitea

After installing eb-gitea

There is one more step to finish the installation. It's needed to fill the initial configuration form of Gitea. Only two fields will be changed: SSH Server Domain and Gitea Base URL.

Very easy!

  • Access https://<IP_ADDRESS>/install to fill the Gitea config form.

  • SSH Server Domain: Write your host FQDN or IP address. Examples:
    git.mydomain.com
    123.2.3.4

  • Gitea Base URL: Write your URL. HTTP and HTTPS are OK. Examples:
    https://git.mydomain.com/
    https://123.2.3.4/

  • Don't change the other fields. They are all OK.

  • The first registered user will be the administrator.

Customizing eb-gitea

Edit /home/gitea/custom/conf/app.ini file and restart the service to customize Gitea. These are the customized settings of my private server. See cheat-sheet for more details.

  • PASSWORD_COMPLEXITY = lower,upper,digit
  • FORCE_PRIVATE = true
  • DEFAULT_PRIVATE = true
  • DISABLE_REGISTRATION = true
  • REQUIRE_SIGNIN_VIEW = true
  • DEFAULT_KEEP_EMAIL_PRIVATE = true
  • [mailer] ENABLED = true
  • [mailer] HOST = my-smtp-server.domain.com:587
  • [mailer] FROM = emrah@domain.com
  • [mailer] USER = emrah@domain.com
  • [mailer] PASSWD = my-secret

eb-jitsi

Install a ready-to-use self-hosted Jitsi/Jibri service.

Thanks to Ave and Fatih for their support.

Main components of eb-jitsi

Before installing eb-jitsi

  • Jibri needs snd_aloop kernel module, therefore it's not OK with the cloud kernel. Install the standard Linux kernel first if this is the case.

  • It's needed a resolvable host address for your server and this address has to point to your server. Therefore add the DNS A record first if you didn't add yet. This host address will be used as JITSI_HOST in the installer config file.

To install eb-jitsi

Download the installer

wget https://raw.githubusercontent.com/emrahcom/emrah-buster-base/master/installer/eb
wget https://raw.githubusercontent.com/emrahcom/emrah-buster-templates/master/installer/eb-jitsi.conf

Open eb-jitsi.conf file with an editor and change the JITSI_HOST value.

vim eb-jitsi.conf

Write the host address of your server as JITSI_HOST, save it and close the file.

export JITSI_HOST=jitsi.mydomain.com

And run the installer

bash eb eb-jitsi

Customizing eb-jitsi

You may want to change the following values in /etc/jitsi/meet/YOUR_HOST_ADDRESS-config.js. This file is on the eb-jitsi container, not on the host.

  • startAudioMuted
  • resolution
  • startVideoMuted
  • channelLastN
  • requireDisplayName
  • defaultLanguage
  • disableAudioLevels

Jitsi cluster

See Jitsi cluster document


Let's Encrypt support

To set the Let's Encrypt certificate, run the following commands on the host:

FQDN="your.host.fqdn"
set-letsencrypt-cert $FQDN

Requirements

emrah-buster requires a Debian Buster (version 10) host with a minimal install and the Internet access during the installation. It's not a good idea to use your desktop machine or an already in-use production server as a host machine. Please, use one of the followings as a host:

  • a cloud computer from a hosting/cloud service (DigitalOcean's droplet, Amazon EC2 instance etc)

  • a virtual machine (VMware, VirtualBox etc)

  • a Debian Buster container (with the nesting support)

    lxc.include = /usr/share/lxc/config/nesting.conf
    lxc.apparmor.profile = unconfined
    lxc.apparmor.allow_nesting = 1
    
  • a physical machine with a fresh installed Debian 10 Buster