Skip to content

Conversation

@EXTREMOPHILARUM
Copy link
Collaborator

@EXTREMOPHILARUM EXTREMOPHILARUM commented Aug 24, 2025

Issue Number 🔢

  • Reference: #113

Issue Description 🛠️

  • Describe the problem this pull request is solving:

    • Users currently need to manually set up a web server to run Scribbler locally
    • Different platforms require different setup steps (Python http.server, npx serve, nginx/apache)
    • This creates friction for new users and inconsistency across development environments
    • No automated Docker image publishing for easy distribution
  • How this PR addresses it:

    • Adds Dockerfile using nginx:alpine as a lightweight web server
    • Adds docker-compose.yml for easy orchestration
    • Implements GitHub Actions workflow for automated Docker image building and publishing to DockerHub
    • Enables one-command deployment with docker-compose up or docker run
    • Updates README with comprehensive Docker usage instructions
  • What Problem You Solve? 💡

    • Eliminates manual web server setup
    • Provides consistent environment across all platforms (Windows, Mac, Linux)
    • Simplifies deployment to a single command
    • Maintains the "nodeless" philosophy while providing modern containerization
    • Enables automated CI/CD for Docker images with proper versioning

Additional Information (Optional) ℹ️

  • Technical details:

    • Uses nginx:alpine base image (only ~45MB total size)
    • Exposes port 8080 on host, mapping to port 80 in container
    • No build process required - serves static files directly
    • Optional volume mounting available for development mode (commented in docker-compose.yml)
    • GitHub Actions workflow supports:
      • Multi-platform builds (linux/amd64, linux/arm64)
      • Semantic versioning tags
      • Automatic latest tag for main branch
      • Build caching for faster CI runs
  • Files added/modified:

    • Added: Dockerfile - Container definition
    • Added: docker-compose.yml - Docker Compose orchestration
    • Added: .github/workflows/docker-publish.yml - CI/CD pipeline
    • Modified: README.md - Added Docker installation instructions
  • Required GitHub Secrets for CI/CD:

    • DOCKERHUB_USERNAME - DockerHub username
    • DOCKERHUB_TOKEN - DockerHub access token
  • No impact on existing codebase:

    • Only adds new files for Docker support
    • Does not modify any existing functionality
    • Fully backward compatible - users can still use traditional hosting methods

Checklist ✅

  • Testing: Docker container builds successfully and serves application on http://localhost:8080 🧪
  • Read the Rules and Guidelines: PR follows project guidelines, commit message format follows conventions 📜

Screenshots or Video Demonstration (Optional) 📸

Earlier Output Current Output
Manual setup required:
python -m http.server
or
npx serve
Different commands for different systems
Simple Docker deployment:
docker-compose up
Works identically on all platforms

@satyaakam
Copy link

Does scribbler releases have tag or labels ? "ERROR: failed to build: invalid tag "/scribbler:pr-115": invalid reference format" , oh its not able to even pull this pr ?

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants