{"id":19517824,"url":"https://github.com/emrahcom/galaxy-kc","last_synced_at":"2025-04-26T06:31:28.836Z","repository":{"id":203743710,"uuid":"710305854","full_name":"emrahcom/galaxy-kc","owner":"emrahcom","description":"Galaxy-kc is a web application for Jitsi admins and users to organize their Jitsi meetings, meeting schedules and attendees. ","archived":false,"fork":false,"pushed_at":"2025-04-20T12:13:54.000Z","size":2396,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-20T12:42:04.657Z","etag":null,"topics":["jitsi","jitsi-meet","keycloak","meeting","meeting-management","videoconferencing"],"latest_commit_sha":null,"homepage":"","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emrahcom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-10-26T12:39:24.000Z","updated_at":"2025-04-20T12:13:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"d989be10-6f61-4c27-8510-011c8d4e8317","html_url":"https://github.com/emrahcom/galaxy-kc","commit_stats":null,"previous_names":["emrahcom/galaxy-kc"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emrahcom%2Fgalaxy-kc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emrahcom%2Fgalaxy-kc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emrahcom%2Fgalaxy-kc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emrahcom%2Fgalaxy-kc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emrahcom","download_url":"https://codeload.github.com/emrahcom/galaxy-kc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250944149,"owners_count":21511704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jitsi","jitsi-meet","keycloak","meeting","meeting-management","videoconferencing"],"created_at":"2024-11-11T00:06:41.510Z","updated_at":"2025-04-26T06:31:28.829Z","avatar_url":"https://github.com/emrahcom.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"# galaxy-kc\n\n`Galaxy-kc` is a web application for `Jitsi` admins and users to organize their\nJitsi meetings, meeting schedules and attendees.\n\nThis version uses `Keycloak` as the identity provider. Check\n[Galaxy](https://github.com/emrahcom/galaxy) for version with a built-in\nidentity management system.\n\n### Try it\n\nTry `Galaxy` using publicly available implementation on\n[https://eparto.net](https://eparto.net)\n\nAlso check out\n[Eparto Virtual Phone](https://github.com/emrahcom/eparto-virtual-phone) if you\nwant to use your browser as a virtual phone and make calls directly, without\nneeding to open any websites.\n\n### Features\n\n- Use `Keycloak` as the identity management system\n- Add as many Jitsi servers as you want\n- Allow your partners to access your Jitsi server for different use-cases:\n  - `domain partnership`: allow them to access the whole Jitsi server without\n    sharing your secret key or the private key\n  - `room partnership`: allow them to manage some Jitsi rooms\n  - `meeting membership`: allow them to access some meetings as `moderator` or\n    as `limited participant`\n- Allow partnership using an invite link\n- Allow membership using an invite link\n- Create access links for unregistered users\n- Create disposable or permanent access links\n- Create scheduled meetings\n- Calendar view for scheduled meetings\n- Waiting room for scheduled meetings\n- Direct call (_call other users just like a phone call_)\n- Virtual phone (_receive calls from anyone, even those without an account_)\n- Email notification for missed calls, upcoming meetings, etc.\n- Manage your Jitsi profiles\n- Ability to attach a profile to a specific meeting\n- Unpredictable room name support. Create meeting links for anonymous Jitsi\n  servers (such as `meet.jit.si`) and share these links with your members.\n  Although the actual meeting link is updated periodically in the background\n  (using some hashing algorithm), members can always join the meeting using its\n  static `Galaxy` link. So, only your members can join this unprotected meeting\n  room.\n- Built-in JWT support\n- Built-in [JaaS](https://jaas.8x8.vc) support\n- Transfer all your Jitsi resources (rooms, meetings, partners, members, etc.)\n  in one simple step to a new Jitsi server.\n\n### Docker setup\n\nCopy [env.sample](/env.sample) as `.env`, update parameters in it according to\nyour environment then start containers with `docker-compose`:\n\n```bash\ngit clone https://github.com/emrahcom/galaxy-kc.git\ncd galaxy-kc\n\ncp env.sample .env\n\n# Edit .env\n\ndocker compose pull\ndocker compose up -d\n```\n\n### Standalone setup\n\n#### Prerequisites\n\n- `Debian 12 Bookworm` server\\\n  _Use a dedicated server, not shared one... It will be heavily customized._\n- At least 2 GB RAM and 6 GB disk space\n- An `FQDN`. e.g. `app.galaxy.corp`\n- A DNS `A record` for this `FQDN` pointing to the server\n- Allow the following ports if the server is behind a firewall\n  - `TCP/80` (_needed for Let's Encrypt certificate_)\n  - `TCP/443`\n- A `Keycloak` server\n\n#### Installation\n\nRun the following commands as `root`:\n\n- Update `GALAXY_FQDN` according to your domain name.\n\n- Update `KEYCLOAK_*` parameters according to your `Keycloak` configuration.\n\n- Update `MAILER_*` parameters according to your email system.\n\n  _See [NodeMailer reference](https://nodemailer.com/smtp/) for more details_\n\n- If this is a test setup and you don't have resolvable FQDNs, please set\n  `SKIP_DNS_CHECK` before installation.\n\n  ```bash\n  export SKIP_DNS_CHECK=true\n  ```\n\n- If this is a test setup and your `Keycloak` doesn't have a trusted\n  certificate, please set `IGNORE_CERT_ERRORS` before installation.\n\n  ```bash\n  export IGNORE_CERT_ERRORS=true\n  ```\n\n```bash\nwget https://raw.githubusercontent.com/emrahcom/bookworm-lxc-base/main/installer/eb\nwget https://raw.githubusercontent.com/emrahcom/galaxy-kc/main/installer/eb-galaxy-kc.conf\n\nexport GALAXY_FQDN=\"app.galaxy.corp\"\nexport KEYCLOAK_ORIGIN=\"https://ucs-sso-ng.mydomain.corp\"\nexport KEYCLOAK_REALM=\"ucs\"\nexport KEYCLOAK_CLIENT_ID=\"galaxy\"\nexport MAILER_HOST=\"mail.galaxy.corp\"\nexport MAILER_PORT=465\nexport MAILER_SECURE=true\nexport MAILER_USER=\"username\"\nexport MAILER_PASS=\"password\"\nexport MAILER_FROM=\"no-reply@galaxy.corp\"\n\nbash eb eb-galaxy-kc\n```\n\n#### Let's Encrypt certificate\n\nLet's say the host address of the application is `app.galaxy.corp`. To set the\nLet's Encrypt certificate:\n\n```bash\nset-letsencrypt-cert app.galaxy.corp\n```\n\n### Keycloak config\n\nCreate the client and users inside the realm:\n\n- Create the realm (_e.g. `ucs`_)\n- Switch to the newly created realm\n- Create the client in this realm.\n  - Client type: `OpenID Connect`\n  - Client ID: `galaxy`\n- Configure the client:\n  - Client authentication: `off`\n  - Authorization: `off`\n  - Authentication flow\n    - `Standard flow`\n    - `Direct access grants`\n  - Add Galaxy URL into `Valid redirect URIs` (_e.g. `https:/app.galaxy.corp/*`_)\n  - Valid post logout redirect URIs: `+`\n  - Web origins: `+`\n  - For Keycloak versions \u003c 20.x, set Access type to `public`:\n\n    ![Screenshot Keycloak pre-20](docs/images/keycloak-pre-20.png)\n\n  - For Keycloak versions \u003e= 20.x, disable `Client authentication`:\n\n    ![Screenshot Keycloak 20](docs/images/keycloak-20.png)\n- Create the users inside this realm.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femrahcom%2Fgalaxy-kc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femrahcom%2Fgalaxy-kc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femrahcom%2Fgalaxy-kc/lists"}