[{"data":1,"prerenderedAt":698},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fdeployment\u002Fdocker":3},{"id":4,"title":5,"body":6,"description":689,"extension":690,"meta":691,"navigation":692,"path":693,"redirect":694,"seo":695,"stem":696,"__hash__":697},"docs\u002Fdocs\u002Fdeployment\u002Fdocker.md","Docker Deployment Overview",{"type":7,"value":8,"toc":670},"minimark",[9,14,18,23,46,50,53,103,110,114,146,153,158,201,205,214,259,270,273,277,280,299,302,314,321,333,337,394,398,447,451,454,500,504,508,585,589,621,625,636,639,643,666],[10,11,13],"h1",{"id":12},"docker-deployment","Docker Deployment",[15,16,17],"p",{},"Deploy DBConvert Streams with Docker on any machine — your local server, a VPS (DigitalOcean, Hetzner, Vultr, etc.), or a cloud VM (AWS EC2, GCP, Azure). Your data stays on your infrastructure, no cloud dependency required. The install script handles Docker Compose setup, networking, and service configuration automatically.",[19,20,22],"h2",{"id":21},"prerequisites","Prerequisites",[24,25,26,30,33,43],"ul",{},[27,28,29],"li",{},"Docker Engine 24.0 or newer",[27,31,32],{},"Docker Compose v2.20 or newer",[27,34,35,39,40],{},[36,37,38],"code",{},"curl"," or ",[36,41,42],{},"wget",[27,44,45],{},"2 CPU cores, 2 GB RAM, 2 GB disk space minimum",[19,47,49],{"id":48},"deployment-modes","Deployment modes",[15,51,52],{},"Docker deployments run in one of two modes:",[54,55,56,72],"table",{},[57,58,59],"thead",{},[60,61,62,66,69],"tr",{},[63,64,65],"th",{},"Mode",[63,67,68],{},"Default",[63,70,71],{},"Description",[73,74,75,90],"tbody",{},[60,76,77,84,87],{},[78,79,80],"td",{},[81,82,83],"strong",{},"Standalone",[78,85,86],{},"Yes",[78,88,89],{},"Lightweight stack — SQLite, encrypted file secrets, NATS coordination. No external services beyond NATS.",[60,91,92,97,100],{},[78,93,94],{},[81,95,96],{},"Corporate",[78,98,99],{},"No",[78,101,102],{},"Adds Consul (service discovery, config storage) and Vault (secrets management) for enterprise infrastructure.",[15,104,105,106,109],{},"Select the deployment mode when you run ",[36,107,108],{},"start.sh",". Standalone is the default.",[19,111,113],{"id":112},"quick-install","Quick install",[115,116,121],"pre",{"className":117,"code":118,"language":119,"meta":120,"style":120},"language-bash shiki shiki-themes github-light github-dark","curl -fsSL https:\u002F\u002Fdbconvert.nyc3.digitaloceanspaces.com\u002Fdownloads\u002Fstreams\u002Flatest\u002Fdocker-install.sh | sh\n","bash","",[36,122,123],{"__ignoreMap":120},[124,125,128,131,135,139,143],"span",{"class":126,"line":127},"line",1,[124,129,38],{"class":130},"sScJk",[124,132,134],{"class":133},"sj4cs"," -fsSL",[124,136,138],{"class":137},"sZZnC"," https:\u002F\u002Fdbconvert.nyc3.digitaloceanspaces.com\u002Fdownloads\u002Fstreams\u002Flatest\u002Fdocker-install.sh",[124,140,142],{"class":141},"szBVR"," |",[124,144,145],{"class":130}," sh\n",[15,147,148,149,152],{},"The installer prompts for a directory (default: ",[36,150,151],{},"\u002Fopt\u002Fdbconvert-streams-docker",") and detects whether you are on a local machine or a cloud server.",[154,155,157],"h3",{"id":156},"install-options","Install options",[54,159,160,169],{},[57,161,162],{},[60,163,164,167],{},[63,165,166],{},"Flag",[63,168,71],{},[73,170,171,181,191],{},[60,172,173,178],{},[78,174,175],{},[36,176,177],{},"-v, --version VERSION",[78,179,180],{},"Install a specific version",[60,182,183,188],{},[78,184,185],{},[36,186,187],{},"-d, --directory DIR",[78,189,190],{},"Custom install directory",[60,192,193,198],{},[78,194,195],{},[36,196,197],{},"-s, --secure",[78,199,200],{},"Generate SSL certificates during install",[19,202,204],{"id":203},"start-and-verify","Start and verify",[15,206,207,208,213],{},"Before starting, obtain your account API key from the ",[209,210,212],"a",{"href":211},"\u002Faccount","Account page",".",[115,215,217],{"className":117,"code":216,"language":119,"meta":120,"style":120},"cd \u002Fopt\u002Fdbconvert-streams-docker\n\n.\u002Fstart.sh\n# or:\n.\u002Fstart.sh --mode corporate\n",[36,218,219,227,234,240,247],{"__ignoreMap":120},[124,220,221,224],{"class":126,"line":127},[124,222,223],{"class":133},"cd",[124,225,226],{"class":137}," \u002Fopt\u002Fdbconvert-streams-docker\n",[124,228,230],{"class":126,"line":229},2,[124,231,233],{"emptyLinePlaceholder":232},true,"\n",[124,235,237],{"class":126,"line":236},3,[124,238,239],{"class":130},".\u002Fstart.sh\n",[124,241,243],{"class":126,"line":242},4,[124,244,246],{"class":245},"sJ8bj","# or:\n",[124,248,250,253,256],{"class":126,"line":249},5,[124,251,252],{"class":130},".\u002Fstart.sh",[124,254,255],{"class":133}," --mode",[124,257,258],{"class":137}," corporate\n",[15,260,261,262,265,266,269],{},"Open ",[36,263,264],{},"http:\u002F\u002Flocalhost"," (local) or ",[36,267,268],{},"http:\u002F\u002FYOUR_SERVER_IP"," (cloud). You should see the DBConvert Streams UI.",[15,271,272],{},"On first use, each client enters and stores the account API key locally in the UI. Seat usage is tracked separately by install ID.",[19,274,276],{"id":275},"local-file-workflows-in-docker","Local file workflows in Docker",[15,278,279],{},"Docker deployments create two shared host folders by default:",[24,281,282,291],{},[27,283,284,287,288],{},[36,285,286],{},".\u002Fimports"," mounted into containers as ",[36,289,290],{},"\u002Fdata\u002Fimports",[27,292,293,287,296],{},[36,294,295],{},".\u002Fexports",[36,297,298],{},"\u002Fdata\u002Fexports",[15,300,301],{},"Use these container paths in file connections:",[24,303,304,309],{},[27,305,306,307],{},"local file sources: ",[36,308,290],{},[27,310,311,312],{},"local file targets: ",[36,313,298],{},[15,315,316,317,320],{},"You can override the host-side folders in ",[36,318,319],{},".env"," with:",[24,322,323,328],{},[27,324,325],{},[36,326,327],{},"STREAMS_IMPORTS_DIR",[27,329,330],{},[36,331,332],{},"STREAMS_EXPORTS_DIR",[154,334,336],{"id":335},"start-options","Start options",[54,338,339,347],{},[57,340,341],{},[60,342,343,345],{},[63,344,166],{},[63,346,71],{},[73,348,349,365,375,384],{},[60,350,351,356],{},[78,352,353],{},[36,354,355],{},"-m, --mode MODE",[78,357,358,361,362],{},[36,359,360],{},"standalone"," (default) or ",[36,363,364],{},"corporate",[60,366,367,372],{},[78,368,369],{},[36,370,371],{},"-i, --ip IP",[78,373,374],{},"Manually specify public IP",[60,376,377,381],{},[78,378,379],{},[36,380,197],{},[78,382,383],{},"Enable HTTPS",[60,385,386,391],{},[78,387,388],{},[36,389,390],{},"-n, --no-secure",[78,392,393],{},"Force HTTP only",[19,395,397],{"id":396},"choose-your-deployment-path","Choose your deployment path",[54,399,400,410],{},[57,401,402],{},[60,403,404,407],{},[63,405,406],{},"Scenario",[63,408,409],{},"Guide",[73,411,412,423,434],{},[60,413,414,417],{},[78,415,416],{},"Local machine",[78,418,419],{},[209,420,422],{"href":421},"\u002Fdocs\u002Fdeployment\u002Fdocker-local","Docker Local",[60,424,425,428],{},[78,426,427],{},"Cloud server",[78,429,430],{},[209,431,433],{"href":432},"\u002Fdocs\u002Fdeployment\u002Fdocker-cloud","Docker Cloud",[60,435,436,439],{},[78,437,438],{},"Fastest cloud setup",[78,440,441],{},[209,442,446],{"href":443,"rel":444},"https:\u002F\u002Fmarketplace.digitalocean.com\u002Fapps\u002Fdbconvert-streams",[445],"nofollow","DigitalOcean 1-Click App",[19,448,450],{"id":449},"common-commands","Common commands",[15,452,453],{},"Run these from the install directory:",[115,455,457],{"className":117,"code":456,"language":119,"meta":120,"style":120},".\u002Fstart.sh            # Start services (HTTP)\n.\u002Fstart.sh --secure   # Start with HTTPS\n.\u002Fstop.sh             # Stop services, preserve data\n.\u002Fupdate.sh           # Update to latest version\n.\u002Funinstall.sh        # Remove all services and data\n",[36,458,459,466,476,484,492],{"__ignoreMap":120},[124,460,461,463],{"class":126,"line":127},[124,462,252],{"class":130},[124,464,465],{"class":245},"            # Start services (HTTP)\n",[124,467,468,470,473],{"class":126,"line":229},[124,469,252],{"class":130},[124,471,472],{"class":133}," --secure",[124,474,475],{"class":245},"   # Start with HTTPS\n",[124,477,478,481],{"class":126,"line":236},[124,479,480],{"class":130},".\u002Fstop.sh",[124,482,483],{"class":245},"             # Stop services, preserve data\n",[124,485,486,489],{"class":126,"line":242},[124,487,488],{"class":130},".\u002Fupdate.sh",[124,490,491],{"class":245},"           # Update to latest version\n",[124,493,494,497],{"class":126,"line":249},[124,495,496],{"class":130},".\u002Funinstall.sh",[124,498,499],{"class":245},"        # Remove all services and data\n",[19,501,503],{"id":502},"service-architecture","Service architecture",[154,505,507],{"id":506},"standalone-mode-default","Standalone mode (default)",[54,509,510,519],{},[57,511,512],{},[60,513,514,517],{},[63,515,516],{},"Service",[63,518,71],{},[73,520,521,531,541,555,565,575],{},[60,522,523,528],{},[78,524,525],{},[36,526,527],{},"stream-api",[78,529,530],{},"REST API — stores config in SQLite, secrets in encrypted file",[60,532,533,538],{},[78,534,535],{},[36,536,537],{},"stream-reader",[78,539,540],{},"Source database reader",[60,542,543,552],{},[78,544,545,548,549],{},[36,546,547],{},"stream-writer-1",", ",[36,550,551],{},"stream-writer-2",[78,553,554],{},"Target database writers",[60,556,557,562],{},[78,558,559],{},[36,560,561],{},"stream-ui",[78,563,564],{},"Web interface",[60,566,567,572],{},[78,568,569],{},[36,570,571],{},"nats",[78,573,574],{},"Message streaming and service coordination",[60,576,577,582],{},[78,578,579],{},[36,580,581],{},"nginx",[78,583,584],{},"Reverse proxy (HTTP on port 8080, HTTPS on port 443)",[154,586,588],{"id":587},"corporate-mode-additional-services","Corporate mode (additional services)",[54,590,591,599],{},[57,592,593],{},[60,594,595,597],{},[63,596,516],{},[63,598,71],{},[73,600,601,611],{},[60,602,603,608],{},[78,604,605],{},[36,606,607],{},"consul",[78,609,610],{},"Service discovery and configuration storage",[60,612,613,618],{},[78,614,615],{},[36,616,617],{},"vault",[78,619,620],{},"Secrets management",[19,622,624],{"id":623},"video-walkthrough","Video walkthrough",[15,626,627],{},[209,628,631],{"href":629,"rel":630},"https:\u002F\u002Fyoutu.be\u002FV-Hv0N-nlXk",[445],[632,633],"img",{"alt":634,"src":635},"Deployment walkthrough","https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FV-Hv0N-nlXk\u002F0.jpg",[15,637,638],{},"Step-by-step server setup, installation, and configuration.",[19,640,642],{"id":641},"next-steps","Next steps",[24,644,645,652,659],{},[27,646,647,651],{},[209,648,650],{"href":649},"\u002Fdocs\u002Fdeployment\u002Fdesktop-apps","Desktop Apps"," — lightweight local install without Docker",[27,653,654,658],{},[209,655,657],{"href":656},"\u002Fdocs\u002Fdeployment\u002Fos-compatibility","OS Compatibility"," — supported Linux distributions",[27,660,661,665],{},[209,662,664],{"href":663},"\u002Fdocs\u002Fguide\u002Fgetting-started","Quick Start"," — end-to-end first stream walkthrough",[667,668,669],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":120,"searchDepth":229,"depth":229,"links":671},[672,673,674,677,678,681,682,683,687,688],{"id":21,"depth":229,"text":22},{"id":48,"depth":229,"text":49},{"id":112,"depth":229,"text":113,"children":675},[676],{"id":156,"depth":236,"text":157},{"id":203,"depth":229,"text":204},{"id":275,"depth":229,"text":276,"children":679},[680],{"id":335,"depth":236,"text":336},{"id":396,"depth":229,"text":397},{"id":449,"depth":229,"text":450},{"id":502,"depth":229,"text":503,"children":684},[685,686],{"id":506,"depth":236,"text":507},{"id":587,"depth":236,"text":588},{"id":623,"depth":229,"text":624},{"id":641,"depth":229,"text":642},"Deploy DBConvert Streams with Docker on any machine — local server, VPS, or cloud VM. No vendor lock-in.","md",{},false,"\u002Fdocs\u002Fdeployment\u002Fdocker",null,{"title":5,"description":689},"docs\u002Fdeployment\u002Fdocker","-d24yWbXEF13xBJ5m8KYkmaerLG9TNEt653OMQWu3nk",1783896282947]