Merge remote-tracking branch 'origin/main' into staging

This commit is contained in:
Andrey Antukh 2026-04-01 09:22:52 +02:00
commit a04dd6cbfd
3 changed files with 49 additions and 2 deletions

View File

@ -19,6 +19,30 @@
- Fix title on shared button [Taiga #13730](https://tree.taiga.io/project/penpot/issue/13730)
## 2.14.1
### :sparkles: New features & Enhancements
- Add automatic retry with backoff for idempotent RPC requests on network failures [Github #8792](https://github.com/penpot/penpot/pull/8792)
- Add scroll and zoom throttling to one state update per animation frame [Github #8812](https://github.com/penpot/penpot/pull/8812)
- Improve error handling and exception formatting [Github #8757](https://github.com/penpot/penpot/pull/8757)
### :bug: Bugs fixed
- Fix crash in apply-text-modifier with nil selrect or modifier [Github #8762](https://github.com/penpot/penpot/pull/8762)
- Fix incorrect attrs references on generate-sync-shape [Github #8776](https://github.com/penpot/penpot/pull/8776)
- Fix regression on subpath support [Github #8793](https://github.com/penpot/penpot/pull/8793)
- Improve error reporting on request parsing failures [Github #8805](https://github.com/penpot/penpot/pull/8805)
- Fix fetch abort errors escaping the unhandled exception handler [Github #8801](https://github.com/penpot/penpot/pull/8801)
- Fix nil deref on missing bounds in layout modifier propagation [Github #8735](https://github.com/penpot/penpot/pull/8735)
- Fix TypeError when token error map lacks :error/fn key [Github #8767](https://github.com/penpot/penpot/pull/8767)
- Fix dissoc error when detaching stroke color from library [Github #8738](https://github.com/penpot/penpot/pull/8738)
- Fix crash when pasting image into text editor
- Fix null text crash on paste in text editor
- Ensure path content is always PathData when saving
- Fix error when get-parent-with-data encounters non-Element nodes
## 2.14.0
### :boom: Breaking changes & Deprecations

View File

@ -401,6 +401,20 @@ PENPOT_FLAGS: [...] enable-air-gapped-conf
When Penpot starts, it will leave out the Nginx configuration related to external requests. This means that,
with this flag enabled, the Penpot configuration will disable as well the libraries and templates dashboard and the use of Google fonts.
## High availability
The mechanisms for installing Penpot in HA depend largely on how each infrastructure is managed.
In this section, we mention the key factors to consider when replicating a Penpot installation:
The components that can be replicated are the `frontend`, the `backend`, and the `exporter`.
Replication management depends on the infrastructure, whether it's a load balancer or a Kubernetes deployment with HPA.
In a high-availability (HA) scenario, managing the state outside of replicas is crucial. This affects the following components:
- Database: Penpot typically operates with a single database instance. This database can also have a replica in case the primary instance fails.
- Valkey: Penpot only needs one Valkey instance to function correctly. Due to the nature of the data it manages, replication isn't even essential.
- User media storage: This should not be configured with local storage but rather with centralized storage, such as Kubernetes PVC or S3.
## Backend
This section enumerates the backend only configuration variables.

View File

@ -3,9 +3,18 @@ title: 1.1 Recommended settings
desc: Learn recommended self-hosting settings, Docker & Kubernetes installs, configuration, and troubleshooting tips in Penpot's technical guide.
---
# Recommended storage
# Recommended settings
Disk requirements depend on your usage, with the primary factors being database storage and user-uploaded files.
<p class="advice">
These recommended settings do not cover specific <a href="/technical-guide/configuration/#high-availability">high-availability setups</a>, which will depend on your particular best practices.
Also, for air-gapped environments, please make sure to read this section of <a href="/technical-guide/configuration/#air-gapped-environments">the guide</a>.
</p>
Regarding **hardware requirements**, these will largely depend on the purpose of the installation. It's important to know that Penpot makes extensive use of the browser, so you need to ensure you have powerful end-user computers. To get the most out of Penpot, we recommend using the latest stable version of Chrome.
Regarding the **server**, 4 CPUs and 16GB of RAM are sufficient to support thousands of users. So you can also be conservative when allocating resources to the instance.
**Disk requirements** depend on your usage, with the primary factors being database storage and user-uploaded files.
As a rule of thumb, start with a **minimum** database size of **50GB** to **100GB** with elastic sizing capability — this configuration should adequately support up to 10 editors. For environments with **more than 10 users**, we recommend adding approximately **5GB** of capacity per additional editor.