SatisPress Aggregation Mirror Demo & Request for Feedback.

I love using the trellis/bedrock/composer stack; it works very well for me. However, my one hiccup is storing Private Wordpress Themes/Plugins. SatisPress does a great job solving that, but the problem I continue to run into is that for the number of private plugins my company uses, 200+ (with all the little addon plugins for larger ecosystem plugins like crocoblock and random plugins for clients), we have to maintain several SatisPress sites (8 now).

If we were to put all those plugins into a single WordPress site, activate them, and have it watch for plugin updates, then the site grinds to a halt.

If we use multiple Satispress sites, we would have to add all the composer repos to each project. If there is ever a reason for changing a SatisPress composer authentication, then we have to go through and update the trellis vault vars for every client, and that’s time-consuming.

I wanted a way to aggregate all the plugins from the various SatisPress repos, so I built it. Check it out here: Your Digital Toolbox - WordPress · GitHub

It’s built on top of GitHub and has GitHub workflows to manage collecting updates from the various SatisPress sites,

The whole GitHub org is dedicated to just watching for plugin updates.
It uses GitHub pages to host a packages.json file with all the info the composer needs to locate each package/tag/version inside the org, and we use a read-only GitHub fine-grained access token with BASIC auth to authenticate trellis/composer to access all of the plugin packages.

I like this better because I only have to add a single composer repository to trellis, and I only have a single composer auth.json that gets added to the bedrock site. Additionally, everything is hosted on GitHub, which is battle-tested and fairly robust at staying available.

I am curious what people think of this concept. I have been using it for the last few months, and it works well. Most of the bugs have been worked out.

If people are interested, I could do a video on how to set the org up for a new agency.

8 Likes

Neat! What I do is I have a bunch of composer sites that I hand rolled myself.

I upload (private) WordPress plugins and activate auto-updates

I have a bunch of php scripts that check against a master json file of my private repos to see if a plugin is either

  1. new, which it auto-creates a new repo, adds a composer file and adds the plugin to the new repo, tags it, adds the git URL to my satis repository and rebuilds satis
  2. or an existing plugin at a new version,it pulls the latest version, updates the repo, tags it and pings satis to rebuild

it runs every 3-4 hours, so if I need a new plugin i add it to one of my private sites and it will be up at most 4 hours later, or I can just kick off the ci job to rebuild everything at any given moment

it’s clunky but it just works and works damn well…

This is interesting and a LOT more structured, would love to see it in action

3 Likes

I had the same issues with Satispress.

  • Too many plugins in one install (100+).
  • Some needed to be active to receive updates, some could be deactivated.
  • Some plugins were incompatible with other plugins, etc…

I created a hosted solution to manage these premium plugin updates. I have reverse-engineered A LOT of plugin update systems, so the app can request updates directly from the plugin vendors.

These premium plugins are installable with composer. You can create a token on a per-project basis and define what plugins can be installed with that particular token.

The app is currently in beta until more people have tested. I’m using it for all my bedrock-based website, and it works like a charm. I currently have 132 packages in my account. For each of these plugins I provided a “preset”, so you can easily add them as well. If your plugin is not in the list, you can contact me, and I will add them.

If anyone would like to use/test the app, you can send me a DM. As a thank-you for your testing and feedback, I can provide you with an exclusive coupon code.

2 Likes

Yeah it seems like satispress does work well for all of the plugins I have thrown at it.

I’m now tracking ~250 plugins and I have not done any reverse engineering. As long as satispress does not handle more than ~15-20 plugins in a single site it seems ok. This also lets incompatible plugins still be tracked if you just put them in different bedrock sites.

All of my satispress sites live on the same droplet as separate bedrock sites deployed with a single trellis repo.

I am pretty happy with it so far, but I’m always interested in how others are solving the same issue.

1 Like

@Mat_Gargano id be happy do answer any questions you have or walk you through the setup.

1 Like

Let’s set up a meeting to jump on a call and discuss approaches? What do you think?

1 Like