mirror of
https://github.com/jech/galene.git
synced 2024-12-22 15:25:48 +01:00
SFU is now called Galène.
This commit is contained in:
parent
2d07c5d317
commit
ef1c211b7f
23 changed files with 56 additions and 55 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1,7 +1,7 @@
|
|||
*~
|
||||
data/*.pem
|
||||
sfu
|
||||
sfu-password-generator/sfu-password-generator
|
||||
galene
|
||||
galene-password-generator/galene-password-generator
|
||||
passwd
|
||||
groups/*.json
|
||||
static/*.d.ts
|
||||
|
|
14
README
14
README
|
@ -63,21 +63,21 @@ options are described below.
|
|||
|
||||
## Copy the necessary files to your server:
|
||||
|
||||
Assuming you have set up a user *sfu*:
|
||||
Assuming you have set up a user *galene*:
|
||||
|
||||
rsync -a sfu static data groups sfu@server.example.org:
|
||||
rsync -a galene static data groups galene@server.example.org:
|
||||
|
||||
## Run the server binary:
|
||||
|
||||
ssh sfu@server.example.org
|
||||
nohup ./sfu &
|
||||
ssh galene@server.example.org
|
||||
nohup ./galene &
|
||||
|
||||
If you are using *runit*, use a script like the following:
|
||||
|
||||
#!/bin/sh
|
||||
exec 2>&1
|
||||
cd ~sfu
|
||||
exec setuidgid sfu ./sfu
|
||||
cd ~galene
|
||||
exec setuidgid galene ./galene
|
||||
|
||||
If you are using *systemd*, use `Type=simple` in your service file.
|
||||
|
||||
|
@ -130,7 +130,7 @@ A user definition is a dictionary with the following fields:
|
|||
allowed;
|
||||
- `password`: if omitted, then no password is required. Otherwise, this
|
||||
can either be a string, specifying a plain text password, or
|
||||
a dictionary generated by the `sfu-password-generator` utility.
|
||||
a dictionary generated by the `galene-password-generator` utility.
|
||||
|
||||
For example,
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ The frontend is written in JavaScript and is split into two files:
|
|||
|
||||
- `protocol.js` contains the low-level functions that interact with the
|
||||
server;
|
||||
- `sfu.js` contains the user interface.
|
||||
- `galene.js` contains the user interface.
|
||||
|
||||
If you wish to develop your own frontend, I recommend using `protocol.js`,
|
||||
which is likely to remain reasonably stable as the protocol evolves. This
|
||||
|
|
|
@ -16,8 +16,8 @@ import (
|
|||
"github.com/pion/rtp/codecs"
|
||||
"github.com/pion/webrtc/v3/pkg/media/samplebuilder"
|
||||
|
||||
"sfu/conn"
|
||||
"sfu/group"
|
||||
"galene/conn"
|
||||
"galene/group"
|
||||
)
|
||||
|
||||
var Directory string
|
||||
|
|
|
@ -4,7 +4,7 @@ import (
|
|||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
"sfu/rtptime"
|
||||
"galene/rtptime"
|
||||
)
|
||||
|
||||
type Estimator struct {
|
||||
|
|
|
@ -3,7 +3,7 @@ package estimator
|
|||
import (
|
||||
"testing"
|
||||
|
||||
"sfu/rtptime"
|
||||
"galene/rtptime"
|
||||
)
|
||||
|
||||
func TestEstimator(t *testing.T) {
|
||||
|
|
|
@ -11,7 +11,7 @@ import (
|
|||
|
||||
"golang.org/x/crypto/pbkdf2"
|
||||
|
||||
"sfu/group"
|
||||
"galene/group"
|
||||
)
|
||||
|
||||
func main() {
|
|
@ -16,9 +16,9 @@ import (
|
|||
"syscall"
|
||||
"time"
|
||||
|
||||
"sfu/diskwriter"
|
||||
"sfu/group"
|
||||
"sfu/webserver"
|
||||
"galene/diskwriter"
|
||||
"galene/group"
|
||||
"galene/webserver"
|
||||
)
|
||||
|
||||
func main() {
|
2
go.mod
2
go.mod
|
@ -1,4 +1,4 @@
|
|||
module sfu
|
||||
module galene
|
||||
|
||||
go 1.13
|
||||
|
||||
|
|
|
@ -7,9 +7,10 @@ import (
|
|||
"encoding/json"
|
||||
"errors"
|
||||
"hash"
|
||||
"sfu/conn"
|
||||
|
||||
"golang.org/x/crypto/pbkdf2"
|
||||
|
||||
"galene/conn"
|
||||
)
|
||||
|
||||
type RawPassword struct {
|
||||
|
|
|
@ -3,7 +3,7 @@ package jitter
|
|||
import (
|
||||
"sync/atomic"
|
||||
|
||||
"sfu/rtptime"
|
||||
"galene/rtptime"
|
||||
)
|
||||
|
||||
type Estimator struct {
|
||||
|
|
|
@ -13,12 +13,12 @@ import (
|
|||
"github.com/pion/rtp"
|
||||
"github.com/pion/webrtc/v3"
|
||||
|
||||
"sfu/conn"
|
||||
"sfu/estimator"
|
||||
"sfu/group"
|
||||
"sfu/jitter"
|
||||
"sfu/packetcache"
|
||||
"sfu/rtptime"
|
||||
"galene/conn"
|
||||
"galene/estimator"
|
||||
"galene/group"
|
||||
"galene/jitter"
|
||||
"galene/packetcache"
|
||||
"galene/rtptime"
|
||||
)
|
||||
|
||||
type bitrate struct {
|
||||
|
|
|
@ -9,8 +9,8 @@ import (
|
|||
"github.com/pion/rtp/codecs"
|
||||
"github.com/pion/webrtc/v3"
|
||||
|
||||
"sfu/packetcache"
|
||||
"sfu/rtptime"
|
||||
"galene/packetcache"
|
||||
"galene/rtptime"
|
||||
)
|
||||
|
||||
func isVP8Keyframe(packet *rtp.Packet) bool {
|
||||
|
|
|
@ -5,8 +5,8 @@ import (
|
|||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
"sfu/rtptime"
|
||||
"sfu/stats"
|
||||
"galene/rtptime"
|
||||
"galene/stats"
|
||||
)
|
||||
|
||||
func (c *webClient) GetStats() *stats.Client {
|
||||
|
|
|
@ -9,9 +9,9 @@ import (
|
|||
|
||||
"github.com/pion/rtp"
|
||||
|
||||
"sfu/conn"
|
||||
"sfu/packetcache"
|
||||
"sfu/rtptime"
|
||||
"galene/conn"
|
||||
"galene/packetcache"
|
||||
"galene/rtptime"
|
||||
)
|
||||
|
||||
// packetIndex is a request to send a packet from the cache.
|
||||
|
|
|
@ -12,10 +12,10 @@ import (
|
|||
"github.com/gorilla/websocket"
|
||||
"github.com/pion/webrtc/v3"
|
||||
|
||||
"sfu/conn"
|
||||
"sfu/diskwriter"
|
||||
"sfu/estimator"
|
||||
"sfu/group"
|
||||
"galene/conn"
|
||||
"galene/diskwriter"
|
||||
"galene/estimator"
|
||||
"galene/group"
|
||||
)
|
||||
|
||||
func errorToWSCloseMessage(id string, err error) (*clientMessage, []byte) {
|
||||
|
|
|
@ -1020,7 +1020,7 @@ legend {
|
|||
z-index: 1039;
|
||||
}
|
||||
|
||||
#left-sidebar .sfu-header {
|
||||
#left-sidebar .galene-header {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
|
@ -1033,7 +1033,7 @@ header .collapse {
|
|||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.sfu-header {
|
||||
.galene-header {
|
||||
font-size: 1.3rem;
|
||||
font-weight: 900;
|
||||
color: #dbd9d9;
|
|
@ -1,11 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>SFU</title>
|
||||
<title>Galène</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="ScreenOrientation" content="autoRotate:disabled">
|
||||
<link rel="stylesheet" type="text/css" href="/common.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="/sfu.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="/galene.css"/>
|
||||
<link rel="author" href="https://www.irif.fr/~jch/"/>
|
||||
<!-- Font Awesome File -->
|
||||
<link href="/css/fontawesome.min.css" rel="stylesheet" type="text/css">
|
||||
|
@ -19,7 +19,7 @@
|
|||
<div class="row full-height">
|
||||
<nav id="left-sidebar">
|
||||
<div class="users-header">
|
||||
<div class="sfu-header">SFU</div>
|
||||
<div class="galene-header">Galène</div>
|
||||
</div>
|
||||
<div class="header-sep"></div>
|
||||
<div id="users"></div>
|
||||
|
@ -232,6 +232,6 @@
|
|||
|
||||
<script src="/protocol.js" defer></script>
|
||||
<script src="/scripts/toastify.js" defer></script>
|
||||
<script src="/sfu.js" defer></script>
|
||||
<script src="/galene.js" defer></script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,12 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>SFU</title>
|
||||
<title>Galène</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="/common.css">
|
||||
<link rel="stylesheet" href="/mainpage.css">
|
||||
<link rel="stylesheet" type="text/css" href="/sfu.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="/galene.css"/>
|
||||
<link rel="author" href="https://www.irif.fr/~jch/"/>
|
||||
<!-- Font Awesome File -->
|
||||
<link href="/css/fontawesome.min.css" rel="stylesheet" type="text/css">
|
||||
|
@ -16,7 +16,7 @@
|
|||
<body>
|
||||
|
||||
<div class="home">
|
||||
<h1 id="title" class="navbar-brand">SFU</h1>
|
||||
<h1 id="title" class="navbar-brand">Galène</h1>
|
||||
|
||||
<form id="groupform">
|
||||
<label for="group">Group:</label>
|
||||
|
@ -31,7 +31,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<footer class="signature">
|
||||
<p><a href="https://www.irif.fr/~jch/software/sfu/">Unnamed SFU</a> by <a href="https://www.irif.fr/~jch/" rel="author">Juliusz Chroboczek</a>
|
||||
<p><a href="https://www.irif.fr/~jch/software/galene/">Galène</a> by <a href="https://www.irif.fr/~jch/" rel="author">Juliusz Chroboczek</a>
|
||||
</footer>
|
||||
|
||||
<script src="/mainpage.js" defer></script>
|
||||
|
|
|
@ -14,6 +14,6 @@
|
|||
},
|
||||
"files": [
|
||||
"protocol.js",
|
||||
"sfu.js"
|
||||
"galene.js"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ import (
|
|||
"sort"
|
||||
"time"
|
||||
|
||||
"sfu/group"
|
||||
"galene/group"
|
||||
)
|
||||
|
||||
type GroupStats struct {
|
||||
|
|
|
@ -21,10 +21,10 @@ import (
|
|||
|
||||
"github.com/gorilla/websocket"
|
||||
|
||||
"sfu/diskwriter"
|
||||
"sfu/group"
|
||||
"sfu/rtpconn"
|
||||
"sfu/stats"
|
||||
"galene/diskwriter"
|
||||
"galene/group"
|
||||
"galene/rtpconn"
|
||||
"galene/stats"
|
||||
)
|
||||
|
||||
var server atomic.Value
|
||||
|
@ -267,7 +267,7 @@ func groupHandler(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
serveFile(w, r, filepath.Join(StaticRoot, "sfu.html"))
|
||||
serveFile(w, r, filepath.Join(StaticRoot, "galene.html"))
|
||||
}
|
||||
|
||||
func publicHandler(w http.ResponseWriter, r *http.Request) {
|
||||
|
|
Loading…
Reference in a new issue