A Docker Desktop extension for deploying and managing a self-hosted Penpot instance. Penpot is an open-source design and prototyping platform for cross-domain teams.
- One-Click Deployment: Start a complete Penpot stack with a single click
- Status Monitoring: Real-time status of all Penpot services
- Service Management: Start, stop, and restart individual services
- Logs Viewer: View logs for any Penpot service
- Quick Access: Direct links to Penpot UI and MailCatcher
- Health Checks: Monitor the health status of all services
- Docker Desktop (latest version)
- Minimum 4GB RAM available for Docker
- Ports 9001 and 1080 available on your host
docker extension install ajeetraina777/penpot-docker-extension:2.0.1- Clone this repository:
git clone https://github.com/ajeetraina/penpot-docker-extension.git
cd penpot-docker-extension- Build the extension:
make build-extension- Install the extension:
make install-extensionThe extension deploys a complete Penpot stack with the following services:
- penpot-frontend: Web interface (Port 9001)
- penpot-backend: API server
- penpot-exporter: Export and rendering service
- penpot-postgres: PostgreSQL database
- penpot-valkey: Cache service (Redis-compatible)
- penpot-mailcatch: Email testing service (Port 1080)
The extension uses development-friendly defaults:
- Email verification is disabled
- Secure session cookies are disabled (for localhost)
- MailCatcher is used as SMTP server
- Telemetry is enabled with "docker-extension" referer
To customize Penpot configuration:
- Stop the Penpot services
- Edit the
docker-compose.yamlfile in the extension - Modify environment variables as needed
- Restart the services
For production deployments, you should:
- Enable email verification
- Configure a real SMTP server
- Enable secure session cookies
- Set a strong
PENPOT_SECRET_KEY - Configure proper SSL/TLS with a reverse proxy
See Penpot Configuration Guide for all available options.
The extension provides real-time monitoring of all services:
- Running: Service is active and operational
- Healthy: Service health checks are passing
- Starting: Service is initializing
- Stopped: Service is not running
- Unhealthy: Service health checks are failing
- Click the eye icon next to any service in the services table
- View the last 100 log lines
- Use logs to troubleshoot issues
To update to the latest Penpot version:
- Stop all Penpot services
- Set the
PENPOT_VERSIONenvironment variable:export PENPOT_VERSION=2.4.3 - Restart the services
To always use the latest version, leave PENPOT_VERSION unset.
cd ui
npm install
npm run devThen in another terminal:
docker extension dev ui-source ajeetraina777/penpot-docker-extension:latest http://localhost:3000After making changes to backend/main.go:
docker extension update ajeetraina777/penpot-docker-extension:latestEnable Chrome DevTools:
docker extension dev debug ajeetraina777/penpot-docker-extension:latest