Installing

Upload a ZIP, open a page, answer four questions.

Requirements

PHP 8.1 or newer, MySQL, MariaDB or SQLite, and Apache or nginx. Imagick for AVIF; without it Boxlet uses GD and serves WebP.

That's ordinary shared hosting. The installer checks all of it, and names anything that's missing in plain words.

The installer's first step: every requirement of the server checked and passed.

On cPanel

Or any host where your domain always serves from public_html.

  1. Unpack the ZIP and upload everything inside its boxlet/ folder straight into public_html.
  2. There's no step two. Boxlet's .htaccess serves the site from its public/ folder and keeps everything else out of reach. Addresses stay clean: /about, never /public/about.

If you can choose the folder

Upload everything inside boxlet/ to a folder of your choice, and point the domain at the public/ folder inside it. The rest of Boxlet then sits outside the web entirely.

Then, in both cases

  1. For MySQL, create an empty database. If cPanel makes it in latin1, that's fine: the installer switches an empty database to utf8mb4.
  2. Open https://your-site/install.php and follow the four steps.

Before it asks you for anything, the installer checks that nothing beside public/ can be opened in a browser, the settings file with your database password included.

Proving you own the server

The installer writes a token to storage/install-token.txt and asks you to paste it in. Open the file over FTP or in your host's file manager.

The installer asking for the token it wrote to a file on the server.

The primary language can't be changed later, so choose it with care.

The demo

If you like, the installer adds a demo site: The Printworks, an arts centre in an old printing works. It's the one at demo.boxletcms.org. Its pictures aren't covered by the Boxlet licence; each one's source and licence is in CREDITS.md.

Clearing the demo

  1. In Pages, tick every page and delete them.
  2. In Media, choose Unused, tick everything and delete it.

The demo's forms, footer words and site name are yours to change or remove.

When something is in the way

public_html already has a .htaccess file

Don't overwrite it: cPanel sometimes writes your PHP version into one. Put Boxlet's lines below the ones already there. They sit between # BEGIN Boxlet and # END Boxlet, and an update replaces only those.

The server ignores .htaccess

The installer notices, says so and stops, before anything is written. Ask your host to allow .htaccess overrides, or point the domain at public/.

The installer can't delete itself

It tells you. Delete public/install.php by hand, then log in at /admin.