Skip to content

Commit

Permalink
Merge pull request #553 from H2-invent/feature/development
Browse files Browse the repository at this point in the history
Feature/development
  • Loading branch information
holema authored Oct 18, 2024
2 parents 2a8e837 + 2da6afc commit 3698a56
Show file tree
Hide file tree
Showing 286 changed files with 18,419 additions and 12,456 deletions.
15 changes: 14 additions & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
APP_ENV=prod
APP_DEBUG=0
APP_SECRET=8049593567e0d8a5319abd1960f937f3
DEFAULT_LANGUAGE=de
DEFAULT_LANGUAGE=en
#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
#TRUSTED_HOSTS='^(localhost|example\.com)$'
###< symfony/framework-bundle ###
Expand Down Expand Up @@ -154,16 +154,19 @@ ldap_server_individualName=ldap_1,ldap_2
ldap_special_Fields='{"ou":"ou"};{"ou":"ou"}'
ldap_connect_all_user_addressbook=0
LDAP_DISALLOW_PROMOTE='[]'
LDAP_DISALLOW_PROMOTE_DEPUTY='[]'
LDAP_DEPUTY_GROUP_OBJECTCLASS='group;group'
LDAP_DEPUTY_GROUP_DN='*;*'
LDAP_DEPUTY_GROUP_LEADER='leader;leader'
LDAP_DEPUTY_GROUP_MEMBERS='members;members'
LDAP_DEPUTY_GROUP_FILTER=';'
LDAP_IS_SIP_VIDEO='false,false'
###<LDAP Settings>###

### Callout Settings ###
LDAP_CALLOUT_FIELDS='{"LDAP_NAME":["attribute_to_callout"]}'
CALLOUT_MAX_RETRIES=2
CALLOUT_WAITING_TIME=60 #Wartezeit zwischen zwei Pool calls in Sec
### <Callout Settings ###
### STRICT Settings ###
strict_username_only=0 #Legacy is not needed any more
Expand Down Expand Up @@ -318,3 +321,13 @@ DONT_SEND_TELEMATIC=notcorrect
###> nelmio/cors-bundle ###
CORS_ALLOW_ORIGIN='^https?://(localhost|127\.0\.0\.1)(:[0-9]+)?$'
###< nelmio/cors-bundle ###

###> jitsi-component-selector ###
JITSI_COMPONENT_SELECTOR_PRIVATE_PATH=''
JITSI_COMPONENT_SELECTOR_PUBLIC_PATH=''
JITSI_COMPONENT_SELECTOR_JWT_KID='jitsi/signal'
###< jitsi-component-selectore ###

###> livekit-section###
LIVEKIT_BASE_URL="https://livekit.meetling.de"
###< livekit-section ###
1 change: 1 addition & 0 deletions .env.custom
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
##Add your environment here to customize them for the tjisi admin in docker. This FIle will not be overwrtitten when git pull
51 changes: 30 additions & 21 deletions .env.test
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ emailSenderIsModerator=1
###> symfony/framework-bundle ###
APP_ENV=dev
APP_DEBUG=1

DEFAULT_LANGUAGE=de
###> demo ###
# demo_installation=demo
###< demo ###
Expand All @@ -36,26 +36,28 @@ input_settings_allow_tag=1

