improvement: simplify local development by replacing external services with Docker alternativess
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
- Lĩnh vực
- developer-experience, devops, infrastructure
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ả
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
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của processing/p5.js-web-editor
-
Unable to rename sound filesĐang mởAwaiting Maintainer Approval Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
processing/p5.js-web-editor#4392 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Renaming a folder doubles the folder name in file paths (console errors show /lib/lib/helper.js)Đang mởAwaiting Maintainer Approval Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
processing/p5.js-web-editor#4365 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
p5 logo is broken on verification emailsCó thể đã có người làm @sourabh65mehta đã nhận 13 ngày trước. Đang mởBug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
processing/p5.js-web-editor#4364 · 2 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 3 ngày
-
`PATCH /editor/project/visibility` returns 200 with `null` and doesn't update when `projectId` is a slugCó thể làm lại được @Prbhtsgh đã nhận 20 ngày trước và không có pull request nào đang mở. Đang mởAwaiting Maintainer Approval Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
processing/p5.js-web-editor#4348 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Fix: example.js stores defaultHTML function reference instead of calling it, causing examples to display raw JavaScript source in previewCó thể làm lại được @syedbarkath980 đã nhận 25 ngày trước và không có pull request nào đang mở. Đang mởAwaiting Maintainer Approval Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
processing/p5.js-web-editor#4344 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
Tất cả issue của processing/p5.js-web-editor
Issue tương tự
-
Add: &TV LogoĐang mởcheck:passed logos:add
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 74/100
-
BUG: Appointment time renders blank and PM appointment slots miscalculate vertical position in CalendarScreenCó thể đã có người làm @aryanpatil-07 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
AOSSIE-Org/BabyNest#297 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Onboarding form: instructor radio never pre-selected "Yes" (permission vs permissions typo)Có thể đã có người làm @ThakuraAnki đã nhận hôm nay. Đang mởbug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
WikiEducationFoundation/WikiEduDashboard#7235 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
-
Component: Frontend Component: Web Component Type: Maintenance
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
it-at-m/refarch-templates#1944 ·
Maintainer thường phản hồi trong vòng 2 ngày