Deployment guide

Replace Microsoft Publisher with Penpot on a VPS

Deploy on a VPS Cloud →

Replace Microsoft Publisher with Penpot on a VPS

Comparison11 min read6 steps

On October 13, 2026, Microsoft removed Publisher from Microsoft 365. For associations, communication teams, and small print agencies that relied on it to produce flyers, newsletters, and posters, the break is clean: no automatic migration, no import of .pub files into an official successor. The question is no longer "when to migrate" but "to what." Penpot is a serious answer — provided its limitations are understood. It is a user interface design tool under the AGPL-3.0 license, self-hostable via Docker Compose, that covers a wide range of visual composition needs without requiring a cloud account or subscription. But it is not a DTP application in the strict sense, and claiming otherwise would set up a real disappointment in practice. This article details what Penpot actually covers for print work, what it does not yet handle, and how to deploy it on a VPS for a team.

Contents· Why Publisher is gone — and what it means1/11
  1. 01Why Publisher is gone — and what it means
  2. 02What Penpot covers — and what it does not
  3. 03VPS requirements for hosting Penpot
  4. 04Publisher vs Penpot — 7 criteria
  5. 05Getting started with self-hosted Penpot in 6 steps
  6. 06Organizing the workspace for print
  7. 07Exporting from Penpot: available formats
  8. 08What Penpot does not yet do
  9. 09Production configuration: TLS, backups, and multi-user setup
  10. 10Troubleshooting — the 3 most common errors at first startup
  11. 11Next steps and resources

Why Publisher is gone — and what it means

Microsoft announced the end of Publisher in Microsoft 365 in July 2024, with a removal date of October 13, 2026, aligned with the end of extended support for Office 2019. The desktop application continues to work for perpetual licenses, but it no longer receives updates and is no longer available for purchase in current Microsoft 365 plans.

In practice, the teams affected are those that produced lightweight print materials — A5 flyers, event programs, printed newsletters, business cards — in a Microsoft environment without an Adobe budget. Publisher occupied this niche because it was included in certain Office plans, easy to learn, and capable of producing a print-ready PDF without outsourcing.

The disappearance creates pressure for three types of organizations: associations whose IT contact is a volunteer, communication departments of mid-size companies that avoid the Adobe suite for cost or software policy reasons, and small print agencies that work for these clients and need a workflow without mandatory cloud accounts.

What Penpot covers — and what it does not

  • Flyer and poster composition: Penpot handles layers, vector shapes, import of local TTF/OTF fonts, and layout grids. An A4 or A5 flyer can be composed directly with custom guides set in millimeters.
  • Reusable templates: Penpot's shared libraries let you store components (header, footer, logo) accessible to the whole team on the same instance.
  • PDF export: Penpot exports a flat PDF (no layers) in RGB sRGB. For large-format or offset printing, the absence of ICC profile management and CMYK color separation is a real limitation — see the dedicated section.
  • Real-time collaboration: multiple people can work simultaneously on the same file, like an online spreadsheet, without sending files by email.
  • Import of .pub files: Penpot does not read the .pub format. No recognized automatic migration tool exists. Migration means recreating layouts, not importing them.
  • Native CMYK management: Penpot works entirely in RGB. ICC color profiles are not applied on export. For demanding offset printing, a conversion step via Scribus or a print service provider remains necessary.
  • Multi-page layout templates for long documents: Penpot supports multiple pages, but without the paragraph styles and automatic text flow tools found in InDesign or even Publisher for booklets spanning several dozen pages.

VPS requirements for hosting Penpot

Penpot is deployed via Docker Compose. The stack includes three main services: the frontend (Nginx + SPA), the backend (Clojure/JVM), and the exporter (Node.js, used for PDF and PNG rendering). A fourth service, PostgreSQL, stores the data.

