From 0f431b52e0936456bd165d9553761bfd8a5a0517 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 28 三月 2024 08:50:40 +0800 Subject: [PATCH] docker部署配置修改,jitis文档 --- src/main/resources/application-dev.yml | 4 src/main/resources/application-prod.yml | 4 doc/JitsiMeet.md | 372 +++++++++++++++++++++++++++++++++++++++++++++++++++++ pom.xml | 1 4 files changed, 379 insertions(+), 2 deletions(-) diff --git a/doc/JitsiMeet.md b/doc/JitsiMeet.md new file mode 100644 index 0000000..eed4c0f --- /dev/null +++ b/doc/JitsiMeet.md @@ -0,0 +1,372 @@ +## ubuntu瀹夎docker + +[docker瀹樻柟鏂囨。](https://docs.docker.com/engine/install/ubuntu/) + +[涓嬭浇闀滃儚澶參](https://blog.csdn.net/qq_35606010/article/details/104750391) + + + +## 閮ㄧ讲Jitis + +[docker-compose閮ㄧ讲](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker/) + + + +閮ㄧ讲浣嶇疆锛歚/usr/local/meet/jitis-docker-xxxx`鐩綍 + + + +## 淇敼閰嶇疆 + +杩愯濂藉鍣ㄤ箣鍚庯紝閫氳繃ip+8443绔彛鍙互璁块棶鍒扮晫闈細 + +<img src="https://xiangpeitop.oss-cn-chengdu.aliyuncs.com/blogimgs/image-20240325160746091.png" alt="image-20240325160746091" style="zoom:50%;" /> + +**鐐瑰嚮寮�濮嬩細璁氨涓嶈锛屼細鎶ラ敊銆傛柇寮�杩炴帴** + +鏄洜涓簀itis浼氳繘琛屼竴涓獁ebsocket杩炴帴銆傚紑鍙戞椂鏈湴杩愯鍓嶇锛屽彂鐜皐ebsocket杩炴帴鏄繛鎺ュ埌鏈湴localhost銆傛湰鍦板苟娌℃湁socket鏈嶅姟锛屾墍浠ユ棤娉曡繛鎺ャ�� + +瑙e喅鍔炴硶灏辨槸鍏抽棴socket杩炴帴: 鍦�.env鏂囦欢涓姞鍏ヨ繖娈甸厤缃紝鐒跺悗閲嶅惎鏈嶅姟锛歚docker compose up -d`(闇�瑕佸湪docker-compose.yml鏂囦欢澶逛笅) + +``` +# 鍏抽棴websocket锛屼笉鐒舵棤娉曞姞鍏ヤ細璁� +ENABLE_XMPP_WEBSOCKET=0 +``` + + + + + + + +## 濡備綍鍘绘按鍗扮瓑閰嶇疆 + +jisti鍙互鍏佽瀹㈡埛绔慨鏀逛竴浜涢厤缃�備絾鏄彧鏈夐儴鍒嗙櫧鍚嶅崟閲岄潰鐨勯厤缃彲浠ヤ慨鏀广��**濡傚幓瑙嗛姘村嵃灏变笉琛�**锛� + +<img src="https://xiangpeitop.oss-cn-chengdu.aliyuncs.com/blogimgs/image-20240325181209573.png" alt="image-20240325181209573" style="zoom:67%;" /> + +鏌ョ湅杩愯瀹瑰櫒(nginx)鐨勯厤缃彂鐜帮紝寰堝閰嶇疆鏂囦欢(xxx.js)鏄彲浠ラ�氳繃娴忚鍣ㄨ闂殑銆� + +浜庢槸杩涘叆web瀹瑰櫒锛屾壘鍒颁簡鍏充簬鍘绘按鍗扮瓑閰嶇疆鐨勫湴鏂癸細`/config/interface_config.js` + + + +鍘绘按鍗颁笉鍦ㄧ櫧鍚嶅崟鍐咃紝鎵�浠ユ棤璁哄鎴风鎬庝箞淇敼涔熸棤鏁堬紝鍖呮嫭鍏跺畠寰堝閰嶇疆涔熸槸銆� + + + +**鎵�浠ュ氨灏濊瘯淇敼瀹瑰櫒鍐呴儴鐨刞interface_config.js`銆傚鍣ㄥ唴閮ㄦ病鏈塿im鍛戒护锛屾墍浠ユ垜鐩存帴閲囩敤鐨勬槸璁茶鏂囦欢澶嶅埗鍒板涓绘満淇敼鍚庡啀澶嶅埗杩涙潵銆傜劧鍚庨噸鍚鍣ㄣ��** + +澶嶅埗瀹瑰櫒鍐呯殑鏂囦欢鍒板涓绘満锛歚docker cp 瀹瑰櫒ID:瀹瑰櫒鍐呮枃浠剁洰褰� 瀹夸富鏈烘枃浠剁洰褰昤 + +澶嶅埗瀹夸富鏈烘枃浠跺埌瀹瑰櫒鍐呴儴锛歚docker cp 瀹夸富鏈烘枃浠剁洰褰� 瀹瑰櫒ID:瀹瑰櫒鍐呮枃浠剁洰褰昤锛氫緥濡傦細`docker cp /interface_config.js e086a6dba069:/config/interface_config.js` + +澶嶅埗鏂囦欢鏃讹紝鍚屽悕鏂囦欢浼氱洿鎺ヨ鐩� + + + + + +杩欓噷鏄竴涓幓鎺変簡姘村嵃銆佸箍鍛婄殑鐨刞interface_config.js`鏂囦欢鍐呭锛� + +```js +/* eslint-disable no-unused-vars, no-var, max-len */ +/* eslint sort-keys: ["error", "asc", {"caseSensitive": false}] */ + +/** + * !!!IMPORTANT!!! + * + * This file is considered deprecated. All options will eventually be moved to + * config.js, and no new options should be added here. + */ + +var interfaceConfig = { + APP_NAME: '鍦ㄧ嚎浼氳', + AUDIO_LEVEL_PRIMARY_COLOR: 'rgba(255,255,255,0.4)', + AUDIO_LEVEL_SECONDARY_COLOR: 'rgba(255,255,255,0.2)', + + /** + * A UX mode where the last screen share participant is automatically + * pinned. Valid values are the string "remote-only" so remote participants + * get pinned but not local, otherwise any truthy value for all participants, + * and any falsy value to disable the feature. + * + * Note: this mode is experimental and subject to breakage. + */ + AUTO_PIN_LATEST_SCREEN_SHARE: 'remote-only', + BRAND_WATERMARK_LINK: '', + + CLOSE_PAGE_GUEST_HINT: false, // A html text to be shown to guests on the close page, false disables it + + DEFAULT_BACKGROUND: '#040404', + DEFAULT_WELCOME_PAGE_LOGO_URL: '', + + DISABLE_DOMINANT_SPEAKER_INDICATOR: false, + + /** + * If true, notifications regarding joining/leaving are no longer displayed. + */ + DISABLE_JOIN_LEAVE_NOTIFICATIONS: false, + + /** + * If true, presence status: busy, calling, connected etc. is not displayed. + */ + DISABLE_PRESENCE_STATUS: false, + + /** + * Whether the ringing sound in the call/ring overlay is disabled. If + * {@code undefined}, defaults to {@code false}. + * + * @type {boolean} + */ + DISABLE_RINGING: false, + + /** + * Whether the speech to text transcription subtitles panel is disabled. + * If {@code undefined}, defaults to {@code false}. + * + * @type {boolean} + */ + DISABLE_TRANSCRIPTION_SUBTITLES: false, + + /** + * Whether or not the blurred video background for large video should be + * displayed on browsers that can support it. + */ + DISABLE_VIDEO_BACKGROUND: false, + + DISPLAY_WELCOME_FOOTER: false, + DISPLAY_WELCOME_PAGE_ADDITIONAL_CARD: false, + DISPLAY_WELCOME_PAGE_CONTENT: false, + DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT: false, + + ENABLE_DIAL_OUT: true, + + // DEPRECATED. Animation no longer supported. + // ENABLE_FEEDBACK_ANIMATION: false, + + FILM_STRIP_MAX_HEIGHT: 120, + + GENERATE_ROOMNAMES_ON_WELCOME_PAGE: false, + + /** + * Hide the invite prompt in the header when alone in the meeting. + */ + HIDE_INVITE_MORE_HEADER: true, + + JITSI_WATERMARK_LINK: '', + + LANG_DETECTION: true, // Allow i18n to detect the system language + LOCAL_THUMBNAIL_RATIO: 16 / 9, // 16:9 + + /** + * Maximum coefficient of the ratio of the large video to the visible area + * after the large video is scaled to fit the window. + * + * @type {number} + */ + MAXIMUM_ZOOMING_COEFFICIENT: 1.3, + + /** + * Whether the mobile app Jitsi Meet is to be promoted to participants + * attempting to join a conference in a mobile Web browser. If + * {@code undefined}, defaults to {@code true}. + * + * @type {boolean} + */ + MOBILE_APP_PROMO: false, + + // Names of browsers which should show a warning stating the current browser + // has a suboptimal experience. Browsers which are not listed as optimal or + // unsupported are considered suboptimal. Valid values are: + // chrome, chromium, electron, firefox , safari, webkit + OPTIMAL_BROWSERS: [ 'chrome', 'chromium', 'firefox', 'electron', 'safari', 'webkit' ], + + POLICY_LOGO: null, + PROVIDER_NAME: '浼樺垱鍔�', + + /** + * If true, will display recent list + * + * @type {boolean} + */ + RECENT_LIST_ENABLED: true, + REMOTE_THUMBNAIL_RATIO: 1, // 1:1 + + SETTINGS_SECTIONS: [ 'devices', 'language', 'moderator', 'profile', 'calendar', 'sounds', 'more' ], + + /** + * Specify which sharing features should be displayed. If the value is not set + * all sharing features will be shown. You can set [] to disable all. + */ + // SHARING_FEATURES: ['email', 'url', 'dial-in', 'embed'], + + SHOW_BRAND_WATERMARK: false, + + /** + * Decides whether the chrome extension banner should be rendered on the landing page and during the meeting. + * If this is set to false, the banner will not be rendered at all. If set to true, the check for extension(s) + * being already installed is done before rendering. + */ + SHOW_CHROME_EXTENSION_BANNER: false, + + SHOW_JITSI_WATERMARK: false, + SHOW_POWERED_BY: false, + SHOW_PROMOTIONAL_CLOSE_PAGE: false, + + /* + * If indicated some of the error dialogs may point to the support URL for + * help. + */ + SUPPORT_URL: '', + + // Browsers, in addition to those which do not fully support WebRTC, that + // are not supported and should show the unsupported browser page. + UNSUPPORTED_BROWSERS: [], + + /** + * Whether to show thumbnails in filmstrip as a column instead of as a row. + */ + VERTICAL_FILMSTRIP: true, + + // Determines how the video would fit the screen. 'both' would fit the whole + // screen, 'height' would fit the original video height to the height of the + // screen, 'width' would fit the original video width to the width of the + // screen respecting ratio, 'nocrop' would make the video as large as + // possible and preserve aspect ratio without cropping. + VIDEO_LAYOUT_FIT: 'both', + + /** + * If true, hides the video quality label indicating the resolution status + * of the current large video. + * + * @type {boolean} + */ + VIDEO_QUALITY_LABEL_DISABLED: false, + + /** + * How many columns the tile view can expand to. The respected range is + * between 1 and 5. + */ + // TILE_VIEW_MAX_COLUMNS: 5, + + // List of undocumented settings + /** + INDICATOR_FONT_SIZES + PHONE_NUMBER_REGEX + */ + + // -----------------DEPRECATED CONFIGS BELOW THIS LINE----------------------------- + + /** + * Specify URL for downloading ios mobile app. + */ + // MOBILE_DOWNLOAD_LINK_IOS: 'https://itunes.apple.com/us/app/jitsi-meet/id1165103905', + + /** + * Specify custom URL for downloading android mobile app. + */ + // MOBILE_DOWNLOAD_LINK_ANDROID: 'https://play.google.com/store/apps/details?id=org.jitsi.meet', + + /** + * Specify mobile app scheme for opening the app from the mobile browser. + */ + // APP_SCHEME: 'org.jitsi.meet', + + // NATIVE_APP_NAME: 'Jitsi Meet', + + /** + * Specify Firebase dynamic link properties for the mobile apps. + */ + // MOBILE_DYNAMIC_LINK: { + // APN: 'org.jitsi.meet', + // APP_CODE: 'w2atb', + // CUSTOM_DOMAIN: undefined, + // IBI: 'com.atlassian.JitsiMeet.ios', + // ISI: '1165103905' + // }, + + /** + * Hide the logo on the deep linking pages. + */ + HIDE_DEEP_LINKING_LOGO: true, + + /** + * Specify the Android app package name. + */ + // ANDROID_APP_PACKAGE: 'org.jitsi.meet', + + /** + * Specify custom URL for downloading f droid app. + */ + // MOBILE_DOWNLOAD_LINK_F_DROID: 'https://f-droid.org/en/packages/org.jitsi.meet/', + + // Connection indicators ( + // CONNECTION_INDICATOR_AUTO_HIDE_ENABLED, + // CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT, + // CONNECTION_INDICATOR_DISABLED) got moved to config.js. + + // Please use disableModeratorIndicator from config.js + // DISABLE_FOCUS_INDICATOR: false, + + // Please use defaultLocalDisplayName from config.js + // DEFAULT_LOCAL_DISPLAY_NAME: 'me', + + // Please use defaultLogoUrl from config.js + DEFAULT_LOGO_URL: '', + + // Please use defaultRemoteDisplayName from config.js + // DEFAULT_REMOTE_DISPLAY_NAME: 'Fellow Jitster', + + // Moved to config.js as `toolbarConfig.initialTimeout`. + // INITIAL_TOOLBAR_TIMEOUT: 20000, + + // Please use `liveStreaming.helpLink` from config.js + // Documentation reference for the live streaming feature. + // LIVE_STREAMING_HELP_LINK: 'https://jitsi.org/live', + + // Moved to config.js as `toolbarConfig.alwaysVisible`. + // TOOLBAR_ALWAYS_VISIBLE: false, + + // This config was moved to config.js as `toolbarButtons`. + // TOOLBAR_BUTTONS: [], + + // Moved to config.js as `toolbarConfig.timeout`. + // TOOLBAR_TIMEOUT: 4000, + + // Allow all above example options to include a trailing comma and + // prevent fear when commenting out the last value. + // eslint-disable-next-line sort-keys + makeJsonParserHappy: 'even if last key had a trailing comma' + + // No configuration value should follow this line. +}; + +/* eslint-enable no-unused-vars, no-var, max-len */ + +``` + + + + + +## 鍓嶇濡備綍浣跨敤Jitis + +```js +<div id="meet" style="width: 65%;height: 100%;"></div> + + +const domain = '101.35.247.188:8443'; +const options = { + roomName: this.roomName, // 浼氳鎴块棿鍚嶇О + width: '100%', + height: '100%', + lang: 'zh_CN', + parentNode: document.querySelector('#meet'), // 鎸傝浇鐨勮妭鐐� + userInfo: { displayName: this.userName } // 鍙備笌浜虹殑鐩稿叧淇℃伅锛屼竴涓猨s瀵硅薄灏辫锛屽唴瀹规棤闄愬埗 +}; +// 鍒涘缓 Jitsi Meet API 瀵硅薄 +const api = new JitsiMeetExternalAPI(domain, options); +``` + +鍏跺師鐞嗗氨鏄�氳繃ifram灏嗘湇鍔″櫒鐨凧itis web搴旂敤灞曠ず鍒版垜浠殑缃戠珯涓婏紝鎴戜滑鍙互鍦ㄨ嚜宸辩殑绋嬪簭涓厤缃竴浜涗笢瑗匡紝濡備細璁悕锛屾洿娣变竴鐐硅繕鍙互璋冪敤Jitis鎻愪緵鐨勫懡浠ゅ幓鍋氫竴浜涗笟鍔″疄鐜� diff --git a/pom.xml b/pom.xml index 308eddf..8562316 100644 --- a/pom.xml +++ b/pom.xml @@ -176,6 +176,7 @@ <build> + <finalName>edu</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 26b4cc0..a8f2b45 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -5,13 +5,13 @@ spring: redis: # 鍦板潃 - host: 124.222.18.104 + host: localhost # 绔彛锛岄粯璁や负6379 port: 6379 # 鏁版嵁搴撶储寮� database: 0 # 瀵嗙爜 - password: _elG#jZMd+WHgC +# password: _elG#jZMd+WHgC datasource: url: jdbc:mysql://42.193.1.25:3306/xzs?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index a7cad97..7bfadc2 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -5,6 +5,10 @@ spring: redis: host: localhost + # 绔彛锛岄粯璁や负6379 + port: 6379 + # 鏁版嵁搴撶储寮� + database: 0 datasource: url: jdbc:mysql://localhost:3306/xzs?useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&allowMultiQueries=true username: root -- Gitblit v1.8.0