Skip to content

feat: add Docker support for self-hosted deployment#872

Open
nothingtosurprise wants to merge 11 commits intokoala73:mainfrom
nothingtosurprise:main
Open

feat: add Docker support for self-hosted deployment#872
nothingtosurprise wants to merge 11 commits intokoala73:mainfrom
nothingtosurprise:main

Conversation

@nothingtosurprise
Copy link

Summary

⚠️ IMPORTANT: NOT RUNTIME TESTED — PLEASE TEST BEFORE MERGING

This PR was developed and syntax-validated but NOT runtime-tested
due to environment limitations (developed on Android without Docker).

Before merging, please run:

Community testing before merge is welcome!


Summary

Adds complete Docker support enabling self-hosted deployment
without Vercel. Closes the self-hosted deployment roadmap item.

Type of change

  • New feature
  • CI / Build / Infrastructure

Files Added

  • Dockerfile — multi-stage build (node:20-alpine + nginx:alpine)
  • nginx.conf — SPA routing, gzip, API proxy
  • docker-compose.yml — 3 services (app, api, redis)
  • .env.example — Docker self-hosting variables added
  • docker/server/Dockerfile — Express API container
  • docker/server/package.json — express, cors, ioredis
  • docker/server/index.js — 30+ routes replacing Vercel Edge Functions

Usage

cp .env.example .env
docker compose build
docker compose up -d

Frontend: http://localhost:3000

API: http://localhost:3001/api/version

Checklist

  • No existing files modified
  • Vercel deployment unaffected
  • No API keys or secrets committed
  • Runtime tested (needs desktop environment)

@vercel
Copy link

vercel bot commented Mar 3, 2026

@nothingtosurprise is attempting to deploy a commit to the Elie Team on Vercel.

A member of the Team first needs to authorize it.

@koala73 koala73 added Not Ready to Merge PR has conflicts, failing checks, or needs work Low Value Trivial, unnecessary, or not aligned with project needs labels Mar 3, 2026
@nothingtosurprise
Copy link
Author

Hi @koala73! Thanks for the review.

I understand the concerns. I'm happy to revise this to:

  1. Remove docker/server/ entirely and use the existing /server
    TypeScript code instead
  2. Update docker-compose.yml to build from the existing server
  3. Any other changes you'd suggest

Would love your guidance on the preferred approach! 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Low Value Trivial, unnecessary, or not aligned with project needs Not Ready to Merge PR has conflicts, failing checks, or needs work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants