Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
slapos
Commits
16dc819c
Commit
16dc819c
authored
Mar 28, 2023
by
Joanne Hugé
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
galene: reorganize SR and add special PTT galene
parent
aa9ce4e7
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
303 additions
and
113 deletions
+303
-113
software/galene/buildout.hash.cfg
software/galene/buildout.hash.cfg
+6
-2
software/galene/instance-default-input-schema.json
software/galene/instance-default-input-schema.json
+19
-0
software/galene/instance-default.cfg.in
software/galene/instance-default.cfg.in
+151
-0
software/galene/instance-ptt-default-input-schema.json
software/galene/instance-ptt-default-input-schema.json
+25
-0
software/galene/instance.cfg.in
software/galene/instance.cfg.in
+18
-82
software/galene/software-base.cfg
software/galene/software-base.cfg
+44
-0
software/galene/software-ptt.cfg
software/galene/software-ptt.cfg
+9
-0
software/galene/software-ptt.cfg.json
software/galene/software-ptt.cfg.json
+15
-0
software/galene/software.cfg
software/galene/software.cfg
+1
-29
software/galene/software.cfg.json
software/galene/software.cfg.json
+15
-0
No files found.
software/galene/buildout.hash.cfg
View file @
16dc819c
...
@@ -13,6 +13,10 @@
...
@@ -13,6 +13,10 @@
# section inheritance (< = ...) are NOT supported (but you should really
# section inheritance (< = ...) are NOT supported (but you should really
# not need these here).
# not need these here).
[
instance-cfg
]
[
template
]
filename = instance.cfg.in
filename = instance.cfg.in
md5sum = 38c79a4952a7cb63698135f1d1ed6c8c
md5sum = 1747b8cda8d815055453420de4ed677f
[template-default]
filename = instance-default.cfg.in
md5sum = fa9bd07d6a5fcf55e9548f63a943f022
software/galene/instance-default-input-schema.json
0 → 100644
View file @
16dc819c
{
"type"
:
"object"
,
"$schema"
:
"http://json-schema.org/draft-04/schema"
,
"title"
:
"Input Parameters"
,
"properties"
:
{
"allow_subgroups"
:
{
"title"
:
"Allow subgroups"
,
"description"
:
"Subgroups are automatically created when first accessed"
,
"type"
:
"boolean"
,
"default"
:
false
},
"use_password"
:
{
"title"
:
"Use password"
,
"description"
:
"Use a password for presenter"
,
"type"
:
"boolean"
,
"default"
:
true
}
}
}
software/galene/instance-default.cfg.in
0 → 100644
View file @
16dc819c
{% if slapparameter_dict.get("use_password", True) %}
{% set presenter_password = "nexedi" %}
{% else %}
{% set presenter_password = "" %}
{% endif %}
[buildout]
parts =
publish-connection-parameter
stat-password
monitor-base
port-listening-promise
galene-service
{% if slapparameter_dict.get('dns_sr_url', '') %}
request-dns-entry
{% endif %}
extends = ${monitor-template:output}
eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }}
offline = true
[publish-connection-parameter]
recipe = slapos.cookbook:publish
<= monitor-publish
url = https://[$${galene-wrapper:ip}]:$${galene-wrapper:port}
admin-user = $${admin-password:username}
admin-password = $${admin-password:passwd}
{% if slapparameter_dict.get('dns_sr_url', '') %}
domain-url = https://$${request-dns-entry:connection-domain}:$${galene-wrapper:port}
{% endif %}
[slap-configuration]
recipe = slapos.cookbook:slapconfiguration.serialised
computer = {{ slap_connection['computer-id'] }}
partition = {{ slap_connection['partition-id'] }}
url = {{ slap_connection['server-url'] }}
key = {{ slap_connection['key-file'] }}
cert = {{ slap_connection['cert-file'] }}
configuration.ice-servers.json = [{"urls":["stun:turn-paris-rapidspace.api.nexedi.net:443"]}]
[directory]
recipe = slapos.cookbook:mkdirectory
etc = $${buildout:directory}/etc
var = $${buildout:directory}/var
srv = $${buildout:directory}/srv
bin = $${buildout:directory}/bin
tmp = $${buildout:directory}/tmp
run = $${:var}/run
services = $${:etc}/service
data = $${:srv}/data
groups = $${:srv}/groups
recordings = $${:srv}/recordings
[galene-ssl]
recipe = plone.recipe.command
cert-file = $${directory:data}/cert.pem
key-file = $${directory:data}/key.pem
command = ${openssl:location}/bin/openssl req -newkey rsa:2048 -batch -new -x509 -days 3650 -nodes -keyout "$${:key-file}" -out "$${:cert-file}"
update-command =
stop-on-error = true
[admin-password]
recipe = slapos.cookbook:generate.password
storage-path = $${directory:data}/.passwd
username = admin
[stat-password]
recipe = slapos.recipe.template
inline =
$${admin-password:username}:$${admin-password:passwd}
output = $${directory:data}/passwd
[ice-servers.json]
recipe = slapos.recipe.template
inline =
$${slap-configuration:configuration.ice-servers.json}
output = $${directory:data}/ice-servers.json
[groups-json]
recipe = slapos.recipe.template
inline =
{
"public":true,
"op": [{"username":"$${admin-password:username}","password":"$${admin-password:passwd}"}],
"other": [],
"presenter": [{"username": "", "password": "{{ presenter_password }}"}],
{%- if slapparameter_dict.get("allow_subgroups", False) %}
"allow-subgroups": true
{%- else %}
"allow-subgroups": false
{%- endif %}
}
output = $${directory:groups}/public.json
[galene-service]
recipe = slapos.cookbook:wrapper
command-line = $${galene-wrapper:output}
wrapper-path = $${directory:services}/galene
mode = 0775
hash-files =
$${groups-json:output}
[galene-wrapper]
recipe = slapos.recipe.template
port = 8443
ip = $${slap-configuration:ipv6-random}
inline =
#!/bin/sh
ulimit -n $(ulimit -Hn)
exec ${gowork:bin}/galene \
-static ${galene:location}/static \
-recordings $${directory:recordings} \
-groups $${directory:groups} \
-data $${directory:data} \
-http [$${:ip}]:$${:port} \
-turn ""
output = $${directory:bin}/galene-wrapper
depends =
$${ice-servers.json:recipe}
$${groups-json:recipe}
$${galene-ssl:recipe}
[port-listening-promise]
<= monitor-promise-base
promise = check_socket_listening
name = galene-port-listening.py
config-host = $${slap-configuration:ipv6-random}
config-port = 8443
{% if slapparameter_dict.get('dns_sr_url', '') %}
[request-dns-entry]
name = dns-galene-entry
recipe = slapos.cookbook:request.serialised
software-url = {{ slapparameter_dict['dns_sr_url'] }}
software-type = core-network
server-url = {{ slap_connection['server-url'] }}
computer-id = {{ slap_connection['computer-id'] }}
partition-id = {{ slap_connection['partition-id'] }}
key-file = {{ slap_connection['key-file'] }}
cert-file = {{ slap_connection['cert-file'] }}
shared = true
sla-computer_guid = {{ slap_connection['computer-id'] }}
config-name = dns-galene-entry
config-subdomain = conference
config-ip = $${slap-configuration:ipv6-random}
return = domain ip
{% endif %}
software/galene/instance-ptt-default-input-schema.json
0 → 100644
View file @
16dc819c
{
"type"
:
"object"
,
"$schema"
:
"http://json-schema.org/draft-04/schema"
,
"title"
:
"Input Parameters"
,
"properties"
:
{
"allow_subgroups"
:
{
"title"
:
"Allow subgroups"
,
"description"
:
"Subgroups are automatically created when first accessed"
,
"type"
:
"boolean"
,
"default"
:
false
},
"use_password"
:
{
"title"
:
"Use password"
,
"description"
:
"Use a password for presenter"
,
"type"
:
"boolean"
,
"default"
:
true
},
"dns_sr_url"
:
{
"default"
:
""
,
"title"
:
"DNS SR URL"
,
"description"
:
"URL of the SR running the DNS server"
,
"type"
:
"string"
}
}
}
software/galene/instance.cfg.in
View file @
16dc819c
[buildout]
[buildout]
parts =
parts =
publish-connection-parameter
switch-softwaretype
stat-password
eggs-directory = ${buildout:eggs-directory}
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true
offline = true
[publish-connection-parameter]
recipe = slapos.cookbook:publish
url = https://[$${galene-wrapper:ip}]:$${galene-wrapper:port}
admin-user = $${admin-password:username}
admin-password = $${admin-password:passwd}
[slap-configuration]
[slap-configuration]
recipe = slapos.cookbook:slapconfiguration
recipe = slapos.cookbook:slapconfiguration
.serialised
computer = $${slap-connection:computer-id}
computer = $${slap-connection:computer-id}
partition = $${slap-connection:partition-id}
partition = $${slap-connection:partition-id}
url = $${slap-connection:server-url}
url = $${slap-connection:server-url}
key = $${slap-connection:key-file}
key = $${slap-connection:key-file}
cert = $${slap-connection:cert-file}
cert = $${slap-connection:cert-file}
configuration.ice-servers.json = [{"urls":["stun:turn-paris-rapidspace.api.nexedi.net:443"]}]
[directory]
recipe = slapos.cookbook:mkdirectory
etc = $${buildout:directory}/etc
var = $${buildout:directory}/var
srv = $${buildout:directory}/srv
bin = $${buildout:directory}/bin
tmp = $${buildout:directory}/tmp
run = $${:var}/run
services = $${:etc}/service
data = $${:srv}/data
groups = $${:srv}/groups
recordings = $${:srv}/recordings
[galene-ssl]
recipe = plone.recipe.command
cert-file = $${directory:data}/cert.pem
key-file = $${directory:data}/key.pem
command = ${openssl:location}/bin/openssl req -newkey rsa:2048 -batch -new -x509 -days 3650 -nodes -keyout "$${:key-file}" -out "$${:cert-file}"
update-command =
stop-on-error = true
[admin-password]
recipe = slapos.cookbook:generate.password
storage-path = $${directory:data}/.passwd
username = admin
[stat-password]
recipe = slapos.recipe.template
inline =
$${admin-password:username}:$${admin-password:passwd}
output = $${directory:data}/passwd
[ice-servers.json]
recipe = slapos.recipe.template
inline =
$${slap-configuration:configuration.ice-servers.json}
output = $${directory:data}/ice-servers.json
[groups-json]
recipe = slapos.recipe.template
inline =
{
"public":true,
"op": [{"username":"$${admin-password:username}","password":"$${admin-password:passwd}"}],
"other": [],
"presenter": [{"username": "", "password": "nexedi"}]
}
output = $${directory:groups}/public.json
[galene-wrapper]
recipe = slapos.recipe.template
port = 8443
ip = $${slap-configuration:ipv6-random}
inline =
#!/bin/sh
ulimit -n $(ulimit -Hn)
exec ${gowork:bin}/galene \
-static ${galene:location}/static \
-recordings $${directory:recordings} \
-groups $${directory:groups} \
-data $${directory:data} \
-http [$${:ip}]:$${:port} \
-turn ""
output = $${directory:services}/galene
depends =
$${ice-servers.json:recipe}
$${groups-json:recipe}
$${galene-ssl:recipe}
[switch-softwaretype]
recipe = slapos.cookbook:switch-softwaretype
default = dynamic-template-default:output
RootSoftwareInstance = $${:default}
[dynamic-template-default]
recipe = slapos.recipe.template:jinja2
url = ${template-default:output}
output = $${buildout:parts-directory}/$${:_buildout_section_name_}/$${:filename}
filename = instance-default.cfg
context =
key eggs_directory buildout:eggs-directory
key develop_eggs_directory buildout:develop-eggs-directory
raw buildout_directory ${buildout:directory}
section slap_connection slap-connection
key slapparameter_dict slap-configuration:configuration
software/galene/software-base.cfg
0 → 100644
View file @
16dc819c
[buildout]
extends =
../../component/golang/buildout.cfg
../../component/openssl/buildout.cfg
../../stack/slapos.cfg
../../stack/monitor/buildout.cfg
buildout.hash.cfg
parts =
slapos-cookbook
eggs
template
template-default
# eggs for instance.cfg
[eggs]
recipe = zc.recipe.egg
eggs =
plone.recipe.command
collective.recipe.template
[galene]
<= go-git-package
go.importpath = lab.nexedi.com/nexedi/galene
repository = https://lab.nexedi.com/nexedi/galene.git
revision = galene-ptt-0.6.4
[gowork]
install =
${galene:location}:./...
environment =
CGO_ENABLED = 0
buildflags = -ldflags='-s -w'
[template]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/template.cfg
[template-default]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/template-default.cfg
software/galene/software-ptt.cfg
0 → 100644
View file @
16dc819c
[buildout]
extends =
software-base.cfg
[galene]
<= go-git-package
go.importpath = lab.nexedi.com/nexedi/galene
repository = https://lab.nexedi.com/nexedi/galene.git
revision = galene-ptt-0.6.4
software/galene/software-ptt.cfg.json
0 → 100644
View file @
16dc819c
{
"name"
:
"Galene"
,
"description"
:
"Galene Video-conferencing"
,
"serialisation"
:
"json-in-xml"
,
"software-type"
:
{
"default"
:
{
"title"
:
"default"
,
"software-type"
:
"default"
,
"description"
:
"default"
,
"request"
:
"instance-ptt-default-input-schema.json"
,
"response"
:
"instance-default-schema.json"
,
"index"
:
0
}
}
}
software/galene/software.cfg
View file @
16dc819c
[buildout]
[buildout]
extends =
extends =
../../component/golang/buildout.cfg
software-base.cfg
../../component/openssl/buildout.cfg
../../stack/slapos.cfg
buildout.hash.cfg
parts =
slapos-cookbook
eggs
instance-cfg
# eggs for instance.cfg
[eggs]
recipe = zc.recipe.egg
eggs =
plone.recipe.command
collective.recipe.template
[galene]
[galene]
<= go-git-package
<= go-git-package
go.importpath = lab.nexedi.com/nexedi/galene
go.importpath = lab.nexedi.com/nexedi/galene
repository = https://lab.nexedi.com/nexedi/galene.git
repository = https://lab.nexedi.com/nexedi/galene.git
revision = galene-0.7.1
revision = galene-0.7.1
[gowork]
install =
${galene:location}:./...
environment =
CGO_ENABLED = 0
buildflags = -ldflags='-s -w'
[instance-cfg]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/instance.cfg
software/galene/software.cfg.json
0 → 100644
View file @
16dc819c
{
"name"
:
"Galene"
,
"description"
:
"Galene Video-conferencing"
,
"serialisation"
:
"json-in-xml"
,
"software-type"
:
{
"default"
:
{
"title"
:
"default"
,
"software-type"
:
"default"
,
"description"
:
"default"
,
"request"
:
"instance-default-input-schema.json"
,
"response"
:
"instance-default-schema.json"
,
"index"
:
0
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment