mirror of
https://github.com/penpot/penpot.git
synced 2026-10-30 06:20:32 +00:00
Introduce optional named S3 targets and route internal semantic buckets (for example tempfile) to them, keeping the fs/s3 backend choice and the storage_object.backend value unchanged. Targets and routes are read from an EDN file referenced by PENPOT_OBJECTS_STORAGE_S3_ROUTES_FILE. The chosen target id is stored in the object metadata as :storage-target and resolved on reads, URL signing, deduplication, individual deletes and both GC tasks. The implicit :default target is built from PENPOT_OBJECTS_STORAGE_S3_*, so behavior is unchanged when the file is absent. Bulk deletion now carries the target, and one S3 client/presigner pair is shared per distinct region/endpoint. Closes #11630 AI-assisted-by: deepseek-flash
Penpot Docs
Penpot documentation website.
Usage
To view this site locally, first set up the environment:
# only if necessary
nvm install
nvm use
corepack enable
pnpm install
And launch a development server:
pnpm start
You can then point a browser to http://localhost:8080.
Tooling
- Eleventy (11ty)
- Diagrams with plantuml. See also real-world-plantuml.
- Diagrams with svgbob and mermaid.
- arc42 template.
- c4model for software architecture, and an implementation in plantuml.