mirror of
https://github.com/voc/streaming-website
synced 2024-11-10 14:44:21 +00:00
readme: added schedule.xml section
This commit is contained in:
parent
b4fba321b7
commit
caec9efb91
1 changed files with 57 additions and 10 deletions
67
README.md
67
README.md
|
@ -1,33 +1,60 @@
|
|||
# c3voc Streaming-Webseite
|
||||
|
||||
Dies ist der Code für die Streaming-Webseite unter [streaming.media.ccc.de](http://streaming.media.ccc.de/) welche vom [c3voc](https://c3voc.de/) benutzt wird um Live-Video und -Audio-Streams von [diversen Konferenzen](https://c3voc.de/eventkalender/) inm Internet zu präsentieren. Die Idee hinter diesem Projekt ist es, eine generische Codebasis zu haben, die mit wenigen Konfigurationsoptionen und ein paar CSS-Rules an die Gegebenheiten und die Gestaltung der Konferenz angepasst werden können.
|
||||
Dies ist der Code für die Streaming-Webseite unter
|
||||
[streaming.media.ccc.de](http://streaming.media.ccc.de/) welche vom
|
||||
[c3voc](https://c3voc.de/) benutzt wird um Live-Video und -Audio-Streams von
|
||||
[diversen Konferenzen](https://c3voc.de/eventkalender/) inm Internet zu
|
||||
präsentieren. Die Idee hinter diesem Projekt ist es, eine generische Codebasis
|
||||
zu haben, die mit wenigen Konfigurationsoptionen und ein paar CSS-Rules an die
|
||||
Gegebenheiten und die Gestaltung der Konferenz angepasst werden können.
|
||||
|
||||
|
||||
|
||||
## Setup
|
||||
|
||||
Das Setup beim VOC besteht aus einem Hidden-Master-Server, welcher den PHP-Code in einem nginx ausführt. Dahinter kommen n Frontend-Caches, wobei für kleine Events n eigentlich fast immer =1 ist. Für große Events (Camp, Congress), können wir aber sehr einfach weitere Frontend-Caches bei verschiedenen Hostern hinzu deployen.
|
||||
Das Setup beim VOC besteht aus einem Hidden-Master-Server, welcher den PHP-Code
|
||||
in einem nginx ausführt. Dahinter kommen n Frontend-Caches, wobei für kleine
|
||||
Events n eigentlich fast immer =1 ist. Für große Events (Camp, Congress),
|
||||
können wir aber sehr einfach weitere Frontend-Caches bei verschiedenen Hostern
|
||||
hinzu deployen.
|
||||
|
||||
Zum vorbereiten einer Konferenz oder weiterentwickeln der Seite ist es hilfreich, sich das Teil lokal aufzusetzen. Am einfachsten geht das mit nem Apachen denn die beiliegende [.htaccess](.htaccess) konfiguriert das URL-Rewriting gleich richtig. Bei nginx muss das in der globalen nginx.conf ungefähr so eingestellt werden:
|
||||
Zum vorbereiten einer Konferenz oder weiterentwickeln der Seite ist es
|
||||
hilfreich, sich das Teil lokal aufzusetzen. Am einfachsten geht das mit nem
|
||||
Apachen denn die beiliegende [.htaccess](.htaccess) konfiguriert das
|
||||
URL-Rewriting gleich richtig. Bei nginx muss das in der globalen nginx.conf
|
||||
ungefähr so eingestellt werden:
|
||||
````
|
||||
location / {
|
||||
rewrite /(.*) /index.php?route=$1 last;
|
||||
}
|
||||
````
|
||||
|
||||
Abweichend von der Default-Config muss in PHP das Flag `short_open_tag = On` gesetzt werden.
|
||||
Abweichend von der Default-Config muss in PHP das Flag `short_open_tag = On`
|
||||
gesetzt werden.
|
||||
|
||||
Die CSS-Styles sind in [less-css](http://lesscss.org/) geschrieben und es wird ein less-Compiler benötigt, um diese in CSS-Dateien umzuwandeln. Der Einfachste Weg ist [node.js](https://nodejs.org/) über das [Debian-Repo](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#debian-and-ubuntu-based-linux-distributions) installieren und dann mit `npm install -g less` den `lessc`-Compiler installieren. Zum korrekten bauen der Less-Datei kann das makefile in [assets/css](assets/css/) verwendet werden.
|
||||
Die CSS-Styles sind in [less-css](http://lesscss.org/) geschrieben und es wird
|
||||
ein less-Compiler benötigt, um diese in CSS-Dateien umzuwandeln. Der Einfachste
|
||||
Weg ist [node.js](https://nodejs.org/) über das
|
||||
[Debian-Repo](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#debian-and-ubuntu-based-linux-distributions)
|
||||
installieren und dann mit `npm install -g less` den `lessc`-Compiler
|
||||
installieren. Zum korrekten bauen der Less-Datei kann das makefile in
|
||||
[assets/css](assets/css/) verwendet werden.
|
||||
|
||||
|
||||
|
||||
## Konfiguration
|
||||
|
||||
Die Gesamte Seite wird von der zentralen [config.php](config.php)-Datei gesteuert. Diese ist ausführlich dokumentiert und sollte sich selbst erklären.
|
||||
Die Gesamte Seite wird von der zentralen [config.php](config.php)-Datei
|
||||
gesteuert. Diese ist ausführlich dokumentiert und sollte sich selbst erklären.
|
||||
|
||||
Für die Konferenztypische Gestaltung kann in der [main.less](assets/css/main.less) nach Wunsch ausgestaltet werden. Als Beispiel sei hier die Gestaltung für das [Easterhegg 2015](https://eh15.easterhegg.eu/site/) verlinkt: [d3c0e74](https://github.com/voc/streaming-website/commit/d3c0e74f459121c3e624c9b3b92d6ec6b39a3dbe)
|
||||
Für die Konferenztypische Gestaltung kann in der
|
||||
[main.less](assets/css/main.less) nach Wunsch ausgestaltet werden. Als Beispiel
|
||||
sei hier die Gestaltung für das [Easterhegg
|
||||
2015](https://eh15.easterhegg.eu/site/) verlinkt:
|
||||
[d3c0e74](https://github.com/voc/streaming-website/commit/d3c0e74f459121c3e624c9b3b92d6ec6b39a3dbe)
|
||||
|
||||
Üblicherweise machen wir für jede Veranstaltung einen `events/XXXX` branch auf, wobei XXXX das Acronym der Konferenz ist.
|
||||
Üblicherweise machen wir für jede Veranstaltung einen `events/XXXX` branch auf,
|
||||
wobei XXXX das Acronym der Konferenz ist.
|
||||
|
||||
|
||||
|
||||
|
@ -51,6 +78,26 @@ Für die Konferenztypische Gestaltung kann in der [main.less](assets/css/main.le
|
|||
|
||||
## JSON-API
|
||||
|
||||
Unter der URL http://streaming.media.ccc.de/streams/v1.json bietet die Steaming-Webseite eine Übersicht über alle konfigurierten Räume und Streams in einem Maschienenlesbaren Format an. Dieses kann z.B. genutzt werden, um in den diversen Anwendungen die sich rund um das Konferenzgeschehen entwickelt haben Player und Links zu Liveübertragungen anzubieten.
|
||||
Unter der URL http://streaming.media.ccc.de/streams/v1.json bietet die
|
||||
Steaming-Webseite eine Übersicht über alle konfigurierten Räume und Streams in
|
||||
einem Maschienenlesbaren Format an. Dieses kann z.B. genutzt werden, um in den
|
||||
diversen Anwendungen die sich rund um das Konferenzgeschehen entwickelt haben
|
||||
Player und Links zu Liveübertragungen anzubieten.
|
||||
|
||||
Wie die URL vermuten lässt, ist die API versionionert. Dies bedeutet, dass in der v1.json keine Felder *entfernt werden* oder ihre *bedeutung ändern* – es können aber durchaus *neue Felder* hinzukommen. Eine formalere Spezifikation des JSON-Formats ist tbd. Ein Beispiel kann [hier betrachtet](https://gist.github.com/MaZderMind/d5737ab867ade7888cb4) werden.
|
||||
Wie die URL vermuten lässt, ist die API versionionert. Dies bedeutet, dass in
|
||||
der v1.json keine Felder *entfernt werden* oder ihre *bedeutung ändern* – es
|
||||
können aber durchaus *neue Felder* hinzukommen. Eine formalere Spezifikation
|
||||
des JSON-Formats ist tbd. Ein Beispiel kann [hier
|
||||
betrachtet](https://gist.github.com/MaZderMind/d5737ab867ade7888cb4) werden.
|
||||
|
||||
## Schedule
|
||||
|
||||
Unter configs/schedule.xml wird das schedule.xml der Veranstaltung abgelegt.
|
||||
Regelmäßige Aktualisierungen können z. B. mit folgenden Cron-Job vorgenommen
|
||||
werden:
|
||||
|
||||
```
|
||||
voc~$ crontab -l
|
||||
*/5 * * * * cd /srv/nginx/streaming-website/configs; ./download.sh
|
||||
|
||||
```
|
||||
|
|
Loading…
Reference in a new issue