### LDAP Settings ###
ldap_test_url='ldap://192.168.230.130:389'
ldap_url="ldap://192.168.230.130:389;ldap://192.168.230.130:389"
ldap_bind_dn="uid=admin,ou=system;uid=admin,ou=system"
ldap_password=password;password
ldap_user_dn="o=meinComp,o=testOrg,dc=example,dc=com;o=testOrg,dc=example,dc=com"
ldap_user_object_classes=person,organizationalPerson,user;person,organizationalPerson,user
ldap_search_scope=sub;one
ldap_userName_attribute=uid;uid
ldap_attribute_mapper='{"firstName":"givenName", "lastName":"sn", "email":"uid"};{"firstName":"givenName", "lastName":"sn", "email":"uid"}'
ldap_bind_type=simple,none
ldap_filter='(&(mail=*));(&(mail=*))'
ldap_rdn_ldap_attribute=uid,uid
ldap_url="ldap://192.168.230.130:389;ldap://192.168.230.130:389;ldap://192.168.230.130:389"
ldap_bind_dn="uid=admin,ou=system;uid=admin,ou=system;uid=admin,ou=system"
ldap_password=password;password;password
ldap_user_dn="o=meinComp,o=testOrg,dc=example,dc=com;o=testOrg,dc=example,dc=com;o=testOrg,dc=example,dc=com"
ldap_user_object_classes=person,organizationalPerson,user;person,organizationalPerson,user;person,organizationalPerson,user
ldap_search_scope=sub;one;sub
ldap_userName_attribute=uid;uid;uid
ldap_attribute_mapper='{"firstName":"givenName", "lastName":"sn", "email":"uid"};{"firstName":"givenName", "lastName":"sn", "email":"uid"};{"firstName":"givenName", "lastName":"sn", "email":"uid"}'
ldap_bind_type=simple,none,none
ldap_filter='(&(mail=*)(!(uid=*sip*)));(&(mail=*)(!(uid=*sip*)));(&(mail=*)(uid=*sip*))'
ldap_rdn_ldap_attribute=uid,uid,uid
ldap_uuid_ldap_attribute=objectGUID
ldap_server_individualName=ldap_1,ldap_2
ldap_special_Fields='{"ou":"ou","departmentNumber":"departmentNumber","telephoneNumber":"telephoneNumber"};{"ou":"ou","departmentNumber":"departmentNumber","telephoneNumber":"telephoneNumber"}'
LDAP_DISALLOW_PROMOTE='["ldap_3"]'
LDAP_DEPUTY_GROUP_OBJECTCLASS='groupOfNames;groupOfNames'
LDAP_DEPUTY_GROUP_DN='o=testOrg,dc=example,dc=com;ou=groups,o=testOrg,dc=example,dc=com'
LDAP_DEPUTY_GROUP_LEADER='owner;owner'
LDAP_DEPUTY_GROUP_MEMBERS='member;member'
LDAP_DEPUTY_GROUP_FILTER=';(phonenumber=*)'
ldap_server_individualName=ldap_1,ldap_2,sip_ldap
ldap_special_Fields='{"ou":"ou","departmentNumber":"departmentNumber","telephoneNumber":"telephoneNumber"};{"ou":"ou","departmentNumber":"departmentNumber","telephoneNumber":"telephoneNumber"};{"ou":"ou","departmentNumber":"departmentNumber","telephoneNumber":"telephoneNumber"}'
LDAP_DISALLOW_PROMOTE='["ldap_3","test_ldap"]'
LDAP_DISALLOW_PROMOTE_DEPUTY='["ldap_3","test_ldap"]'
LDAP_DEPUTY_GROUP_OBJECTCLASS='groupOfNames;groupOfNames;groupOfNames'
LDAP_DEPUTY_GROUP_DN='o=testOrg,dc=example,dc=com;ou=groups,o=testOrg,dc=example,dc=com;ou=groups,o=testOrg,dc=example,dc=com'
LDAP_DEPUTY_GROUP_LEADER='owner;owner;owner'
LDAP_DEPUTY_GROUP_MEMBERS='member;member;member'
LDAP_DEPUTY_GROUP_FILTER=';(phonenumber=*);'
LDAP_IS_SIP_VIDEO='false;false;true'
###<LDAP Settings>###

### Callout Settings ###
Expand Down Expand Up @@ -94,4 +96,11 @@ ETHERPAD_SECRET=MY_SECRET
strict_allow_user_creation=1
PUBLIC_SERVER=1

DEFAULT_EMAIL=[email protected]
DEFAULT_EMAIL=[email protected]

###> jitsi-component-selector ###
JITSI_COMPONENT_SELECTOR_PRIVATE_PATH='/testJwt/'
JITSI_COMPONENT_SELECTOR_PUBLIC_PATH='/testJwt/'
###< jitsi-component-selectore ###

LIVEKIT_EVENT_TOKEN='TEST_LIVEKIT_API_TOKEN'
2 changes: 1 addition & 1 deletion .github/workflows/task-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
env:
MYSQL_ROOT_PASSWORD: root
# endregion declare_services

steps:
# region mysql_start
- name: MySQL start
Expand Down
9 changes: 5 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,7 @@ yarn-error.log
/public/trash/
/.phpdoc/

###> phpunit/phpunit ###
/phpunit.xml
.phpunit.result.cache
###< phpunit/phpunit ###

