[{"data":1,"prerenderedAt":520},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fdeployment\u002Fdocker-local":3},{"id":4,"title":5,"body":6,"description":16,"extension":512,"meta":513,"navigation":514,"path":515,"redirect":516,"seo":517,"stem":518,"__hash__":519},"docs\u002Fdocs\u002Fdeployment\u002Fdocker-local.md","Docker Local Deployment",{"type":7,"value":8,"toc":496},"minimark",[9,13,17,26,31,38,72,82,95,113,117,126,129,132,206,209,225,229,274,278,283,310,314,360,364,368,371,390,394,412,416,419,441,445,448,465,469,492],[10,11,5],"h1",{"id":12},"docker-local-deployment",[14,15,16],"p",{},"Deploy DBConvert Streams on your local machine with Docker.",[14,18,19,20,25],{},"For prerequisites and deployment modes, see ",[21,22,24],"a",{"href":23},"\u002Fdocs\u002Fdeployment\u002Fdocker","Docker Deployment Overview",".",[27,28,30],"h2",{"id":29},"install-and-start","Install and start",[32,33,34],"ol",{},[35,36,37],"li",{},"Run the installer:",[39,40,45],"pre",{"className":41,"code":42,"language":43,"meta":44,"style":44},"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","",[46,47,48],"code",{"__ignoreMap":44},[49,50,53,57,61,65,69],"span",{"class":51,"line":52},"line",1,[49,54,56],{"class":55},"sScJk","curl",[49,58,60],{"class":59},"sj4cs"," -fsSL",[49,62,64],{"class":63},"sZZnC"," https:\u002F\u002Fdbconvert.nyc3.digitaloceanspaces.com\u002Fdownloads\u002Fstreams\u002Flatest\u002Fdocker-install.sh",[49,66,68],{"class":67},"szBVR"," |",[49,70,71],{"class":55}," sh\n",[14,73,74,75,78,79,25],{},"The installer prompts for an installation directory (default: ",[46,76,77],{},"\u002Fopt\u002Fdbconvert-streams-docker","). Press Enter to accept or type a custom path. On a local machine, the script auto-detects the environment and configures all services to use ",[46,80,81],{},"localhost",[32,83,85,92],{"start":84},2,[35,86,87,88,25],{},"Obtain your account API key from the ",[21,89,91],{"href":90},"\u002Faccount","Account page",[35,93,94],{},"Change to the installation directory and start the services:",[39,96,98],{"className":41,"code":97,"language":43,"meta":44,"style":44},"cd \u002Fopt\u002Fdbconvert-streams-docker\n.\u002Fstart.sh\n",[46,99,100,108],{"__ignoreMap":44},[49,101,102,105],{"class":51,"line":52},[49,103,104],{"class":59},"cd",[49,106,107],{"class":63}," \u002Fopt\u002Fdbconvert-streams-docker\n",[49,109,110],{"class":51,"line":84},[49,111,112],{"class":55},".\u002Fstart.sh\n",[27,114,116],{"id":115},"verify","Verify",[14,118,119,120,125],{},"Open ",[21,121,122],{"href":122,"rel":123},"http:\u002F\u002Flocalhost",[124],"nofollow"," in your browser. You should see the DBConvert Streams UI.",[14,127,128],{},"On first use, each client enters and stores the account API key locally in the UI. Seat usage is tracked separately by install ID.",[14,130,131],{},"Service endpoints after startup:",[133,134,135,148],"table",{},[136,137,138],"thead",{},[139,140,141,145],"tr",{},[142,143,144],"th",{},"Service",[142,146,147],{},"URL",[149,150,151,162,173,184,195],"tbody",{},[139,152,153,157],{},[154,155,156],"td",{},"UI",[154,158,159],{},[21,160,122],{"href":122,"rel":161},[124],[139,163,164,167],{},[154,165,166],{},"API",[154,168,169],{},[21,170,171],{"href":171,"rel":172},"http:\u002F\u002Flocalhost\u002Fapi\u002F",[124],[139,174,175,178],{},[154,176,177],{},"NATS Monitoring",[154,179,180],{},[21,181,182],{"href":182,"rel":183},"http:\u002F\u002Flocalhost:8222",[124],[139,185,186,189],{},[154,187,188],{},"Consul (corporate mode)",[154,190,191],{},[21,192,193],{"href":193,"rel":194},"http:\u002F\u002Flocalhost:8500",[124],[139,196,197,200],{},[154,198,199],{},"Vault (corporate mode)",[154,201,202],{},[21,203,204],{"href":204,"rel":205},"http:\u002F\u002Flocalhost:8200",[124],[14,207,208],{},"Check that all containers are running:",[39,210,212],{"className":41,"code":211,"language":43,"meta":44,"style":44},"docker compose ps\n",[46,213,214],{"__ignoreMap":44},[49,215,216,219,222],{"class":51,"line":52},[49,217,218],{"class":55},"docker",[49,220,221],{"class":63}," compose",[49,223,224],{"class":63}," ps\n",[27,226,228],{"id":227},"manage-services","Manage services",[39,230,232],{"className":41,"code":231,"language":43,"meta":44,"style":44},".\u002Fstop.sh                    # Stop services, preserve data\n.\u002Fupdate.sh                  # Update to latest version\n.\u002Fupdate.sh --version v2.1.0 # Update to specific version\n.\u002Funinstall.sh               # Remove all services and data\n",[46,233,234,243,251,265],{"__ignoreMap":44},[49,235,236,239],{"class":51,"line":52},[49,237,238],{"class":55},".\u002Fstop.sh",[49,240,242],{"class":241},"sJ8bj","                    # Stop services, preserve data\n",[49,244,245,248],{"class":51,"line":84},[49,246,247],{"class":55},".\u002Fupdate.sh",[49,249,250],{"class":241},"                  # Update to latest version\n",[49,252,254,256,259,262],{"class":51,"line":253},3,[49,255,247],{"class":55},[49,257,258],{"class":59}," --version",[49,260,261],{"class":63}," v2.1.0",[49,263,264],{"class":241}," # Update to specific version\n",[49,266,268,271],{"class":51,"line":267},4,[49,269,270],{"class":55},".\u002Funinstall.sh",[49,272,273],{"class":241},"               # Remove all services and data\n",[27,275,277],{"id":276},"data-persistence","Data persistence",[279,280,282],"h3",{"id":281},"docker-volumes","Docker Volumes",[284,285,286,292,298,304],"ul",{},[35,287,288,291],{},[46,289,290],{},"api-data",": SQLite database and encrypted secrets (standalone mode)",[35,293,294,297],{},[46,295,296],{},"nats-data",": Message store",[35,299,300,303],{},[46,301,302],{},"consul-data",": Service registry and configurations (corporate mode)",[35,305,306,309],{},[46,307,308],{},"vault-data",": Encrypted credentials (corporate mode)",[279,311,313],{"id":312},"local-directories","Local Directories",[284,315,316,336,345,354],{},[35,317,318,321,322,325,326,325,329,325,332,335],{},[46,319,320],{},"logs\u002F",": Service logs (",[46,323,324],{},"api.log",", ",[46,327,328],{},"reader.log",[46,330,331],{},"writer-1.log",[46,333,334],{},"writer-2.log",")",[35,337,338,341,342],{},[46,339,340],{},"imports\u002F",": Shared local file sources, mounted into containers as ",[46,343,344],{},"\u002Fdata\u002Fimports",[35,346,347,350,351],{},[46,348,349],{},"exports\u002F",": Shared local file targets, mounted into containers as ",[46,352,353],{},"\u002Fdata\u002Fexports",[35,355,356,359],{},[46,357,358],{},"config\u002F",": Service configurations, Nginx config, certificates, host detection",[27,361,363],{"id":362},"troubleshooting","Troubleshooting",[279,365,367],{"id":366},"port-8080-already-in-use","Port 8080 already in use",[14,369,370],{},"Another service is using port 8080. Find and stop it:",[39,372,374],{"className":41,"code":373,"language":43,"meta":44,"style":44},"sudo lsof -i :8080\n",[46,375,376],{"__ignoreMap":44},[49,377,378,381,384,387],{"class":51,"line":52},[49,379,380],{"class":55},"sudo",[49,382,383],{"class":63}," lsof",[49,385,386],{"class":59}," -i",[49,388,389],{"class":63}," :8080\n",[279,391,393],{"id":392},"docker-daemon-not-running","Docker daemon not running",[39,395,397],{"className":41,"code":396,"language":43,"meta":44,"style":44},"sudo systemctl start docker\n",[46,398,399],{"__ignoreMap":44},[49,400,401,403,406,409],{"class":51,"line":52},[49,402,380],{"class":55},[49,404,405],{"class":63}," systemctl",[49,407,408],{"class":63}," start",[49,410,411],{"class":63}," docker\n",[279,413,415],{"id":414},"docker-permission-denied","Docker permission denied",[14,417,418],{},"Add your user to the docker group, then log out and back in:",[39,420,422],{"className":41,"code":421,"language":43,"meta":44,"style":44},"sudo usermod -aG docker $USER\n",[46,423,424],{"__ignoreMap":44},[49,425,426,428,431,434,437],{"class":51,"line":52},[49,427,380],{"class":55},[49,429,430],{"class":63}," usermod",[49,432,433],{"class":59}," -aG",[49,435,436],{"class":63}," docker",[49,438,440],{"class":439},"sVt8B"," $USER\n",[279,442,444],{"id":443},"services-crashing-after-startup","Services crashing after startup",[14,446,447],{},"Check Docker resource limits. If using Docker Desktop, increase memory allocation in Settings. Check logs for details:",[39,449,451],{"className":41,"code":450,"language":43,"meta":44,"style":44},"docker compose logs -f\n",[46,452,453],{"__ignoreMap":44},[49,454,455,457,459,462],{"class":51,"line":52},[49,456,218],{"class":55},[49,458,221],{"class":63},[49,460,461],{"class":63}," logs",[49,463,464],{"class":59}," -f\n",[27,466,468],{"id":467},"next-steps","Next steps",[284,470,471,478,485],{},[35,472,473,477],{},[21,474,476],{"href":475},"\u002Fdocs\u002Fdeployment\u002Fdocker-cloud","Docker Cloud Deployment"," — deploy to a cloud server",[35,479,480,484],{},[21,481,483],{"href":482},"\u002Fdocs\u002Fguide\u002Fgetting-started","Quick Start"," — end-to-end first stream walkthrough",[35,486,487,491],{},[21,488,490],{"href":489},"\u002Fdocs\u002Fguide\u002Fdashboard-ui-guide","Dashboard Overview"," — navigate the UI",[493,494,495],"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}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":44,"searchDepth":84,"depth":84,"links":497},[498,499,500,501,505,511],{"id":29,"depth":84,"text":30},{"id":115,"depth":84,"text":116},{"id":227,"depth":84,"text":228},{"id":276,"depth":84,"text":277,"children":502},[503,504],{"id":281,"depth":253,"text":282},{"id":312,"depth":253,"text":313},{"id":362,"depth":84,"text":363,"children":506},[507,508,509,510],{"id":366,"depth":253,"text":367},{"id":392,"depth":253,"text":393},{"id":414,"depth":253,"text":415},{"id":443,"depth":253,"text":444},{"id":467,"depth":84,"text":468},"md",{},false,"\u002Fdocs\u002Fdeployment\u002Fdocker-local",null,{"title":5,"description":16},"docs\u002Fdeployment\u002Fdocker-local","QS26VsKpgehfCsrNODO0YWdPRYEYKWZ5uj6rpyBE-xE",1783896284336]