Skip to main content
Glama
deployment_docker.md.B8bQDQTo.js3.06 kB
import{_ as a,c as o,o as n,a6 as t}from"./chunks/framework.CHl2ywxc.js";const u=JSON.parse('{"title":"Deploy with Docker","description":"","frontmatter":{},"headers":[],"relativePath":"deployment/docker.md","filePath":"deployment/docker.md","lastUpdated":1755281500000}'),s={name:"deployment/docker.md"};function i(l,e,d,c,p,r){return n(),o("div",null,e[0]||(e[0]=[t(`<h1 id="deploy-with-docker" tabindex="-1">Deploy with Docker <a class="header-anchor" href="#deploy-with-docker" aria-label="Permalink to &quot;Deploy with Docker&quot;">​</a></h1><p>Two Docker setups are provided:</p><ol><li>Top-level <code>Dockerfile</code> (multi-stage) and <code>docker-compose.yml</code> for local dev</li><li><code>deploy/docker/Dockerfile</code> optimized for CI-built images and Koyeb</li></ol><h2 id="local-development" tabindex="-1">Local Development <a class="header-anchor" href="#local-development" aria-label="Permalink to &quot;Local Development&quot;">​</a></h2><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker compose up --build</span></span></code></pre></div><p>This uses the dev target with hot reload (<code>nodemon</code>) and maps your working directory into the container.</p><h2 id="production-image-ci" tabindex="-1">Production Image (CI) <a class="header-anchor" href="#production-image-ci" aria-label="Permalink to &quot;Production Image (CI)&quot;">​</a></h2><p>Build and push an image:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker build -f deploy/docker/Dockerfile -t ghcr.io/OWNER/REPO:latest .</span></span> <span class="line"><span>docker push ghcr.io/OWNER/REPO:latest</span></span></code></pre></div><p>Run:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>docker run -p 3000:3000 \\</span></span> <span class="line"><span> -e NODE_ENV=production \\</span></span> <span class="line"><span> -e TOKEN_ENC_KEY=... \\</span></span> <span class="line"><span> -e MASTER_BASE_URL=https://your.domain \\</span></span> <span class="line"><span> ghcr.io/OWNER/REPO:latest</span></span></code></pre></div><h2 id="environment" tabindex="-1">Environment <a class="header-anchor" href="#environment" aria-label="Permalink to &quot;Environment&quot;">​</a></h2><ul><li>Set <code>TOKEN_ENC_KEY</code> in production</li><li>Set <code>MASTER_BASE_URL</code> if serving behind a proxy to ensure correct OAuth redirects</li><li>Inject <code>MASTER_OAUTH_CLIENT_SECRET</code> and other provider secrets via env</li></ul>`,13)]))}const m=a(s,[["render",i]]);export{u as __pageData,m as default};

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jakedismo/master-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server