2025-01-03 07:31:48 +08:00
<!doctype html>
< html lang = "en" dir = "ltr" class = "docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-deploy/agent" data-has-hydrated = "false" >
< head >
< meta charset = "UTF-8" >
< meta name = "generator" content = "Docusaurus v3.6.3" >
2025-01-03 07:52:00 +08:00
< title data-rh = "true" > Client Deployment | Bytedesk< / title > < meta data-rh = "true" name = "viewport" content = "width=device-width,initial-scale=1" > < meta data-rh = "true" name = "twitter:card" content = "summary_large_image" > < meta data-rh = "true" property = "og:image" content = "https://www.weiyuai.cn/bytedesk/img/docusaurus-social-card.jpg" > < meta data-rh = "true" name = "twitter:image" content = "https://www.weiyuai.cn/bytedesk/img/docusaurus-social-card.jpg" > < meta data-rh = "true" property = "og:url" content = "https://www.weiyuai.cn/bytedesk/docs/deploy/agent" > < meta data-rh = "true" property = "og:locale" content = "en" > < meta data-rh = "true" property = "og:locale:alternate" content = "zh_CN" > < meta data-rh = "true" property = "og:locale:alternate" content = "zh_TW" > < meta data-rh = "true" name = "docusaurus_locale" content = "en" > < meta data-rh = "true" name = "docsearch:language" content = "en" > < meta data-rh = "true" name = "docusaurus_version" content = "current" > < meta data-rh = "true" name = "docusaurus_tag" content = "docs-default-current" > < meta data-rh = "true" name = "docsearch:version" content = "current" > < meta data-rh = "true" name = "docsearch:docusaurus_tag" content = "docs-default-current" > < meta data-rh = "true" property = "og:title" content = "Client Deployment | Bytedesk" > < meta data-rh = "true" name = "description" content = "- Operating System: Ubuntu 20.04 LTS" > < meta data-rh = "true" property = "og:description" content = "- Operating System: Ubuntu 20.04 LTS" > < link data-rh = "true" rel = "icon" href = "/bytedesk/img/favicon.ico" > < link data-rh = "true" rel = "canonical" href = "https://www.weiyuai.cn/bytedesk/docs/deploy/agent" > < link data-rh = "true" rel = "alternate" href = "https://www.weiyuai.cn/bytedesk/docs/deploy/agent" hreflang = "en" > < link data-rh = "true" rel = "alternate" href = "https://www.weiyuai.cn/bytedesk/zh-CN/docs/deploy/agent" hreflang = "zh-CN" > < link data-rh = "true" rel = "alternate" href = "https://www.weiyuai.cn/bytedesk/zh-TW/docs/deploy/agent" hreflang = "zh-TW" > < link data-rh = "true" rel = "alternate" href = "https://www.weiyuai.cn/bytedesk/docs/deploy/agent" hreflang = "x-default" > < link rel = "alternate" type = "application/rss+xml" href = "/bytedesk/blog/rss.xml" title = "Bytedesk RSS Feed" >
< link rel = "alternate" type = "application/atom+xml" href = "/bytedesk/blog/atom.xml" title = "Bytedesk Atom Feed" > < link rel = "stylesheet" href = "/bytedesk/assets/css/styles.800aa174.css" >
< script src = "/bytedesk/assets/js/runtime~main.8afb81e7.js" defer = "defer" > < / script >
< script src = "/bytedesk/assets/js/main.3e71904f.js" defer = "defer" > < / script >
2025-01-03 07:31:48 +08:00
< / head >
< body class = "navigation-with-keyboard" >
2025-01-03 07:52:00 +08:00
< script > ! function ( ) { function t ( t ) { document . documentElement . setAttribute ( "data-theme" , t ) } var e = function ( ) { try { return new URLSearchParams ( window . location . search ) . get ( "docusaurus-theme" ) } catch ( t ) { } } ( ) || function ( ) { try { return window . localStorage . getItem ( "theme" ) } catch ( t ) { } } ( ) ; t ( null !== e ? e : "light" ) } ( ) , function ( ) { try { const n = new URLSearchParams ( window . location . search ) . entries ( ) ; for ( var [ t , e ] of n ) if ( t . startsWith ( "docusaurus-data-" ) ) { var a = t . replace ( "docusaurus-data-" , "data-" ) ; document . documentElement . setAttribute ( a , e ) } } catch ( t ) { } } ( ) < / script > < div id = "__docusaurus" > < div role = "region" aria-label = "Skip to main content" > < a class = "skipToContent_NkfX" href = "#__docusaurus_skipToContent_fallback" > Skip to main content< / a > < / div > < nav aria-label = "Main" class = "navbar navbar--fixed-top" > < div class = "navbar__inner" > < div class = "navbar__items" > < button aria-label = "Toggle navigation bar" aria-expanded = "false" class = "navbar__toggle clean-btn" type = "button" > < svg width = "30" height = "30" viewBox = "0 0 30 30" aria-hidden = "true" > < path stroke = "currentColor" stroke-linecap = "round" stroke-miterlimit = "10" stroke-width = "2" d = "M4 7h22M4 15h22M4 23h22" > < / path > < / svg > < / button > < a class = "navbar__brand" href = "/bytedesk/" > < div class = "navbar__logo" > < img src = "/bytedesk/img/logo.png" alt = "Bytedesk Logo" class = "themedComponent_E98H themedComponent--light_O0S4" > < img src = "/bytedesk/img/logo.png" alt = "Bytedesk Logo" class = "themedComponent_E98H themedComponent--dark_koH5" > < / div > < b class = "navbar__title text--truncate" > Bytedesk< / b > < / a > < a aria-current = "page" class = "navbar__item navbar__link navbar__link--active" href = "/bytedesk/docs/intro" > Docs< / a > < a class = "navbar__item navbar__link" href = "/bytedesk/blog" > Blog< / a > < / div > < div class = "navbar__items navbar__items--right" > < a href = "https://github.com/bytedesk/bytedesk" target = "_blank" rel = "noopener noreferrer" class = "navbar__item navbar__link" > GitHub< svg width = "13.5" height = "13.5" aria-hidden = "true" viewBox = "0 0 24 24" class = "iconExternalLink_HxLw" > < path fill = "currentColor" d = "M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z" > < / path > < / svg > < / a > < a href = "https://www.weiyuai.cn/contact.html" target = "_blank" rel = "noopener noreferrer" class = "navbar__item navbar__link" > Contact< svg width = "13.5" height = "13.5" aria-hidden = "true" viewBox = "0 0 24 24" class = "iconExternalLink_HxLw" > < path fill = "currentColor" d = "M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z" > < / path > < / svg > < / a > < div class = "navbar__item dropdown dropdown--hoverable dropdown--right" > < a href = "#" aria-haspopup = "true" aria-expanded = "false" role = "button" class = "navbar__link" > < svg viewBox = "0 0 24 24" width = "20" height = "20" aria-hidden = "true" class = "iconLanguage_uoIN" > < path fill = "currentColor" d = "M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z" > < / path > < / svg > English< / a > < ul class = "dropdown__menu" > < li > < a href = "/bytedesk/docs/deploy/agent" target = "_self" rel = "noopener noreferrer" class = "dropdown__link dropdown__link--active" lang = "en" > English< / a > < / li > < li > < a href = "/bytedesk/zh-CN/docs/deploy/agent" target = "_self" rel = "noopener noreferrer" class = "dropdown__link" lang = "zh-CN" > 简体中文< / a > < / li > < li > < a href = "/bytedesk/zh-TW/docs/deploy/agent" target = "_self" rel = "noopener noreferrer" class = "dropdown__link" lang = "zh-TW" > 繁体中文< / a > < / li > < / ul > < / div > < div class = "toggle_vpq5 colorModeToggle_Bafy" > < button class = "clean-btn toggleButton_SxqB toggleButtonDisabled_qwT6" type = "button" disabled = "" title = "Switch between dark and light mode (currently light mode)" aria-label = "Switch between dark and light mode (currently light mode)" aria-live = "polite" aria-pressed = "false" > < svg viewBox = "0 0 24 24" width = "24" height = "24" class = "lightToggleIcon_szGB" > < path fill = "currentColor" d = "M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12 , 7c-2
2025-01-03 07:31:48 +08:00
< div class = "theme-admonition theme-admonition-tip admonition_k1o9 alert alert--success" > < div class = "admonitionHeading_IAS2" > < span class = "admonitionIcon_lvl3" > < svg viewBox = "0 0 12 16" > < path fill-rule = "evenodd" d = "M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z" > < / path > < / svg > < / span > Tip< / div > < div class = "admonitionContent_bkhY" > < ul >
< li > Operating System: Ubuntu 20.04 LTS< / li >
< li > Server Requirements: Minimum 2 cores 4GB RAM, Recommended 4 cores 8GB RAM< / li >
< / ul > < / div > < / div >
< h2 class = "anchor anchorWithStickyNavbar_mZwI" id = "dependencies" > Dependencies< a href = "#dependencies" class = "hash-link" aria-label = "Direct link to Dependencies" title = "Direct link to Dependencies" > < / a > < / h2 >
< ul >
2025-01-03 07:52:00 +08:00
< li > < a href = "/bytedesk/docs/deploy/depend/nginx" > Nginx< / a > < / li >
< li > < a href = "/bytedesk/docs/deploy/depend/letsencrypt" > Let' s Encrypt< / a > < / li >
2025-01-03 07:31:48 +08:00
< / ul >
< h2 class = "anchor anchorWithStickyNavbar_mZwI" id = "download" > Download< a href = "#download" class = "hash-link" aria-label = "Direct link to Download" title = "Direct link to Download" > < / a > < / h2 >
< div class = "language-bash codeBlockContainer_rCvc theme-code-block" style = "--prism-color:#393A34;--prism-background-color:#f6f8fa" > < div class = "codeBlockContent_T37s" > < pre tabindex = "0" class = "prism-code language-bash codeBlock_swWw thin-scrollbar" style = "color:#393A34;background-color:#f6f8fa" > < code class = "codeBlockLines_aEeN" > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > # Download source code< / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > git clone https://github.com/bytedesk/bytedesk-agent.git< / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > cd bytedesk-agent< / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > # Install dependencies< / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > yarn install< / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > # Start development< / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > yarn dev< / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > # Build for production< / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > yarn build< / span > < br > < / span > < / code > < / pre > < div class = "buttonGroup_Rp0T" > < button type = "button" aria-label = "Copy code to clipboard" title = "Copy" class = "clean-btn" > < span class = "copyButtonIcons_d6OK" aria-hidden = "true" > < svg viewBox = "0 0 24 24" class = "copyButtonIcon_tfNw" > < path fill = "currentColor" d = "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" > < / path > < / svg > < svg viewBox = "0 0 24 24" class = "copyButtonSuccessIcon_jBa9" > < path fill = "currentColor" d = "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" > < / path > < / svg > < / span > < / button > < / div > < / div > < / div >
< h2 class = "anchor anchorWithStickyNavbar_mZwI" id = "configuration" > Configuration< a href = "#configuration" class = "hash-link" aria-label = "Direct link to Configuration" title = "Direct link to Configuration" > < / a > < / h2 >
< div class = "language-bash codeBlockContainer_rCvc theme-code-block" style = "--prism-color:#393A34;--prism-background-color:#f6f8fa" > < div class = "codeBlockContent_T37s" > < pre tabindex = "0" class = "prism-code language-bash codeBlock_swWw thin-scrollbar" style = "color:#393A34;background-color:#f6f8fa" > < code class = "codeBlockLines_aEeN" > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > # Modify configuration files< / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > vim .env.production< / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > # Modify API URL< / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > VITE_API_URL=https://api.example.com< / span > < br > < / span > < / code > < / pre > < div class = "buttonGroup_Rp0T" > < button type = "button" aria-label = "Copy code to clipboard" title = "Copy" class = "clean-btn" > < span class = "copyButtonIcons_d6OK" aria-hidden = "true" > < svg viewBox = "0 0 24 24" class = "copyButtonIcon_tfNw" > < path fill = "currentColor" d = "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" > < / path > < / svg > < svg viewBox = "0 0 24 24" class = "copyButtonSuccessIcon_jBa9" > < path fill = "currentColor" d = "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" > < / path > < / svg > < / span > < / button > < / div > < / div > < / div >
< h2 class = "anchor anchorWithStickyNavbar_mZwI" id = "deploy" > Deploy< a href = "#deploy" class = "hash-link" aria-label = "Direct link to Deploy" title = "Direct link to Deploy" > < / a > < / h2 >
2025-01-03 07:52:00 +08:00
< div class = "language-bash codeBlockContainer_rCvc theme-code-block" style = "--prism-color:#393A34;--prism-background-color:#f6f8fa" > < div class = "codeBlockContent_T37s" > < pre tabindex = "0" class = "prism-code language-bash codeBlock_swWw thin-scrollbar" style = "color:#393A34;background-color:#f6f8fa" > < code class = "codeBlockLines_aEeN" > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > # Copy dist directory to nginx html directory< / span > < br > < / span > < span class = "token-line" style = "color:#393A34" > < span class = "token plain" > cp -r dist/* /var/www/html/weiyuai/agent/< / span > < br > < / span > < / code > < / pre > < div class = "buttonGroup_Rp0T" > < button type = "button" aria-label = "Copy code to clipboard" title = "Copy" class = "clean-btn" > < span class = "copyButtonIcons_d6OK" aria-hidden = "true" > < svg viewBox = "0 0 24 24" class = "copyButtonIcon_tfNw" > < path fill = "currentColor" d = "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" > < / path > < / svg > < svg viewBox = "0 0 24 24" class = "copyButtonSuccessIcon_jBa9" > < path fill = "currentColor" d = "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" > < / path > < / svg > < / span > < / button > < / div > < / div > < / div > < / div > < footer class = "theme-doc-footer docusaurus-mt-lg" > < div class = "row margin-top--sm theme-doc-footer-edit-meta-row" > < div class = "col" > < a href = "https://github.com/bytedesk/bytedesk/docs/deploy/agent.md" target = "_blank" rel = "noopener noreferrer" class = "theme-edit-this-page" > < svg fill = "currentColor" height = "20" width = "20" viewBox = "0 0 40 40" class = "iconEdit_H9mE" aria-hidden = "true" > < g > < path d = "m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z" > < / path > < / g > < / svg > Edit this page< / a > < / div > < div class = "col lastUpdated_RREj" > < / div > < / div > < / footer > < / article > < nav class = "pagination-nav docusaurus-mt-lg" aria-label = "Docs pages" > < a class = "pagination-nav__link pagination-nav__link--prev" href = "/bytedesk/docs/deploy/admin" > < div class = "pagination-nav__sublabel" > Previous< / div > < div class = "pagination-nav__label" > Admin Dashboard< / div > < / a > < a class = "pagination-nav__link pagination-nav__link--next" href = "/bytedesk/docs/deploy/desktop" > < div class = "pagination-nav__sublabel" > Next< / div > < div class = "pagination-nav__label" > Desktop Client< / div > < / a > < / nav > < / div > < / div > < div class = "col col--3" > < div class = "tableOfContents_SWKw thin-scrollbar theme-doc-toc-desktop" > < ul class = "table-of-contents table-of-contents__left-border" > < li > < a href = "#dependencies" class = "table-of-contents__link toc-highlight" > Dependencies< / a > < / li > < li > < a href = "#download" class = "table-of-contents__link toc-highlight" > Download< / a > < / li > < li > < a href = "#configuration" class = "table-of-contents__link toc-highlight" > Configuration< / a > < / li > < li > < a href = "#deploy" class = "table-of-contents__link toc-highlight" > Deploy< / a > < / li > < / ul > < / div > < / div > < / div > < / div > < / main > < / div > < / div > < / div > < footer class = "footer footer--dark" > < div class = "container container-fluid" > < div class = "row footer__links" > < div class = "col footer__col" > < div class = "footer__title" > Docs< / div > < ul class = "footer__items clean-list" > < li class = "footer__item" > < a class = "footer__link-item" href = "/bytedesk/docs/intro" > Tutorial< / a > < / li > < li class = "footer__item" > < a href = "https://www.weiyuai.cn/contact.html" target = "_blank" rel = "noopener noreferrer" class = "footer__link-item" > Contact< svg width = "13.5" height = "13.5" aria-hidden = "true" viewBox = "0 0 24 24" class = "iconExternalLink_HxLw" > < path fill = "currentColor" d = "M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z" > < / path > < / svg > < / a > < / li > < / ul > < / div > < div class = "col footer__col" > < div class = "footer__title" > Community< / div > < ul class = "footer__items clean-list" > < li class = "footer__item" > < a href = "https://twitter.com/bytedeskai" target = "_blank" rel = "noopener noreferrer" class = "footer__link-item" > Twitter< svg width = "13.5" height = "13.5" aria-hidden = "true" viewBox = "0 0 24 24" class = "iconExternalLink_HxLw" > < path fill = "currentColor" d = "M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10 . 988l4 . 035 4-6 . 977 7 . 07 2 . 828 2 . 82
2025-01-03 07:31:48 +08:00
< / body >
< / html >