Minimum recommended configuration for a team of 5 to 15 people: 4 GB RAM (the JVM backend starts at ~600 MB but climbs to 1.5 GB under load), 2 vCPU, and 20 GB storage for uploaded assets. In practice, a 4 GB RAM VPS is adequate for an association or small agency; move to 8 GB once the team exceeds fifteen people or asset files become large.

The domain must point to the VPS before starting the containers: Penpot uses absolute URLs for assets and email invitations, and the value is read at first startup from the PENPOT_PUBLIC_URI variable.

The article [self-host-penpot-vps](/blog/self-host-penpot-vps) covers the full Docker Compose procedure step by step, including environment variables and SMTP configuration.

Publisher vs Penpot — 7 criteria

Scroll the table

CriterionMicrosoft PublisherSelf-hosted Penpot
Flyers and postersYes, built-in templates, native A4/A5 formatYes, with custom guides in mm
Printed newslettersYes, columns and automatic text flowPartial: manual columns, no automatic text flow
Large-format postersYes, up to 584 × 584 cmYes, but PDF export is RGB only (no CMYK)
Supported formatsImport Word, TIFF/EPS images; export PDF, XPSImport SVG, raster images; export PDF, SVG, PNG, WEBP
CollaborationManual file sharing (OneDrive)Real-time multi-user on the same instance
Learning curveLow for Office usersModerate: interface similar to Figma, different from Publisher
CostIncluded in some Microsoft 365 plans (removed October 2026)Free (AGPL-3.0) + VPS cost

Getting started with self-hosted Penpot in 6 steps

  1. Choose a VPS with at least 4 GB of RAM and Docker installed. The ServOrbit Penpot template pre-configures Docker Compose, the essential environment variables, and the reverse proxy.

  2. Point your subdomain (penpot.your-domain.com) to the VPS IP address via an A record in your DNS manager, before starting the containers.

  3. Retrieve the official docker-compose.yaml from the Penpot repository and set PENPOT_PUBLIC_URI to the public URL of the instance. Do not start without this variable: email invitation links will be broken.

  4. Run docker compose up -d and wait until all four services (frontend, backend, exporter, PostgreSQL) are in a healthy state. The first startup takes 2 to 4 minutes depending on VPS performance.

  5. Create the first admin account via the instance's /auth/register URL. Then disable open registration if the instance is private (PENPOT_FLAGS=enable-login disable-registration).

  6. Refer to the article [self-host-penpot-vps](/blog/self-host-penpot-vps) for SMTP configuration, volume backups, and instance updates.

Organizing the workspace for print

Penpot organizes work into three levels: teams, projects, and files. For an association or agency, the recommended structure is one team per client or department, with projects corresponding to campaigns or time periods ("Back to School 2026", "Quarterly Newsletter").

Shared libraries are the central mechanism for team-based print work. They store brand colors, text styles (headings, body, captions), logos in SVG, and recurring components (photo frames, address blocks). A change in the library propagates automatically to all files that inherit from it — avoiding manual updates to twenty flyers when the logo changes.

For recurring document templates (A5 portrait flyer, 40×60 cm poster, 85×55 mm business card), create a "Templates" file in each project and duplicate pages from that file. Dimensions can be set in millimeters in the page properties (width/height in mm, indicative resolution of 300 dpi for PNG export).

Exporting from Penpot: available formats

Penpot offers four export formats: PDF, SVG, PNG, and WEBP. Each format corresponds to a different use case.

PDF is generated by the exporter service (Node.js/Playwright). It produces a paginated, flat PDF (no layers) in RGB sRGB color profile. For offset or screen printing, this format may suffice if the printer accepts RGB — which is increasingly common for short digital print runs. For demanding offset printing, a downstream CMYK conversion remains necessary (Ghostscript, Acrobat, or the print service provider).

SVG is Penpot's native vector output format. It is suitable for logos, pictograms, and brand elements to be transmitted to a printer or integrated into another tool.

PNG at 2× or 4× the nominal resolution is used for previews and web exports. For print use, set the base resolution in millimeters and multiply to reach 300 dpi.

