Skip to content

Host requirements

Edward Baitsewe edited this page Nov 12, 2026 · 2 revisions

Host requirements

Slim Killer runs on ordinary shared hosting. The public website is plain files, so the host only needs PHP for the control panel and for fetching new builds. Run hammer doctor to check a host; this page explains what it checks and why.

Every requirement below comes from testing on a real shared host, not from guesswork.

Two PHPs, not one

On shared hosting the website and the command line often run different PHP versions with different settings. On the host we tested, websites ran PHP 8.4 while the plain php command was 8.3, and the command line had more functions disabled. Both are checked, separately.

Must have

What Why
PHP 8.4 or newer, for the website and for the command line Slim Killer's code uses PHP 8.4. On the command line, naming the full path of a PHP 8.4 binary is fine (for example /opt/alt/php84/usr/bin/php).
Extensions: curl, openssl, json, pdo_sqlite, zip, gd, mbstring, fileinfo Talking to GitHub, encryption, the control panel database, unpacking builds, resizing photos, text in any language, checking uploads.
These functions not disabled: curl_init, curl_exec, fopen, file_put_contents, rename, unlink, mkdir, rmdir, flock, random_bytes, hash_hmac Saving, fetching and switching builds.
Outgoing HTTPS to api.github.com and codeload.github.com Saves are committed through the GitHub API; builds are downloaded from codeload.
.htaccess rewrites (Apache mod_rewrite with AllowOverride, or LiteSpeed) The site is switched to a new build by changing one rewrite rule.
Options -Indexes allowed in .htaccess Keeps the folders of old builds from being listed.
A writable folder outside the web root The control panel's code, database and secrets never sit where a browser can reach them.

Accepted alternatives

If this is missing Slim Killer does this instead
sodium extension Uses openssl for encryption. (It was missing on every PHP version on the host we tested.)
intl extension Dates and numbers fall back to plain formats.
GD cannot write WebP Uploaded photos are saved as JPEG (larger files).
exec, shell_exec, system, passthru, proc_open, popen, symlink disabled Nothing. Slim Killer never runs shell commands or makes symlinks, so this is fine.
Default php command is too old Use the full path of a newer binary in cron and for hammer. The doctor finds it.

Recommended

Setting Recommended Why
memory_limit 128 MB or more Re-encoding large photos. Fetching a 30 MB build used under 25 MB.
max_execution_time 30 seconds or more Fetching and switching a real 30 MB, 217-file build took 2 to 3 seconds.
upload_max_filesize and post_max_size 10 MB or more Photos straight from a phone are often 5 to 10 MB.
Cron every minute Picks up new builds and runs background jobs. Set it in your host's control panel; the doctor gives the exact line.

Tested hosts

Host and plan Result Notes
Hostinger Premium (shared, LiteSpeed, CloudLinux) Works Website PHP 8.4. Command line defaults to PHP 8.3: use /opt/alt/php84/usr/bin/php. All PHP versions from 5.6 to 8.5 installed. No sodium. Cron every minute works. No Node.js, which Slim Killer does not need. LiteSpeed does not reliably show an ErrorDocument page behind rewrites, so Slim Killer answers missing pages with a small script instead. Hostinger's CDN (server: hcdn) sits in front and passes the 404 page through. A build goes live about 2 seconds after its webhook call.

Tried another host? Run php hammer doctor there and open an issue with the output.

Clone this wiki locally