[Sprint 02] infra: Create Docker deployment infrastructure #15

Closed
opened 2026-02-03 21:01:56 +00:00 by lmiranda · 1 comment
Owner

Summary

Create Docker and Caddy infrastructure for deploying the wrapper as a containerized service.

Tasks

Dockerfile

  • Create docker/Dockerfile
  • Base image: python:3.11-slim
  • Install dependencies from pyproject.toml
  • Copy src/gitea_mcp_remote/ into container
  • Set working directory
  • Expose port 8000
  • CMD: python -m gitea_mcp_remote.server_http

Docker Compose

  • Create docker/docker-compose.yml
  • Define gitea-mcp-remote service
  • Mount .env file for configuration
  • Expose port 8000 to localhost only (not 0.0.0.0)
  • Set restart policy: unless-stopped
  • Configure logging driver
  • Add healthcheck endpoint

Caddyfile

  • Create docker/Caddyfile
  • Configure reverse proxy to container:8000
  • Set up subdomain: gitea-mcp.hotserv.cloud
  • Enable automatic HTTPS
  • Add request logging
  • Configure CORS headers for MCP client access

Acceptance Criteria

  • docker/Dockerfile builds successfully
  • docker/docker-compose.yml starts container
  • docker/Caddyfile proxies requests correctly
  • Container can be built: docker build -t gitea-mcp-remote -f docker/Dockerfile .
  • Container can be started: docker compose -f docker/docker-compose.yml up -d
  • Service accessible at configured subdomain
  • Logs visible via docker compose logs -f

Dependencies

Blocked by: #14 (server must exist to containerize)

Context

Docker + Caddy provides production-ready deployment. The wrapper runs in a container behind Caddy reverse proxy with automatic HTTPS.

References:

  • Corrective Rebuild specification
  • Steps 8-10 of 14-step rebuild plan

Size: M (3-4 hours)

## Summary Create Docker and Caddy infrastructure for deploying the wrapper as a containerized service. ## Tasks ### Dockerfile - [ ] Create `docker/Dockerfile` - [ ] Base image: `python:3.11-slim` - [ ] Install dependencies from `pyproject.toml` - [ ] Copy `src/gitea_mcp_remote/` into container - [ ] Set working directory - [ ] Expose port 8000 - [ ] CMD: `python -m gitea_mcp_remote.server_http` ### Docker Compose - [ ] Create `docker/docker-compose.yml` - [ ] Define `gitea-mcp-remote` service - [ ] Mount `.env` file for configuration - [ ] Expose port 8000 to localhost only (not 0.0.0.0) - [ ] Set restart policy: `unless-stopped` - [ ] Configure logging driver - [ ] Add healthcheck endpoint ### Caddyfile - [ ] Create `docker/Caddyfile` - [ ] Configure reverse proxy to container:8000 - [ ] Set up subdomain: `gitea-mcp.hotserv.cloud` - [ ] Enable automatic HTTPS - [ ] Add request logging - [ ] Configure CORS headers for MCP client access ## Acceptance Criteria - `docker/Dockerfile` builds successfully - `docker/docker-compose.yml` starts container - `docker/Caddyfile` proxies requests correctly - Container can be built: `docker build -t gitea-mcp-remote -f docker/Dockerfile .` - Container can be started: `docker compose -f docker/docker-compose.yml up -d` - Service accessible at configured subdomain - Logs visible via `docker compose logs -f` ## Dependencies **Blocked by:** #14 (server must exist to containerize) ## Context Docker + Caddy provides production-ready deployment. The wrapper runs in a container behind Caddy reverse proxy with automatic HTTPS. **References:** - Corrective Rebuild specification - Steps 8-10 of 14-step rebuild plan **Size:** M (3-4 hours)
lmiranda added this to the Sprint 02: Corrective Rebuild milestone 2026-02-03 21:01:56 +00:00
Author
Owner

⚠️ Blocked By: #14

⚠️ **Blocked By:** #14
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: personal-projects/gitea-mcp-remote#15