Skip to content
 
 

Repository files navigation

Penpot Docker Extension

image

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.

Features

  • 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

Prerequisites

  • Docker Desktop (latest version)
  • Minimum 4GB RAM available for Docker
  • Ports 9001 and 1080 available on your host

Installation

Option 1: Install from Docker Hub (Coming Soon)

docker extension install ajeetraina777/penpot-docker-extension:2.0.1

Option 2: Build and Install Locally

  1. Clone this repository:
git clone https://github.com/ajeetraina/penpot-docker-extension.git
cd penpot-docker-extension
  1. Build the extension:
make build-extension
  1. Install the extension:
make install-extension

What's Included

The 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)

🔧 Configuration

Default Settings

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

Customizing Configuration

To customize Penpot configuration:

  1. Stop the Penpot services
  2. Edit the docker-compose.yaml file in the extension
  3. Modify environment variables as needed
  4. 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.

Service Status

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

Viewing Logs

  1. Click the eye icon next to any service in the services table
  2. View the last 100 log lines
  3. Use logs to troubleshoot issues

Updating Penpot

To update to the latest Penpot version:

  1. Stop all Penpot services
  2. Set the PENPOT_VERSION environment variable:
    export PENPOT_VERSION=2.4.3
  3. Restart the services

To always use the latest version, leave PENPOT_VERSION unset.

Development

Frontend Development

cd ui
npm install
npm run dev

Then in another terminal:

docker extension dev ui-source ajeetraina777/penpot-docker-extension:latest http://localhost:3000

Backend Development

After making changes to backend/main.go:

docker extension update ajeetraina777/penpot-docker-extension:latest

Debug Mode

Enable Chrome DevTools:

docker extension dev debug ajeetraina777/penpot-docker-extension:latest

About

Penpot Docker Extension

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages