# Install WordPressify

> Install WordPressify from NPM or from the GitHub repository.

Source: https://wordpressify.co/install-wordpressify

> For the complete documentation index, see [llms.txt](https://wordpressify.co/llms.txt).

# Install WordPressify

<Callout type="info">
Requires Node.js 12.20 or later. Docker must be installed and running before running WordPressify.
</Callout>

<Tabs>
  <TabContent title="From NPM">
    Create a new directory for your project and scaffold it:

    ```bash
    mkdir my-theme && cd my-theme
    npx wordpressify
    ```

    This copies the full file structure into your directory. There is no `npm install` step: dependencies are installed inside the Docker containers when they are first built.

    To skip the confirmation prompt, use the `-y` (or `--non-interactive`) flag:

    ```bash
    npx wordpressify -y
    ```
  </TabContent>
  <TabContent title="From Repository">
    Clone the repository from GitHub:

    ```bash
    git clone https://github.com/luangjokaj/wordpressify
    cd wordpressify
    ```

    Replace the root `package.json` with the one from the installer directory, then install dependencies:

    ```bash
    cp ./installer/package.json ./package.json
    npm install
    ```

    The installer's `package.json` contains the correct scripts and dependencies for development. The root one is for publishing the npm package.
  </TabContent>
</Tabs>

## Update an Existing Project

To update the core WordPressify files (Docker, build pipeline, configs) without touching your `src/` folder or dependencies:

```bash
npx wordpressify update
```

This overwrites infrastructure files like `docker-compose.yml`, `gulpfile.js`, Dockerfiles, and linting configs. It also updates the `scripts` section in your `package.json` while preserving your dependencies.

To skip the confirmation prompt, use the `-y` (or `--non-interactive`) flag:

```bash
npx wordpressify update -y
```

<Card title="Next: Start Project" icon="Rocket" href="/start-project">
  Set up your theme name and start the dev server.
</Card>
