Jump to content

Recommended Posts

Posted

Hi everyone,

First of all I had no idea, which category would fit best ...

I'd like to share a little tool I've been working on to make the initial setup of ProcessWire even faster, especially when working on remote servers without SSH access.

What is it? kickstart.php is a modern, single-file installer/loader for ProcessWire. Instead of uploading thousands of files via FTP, you just upload this one file and it handles the rest.

Key Features:

  • Version Selection: Choose between the master (stable) or dev branch directly from GitHub.

  • Smart Multi-Language: Built-in support for English, German, Spanish, and French (with automatic browser language detection).

  • Modern UI: Built with Tailwind CSS, AlpineJS, and smooth animations using Anime.js.

  • Pre-flight Checks: Automatically checks for PHP version requirements and prevents overwriting existing installations.

  • Automatic Cleanup: Removes the downloaded ZIP archive and temporary folders after extraction.

How to use it:

  1. Upload kickstart.php to your webroot.

  2. Open it in your browser.

  3. Choose your version and click install.

  4. Once finished, click the button to start the official ProcessWire installer.

I hope some of you find this useful for your workflow! Feedback and suggestions are always welcome.

Cheers, Markus

image.thumb.png.82118dc57b191ff6feb396cc7b297e6c.png

kickstart.php

Improved Version now available on GitHub: https://github.com/markusthomas/ProcessWireKickstart

  • Like 15
Posted

I tried this and it stated that the directory is not empty - which is true because there is a folder for DDEV (.ddev).

Maybe add a note that says something like: "If you are running this in a DDEV environment, contine as the .ddev folder stays untouched." Or something similar.

At least this is what happened when I continued. Overall pretty nice experience.

All that's missing now is a curl/wget command or a public URL on Github we can just copy and paste and go from there.

I like it!

 

Oh... and maybe the script should remove the kickstart.php as well.

Posted

I made a similar file a long time ago, which I upload to the server. Then I select the archive I need, and it download and unpacks it automatically.

Important: you can prepare a ready-made archive with ready-made profiles (skeleton) to make it easier to get started.

pw.php

Posted
11 hours ago, wbmnfktr said:

I tried this and it stated that the directory is not empty - which is true because there is a folder for DDEV (.ddev).

Maybe add a note that says something like: "If you are running this in a DDEV environment, contine as the .ddev folder stays untouched." Or something similar.

@wbmnfktr Thanks, that is a good point. Now i show a filelist and updated the text:

image.thumb.png.432633a71496b8c1a1235890b7072321.png

11 hours ago, wbmnfktr said:

Oh... and maybe the script should remove the kickstart.php as well.

Is now implemented, thanks for this.

 

5 hours ago, maximus said:

Important: you can prepare a ready-made archive with ready-made profiles (skeleton) to make it easier to get started.

That's a great suggestion! I actually had the same idea, but I haven't found the time to implement it yet. It's definitely on my to-do list for a future update!

 

11 hours ago, wbmnfktr said:

All that's missing now is a curl/wget command or a public URL on Github we can just copy and paste and go from there.

I made it available on GitHub: https://github.com/markusthomas/ProcessWireKickstart

  • Like 3
Posted
12 hours ago, markus-th said:

All that's missing now is a curl/wget command or a public URL on Github we can just copy and paste and go from there.

Send a PR with a fresh README.md that contains what I was looking for.

  • Like 1
  • Thanks 1
Posted
2 hours ago, olafgleba said:

What it would make it even more versatile is what @maximus mentioned: Being able to choose not only one of the official branches but a premade installation profile (including the database) as base of the installation. 

Thanks for the feedback!

What I can imagine for a future update is adding a step where you can upload or provide a URL for a custom ZIP file (containing a site profile). This way, you could use 'skeletons' from the modules directory or your own private boilerplate.

I'll keep this in mind for the next iteration!

  • Like 1
Posted

@olafgleba @maximus

I just pushed an update to kickstart.php. It is now possible to install any arbitrary Site Profile!

You can either provide a URL to a ZIP file or upload a local ZIP file directly within the tool. The script extracts the profile to the correct location, allowing the standard ProcessWire installer to pick it up seamlessly.

Give it a try and let me know if it works for your custom skeletons.

image.png.ce18a099b0192cf4c344268bf1c6234b.png

  • Like 6
Posted

Hi @markus-th,

brilliant! Thanks for that.

Want to give you a first rough feedback: All works flawlessly,- as long as i use official site profiles. 

Using my own site profiles still causes trouble though. But after evaluation it probably has nothing to do with your kickstart.php, but the combination of PW version, database version, PHP Extensions  a.s.o. of my current environment (mysql 5.7.44, PHP 8.4.12). 

1. If i use the upload option for a site-profile.zip, it fails and giving me an error. When i use the URL option, all is fine, at least at this point.

Bildschirmfoto2026-01-21um11_22_54.thumb.png.96f9952db1b8c0e2d17bf7092def1b92.pngBildschirmfoto2026-01-21um09_30_18.thumb.png.ea2e6bfe5611abf11ab5053efa44303b.png

 

2. In the next step, strangely some tables (like `pages`, `modules`) are not created, as the install.php of the site-profile is executed. Although the file includes the creation instructions.

 Bildschirmfoto2026-01-21um09_36_03.thumb.png.dfd24ffda13995ead05e16bb470af3b3.png

 

I will update this post, when i get this running. Maybe there is something to consider what might help others. 

Posted
6 hours ago, olafgleba said:

If i use the upload option for a site-profile.zip, it fails and giving me an error.

I tested the upload function with several site profiles (up to approx. 30MB). Maybe your profile is very large? 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...