Files
bracket/docs/deployment/docker.txt

31 lines
38 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
1:"$Sreact.fragment"
3:I[7555,[],""]
4:I[1295,[],""]
6:I[9665,[],"OutletBoundary"]
9:I[9665,[],"ViewportBoundary"]
b:I[9665,[],"MetadataBoundary"]
d:I[6614,[],""]
:HL["/_next/static/css/ef867125344a7121.css","style"]
:HL["/_next/static/css/b00e1efaf312b06b.css","style"]
0:{"P":null,"b":"zjykv47ZpuS61enK0Cp0Z","p":"","c":["","docs","deployment","docker"],"i":false,"f":[[["",{"children":["docs",{"children":[["mdxPath","deployment/docker","oc"],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ef867125344a7121.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/b00e1efaf312b06b.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],"$L2"]}],{"children":["docs",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["mdxPath","deployment/docker","oc"],["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":["$L5","$undefined",null,["$","$L6",null,{"children":["$L7","$L8",null]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","ASjM9jmzZvLj8tyjvnAZ7",{"children":[["$","$L9",null,{"children":"$La"}],null]}],["$","$Lb",null,{"children":"$Lc"}]]}],false]],"m":"$undefined","G":["$d","$undefined"],"s":false,"S":true}
e:I[5776,["545","static/chunks/c16f53c3-0f690431eda1568e.js","992","static/chunks/992-da306a535e233aef.js","863","static/chunks/863-65b7ef461725c1d4.js","473","static/chunks/473-b44808edc5e5750f.js","847","static/chunks/app/docs/%5B%5B...mdxPath%5D%5D/page-854b64bf3951cebb.js"],"ThemeConfigProvider"]
f:I[6666,["545","static/chunks/c16f53c3-0f690431eda1568e.js","992","static/chunks/992-da306a535e233aef.js","863","static/chunks/863-65b7ef461725c1d4.js","473","static/chunks/473-b44808edc5e5750f.js","847","static/chunks/app/docs/%5B%5B...mdxPath%5D%5D/page-854b64bf3951cebb.js"],"LastUpdated"]
10:I[145,["545","static/chunks/c16f53c3-0f690431eda1568e.js","992","static/chunks/992-da306a535e233aef.js","863","static/chunks/863-65b7ef461725c1d4.js","188","static/chunks/188-9b5a23d4a5b2a9bf.js","473","static/chunks/473-b44808edc5e5750f.js","177","static/chunks/app/layout-8d9f5321477f1b35.js"],"Search"]
11:I[1362,["545","static/chunks/c16f53c3-0f690431eda1568e.js","992","static/chunks/992-da306a535e233aef.js","863","static/chunks/863-65b7ef461725c1d4.js","188","static/chunks/188-9b5a23d4a5b2a9bf.js","473","static/chunks/473-b44808edc5e5750f.js","177","static/chunks/app/layout-8d9f5321477f1b35.js"],"ThemeProvider"]
12:I[6221,["545","static/chunks/c16f53c3-0f690431eda1568e.js","992","static/chunks/992-da306a535e233aef.js","863","static/chunks/863-65b7ef461725c1d4.js","473","static/chunks/473-b44808edc5e5750f.js","847","static/chunks/app/docs/%5B%5B...mdxPath%5D%5D/page-854b64bf3951cebb.js"],"SkipNavLink"]
13:I[8845,["545","static/chunks/c16f53c3-0f690431eda1568e.js","992","static/chunks/992-da306a535e233aef.js","863","static/chunks/863-65b7ef461725c1d4.js","473","static/chunks/473-b44808edc5e5750f.js","847","static/chunks/app/docs/%5B%5B...mdxPath%5D%5D/page-854b64bf3951cebb.js"],"ConfigProvider"]
14:I[6874,["545","static/chunks/c16f53c3-0f690431eda1568e.js","992","static/chunks/992-da306a535e233aef.js","863","static/chunks/863-65b7ef461725c1d4.js","473","static/chunks/473-b44808edc5e5750f.js","847","static/chunks/app/docs/%5B%5B...mdxPath%5D%5D/page-854b64bf3951cebb.js"],""]
15:I[3063,["545","static/chunks/c16f53c3-0f690431eda1568e.js","992","static/chunks/992-da306a535e233aef.js","863","static/chunks/863-65b7ef461725c1d4.js","473","static/chunks/473-b44808edc5e5750f.js","847","static/chunks/app/docs/%5B%5B...mdxPath%5D%5D/page-854b64bf3951cebb.js"],"Image"]
16:I[5109,["545","static/chunks/c16f53c3-0f690431eda1568e.js","992","static/chunks/992-da306a535e233aef.js","863","static/chunks/863-65b7ef461725c1d4.js","473","static/chunks/473-b44808edc5e5750f.js","847","static/chunks/app/docs/%5B%5B...mdxPath%5D%5D/page-854b64bf3951cebb.js"],"ClientNavbar"]
18:I[4502,["545","static/chunks/c16f53c3-0f690431eda1568e.js","992","static/chunks/992-da306a535e233aef.js","863","static/chunks/863-65b7ef461725c1d4.js","473","static/chunks/473-b44808edc5e5750f.js","847","static/chunks/app/docs/%5B%5B...mdxPath%5D%5D/page-854b64bf3951cebb.js"],"MobileNav"]
17:T481,M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z2:["$","html",null,{"lang":"en","dir":"ltr","suppressHydrationWarning":true,"className":"dark","children":[["$","head",null,{"children":[[["$","script",null,{"async":true,"src":"https://analytics.bracketapp.nl/script.js","data-website-id":"9c5b1839-5cbd-4d04-b95b-a217838898a9","data-domains":"docs.bracketapp.nl"}],["$","link",null,{"rel":"icon","href":"/favicon.svg"}]],["$","style",null,{"children":":root {\n --nextra-primary-hue: 212deg;\n --nextra-primary-saturation: 100%;\n --nextra-primary-lightness: 45%;\n --nextra-bg: 250,250,250;\n --nextra-content-width: 90rem;\n}\n.dark {\n --nextra-primary-hue: 204deg;\n --nextra-primary-saturation: 100%;\n --nextra-primary-lightness: 55%;\n --nextra-bg: 17,17,17;\n}\n::selection {\n background: hsla(var(--nextra-primary-hue),var(--nextra-primary-saturation),var(--nextra-primary-lightness),.3);\n}\nhtml {\n background: rgb(var(--nextra-bg));\n}"}],["$","meta",null,{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"rgb(250,250,250)"}],["$","meta",null,{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"rgb(17,17,17)"}],"$undefined"]}],["$","body",null,{"children":["$","$Le",null,{"value":{"darkMode":true,"docsRepositoryBase":"https://github.com/evroon/bracket/tree/master/docs","editLink":"Edit this page","feedback":{"content":"Question? Give us feedback","labels":"feedback"},"i18n":[],"lastUpdated":["$","$Lf",null,{}],"navigation":{"next":true,"prev":true},"search":["$","$L10",null,{}],"sidebar":{"defaultMenuCollapseLevel":2,"defaultOpen":true,"toggleButton":true},"themeSwitch":{"dark":"Dark","light":"Light","system":"System"},"toc":{"backToTop":"Scroll to top","float":true,"title":"On This Page"}},"children":["$","$L11",null,{"attribute":"class","disableTransitionOnChange":true,"children":[["$","$L12",null,{}],"$undefined",["$","$L13",null,{"pageMap":[{"name":"index","route":"/","frontMatter":{"title":"Bracket | Open-source tournament system","description":"Bracket is a free and open source tournament system. Set up a tournament, add teams, schedule matches, track scores and present live rankings.","openGraph":{"title":"Bracket | Open-source tournament system","description":"Bracket is a free and open source tournament system. Set up a tournament, add teams, schedule matches, track scores and present live rankings.","locale":"en_US","url":"https://docs.bracketapp.nl","siteName":"Bracket","images":[{"url":"https://docs.bracketapp.nl/bracket-social-image.png"}]}},"title":"Bracket | Open-source tournament system"},{"name":"docs","route":"/docs","children":[{"name":"index","route":"/docs","frontMatter":{"title":"Introduction","filePath":"content/index.mdx","timestamp":1748641383000},"title":"Introduction"},{"name":"api","route":"/docs/api","frontMatter":{"title":"API","filePath":"content/api.mdx","timestamp":1748641383000},"title":"API"},{"name":"community","route":"/docs/community","children":[{"name":"contributing","route":"/docs/community/contributing","frontMatter":{"title":"Contributing","filePath":"content/community/contributing.mdx","timestamp":1748641383000},"title":"Contributing"},{"name":"development","route":"/docs/community/development","frontMatter":{"title":"Development","filePath":"content/community/development.mdx","timestamp":1748641383000},"title":"Development"}],"title":"Community"},{"name":"deployment","route":"/docs/deployment","children":[{"name":"index","route":"/docs/deployment","frontMatter":{"title":"Deployment","filePath":"content/deployment/index.mdx","timestamp":1748641383000},"title":"Deployment"},{"name":"cloud-services","route":"/docs/deployment/cloud-services","frontMatter":{"title":"Cloud services","filePath":"content/deployment/cloud-services.mdx","timestamp":1748641383000},"title":"Cloud services"},{"name":"docker","route":"/docs/deployment/docker","frontMatter":{"title":"Docker","filePath":"content/deployment/docker.mdx","timestamp":1748641383000},"title":"Docker"},{"name":"nomad","route":"/docs/deployment/nomad","frontMatter":{"title":"Nomad","filePath":"content/deployment/nomad.mdx","timestamp":1748641383000},"title":"Nomad"},{"name":"systemd","route":"/docs/deployment/systemd","frontMatter":{"title":"Systemd","filePath":"content/deployment/systemd.mdx","timestamp":1748641383000},"title":"Systemd"}],"title":"Deployment"},{"name":"running-bracket","route":"/docs/running-bracket","children":[{"name":"configuration","route":"/docs/running-bracket/configuration","frontMatter":{"title":"Configuration","filePath":"content/running-bracket/configuration.mdx","timestamp":1748641383000},"title":"Configuration"},{"name":"faq","route":"/docs/running-bracket/faq","frontMatter":{"title":"FAQ","filePath":"content/running-bracket/faq.mdx","timestamp":1748641383000},"title":"FAQ"},{"name":"quickstart","route":"/docs/running-bracket/quickstart","frontMatter":{"title":"Quickstart","filePath":"content/running-bracket/quickstart.mdx","timestamp":1748641383000},"title":"Quickstart"}],"title":"Running Bracket"},{"name":"usage","route":"/docs/usage","children":[{"name":"guide","route":"/docs/usage/guide","frontMatter":{"title":"Usage guide","filePath":"content/usage/guide.mdx","timestamp":1748641383000},"title":"Usage guide"},{"name":"terminology","route":"/docs/usage/terminology","frontMatter":{"title":"Terminology","filePath":"content/usage/terminology.mdx","timestamp":1748641383000},"title":"Terminology"}],"title":"Usage"}],"title":"Docs"}],"navbar":["$","header",null,{"className":"nextra-navbar x:sticky x:top-0 x:z-30 x:w-full x:bg-transparent x:print:hidden x:max-md:[.nextra-banner:not([class$=hidden])~&]:top-(--nextra-banner-height)","children":[["$","div",null,{"className":"nextra-navbar-blur x:absolute x:-z-1 x:size-full nextra-border x:border-b x:backdrop-blur-md x:bg-nextra-bg/70"}],["$","nav",null,{"style":{"height":"var(--nextra-navbar-height)"},"className":"x:mx-auto x:flex x:max-w-(--nextra-content-width) x:items-center x:gap-4 x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)] x:justify-end","children":[["$","$L14",null,{"href":"/","className":"x:flex x:items-center x:me-auto x:transition-opacity x:focus-visible:nextra-focus x:hover:opacity-75","children":[["$","$L15",null,{"width":36,"height":36,"src":"/_next/static/media/logo.a521d262.svg","className":"mr-2","alt":"Preview of Bracket"}],["$","b",null,{"className":"text-3xl","children":"Bracket"}]]}],["$","$L16",null,{"className":"","children":[["$","a",null,{"href":"https://github.com/evroon/bracket","target":"_blank","rel":"noreferrer","children":[["$","svg",null,{"fill":"currentColor","viewBox":"3 3 18 18","height":"24","children":["$","path",null,{"d":"$17"}]}],false],"className":"x:focus-visible:nextra-focus"}],"$undefined","$undefined"]}]]}]]}],"footer":["$","footer",null,{"id":"footer","children":[["$","hr",null,{"className":"w-11/12 mx-auto"}],["$","section",null,{"className":"container py-20 grid grid-cols-2 md:grid-cols-4 xl:grid-cols-6 gap-x-12 gap-y-8","children":[["$","div",null,{"className":"col-span-full xl:col-span-2","children":["$","$L14",null,{"href":"/","className":"font-bold text-xl flex","children":[["$","$L15",null,{"width":36,"height":36,"src":"/_next/static/media/logo.a521d262.svg","className":"mr-2","alt":"Logo of Bracket"}],["$","b",null,{"className":"text-3xl","children":"Bracket"}]]}]}],["$","div",null,{"className":"flex flex-col gap-2","children":[["$","h3",null,{"className":"font-bold text-lg","children":"Intro"}],["$","div",null,{"children":["$","$L14",null,{"href":"/docs","className":"opacity-60 hover:opacity-100","children":"Introduction"}]}],["$","div",null,{"children":["$","$L14",null,{"href":"/docs/running-bracket/quickstart","className":"opacity-60 hover:opacity-100","children":"Quickstart"}]}]]}],["$","div",null,{"className":"flex flex-col gap-2","children":[["$","h3",null,{"className":"font-bold text-lg","children":"Running Bracket"}],["$","div",null,{"children":["$","$L14",null,{"href":"/docs/running-bracket/configuration","className":"opacity-60 hover:opacity-100","children":"Configuration"}]}],["$","div",null,{"children":["$","$L14",null,{"href":"/docs/deployment","className":"opacity-60 hover:opacity-100","children":"Deployment"}]}]]}],["$","div",null,{"className":"flex flex-col gap-2","children":[["$","h3",null,{"className":"font-bold text-lg","children":"About"}],["$","div",null,{"children":["$","$L14",null,{"href":"/docs/usage/guide","className":"opacity-60 hover:opacity-100","children":"Usage"}]}],["$","div",null,{"children":["$","$L14",null,{"href":"/docs/running-bracket/faq","className":"opacity-60 hover:opacity-100","children":"FAQ"}]}],["$","div",null,{"children":["$","$L14",null,{"href":"https://github.com/evroon/bracket/blob/master/LICENSE","className":"opacity-60 hover:opacity-100","children":"License"}]}],["$","div",null,{"children":["$","$L14",null,{"href":"https://github.com/evroon/bracket/releases","className":"opacity-60 hover:opacity-100","children":"Releases"}]}]]}],["$","div",null,{"className":"flex flex-col gap-2","children":[["$","h3",null,{"className":"font-bold text-lg","children":"Community"}],["$","div",null,{"children":["$","$L14",null,{"href":"https://github.com/evroon/bracket","className":"opacity-60 hover:opacity-100","children":"GitHub"}]}],["$","div",null,{"children":["$","$L14",null,{"href":"/docs/community/contributing/","className":"opacity-60 hover:opacity-100","children":"Contributing"}]}],["$","div",null,{"children":["$","$L14",null,{"href":"/docs/community/development/","className":"opacity-60 hover:opacity-100","children":"Development"}]}]]}]]}],["$","section",null,{"className":"container pb-14 text-center","children":["$","h3",null,{"children":["Bracket - Open-source Tournament System.",["$","br",null,{}],"Licensed under AGPL-v3.0. Copyright © ",2025," ","Bracket. Built with Nextra."]}]}]]}],"children":[["$","$L18",null,{}],["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}]]}]}]}]]}]
19:I[4502,["545","static/chunks/c16f53c3-0f690431eda1568e.js","992","static/chunks/992-da306a535e233aef.js","863","static/chunks/863-65b7ef461725c1d4.js","473","static/chunks/473-b44808edc5e5750f.js","847","static/chunks/app/docs/%5B%5B...mdxPath%5D%5D/page-854b64bf3951cebb.js"],"Sidebar"]
1a:I[2675,["545","static/chunks/c16f53c3-0f690431eda1568e.js","992","static/chunks/992-da306a535e233aef.js","863","static/chunks/863-65b7ef461725c1d4.js","473","static/chunks/473-b44808edc5e5750f.js","847","static/chunks/app/docs/%5B%5B...mdxPath%5D%5D/page-854b64bf3951cebb.js"],"ClientWrapper"]
1b:I[9443,["545","static/chunks/c16f53c3-0f690431eda1568e.js","992","static/chunks/992-da306a535e233aef.js","863","static/chunks/863-65b7ef461725c1d4.js","473","static/chunks/473-b44808edc5e5750f.js","847","static/chunks/app/docs/%5B%5B...mdxPath%5D%5D/page-854b64bf3951cebb.js"],"HeadingAnchor"]
1c:I[8033,["545","static/chunks/c16f53c3-0f690431eda1568e.js","992","static/chunks/992-da306a535e233aef.js","863","static/chunks/863-65b7ef461725c1d4.js","473","static/chunks/473-b44808edc5e5750f.js","847","static/chunks/app/docs/%5B%5B...mdxPath%5D%5D/page-854b64bf3951cebb.js"],"ToggleWordWrapButton"]
5:["$","div",null,{"className":"x:mx-auto x:flex x:max-w-(--nextra-content-width)","children":[["$","$L19",null,{"toc":[{"value":"1. Install Docker and docker compose","id":"1-install-docker-and-docker-compose","depth":2},{"value":"2. Store the docker-compose.yml file","id":"2-store-the-docker-composeyml-file","depth":2},{"value":"3. Set up the environment variables","id":"3-set-up-the-environment-variables","depth":2},{"value":"4. Update volume bindings","id":"4-update-volume-bindings","depth":2},{"value":"5. Access the application","id":"5-access-the-application","depth":2}]}],["$","$L1a",null,{"toc":"$5:props:children:0:props:toc","metadata":{"title":"Docker","filePath":"content/deployment/docker.mdx","timestamp":1748641383000},"bottomContent":"$undefined","children":[["$","div",null,{"id":"nextra-skip-nav"}],["$","main",null,{"data-pagefind-body":true,"children":[["$","h1",null,{"id":"$undefined","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-bold x:mt-2 x:text-4xl","children":["Docker","$undefined"]}],"\n",["$","p",null,{"className":"x:not-first:mt-6 x:leading-7","children":"This section describes how to deploy Bracket (frontend and backend) to docker using docker-compose."}],"\n",["$","h2",null,{"id":"1-install-docker-and-docker-compose","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border","children":["1. Install Docker and docker compose",["$","$L1b",null,{"id":"1-install-docker-and-docker-compose"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-6 x:leading-7","children":"First, make sure you have docker and docker compose installed."}],"\n",["$","h2",null,{"id":"2-store-the-docker-composeyml-file","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border","children":["2. Store the docker-compose.yml file",["$","$L1b",null,{"id":"2-store-the-docker-composeyml-file"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-6 x:leading-7","children":["Then, store the following YAML in a file called ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"docker-compose.yml"}]," in an empty directory."]}],"\n",["$","p",null,{"className":"x:not-first:mt-6 x:leading-7","children":"The highlighted lines will be discussed in the next steps."}],"\n",["$","div",null,{"data-pagefind-ignore":"all","className":"nextra-code x:relative x:not-first:mt-6","children":["$undefined",["$","pre",null,{"className":"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose","tabIndex":"0","children":[["$","div",null,{"className":"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2","children":[["$","$L1c",null,{"children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"currentColor","height":"1em","children":["$","path",null,{"d":"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}]}]}],false]}],["$","code",null,{"className":"nextra-code","dir":"ltr","children":[["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":"services"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":":"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" bracket-frontend"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":":"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" image"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"ghcr.io/evroon/bracket-frontend"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" container_name"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"bracket-frontend"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" ports"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":":"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":" - "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"\"3000:3000\""}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" environment"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":":"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" NODE_ENV"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"\"production\""}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" NEXT_PUBLIC_API_BASE_URL"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"\"http://your-site.com:8400\""}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" NEXT_PUBLIC_HCAPTCHA_SITE_KEY"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"\"10000000-ffff-ffff-ffff-000000000001\""}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" restart"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"unless-stopped"}]]}],"\n",["$","span",null,{"children":" "}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" bracket-backend"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":":"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" image"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"ghcr.io/evroon/bracket-backend"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" container_name"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"bracket-backend"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" ports"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":":"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":" - "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"\"8400:8400\""}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" environment"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":":"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" ENVIRONMENT"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"\"PRODUCTION\""}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" PG_DSN"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"\"postgresql://bracket_prod:bracket_prod@postgres:5432/bracket_prod\""}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" CORS_ORIGINS"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"https://your-site.com"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" JWT_SECRET"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"change_me"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" volumes"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":":"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":" - "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"./backend/static:/app/static"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" restart"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"unless-stopped"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" depends_on"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":":"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":" - "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"postgres"}]]}],"\n",["$","span",null,{"children":" "}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" postgres"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":":"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" image"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"postgres"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" restart"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"always"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" environment"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":":"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" POSTGRES_DB"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"bracket_prod"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" POSTGRES_USER"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"bracket_prod"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" POSTGRES_PASSWORD"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":": "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"bracket_prod"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"},"children":" volumes"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":":"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":" - "}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":"./postgres:/var/lib/postgresql/data"}]]}]]}]]}]]}],"\n",["$","h2",null,{"id":"3-set-up-the-environment-variables","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border","children":["3. Set up the environment variables",["$","$L1b",null,{"id":"3-set-up-the-environment-variables"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-6 x:leading-7","children":"Replace the lines that are highlighted in the code block from the previous step."}],"\n",["$","p",null,{"className":"x:not-first:mt-6 x:leading-7","children":["Replace the following values for ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bracket-frontend"}],":"]}],"\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-3 x:not-first:mt-6 x:list-disc x:ms-6","children":["\n",["$","li",null,{"className":"x:my-2","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"NEXT_PUBLIC_API_BASE_URL"}],": The address of your backend. The frontend will send\nrequests to this address."]}],"\n",["$","li",null,{"className":"x:my-2","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"NEXT_PUBLIC_HCAPTCHA_SITE_KEY"}],": Either leave empty to disable it or\n",["$","a",null,{"href":"https://dashboard.hcaptcha.com/signup","target":"_blank","rel":"noreferrer","className":"x:focus-visible:nextra-focus x:text-primary-600 x:underline x:hover:no-underline x:decoration-from-font x:[text-underline-position:from-font]","children":["signup for hCaptcha",["",["$","svg",null,{"fill":"none","stroke":"currentColor","strokeLinecap":"round","strokeLinejoin":"round","strokeWidth":1.7,"viewBox":"0 0 24 24","height":"1em","className":"x:inline x:align-baseline x:shrink-0","children":[["$","path",null,{"d":"M7 17L17 7"}],["$","path",null,{"d":"M7 7h10v10"}]]}]]]}],", create a site and\nput the site key here"]}],"\n"]}],"\n",["$","p",null,{"className":"x:not-first:mt-6 x:leading-7","children":["Replace the following values for ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"bracket-backend"}],":"]}],"\n",["$","ul",null,{"className":"x:[:is(ol,ul)_&]:my-3 x:not-first:mt-6 x:list-disc x:ms-6","children":["\n",["$","li",null,{"className":"x:my-2","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"PG_DSN"}],": The DSN with format ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"postgresql://<username>:<password>@<host>:<port>/<database>"}]]}],"\n",["$","li",null,{"className":"x:my-2","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"CORS_ORIGINS"}],": Put the address of your frontend here, its used to make sure incoming requests\ncan only come from your actual frontend"]}],"\n",["$","li",null,{"className":"x:my-2","children":[["$","code",null,{"className":"nextra-code","dir":"ltr","children":"JWT_SECRET"}],": Generate a secret to create JWTs using ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"openssl rand -hex 32"}]]}],"\n"]}],"\n",["$","div",null,{"className":"nextra-callout x:overflow-x-auto x:mt-6 x:flex x:rounded-lg x:border x:py-2 x:pe-4 x:contrast-more:border-current! x:border-orange-100 x:bg-orange-50 x:text-orange-800 x:dark:border-orange-400/30 x:dark:bg-orange-400/20 x:dark:text-orange-300","children":[["$","div",null,{"className":"x:select-none x:text-xl x:ps-3 x:pe-2","style":{"fontFamily":"\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\""},"data-pagefind-ignore":"all","children":"💡"}],["$","div",null,{"className":"x:w-full x:min-w-0 x:leading-7","children":["$","p",null,{"className":"x:not-first:mt-6 x:leading-7","children":["Note that your ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"docker-compose.yml"}]," file now contains secrets.\nIf you want a more secure setup, you can store secrets in separate files on the host and\nload them via ",["$","a",null,{"href":"https://docs.docker.com/compose/use-secrets/","target":"_blank","rel":"noreferrer","className":"x:focus-visible:nextra-focus x:text-primary-600 x:underline x:hover:no-underline x:decoration-from-font x:[text-underline-position:from-font]","children":["docker secrets",["",["$","svg",null,{"fill":"none","stroke":"currentColor","strokeLinecap":"round","strokeLinejoin":"round","strokeWidth":1.7,"viewBox":"0 0 24 24","height":"1em","className":"x:inline x:align-baseline x:shrink-0","children":[["$","path",null,{"d":"M7 17L17 7"}],["$","path",null,{"d":"M7 7h10v10"}]]}]]]}],"."]}]}]]}],"\n",["$","h2",null,{"id":"4-update-volume-bindings","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border","children":["4. Update volume bindings",["$","$L1b",null,{"id":"4-update-volume-bindings"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-6 x:leading-7","children":"Bracket needs two volume bindings: for the backend and for the database."}],"\n",["$","p",null,{"className":"x:not-first:mt-6 x:leading-7","children":"Update the two volume binding paths to point to a directory where you want to store the\npersistent data."}],"\n",["$","h2",null,{"id":"5-access-the-application","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-semibold x:target:animate-[fade-in_1.5s] x:mt-10 x:border-b x:pb-1 x:text-3xl nextra-border","children":["5. Access the application",["$","$L1b",null,{"id":"5-access-the-application"}]]}],"\n",["$","p",null,{"className":"x:not-first:mt-6 x:leading-7","children":["Run it using ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"docker compose up -d"}]," in the same directory as the file.\nAccess Bracket at ",["$","code",null,{"className":"nextra-code","dir":"ltr","children":"http://localhost:3000"}],"."]}]]}]]}]]}]
a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
7:null
8:null
c:[["$","title","0",{"children":"Docker"}]]