About the /site/modules/ directory

This directory /site/modules/ is where you may install additional 3rd party plugin modules, or create your own. Modules in this directory are specific to your site only.

There is also a corresponding /wire/modules/ directory which contains ProcessWire's core modules—it's best to leave those ones alone so that you don't lose anything when doing core upgrades.

If safe for your hosting environment, you may wish to make your /site/modules/ directory writable to PHP so that the installation of your modules can be managed from ProcessWire's admin. However, this is not necessarily safe in all shared hosting environments and is completely optional.

To get 3rd party modules for installation, visit ProcessWire’s modules directory.

Installing modules from the ProcessWire admin

If your /site/modules/ directory is writable, you can install modules from ProcessWire's admin directly from the Modules Directory, from either a ZIP file or from an https URL to a ZIP file. In your ProcessWire admin, see Modules > New for installation options.

Installing modules from the file system

Each module (and any related files) should live in a directory of its own. The directory should have the same name as the module. For instance, if you are installing a module named ProcessDatabaseBackups.module, then it should live in the directory /site/modules/ProcessDatabaseBackups/.

Once you have placed a new module in this directory, you need to let ProcessWire know about it. Login to the admin and click "Modules". Then click the "Check for new modules" button. It will find your new module(s). Click the "Install" button for any new modules that you want to install.

Removing modules

The first step in removing a module is to uninstall it from ProcessWire (if it isn't already). You do this by going to the "Modules" page, and "Site" tab in your ProcessWire admin. Locate the module you want to remove and click its name (or Config/Settings button, if it has one). On the next screen (the module info/config screen), scroll to the bottom and you should see an "Uninstall" field. Click it to open, check the Uninstall box, and submit the form.

After the module is uninstalled, you may optionally remove the module files. If your modules file system is writable to ProcessWire, it will give you a "Delete" button next to the module in your "Modules" admin page. You may click that to remove the module files.

If your file system is not writable, you may remove the module files manually from the file system (via SFTP or whatever tool you are using to manage your files on the server).

Interested in learning how to make your own modules?

We've created two "Hello World" modules as examples for those interested in learning module development:

  • Helloworld demonstrates the basics of modules and hooks.

  • ProcessHello demonstrates the basics of how to create a Process module. Process modules are those that create applications in the admin.

Also check out the Modules development forum.

Additional resources

Twitter updates

  • ProcessWire 3.0.191 core updates: updates to the installer and the profile exporter module— More
    24 December 2021
  • This week ProcessWire went on a diet, trimming the core size from 15.5 MB down to 7.5 MB by moving optional site profiles into their own GitHub repos— More
    17 December 2021
  • Weekly updates, 10 December 2021: New pages->new() method— More
    10 December 2021

Latest news

  • ProcessWire Weekly #397
    In the 397th issue of ProcessWire Weekly we'll check out the latest core updates, introduce a couple of new modules, and more. Read on!
    Weekly.pw / 18 December 2021
  • ProcessWire 3.0.190 core updates
    ProcessWire 3.0.190 has 15 commits relative to 3.0.189 and contains a mixture of issue resolutions and feature additions. This post covers them all, in addition to updates for the PageAutosave and ProFields Table modules.
    Blog / 3 December 2021
  • Subscribe to weekly ProcessWire news

“Yesterday I sent the client a short documentation for their ProcessWire-powered website. Today all features already used with no questions. #cmsdoneright—Marc Hinse, Web designer/developer