Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

improvement: simplify local development by replacing external services with Docker alternativess

Đang mở
#4,138 4 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 3 ngày

@parthjadhao01 đang làm issue này rồi.

Từ ngày 30/5/2026.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
55/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
docker, javascript

Hướng nghiên cứu

Bắt đầu với docker-compose-development.yml, contributor_docs/installation.md, contributor_docs/s3_configuration.md và server/utils/mail.ts. Chạy thiết lập Compose dành cho phát triển hiện có và lần theo các đường dẫn cấu hình tải lên và email. Hoàn thành nghĩa là môi trường phát triển cục bộ có thể sử dụng các dịch vụ Docker được ghi trong tài liệu mà không cần thông tin xác thực AWS hoặc Mailgun, trong khi hành vi trong môi trường production vẫn không thay đổi.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Area: Documentation Enhancement Needs Discussion
Increasing Access

This improvement increases access by lowering the barrier for new contributors
to set up a local development environment. Currently, contributing to features
like file uploads or email verification requires creating AWS and Mailgun
accounts — both of which may require credit cards and can be confusing for
first-time open source contributors, students, or people in regions where
these services are restricted.

By replacing these with zero-config Docker alternatives (MinIO for S3, MailHog
for email), any contributor can run the full application locally with a single
docker compose up — no accounts, no credit cards, no 30-minute setup detours.

Feature enhancement details

Problem

Setting up the p5.js Web Editor for local development currently requires
creating accounts and generating API keys for external paid/third-party
services .This creates unnecessary
friction for contributors.

The two biggest pain points are:

1. AWS S3 (file uploads)

The contributor_docs/s3_configuration.md guide requires contributors to:

  • Create an AWS account
  • Create an S3 bucket
  • Configure bucket CORS policy
  • Create an IAM user with S3 permissions
  • Generate and copy access keys into .env

This is a ~30-45 minute detour just to test the file upload feature locally.

2. Mailgun (email)

Email features (signup verification, password reset) require:

  • Creating a Mailgun account
  • Registering and verifying a domain
  • Generating an API key

Currently server/utils/mail.ts throws an error at startup if
MAILGUN_KEY is missing, meaning contributors working on unrelated
features still cannot run the server without a Mailgun key.


Proposed Solution

Add local service alternatives to docker-compose-development.yml that
require zero external accounts:

S3 → MinIO

MinIO is a fully S3-compatible object storage server
that runs in Docker. The existing AWS SDK code works with it unchanged —
only the endpoint needs to point to the local container.

minio:
  image: minio/minio
  command: server /data --console-address ":9001"
  ports:
    - '9000:9000'
    - '9001:9001'
  environment:
    - MINIO_ROOT_USER=minioadmin
    - MINIO_ROOT_PASSWORD=minioadmin
  volumes:
    - miniodata:/data

.env.example defaults for local dev:

AWS_ACCESS_KEY=minioadmin
AWS_SECRET_KEY=minioadmin
AWS_REGION=us-east-1
S3_BUCKET=p5-local
S3_ENDPOINT=http://minio:9000
S3_BUCKET_URL_BASE=http://localhost:9000/p5-local

A small init script or startup instructions in the docs would handle
bucket creation and CORS on first run via the MinIO console at
http://localhost:9001.

Mailgun → MailHog

MailHog is a local SMTP server
that captures all outgoing emails and displays them in a web UI at
http://localhost:8025. No emails are actually sent.

mailhog:
  image: mailhog/mailhog
  ports:
    - '1025:1025'  # SMTP
    - '8025:8025'  # Web UI

server/utils/mail.ts would need a small change to use SMTP transport
when a SMTP_HOST env var is set, falling back to Mailgun in production:

SMTP_HOST=mailhog
SMTP_PORT=1025

Benefits

  • New contributors can run the full application including uploads and
    email with a single docker compose up
  • No AWS account, no Mailgun account, no credit card required
  • Production behavior is unchanged — these are dev-only defaults
  • Significantly lowers the barrier for first-time contributors

Related Files

  • contributor_docs/installation.md
  • contributor_docs/s3_configuration.md
  • server/utils/mail.ts
  • docker-compose-development.yml
Ngôn ngữ chính
JavaScript
Star
1.7k
Fork
1.7k
Merge trung bình
6 ngày
Pull request đã merge (30 ngày)
10

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của processing/p5.js-web-editor

Tất cả issue của processing/p5.js-web-editor

Issue tương tự

Thêm issue về JavaScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.