PHPackages                             ronilaukkarinen/wpstack-rolle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. ronilaukkarinen/wpstack-rolle

ActiveProject[Framework](/categories/framework)

ronilaukkarinen/wpstack-rolle
=============================

A modern WordPress stack

2.6.3(3mo ago)11311416MITShellPHP &gt;=8.3CI passing

Since Feb 27Pushed 3mo ago6 watchersCompare

[ Source](https://github.com/digitoimistodude/dudestack)[ Packagist](https://packagist.org/packages/ronilaukkarinen/wpstack-rolle)[ Docs](https://github.com/digitoimistodude/dudestack)[ RSS](/packages/ronilaukkarinen-wpstack-rolle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (25)Versions (84)Used By (0)

Dudestack
=========

[](#dudestack)

[![Packagist](https://camo.githubusercontent.com/cb2d521878d8ada9e2b4a14cd74d0e4bfecbe715b712446b2b24d236094b6dd2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f726f6e696c61756b6b6172696e656e2f64756465737461636b2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ronilaukkarinen/dudestack) [![Build Status](https://github.com/digitoimistodude/dudestack/actions/workflows/php.yml/badge.svg)](https://github.com/digitoimistodude/dudestack/actions/workflows/php.yml)

Dudestack is a modern WordPress toolkit that helps you get started with the best development tools and project structure - just like [Bedrock](https://github.com/roots/bedrock).

The idea is to have just one command for starting the project. Saves dozens of hours easily in each project start when DRY (*Dont-Repeat-Yourself*) stuff are fully automated!

After setting up, you can start a new project just by running:

```
createproject
```

**TL;DR:** You can test dudestack right away in just two minutes by following our [Air starter theme instructions](https://github.com/digitoimistodude/air#air-development).

**Please note: The main focus of dudestack is on how it works for our company and staff. This means it may not work for you without tweaking. Please ask a question by addressing an [issue](https://github.com/digitoimistodude/dudestack/issues) if something goes south.**

[![497078890-cb12bbb1-9563-4ef8-8694-99927f5f10ca](https://private-user-images.githubusercontent.com/1534150/497079170-26b7dd4d-5aaf-4ba8-abe8-44b042842bcc.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUwOTUxOTksIm5iZiI6MTc3NTA5NDg5OSwicGF0aCI6Ii8xNTM0MTUwLzQ5NzA3OTE3MC0yNmI3ZGQ0ZC01YWFmLTRiYTgtYWJlOC00NGIwNDI4NDJiY2MucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDJUMDE1NDU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NGY2YWZhMzFiODJmNzViZmQ3MjQyY2FjNGM2MzFkNzE5OWZiYzg0MGM1MGI5NjY3NzVkMDU2ZmE1NmE4NjExNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.OMcFlpV08pYAG5hPp8JvFWxwtbLbFqIjui4kvXO9sME)](https://private-user-images.githubusercontent.com/1534150/497079170-26b7dd4d-5aaf-4ba8-abe8-44b042842bcc.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUwOTUxOTksIm5iZiI6MTc3NTA5NDg5OSwicGF0aCI6Ii8xNTM0MTUwLzQ5NzA3OTE3MC0yNmI3ZGQ0ZC01YWFmLTRiYTgtYWJlOC00NGIwNDI4NDJiY2MucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDQwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA0MDJUMDE1NDU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NGY2YWZhMzFiODJmNzViZmQ3MjQyY2FjNGM2MzFkNzE5OWZiYzg0MGM1MGI5NjY3NzVkMDU2ZmE1NmE4NjExNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.OMcFlpV08pYAG5hPp8JvFWxwtbLbFqIjui4kvXO9sME)Documentation &amp; guides
--------------------------

[](#documentation--guides)

- See [Wiki](https://github.com/digitoimistodude/dudestack/wiki)
- Currently we have only comprehensive written tutorial In English and for [Windows (WSL)](https://rolle.design/local-server-on-windows-10-for-wordpress-theme-development)

Table of contents
-----------------

[](#table-of-contents)

1. [Background](#background)
2. [How it's different, why should I use this?](#how-its-different-why-should-i-use-this)
3. [Features](#features)
4. [Requirements](#requirements)
5. [Installation](#installation)
6. [Documentation](#documentation)
    1. [Starting a new project with createproject bash script](#starting-a-new-project-with-createproject-bash-script)
    2. [What createproject.sh does](#what-createprojectsh-does)
    3. [What you most probably need to edit in every project](#what-you-most-probably-need-to-edit-in-every-project)
    4. [Getting started](#getting-started)
    5. [Paid or Premium plugins](#paid-or-premium-plugins)
        1. [Advanced Custom Fields Pro](#advanced-custom-fields-pro)
        2. [Object Cache Pro](#object-cache-pro)
        3. [Polylang Pro](#polylang-pro)
        4. [Relevanssi](#relevanssi)
    6. [WP-CLI alias](#wp-cli-alias)
    7. [SEO Plugin](#seo-plugin)
    8. [Issues](#issues)

#### Background

[](#background)

We're constantly developing our development workflow. Honestly, we've been through hundreds of articles, tools and scripts. Went with regular WordPress structure, different wp-configs and [Dandelion](https://github.com/scttnlsn/dandelion) for a long time, but realized in some point we have to get some sense to it all. Setting up things should not be the most time consuming task when starting a new project.

We love [Bedrock](https://github.com/roots/bedrock), which is a is a modern WordPress stack that helps you get started with the best development tools and project structure. Bedrock contains the tools we've been already using, but more. In fact, we are proud to say that most of this stack is based on [Bedrock](https://github.com/roots/bedrock).

Like bedrock, dudestack saves you hours when starting a new project.

#### How it's different, why should I use this?

[](#how-its-different-why-should-i-use-this)

Well, this is mainly a toolbox for a web design/development agency for a local Finnish WordPress-company, [Digitoimisto Dude Oy](https://www.dude.fi) as well as backup purposes and to show off how we roll. You should use this **only** if you really like how we do things.

Despite the fact we love most of Bedrock, we noticed there are some things we don't like.

- Stuff were originally in `app/` by default, then in `web/`. We prefer `content/`, like it was `wp-content` for a reason. It describes it better, since we do not want this to be too programming-oriented, but more front end developer -friendly (for developing WordPress themes and functions)
- Composer modifications, for installing more packages, like Finnish based language packs etc. that are not originally part of Bedrock
- Automation. I mean composer's `create-project` is awesome, but we need more. You still need to do stuff after `create-project` and our `createproject` -starting script is designed for automating the rest.
- Baked in local server environment settings for our [native macOS LEMP server](https://github.com/digitoimistodude/macos-lemp-setup)

Features
--------

[](#features)

- HTTPS support
- Designed for pure WordPress development
- Fast and easy templates for development and deployment
- Customizable bash script for creating new WordPress project automation
- Automatic Github repo initialization
- Automatic MySQL-database generation
- Automatic Project-related host settings for development server
- Cleaning default WordPress stuff with wp-cli
- [Capistrano 3](http://capistranorb.com/) deployment templates bundled in bin/createproject.sh
- [Composer](https://getcomposer.org/) to take care of WordPress installation and plugin dependencies and updates
- [Dotenv](https://github.com/vlucas/phpdotenv)-environments for development, staging and production
- Supports local LEMP ([macOS](https://github.com/digitoimistodude/macos-lemp-setup) / [Windows](https://github.com/digitoimistodude/windows-lemp-setup)) development environments

Requirements
------------

[](#requirements)

- [mkcert](https://github.com/FiloSottile/mkcert)
- [Composer](https://getcomposer.org/) v2
- Basic knowledge about bash scripting, deployment with capistrano, npm packages, bundle, composer etc.
- Local server environment [macos-lemp](https://github.com/digitoimistodude/macos-lemp-setup). Can possibly be configured for MAMP or even Docker (we have no experience or support for 3rd party environments).
- GitHub account
- Unix-based OS or Windows [WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10)
- Optional: Access to staging and production servers that supports sftp and git
- Projects located under $HOME/Projects
- Git
- PHP &gt;= 8.3
- Ruby &gt;= 2.6
- Perl

Installation
============

[](#installation)

1. Install prequisites, `xcode-select --install` and [homebrew](https://brew.sh/) with latest updates
2. Install latest [Composer](https://getcomposer.org/) and [mkcert](https://github.com/FiloSottile/mkcert)
3. Clone this repo to your ~/Projects directory:

```
mkdir -p $HOME/Projects && cd $HOME/Projects && git clone git@github.com:digitoimistodude/dudestack.git
```

4. Go to dudestack directory and run setup script:

```
cd $HOME/Projects/dudestack/bin && bash macos.sh
```

If you use WSL/Windows:

```
cd $HOME/Projects/dudestack/bin && bash wsl.sh
```

Documentation
=============

[](#documentation)

Starting a new project with createproject bash script
-----------------------------------------------------

[](#starting-a-new-project-with-createproject-bash-script)

Creating a new project has a lot of configs to do. We wanted to automate most of it by creating a bash script called `createproject.sh`. The script assumes:

- You are using staging server like customer.example.com and you store your customers' sites like customer.example.com/customerone. Your staging server user has proper permissions like making changes to /tmp
- You are using separate production server that may necessarily not have all the permissions like writing in /tmp dir
- You use [native macOS LEMP](https://github.com/digitoimistodude/macos-lemp-setup)
- Your repositories are stored in GitHub
- Your project hostname is project.test
- You are fine with gulp, npm and webpack
- WordPress dependencies are controlled by composer

### What createproject.sh does

[](#what-createprojectsh-does)

When you run `createproject` it looks like this:

[![createproject.sh](https://camo.githubusercontent.com/0275e1101b5ccb5f3fff7053101109aae0bac19f280a93e40b108887341e3b11/68747470733a2f2f7777772e647564652e66692f63726561746570726f6a6563742e706e67 "Screenshot")](https://camo.githubusercontent.com/0275e1101b5ccb5f3fff7053101109aae0bac19f280a93e40b108887341e3b11/68747470733a2f2f7777772e647564652e66692f63726561746570726f6a6563742e706e67)

1. First it runs `composer create-project` with dudestack settings
2. Installs our default WordPress plugins and updates them
3. Creates MySQL repository automatically with project name (assumes by default that you have [macos-lemp](https://github.com/digitoimistodude/macos-lemp-setup) installed)
4. Installs capistrano deployment tool
5. Generates default capistrano configs (config/deploy.rb, config/deploy/staging.rb, config/deploy/production.rb) with your GitHub project details and paths
6. Sets up WordPress configs (wp-config credentials to .env) and salts automatically
7. Installs WordPress under its own subdirectory /wp (thus, admin located in example.test/wp/wp-admin)
8. Sets up default admin user as not "admin" for security (extra users can be configured in bin/createproject.sh)
9. Removes default WordPress posts, themes and plugins and everything else not so useful
10. Activates default plugins, timezones, permalinks
11. Flushes rewrites, adds support for permalinks and webfonts
12. Sets up file permissions
13. Inits a GitHub repository
14. Creates a HTTPS certificate
15. Sets up a virtual host for development environment
16. Updates /etc/hosts file
17. Restarts development server

### What you most probably need to edit in every project

[](#what-you-most-probably-need-to-edit-in-every-project)

- After running `createproject` you should run newtheme.sh under [air-light](https://github.com/digitoimistodude/air-light)/bin. This will generate the WordPress theme with built-in gulp, stylelint, webpack, etc. for modern WordPress Theme development
- To release your project staging/production: Production server SSH-credentials and paths in config/deploy/production.rb because they are usually different in every project. If you have the same directory structure on your servers, you can edit bin/createproject.sh so you don't repeat yourself in every project.
- You will need gulp or grunt so if you are not using our starter theme [air-light](https://github.com/digitoimistodude/air-light), you'll need to set up your own build tools for modern WordPress theme development

**Please note:**

- Dudestack is only a starter package without ANY theme configs. We leave theme development up to you entirely. We have our own starter theme that can be used with dudestack, see [air-light](https://github.com/digitoimistodude/air-light).

Getting started
---------------

[](#getting-started)

1. Everything assumes your projects are in **~/Projects**. You should make sure that folder exists. You can also decide to use another folder, but then you need a lot of search&amp;replace and using this would be quite pointless.
2. Run [macos-lemp-stack](https://github.com/digitoimistodude/macos-lemp-setup#) (if you use other development environment like MAMP Pro server, you need to edit bin/createproject.sh accordingly. **We don't provide support for all environments**)
3. Edit `createproject.sh` and `composer.json` based on your own needs.

To start a new project, run `createproject` and have fun.

Paid or Premium plugins
-----------------------

[](#paid-or-premium-plugins)

Edit your `composer.json` and add these lines inside respository, separated by commas:

### Advanced Custom Fields Pro

[](#advanced-custom-fields-pro)

Follow [the official documentation (Install using Composer) under your account settings](https://www.advancedcustomfields.com/my-account/view-licenses/).

### Gravity Forms

[](#gravity-forms)

As per [gtap-dev/gravityforms-composer-installer](https://github.com/gtap-dev/gravityforms-composer-installer), add to "repositories" section (remember to update to the latest version from [here](https://docs.gravityforms.com/gravityforms-change-log/)):

```
{
  "type": "package",
  "package": {
    "name": "gravityforms/gravityforms",
    "version": "2.5.14.3",
    "type": "wordpress-plugin",
    "dist": {
      "type": "zip",
      "url": "https://www.gravityhelp.com/wp-content/plugins/gravitymanager/api.php?op=get_plugin&slug=gravityforms&key={%WP_PLUGIN_GF_KEY}"
    },
    "require": {
      "composer/installers": "^1.4",
      "gotoandplay/gravityforms-composer-installer": "^2.3"
    }
  }
},
```

Then to "requires":

```
    "gravityforms/gravityforms": "*",
```

### Object Cache Pro

[](#object-cache-pro)

You will need Redis and PHP Redis installed in order to install this package.

Add to "repositories":

```
{
  "type": "composer",
  "url": "https://objectcache.pro/repo/"
}
```

Then to "requires":

```
"rhubarbgroup/object-cache-pro": "^1.13.0"
```

### Relevanssi

[](#relevanssi)

Add to "repositories":

```
{
      "type": "package",
      "package": {
        "name": "relevanssi/relevanssi-premium",
        "version": "2.20.3",
        "type": "wordpress-plugin",
        "dist": {
          "type": "zip",
          "url": "https://www.relevanssi.com/update/get_version.php?api_key=xxx&version=2.20.3"
        }
      }
    },
```

Then to "requires":

```
    "relevanssi/relevanssi-premium": "2.20.3",
```

### Polylang Pro (and others that don't have a repo)

[](#polylang-pro-and-others-that-dont-have-a-repo)

Add to "repositories":

```
,
    {
      "type": "package",
      "package": {
        "name": "polylang/polylang-pro",
        "type": "wordpress-plugin",
        "version": "3.2.5",
        "dist": {
          "type": "zip",
          "url": "https://plugins.dude.fi/polylang-pro_3.2.5.zip"
        }
      }
    },
```

Then to "requires":

```
    "polylang/polylang-pro": "3.2.5",
```

In the similar manner you can add other paid plugins that don't have composer repository. We've covered with this almost every such plugin we use.

When getting the new zip, I use this function in my `~/.bashrc`:

```
function plugin() { scp -r $@ 'username@yoursite.com:~/path/to/plugins/'; }
```

So with simple ssh-pairing (passwordless login), I can upload a plugin by simple command: `plugin gravityforms_1.8.20.5.zip` and then just change version and `composer update`. DRY, you see.

WP-CLI alias
------------

[](#wp-cli-alias)

WP-Cli is included in dudestack per project via `composer.json` and won't work by default globally. You'll need this alias on your Mac or Linux `.bashrc` or `.bash_profile` file:

```
alias wp='./vendor/wp-cli/wp-cli/bin/wp'
```

Issues
------

[](#issues)

Feel free to post any issue or question if you have one.

###  Health Score

62

—

FairBetter than 99% of packages

Maintenance88

Actively maintained with recent releases

Popularity27

Limited adoption so far

Community22

Small or concentrated contributor base

Maturity94

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 68.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~44 days

Recently: every ~17 days

Total

75

Last Release

91d ago

Major Versions

1.8.5 → 2.0.02021-02-18

PHP version history (4 changes)1.7.5PHP &gt;=5.6

2.0.0PHP &gt;=7.2

2.3.6PHP &gt;=8.2

2.4.3PHP &gt;=8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/ac8f1091787825c059e30ad39ca1f58453f45c5ae0c585ba3be00904d045b8b2?d=identicon)[ronilaukkarinen](/maintainers/ronilaukkarinen)

---

Top Contributors

[![ronilaukkarinen](https://avatars.githubusercontent.com/u/1534150?v=4)](https://github.com/ronilaukkarinen "ronilaukkarinen (257 commits)")[![timiwahalahti](https://avatars.githubusercontent.com/u/415544?v=4)](https://github.com/timiwahalahti "timiwahalahti (106 commits)")[![raikasdev](https://avatars.githubusercontent.com/u/29684625?v=4)](https://github.com/raikasdev "raikasdev (4 commits)")[![divn](https://avatars.githubusercontent.com/u/6170626?v=4)](https://github.com/divn "divn (3 commits)")[![ottotiitinen](https://avatars.githubusercontent.com/u/149668721?v=4)](https://github.com/ottotiitinen "ottotiitinen (2 commits)")[![Niq1982](https://avatars.githubusercontent.com/u/16206361?v=4)](https://github.com/Niq1982 "Niq1982 (1 commits)")[![lukanja](https://avatars.githubusercontent.com/u/83268110?v=4)](https://github.com/lukanja "lukanja (1 commits)")[![EliasKau](https://avatars.githubusercontent.com/u/1349003?v=4)](https://github.com/EliasKau "EliasKau (1 commits)")[![villevuor](https://avatars.githubusercontent.com/u/1097009?v=4)](https://github.com/villevuor "villevuor (1 commits)")

---

Tags

bedrockcapistranocomposershellwordpresswordpress-boilerplatewordpress-developmentwordpress-frameworkwordpress-installationwordpress-pluginwp-clicomposerwordpressstackwprootsbedrock

### Embed Badge

![Health badge](/badges/ronilaukkarinen-wpstack-rolle/health.svg)

```
[![Health](https://phpackages.com/badges/ronilaukkarinen-wpstack-rolle/health.svg)](https://phpackages.com/packages/ronilaukkarinen-wpstack-rolle)
```

###  Alternatives

[ronilaukkarinen/dudestack

A modern WordPress stack

1131.2k](/packages/ronilaukkarinen-dudestack)[roots/bedrock

WordPress boilerplate with Composer, easier configuration, and an improved folder structure

6.5k441.8k2](/packages/roots-bedrock)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
