From 4814f78a98677957699e6ec8b7a11dbb96a53ca1 Mon Sep 17 00:00:00 2001 From: Hongji Zhu Date: Thu, 16 Jan 2025 22:48:50 +0800 Subject: [PATCH] fix local web demo no permission for camera/mic --- README.md | 4 +++- README_zh.md | 4 +++- web_demos/minicpm-o_2.6/web_server/make_ssl_cert.sh | 2 ++ web_demos/minicpm-o_2.6/web_server/vite.config.js | 6 ++++++ 4 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 web_demos/minicpm-o_2.6/web_server/make_ssl_cert.sh diff --git a/README.md b/README.md index 55f8440..abdf6b9 100644 --- a/README.md +++ b/README.md @@ -1833,8 +1833,10 @@ npm install -g pnpm cd web_demos/minicpm-o_2.6/web_server -pnpm install # install requirements +# create ssl cert for https, https is required to request camera and microphone permissions. +bash ./make_ssl_cert.sh # output key.pem and cert.pem +pnpm install # install requirements pnpm run dev # start server ``` diff --git a/README_zh.md b/README_zh.md index 2e0948d..e3ad360 100644 --- a/README_zh.md +++ b/README_zh.md @@ -1815,8 +1815,10 @@ npm install -g pnpm cd web_demos/minicpm-o_2.6/web_server -pnpm install # install requirements +# 为https创建自签名证书, 要申请浏览器摄像头和麦克风权限须启动https. +bash ./make_ssl_cert.sh # output key.pem and cert.pem +pnpm install # install requirements pnpm run dev # start server ``` diff --git a/web_demos/minicpm-o_2.6/web_server/make_ssl_cert.sh b/web_demos/minicpm-o_2.6/web_server/make_ssl_cert.sh new file mode 100644 index 0000000..5cf1e39 --- /dev/null +++ b/web_demos/minicpm-o_2.6/web_server/make_ssl_cert.sh @@ -0,0 +1,2 @@ + +openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes diff --git a/web_demos/minicpm-o_2.6/web_server/vite.config.js b/web_demos/minicpm-o_2.6/web_server/vite.config.js index b6c9509..35d0e8a 100644 --- a/web_demos/minicpm-o_2.6/web_server/vite.config.js +++ b/web_demos/minicpm-o_2.6/web_server/vite.config.js @@ -9,6 +9,8 @@ import IconsResolver from 'unplugin-icons/resolver'; import AutoImport from 'unplugin-auto-import/vite'; import Components from 'unplugin-vue-components/vite'; import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'; +import fs from 'fs'; +import path from 'path'; export default defineConfig({ plugins: [ @@ -55,6 +57,10 @@ export default defineConfig({ } }, server: { + https: { + key: fs.readFileSync(path.resolve(__dirname, 'key.pem')), + cert: fs.readFileSync(path.resolve(__dirname, 'cert.pem')), + }, host: '0.0.0.0', port: 8088, proxy: {