/theme/*
!/theme/README.md
/translations/custom/messages+intl-icu.de.xlf
Expand Down Expand Up @@ -69,3 +66,7 @@ repairLog.txt
/.phpunit.cache/
/nodejs/tls_certificate/*.pem
/templates/dashboard/Landing-Page-master.zip

###> baldinof/roadrunner-bundle ###
/bin/rr.*
###< baldinof/roadrunner-bundle ###
28 changes: 28 additions & 0 deletions .rr.dev.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
version: "3"

server:
command: "php public/index.php"
env:
- APP_RUNTIME: Baldinof\RoadRunnerBundle\Runtime\Runtime

http:
address: 0.0.0.0:8080
middleware: [ "static", "gzip" ]
pool:
debug: true
uploads:
forbid: [ ".php", ".exe", ".bat" ]
static:
dir: "public"
forbid: [ ".php", ".htaccess" ]

logs:
mode: development
channels:
http:
level: debug # Log all http requests, set to info to disable
server:
level: info # Everything written to worker stderr is logged
mode: raw
metrics:
level: debug
37 changes: 37 additions & 0 deletions .rr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
version: "3"

server:
command: "php public/index.php"
env:
- APP_RUNTIME: Baldinof\RoadRunnerBundle\Runtime\Runtime

http:
address: 0.0.0.0:8080
pool:
debug: false
middleware: [ "static", "gzip" ]
uploads:
forbid: [ ".php", ".exe", ".bat" ]
static:
dir: "public"
forbid: [ ".php", ".htaccess" ]

logs:
mode: production
channels:
http:
level: error # Log all http requests, set to info to disable
server:
level: error # Everything written to worker stderr is logged
mode: raw
metrics:
level: error

# Uncomment to use metrics integration
# rpc:
# listen: tcp://127.0.0.1:6001

# Uncomment to use metrics integration
# metrics:
# # prometheus client address (path /metrics added automatically)
# address: "0.0.0.0:9180"
9 changes: 6 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
FROM thecodingmachine/php:8.2-v4-apache-node18
FROM thecodingmachine/php:8.2-v4-apache-node20
ENV PHP_EXTENSION_LDAP=1
ENV PHP_EXTENSION_INTL=1
ENV PHP_EXTENSION_BCMATH=1
ENV COMPOSER_MEMORY_LIMIT=-1
ENV STARTUP_COMMAND_1="php bin/console cache:clear"
ENV STARTUP_COMMAND_2="php bin/console doctrine:mig:mig --no-interaction"
Expand All @@ -26,10 +27,12 @@ RUN rm -rf node_modules/
COPY . /var/www/html
#install all php dependencies
USER docker
RUN composer install
RUN composer install --no-scripts
USER root
#do all the directory stuff
RUN chown -R docker:docker var
RUN mkdir var
RUN chmod -R 777 var/
RUN chown -R docker:docker var/
RUN chown -R docker:docker public/uploads/
RUN chown -R docker:docker public/theme/
RUN chown -R docker:docker theme/
Expand Down
71 changes: 50 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,48 @@
[deutsch](README_de.md)

![Header](docs/images/header.png)
# Jitsi Manager
![Header](docs/images/header.webp
)
# Jitsi Admin

[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](code_of_conduct.md)
[![Crowdin](https://badges.crowdin.net/jitsi-admin/localized.svg)](https://crowdin.com/project/jitsi-admin)
[![Test Pipeline](https://github.com/H2-invent/jitsi-admin/actions/workflows/pipeline-test.yml/badge.svg)](https://github.com/H2-invent/jitsi-admin/actions/workflows/pipeline-test.yml)

Jitsi Manager, also known as Jitsi Admin, is a powerful tool designed to manage Jitsi conferences and servers effectively. This README provides an overview of its features and functionalities.

## Introduction

Jitsi Manager offers a comprehensive solution for organizing and securing your conferences, ensuring a seamless communication experience for all participants. Whether you prefer to use JSON Web Tokens (JWT) for enhanced security or opt for a simpler setup without JWT, Jitsi Manager has got you covered. It provides robust protection against conference bombing attacks, giving you peace of mind during your meetings.

## Key Features
Jitsi Manager (or Jitsi Admin) is a powerful tool designed to manage Jitsi conferences and servers effectively. Now, with **Livekit integration**, you can experience a next-generation WebRTC server that provides unmatched quality and performance.

Jitsi Manager boasts a range of features to streamline your conference management tasks. Some of the key functionalities include:
---

* **Organize Meetings and Manage Participants**: Easily create and manage meetings, allowing you to control participant access and privileges effectively.
## Introduction

* **Series Appointments**: Schedule recurring meetings, enabling you to set up regular conferences without manual intervention.
With the addition of **Livekit**, Jitsi Manager now offers an even more comprehensive solution for organizing and securing your video conferences. Livekit's performance far surpasses that of traditional WebRTC solutions, providing superior video and audio quality. We’ve also developed a new frontend tailored to Livekit, ensuring productivity-focused features while avoiding unnecessary complexity.

* **Appointment Polls**: Create polls to gather availability information from participants and find the best time for your meetings.
Whether you're using **JWT tokens** for secure authentication or setting up without them, Jitsi Manager ensures your conferences are safe from intrusions like conference bombing attacks. Manage everything centrally with our easy-to-use dashboard and enjoy seamless user experience with **LDAP/SSO integration** or direct guest access.

* **Adressbook Integration**: Organize your participants efficiently by integrating them into your address book or contact management system.
---

* **Direct Calls**: Make direct calls using your Jitsi Meet backend, facilitating one-on-one communication with participants.
## Key Features

* **LDAP or SSO Integration**: Seamlessly integrate Jitsi Admin with your existing LDAP or Single Sign-On (SSO) infrastructure, simplifying user management and authentication.
- **Livekit Integration**: Experience top-tier WebRTC server technology, providing unmatched video/audio quality and low-latency communication.
- **Organize and Manage Conferences**: Control participant access, privileges, and conference settings with ease.
- **Series Appointments & Polls**: Schedule recurring meetings and gather availability with appointment polls.
- **LDAP or SSO Integration**: Simplify user authentication by connecting Jitsi Admin to your existing LDAP or SSO setup.
- **Direct Calls**: Enable one-on-one communication directly through Jitsi.
- **Outlook Integration**: Synchronize your meetings with Outlook via iCal links.
- **Webinars and Open Conferences**: Host larger webinars and open meetings effortlessly.
- **Meeting Reminders**: Keep participants informed with automated email reminders.

* **Outlook Integration**: Import all your conferences into Outlook using iCal Link, ensuring synchronization between Jitsi Manager and your calendar.
---

* **Meeting Reminders**: Send email reminders to participants before each meeting, helping them stay informed and prepared.
## Testing Livekit Integration

* **Webinars and Open Conferences**: Create webinars and other open conferences, allowing for broader participation and engagement.
To test Livekit integration:
1. Install Livekit with a single line of code.
2. Set up your Livekit server through the Jitsi Admin dashboard.

* **Additional Great Features**: Jitsi Manager includes many more powerful features that you would typically find in leading conference tools, providing a comprehensive solution for your needs.
You’ll experience the new level of performance and see how easily Livekit integrates with Jitsi Manager.

---
### Known from


Expand Down Expand Up @@ -72,6 +78,12 @@ We use a double-opt-in process where you will receive a confirmation email conta
It is always possible to leave the mailing list.

### Partners and Sponsors
![H2 invent](docs/images/h2-invent.png)<br>
H2 invent develops as maintainer the jitsi admin

![meetling](docs/images/meetling.png)<br>
meetling is the official SAAS solution for the jitsi admin for professionals

![re@di Digital](docs/images/readi.png)<br>
We cooperate with the city administrations of Baden-Baden, Bretten, Bruchsal, Bühl, Ettlingen, Gaggenau, Rastatt, Rheinstetten and Stutensee

Expand Down Expand Up @@ -124,21 +136,38 @@ As some Composer dependencies need to be installed, it is advised to only instal
* [Minimum Requirements](https://github.com/H2-invent/jitsi-admin/wiki/Minimum-server-requirements-English)
* [API Documentation (in German)](https://github.com/H2-invent/jitsi-admin/wiki/API-Endpoints)

# Support policy
You can use the jitsi-admin for free, respecting the obligations of the Open Source license, but please do not ask or expect free support as well.
Use discussions to ask questions and get support from the community.
If you report an invalid issue and/or ask for step-by-step support, your issue will be closed as invalid without further explanation and/or the "support request" label will be added. Invalid bug reports may confuse other users. Thanks for understanding.


# License

Currently Jitsi Admin is released under the [AGPL-3.0 License](https://www.gnu.org/licenses/agpl-3.0.en.html). Additional information can be found in the [LICENSE file](LICENSE).

# Installation
Download the version you want to install or clone the whole repository.
After that execute the following command
for Debian:
```bash
bash installDockerDebian.sh
```
for Ubuntu
```bash
bash install.sh
bash installDockerUbuntu.sh
```
Follow the instruction in the command window.
## Customize your installation
To customize the environment variable in your installation please set the environments in the `.env.custom` file.
You can copy/past the variable you want to change from `.env` into the `.env.custom`.
After changing the `.env.custom` file you have to rerun `bash installDocker.sh` command to restart the container. `docker-compose up` is not enough



# Update
Follow the corresponding update instruction.

For versions <= 0.72x checkout the update instruction in the github version description.

For Version 0.73 or later the update instruction is described in the file
Expand Down
4 changes: 4 additions & 0 deletions assets/css/layout/_black.scss
Original file line number Diff line number Diff line change
Expand Up @@ -485,3 +485,7 @@ hr {
}
}
}

.swal2-modal{
background-color: $black_background!important;;
}
2 changes: 1 addition & 1 deletion assets/css/layout/_join.scss
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ strong {
transition: ease-in transform 0.2s;
width: 90vw;
max-width: 500px;

z-index: 10;
&.show {
transform: translateX(0) !important;
}
Expand Down
2 changes: 2 additions & 0 deletions assets/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
--contrast-light: rgb(144, 142, 140);
--contrast-extra-light: rgb(255, 255, 255);
--contrast-white: rgb(253, 253, 253);
--mdb-card-border-radius: 1rem;
}

/* poppins-regular - latin */
Expand Down Expand Up @@ -534,3 +535,4 @@ label.required:after {
}



Loading

0 comments on commit 3698a56

Please sign in to comment.