WEBP is reserved for digital uses (web, social media).

What Penpot does not yet do

An honest look at Penpot's current limitations for print work:

No native CMYK management. Penpot works entirely in RGB. There is no CMYK color space, no ICC profile application on export, no color separation. For high-fidelity offset printing, this is a structural limitation.

No automatic text flow between frames. Publisher allowed linking text boxes so content would overflow from one frame to another automatically. Penpot does not yet offer this. For long documents (booklets of 8 pages or more), Scribus remains more appropriate.

No import of .pub files. There is no recognized, maintained .pub-to-Penpot converter. Migration requires recreating templates from scratch — which for teams with dozens of templates represents a real undertaking.

No mail merge. Publisher included a mail merge tool for personalizing documents in series (named invitation cards, labels). Penpot has no native equivalent.

These gaps are documented in the Penpot public repository. Some (CMYK, text flow) appear in the community roadmap without a confirmed delivery date.

Production configuration: TLS, backups, and multi-user setup

Three points to address before opening the instance to a team:

TLS with nginx as a reverse proxy. Penpot listens by default on port 9001 (frontend) and 6060 (backend). Place an nginx reverse proxy in front and obtain a Let's Encrypt certificate via Certbot or Caddy. The PENPOT_PUBLIC_URI variable must use https:// — otherwise internal assets will not load correctly.

Docker volume backups. Penpot stores its data in two volumes: the PostgreSQL volume (schema and metadata) and the assets volume (uploaded files). A daily backup with docker run --rm -v penpot_postgres_v15:/data -v /backup:/backup alpine tar czf /backup/penpot-postgres-$(date +%F).tar.gz /data on each volume is sufficient for non-critical use. Test restoration before putting the instance into production.

User management. By default, Penpot allows open registration via /auth/register. For a private instance, disable this option with the disable-registration flag and invite members by email from the admin interface. The admin role is distinct from the owner role of a team — a user can administer the instance without accessing team files.

Troubleshooting — the 3 most common errors at first startup

1. The frontend shows "Cannot connect to server."
Most common cause: PENPOT_PUBLIC_URI points to localhost or an internal IP. Penpot uses it to build asset URLs in the browser — if the value is unreachable from the client, the connection fails. Fix the variable, restart with docker compose up -d, clear the browser cache.

2. Email invitations are not sent.
Penpot requires an SMTP server configured via SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, and PENPOT_SMTP_ENABLED=true. Without a valid SMTP setup, invitations are created in the database but no email is sent. Test with docker compose logs penpot-backend | grep smtp.

3. The exporter service does not start.
The exporter service uses Playwright (headless Chromium). It requires system libraries libnss3, libatk-bridge2.0-0, and libgbm1. On a minimal Debian image, these packages may be absent inside the container — this is a known issue documented in Penpot's issue tracker. Use the official penpotapp/exporter image without replacing it with a custom image.

Next steps and resources

To go further after the initial deployment:

Read the article [penpot-alternative-figma-self-hosted-design-agence](/blog/penpot-alternative-figma-self-hosted-design-agence) for Penpot's positioning relative to Figma and web agency use cases — distinct from the print use case covered here.

The official Penpot documentation (help.penpot.app) covers shared libraries, components, and team management. The community forum (community.penpot.app) documents frequent configuration issues.

For teams that also produce long documents (annual reports, catalogs), Scribus remains the open-source reference with native CMYK management and text flow. The two tools coexist without conflict: Penpot for rapid composition of lightweight print materials and collaboration, Scribus for complex documents requiring a rigorous color management chain.

If your team is still deciding on VPS resources or configuration, the ServOrbit Penpot template deploys the stack in minutes with pre-configured variables.

Deploy Penpot on a ServOrbit VPS

Ready-to-use Docker Compose template: Penpot starts in minutes, with no manual reverse proxy or environment variable configuration required.

Need help?

Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.

Message us on WhatsAppopens in a new tab