iInitial commit. - bitreich-conference - Bitreich Conference System Err bitreich.org 70 hgit clone git://bitreich.org/bitreich-conference git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/bitreich-conference URL:git://bitreich.org/bitreich-conference git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/bitreich-conference bitreich.org 70 1Log /scm/bitreich-conference/log.gph bitreich.org 70 1Files /scm/bitreich-conference/files.gph bitreich.org 70 1Refs /scm/bitreich-conference/refs.gph bitreich.org 70 1Tags /scm/bitreich-conference/tag bitreich.org 70 1README /scm/bitreich-conference/file/README.md.gph bitreich.org 70 1LICENSE /scm/bitreich-conference/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 4e45edcc18a5ec88c454ebbe6f695e36d382b325 /scm/bitreich-conference/commit/4e45edcc18a5ec88c454ebbe6f695e36d382b325.gph bitreich.org 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70 iDate: Fri, 8 Apr 2022 18:42:39 +0200 Err bitreich.org 70 i Err bitreich.org 70 iInitial commit. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i A README.md | 113 +++++++++++++++++++++++++++++++ Err bitreich.org 70 i A bin/bitreich-con-hold-presentation | 33 +++++++++++++++++++++++++++++++ Err bitreich.org 70 i A bin/bitreich-con-start-conference | 21 +++++++++++++++++++++ Err bitreich.org 70 i A bin/bitreich-con-stop-conference | 16 ++++++++++++++++ Err bitreich.org 70 i A bin/bitreich-con-teaser-shell | 45 +++++++++++++++++++++++++++++++ Err bitreich.org 70 i A bin/bitreich-con-view-presentation | 39 +++++++++++++++++++++++++++++++ Err bitreich.org 70 i A bin/bitreich-con-visitor-count | 4 ++++ Err bitreich.org 70 i Err bitreich.org 70 i7 files changed, 271 insertions(+), 0 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/README.md b/README.md /scm/bitreich-conference/file/README.md.gph bitreich.org 70 i@@ -0,0 +1,113 @@ Err bitreich.org 70 i+# The Bitreich Conference System Err bitreich.org 70 i+ Err bitreich.org 70 i+## Overview Err bitreich.org 70 i+ Err bitreich.org 70 i+How do people perceive the conference content? Err bitreich.org 70 i+ Err bitreich.org 70 i+ ssh visitor@bitreich.org Err bitreich.org 70 i+ Err bitreich.org 70 i+On screen is shown what the presenter shows on the commandline. At the Err bitreich.org 70 i+bitreich conferences this is mostly some slides shown using catpoint(1). Err bitreich.org 70 i+(git://bitreich.org/pointtools) Err bitreich.org 70 i+ Err bitreich.org 70 i+ mpv gopher://bitreich.org/9/radio/listen Err bitreich.org 70 i+ Err bitreich.org 70 i+This is simple some audio stream of any kind, which is generated by the Err bitreich.org 70 i+presenter or the audio server. Here at bitreich we use icecast and some Err bitreich.org 70 i+simple frontend script for http2gopher. Err bitreich.org 70 i+ Err bitreich.org 70 i+Overall this will require at maximum 120 kb/s per visitor. You could Err bitreich.org 70 i+strip down audio quality even more. The ssh slides are bytes per second, Err bitreich.org 70 i+if any. Err bitreich.org 70 i+ Err bitreich.org 70 i+ Err bitreich.org 70 i+## Setup Err bitreich.org 70 i+ Err bitreich.org 70 i+You will need to adapt all scripts to your needs. It is simple. So do not Err bitreich.org 70 i+fear. Err bitreich.org 70 i+ Err bitreich.org 70 i+1. Create a presenter account. Err bitreich.org 70 i+2. Create a visitor account. Err bitreich.org 70 i+3. Install abduco. Err bitreich.org 70 i+5. Copy over the modified scripts from bin/ to your PATH. Err bitreich.org 70 i+ 1. Modify in all scripts the prefix /br to your needs. Err bitreich.org 70 i+ 2. Create the $PREFIX/con directory, where all communication is Err bitreich.org 70 i+ handled. Err bitreich.org 70 i+6. Run the scripts accordingly. Err bitreich.org 70 i+ Err bitreich.org 70 i+7. Setup audio via icecast etc. Err bitreich.org 70 i+ Err bitreich.org 70 i+## Visitor account. Err bitreich.org 70 i+ Err bitreich.org 70 i+For /etc/ssh/sshd_config: Err bitreich.org 70 i+ Err bitreich.org 70 i+ Match user visitor Err bitreich.org 70 i+ AllowAgentForwarding no Err bitreich.org 70 i+ AllowTcpForwarding no Err bitreich.org 70 i+ GatewayPorts no Err bitreich.org 70 i+ X11Forwarding no Err bitreich.org 70 i+ PermitTunnel no Err bitreich.org 70 i+ X11UseLocalhost no Err bitreich.org 70 i+ PermitTTY yes Err bitreich.org 70 i+ PasswordAuthentication yes Err bitreich.org 70 i+ PermitEmptyPasswords yes Err bitreich.org 70 i+ ForceCommand /path/to/bitreich-con-view-presentation Err bitreich.org 70 i+ Err bitreich.org 70 i+Depending on how secure you want access, disabling any authentication for Err bitreich.org 70 i+this account is possible. Err bitreich.org 70 i+ Err bitreich.org 70 i+## Start a Conference Err bitreich.org 70 i+ Err bitreich.org 70 i+ bitreich-con-start-conference Err bitreich.org 70 i+ Err bitreich.org 70 i+The socket for visitor and presenter attachment is created. The teaser Err bitreich.org 70 i+shell is run. Err bitreich.org 70 i+ Err bitreich.org 70 i+## Watch the Presentation Err bitreich.org 70 i+ Err bitreich.org 70 i+ bitreich-con-view-presentation Err bitreich.org 70 i+ Err bitreich.org 70 i+See visitor account preparation above. Err bitreich.org 70 i+ Err bitreich.org 70 i+## Hold a Presentation Err bitreich.org 70 i+ Err bitreich.org 70 i+Presenter logs into presenter account and runs: Err bitreich.org 70 i+ Err bitreich.org 70 i+ bitreich-con-hold-presentation Err bitreich.org 70 i+ Err bitreich.org 70 i+In the teaser shell the presenter presses Enter to get into the presenter Err bitreich.org 70 i+shell. There all possibilities of the presenter account on the Err bitreich.org 70 i+commandline is possible. Err bitreich.org 70 i+ Err bitreich.org 70 i+## bitreich-con-teaser-shell Err bitreich.org 70 i+ Err bitreich.org 70 i+Please see in this script, how ads are shown. You can download examples Err bitreich.org 70 i+from Err bitreich.org 70 i+ Err bitreich.org 70 i+ gopher://bitreich.org/1/con/2019/ads Err bitreich.org 70 i+ Err bitreich.org 70 i+It is all simple text, just cat(1)ed to the screen in an random order. Err bitreich.org 70 i+ Err bitreich.org 70 i+When a presenter pressed Enter in the teaser shell, the presentation mode Err bitreich.org 70 i+is started. Err bitreich.org 70 i+ Err bitreich.org 70 i+## Stop a Conference Err bitreich.org 70 i+ Err bitreich.org 70 i+ bitreich-con-stop-conference Err bitreich.org 70 i+ Err bitreich.org 70 i+This will remove all sockets and remains of the conference. Err bitreich.org 70 i+ Err bitreich.org 70 i+## bitreich-con-visitor-count Err bitreich.org 70 i+ Err bitreich.org 70 i+This is a simple shell to show you how, after you have set up the Err bitreich.org 70 i+conference system, visitors can be counted using standard shell commands. Err bitreich.org 70 i+ Err bitreich.org 70 i+## Comments Err bitreich.org 70 i+ Err bitreich.org 70 i+Send comments to: Err bitreich.org 70 i+ Err bitreich.org 70 i+ Christoph Lohmann <20h@r-36.net> or on #bitreich-en Err bitreich.org 70 i+ irc.bitreich.org Err bitreich.org 70 i+ Err bitreich.org 70 i+Have fun! Err bitreich.org 70 i+ Err bitreich.org 70 1diff --git a/bin/bitreich-con-hold-presentation b/bin/bitreich-con-hold-presentation /scm/bitreich-conference/file/bin/bitreich-con-hold-presentation.gph bitreich.org 70 i@@ -0,0 +1,33 @@ Err bitreich.org 70 i+#!/bin/sh Err bitreich.org 70 i+ Err bitreich.org 70 i+if [ $# -lt 1 ]; Err bitreich.org 70 i+then Err bitreich.org 70 i+ year="$(date +%Y)" Err bitreich.org 70 i+else Err bitreich.org 70 i+ year="$1" Err bitreich.org 70 i+fi Err bitreich.org 70 i+ Err bitreich.org 70 i+# Handled in bitreich-con-start-conference for a common value. Err bitreich.org 70 i+#printf 'CONTERMCOL=%d\nCONTERMLIN=%d' "$(tput cols)" "$(tput lines)" \ Err bitreich.org 70 i+# > "/br/con/termres${year}" Err bitreich.org 70 i+ Err bitreich.org 70 i+<<\. cat Err bitreich.org 70 i+You will be connected to the conference holding terminal. Err bitreich.org 70 i+There just type Enter and you will get a bash prompt to hold your Err bitreich.org 70 i+presentation. Err bitreich.org 70 i+ Err bitreich.org 70 i+It is advised to first resize your presentation terminal. The Err bitreich.org 70 i+viewers were advised to resize their terminal to 100x35. That Err bitreich.org 70 i+the space you have. So do not go beyond that. Err bitreich.org 70 i+ Err bitreich.org 70 i+Type in ^\ (control+'\') to detach from it. Err bitreich.org 70 i+ Err bitreich.org 70 i+To reconnect to it, simply run this script again. Err bitreich.org 70 i+Press any key to continue. Err bitreich.org 70 i+. Err bitreich.org 70 i+ Err bitreich.org 70 i+read keypressed Err bitreich.org 70 i+ Err bitreich.org 70 i+#env ABDUCO_SOCKET_DIR=/br/con/abduco abduco -A bitreichcon2017 Err bitreich.org 70 i+abduco -A "/br/con/sock/bitreichcon${year}" Err bitreich.org 70 i+ Err bitreich.org 70 1diff --git a/bin/bitreich-con-start-conference b/bin/bitreich-con-start-conference /scm/bitreich-conference/file/bin/bitreich-con-start-conference.gph bitreich.org 70 i@@ -0,0 +1,21 @@ Err bitreich.org 70 i+#!/bin/sh Err bitreich.org 70 i+ Err bitreich.org 70 i+if [ $# -lt 1 ]; Err bitreich.org 70 i+then Err bitreich.org 70 i+ year="$(date +%Y)" Err bitreich.org 70 i+else Err bitreich.org 70 i+ year="$1" Err bitreich.org 70 i+fi Err bitreich.org 70 i+ Err bitreich.org 70 i+# Set a good default. Err bitreich.org 70 i+printf "CONTERMCOL=%d\nCONTERMLIN=%d" "100" "35" \ Err bitreich.org 70 i+ > "/br/con/termres${year}" Err bitreich.org 70 i+sudo -u presenter chmod g+w,g+r "/br/con/termres${year}" Err bitreich.org 70 i+ Err bitreich.org 70 i+#env ABDUCO_SOCKET_DIR=/br/con/abduco abduco -A bitreichcon${year} Err bitreich.org 70 i+sudo -u presenter abduco -n "/br/con/sock/bitreichcon${year}" /br/bin/bitreich-con-teaser-shell "${year}" Err bitreich.org 70 i+sudo -u presenter chmod g+w,g+r "/br/con/sock/bitreichcon${year}" Err bitreich.org 70 i+ Err bitreich.org 70 i+printf "The conference is now active and showing ads.\n" Err bitreich.org 70 i+printf "Now run bitreich-hold-presentation on your behalf.\n" Err bitreich.org 70 i+ Err bitreich.org 70 1diff --git a/bin/bitreich-con-stop-conference b/bin/bitreich-con-stop-conference /scm/bitreich-conference/file/bin/bitreich-con-stop-conference.gph bitreich.org 70 i@@ -0,0 +1,16 @@ Err bitreich.org 70 i+#!/bin/sh Err bitreich.org 70 i+ Err bitreich.org 70 i+if [ $# -lt 1 ]; Err bitreich.org 70 i+then Err bitreich.org 70 i+ year="$(date +%Y)" Err bitreich.org 70 i+else Err bitreich.org 70 i+ year="$1" Err bitreich.org 70 i+fi Err bitreich.org 70 i+ Err bitreich.org 70 i+rm -f /br/con/sock/bitreichcon${year} Err bitreich.org 70 i+rm -f /br/con/termres${year} Err bitreich.org 70 i+pkill -u presenter -f "bitreichcon${year}" Err bitreich.org 70 i+ Err bitreich.org 70 i+printf "All abduco sessions have been closed.\n" Err bitreich.org 70 i+printf "All was fun! :)\n" Err bitreich.org 70 i+ Err bitreich.org 70 1diff --git a/bin/bitreich-con-teaser-shell b/bin/bitreich-con-teaser-shell /scm/bitreich-conference/file/bin/bitreich-con-teaser-shell.gph bitreich.org 70 i@@ -0,0 +1,45 @@ Err bitreich.org 70 i+#!/bin/sh Err bitreich.org 70 i+ Err bitreich.org 70 i+if [ $# -lt 1 ]; Err bitreich.org 70 i+then Err bitreich.org 70 i+ year="$(date +%Y)" Err bitreich.org 70 i+else Err bitreich.org 70 i+ year="$1" Err bitreich.org 70 i+fi Err bitreich.org 70 i+ Err bitreich.org 70 i+function shell() { Err bitreich.org 70 i+ cd "/home/presenter/con/${year}" Err bitreich.org 70 i+ bash Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 i+adpath="/br/gopher/con/${year}/ads" Err bitreich.org 70 i+ Err bitreich.org 70 i+while /bin/true; Err bitreich.org 70 i+do Err bitreich.org 70 i+ clear Err bitreich.org 70 i+ adfile="${adpath}/$(ls -1 "${adpath}" | shuf -n 1)" Err bitreich.org 70 i+ Err bitreich.org 70 i+ i=0 Err bitreich.org 70 i+ # Change the ad every 30 seconds. Err bitreich.org 70 i+ while [ $i -lt 20 ]; Err bitreich.org 70 i+ do Err bitreich.org 70 i+ tput cup 0 0 Err bitreich.org 70 i+ tput civis Err bitreich.org 70 i+ cat "$adfile" Err bitreich.org 70 i+ # Redisplay every second, in case someone freshly attached. Err bitreich.org 70 i+ i=$(($i + 1)) Err bitreich.org 70 i+ Err bitreich.org 70 i+ userinput="" Err bitreich.org 70 i+ read -t 1 userinput Err bitreich.org 70 i+ if [ $? -eq 0 ]; Err bitreich.org 70 i+ then Err bitreich.org 70 i+ # Be clear and clean. Err bitreich.org 70 i+ clear Err bitreich.org 70 i+ tput cvvis Err bitreich.org 70 i+ shell Err bitreich.org 70 i+ clear Err bitreich.org 70 i+ tput civis Err bitreich.org 70 i+ fi Err bitreich.org 70 i+ done Err bitreich.org 70 i+done Err bitreich.org 70 i+ Err bitreich.org 70 1diff --git a/bin/bitreich-con-view-presentation b/bin/bitreich-con-view-presentation /scm/bitreich-conference/file/bin/bitreich-con-view-presentation.gph bitreich.org 70 i@@ -0,0 +1,39 @@ Err bitreich.org 70 i+#!/bin/sh Err bitreich.org 70 i+ Err bitreich.org 70 i+if [ $# -lt 1 ]; Err bitreich.org 70 i+then Err bitreich.org 70 i+ year="$(date +%Y)" Err bitreich.org 70 i+else Err bitreich.org 70 i+ year="$1" Err bitreich.org 70 i+fi Err bitreich.org 70 i+ Err bitreich.org 70 i+if [ ! -f "/br/con/termres${year}" ] Err bitreich.org 70 i+then Err bitreich.org 70 i+ printf 'The conference has not started yet. Please retry later.\n' Err bitreich.org 70 i+ exit 1 Err bitreich.org 70 i+fi Err bitreich.org 70 i+ Err bitreich.org 70 i+. "/br/con/termres${year}" Err bitreich.org 70 i+ Err bitreich.org 70 i+if [ "$(tput cols)" -lt "$CONTERMCOL" ] || [ "$(tput lines)" -lt "$CONTERMLIN" ] Err bitreich.org 70 i+then Err bitreich.org 70 i+ printf 'Input presentation terminal is %dx%d characters.\n' \ Err bitreich.org 70 i+ "$CONTERMCOL" "$CONTERMLIN" Err bitreich.org 70 i+ printf 'You should adjust your terminal to it. Continue anyway? y/N: ' Err bitreich.org 70 i+ read yesno Err bitreich.org 70 i+ if [ "$yesno" != 'y' ] Err bitreich.org 70 i+ then Err bitreich.org 70 i+ exit 1 Err bitreich.org 70 i+ fi Err bitreich.org 70 i+fi Err bitreich.org 70 i+ Err bitreich.org 70 i+printf '%s\n' 'You will be connected to the conference view-only terminal.' \ Err bitreich.org 70 i+ 'Type in ^'\\' (control+'\\') to detach from it.' \ Err bitreich.org 70 i+ 'Press any key to continue.' Err bitreich.org 70 i+ Err bitreich.org 70 i+read Err bitreich.org 70 i+ Err bitreich.org 70 i+abduco -r -l -a /br/con/sock/bitreichcon${year} || \ Err bitreich.org 70 i+ printf '%s\n' 'Could not connect to the conference. ' \ Err bitreich.org 70 i+ 'Please contact 20h on #bitreich-con on freenode.' Err bitreich.org 70 i+ Err bitreich.org 70 1diff --git a/bin/bitreich-con-visitor-count b/bin/bitreich-con-visitor-count /scm/bitreich-conference/file/bin/bitreich-con-visitor-count.gph bitreich.org 70 i@@ -0,0 +1,4 @@ Err bitreich.org 70 i+#!/bin/sh Err bitreich.org 70 i+ Err bitreich.org 70 i+pgrep -u visitor abduco | wc -l Err bitreich.org 70 i+ Err bitreich.org 70 .