Install on shared hosting

Set the document root. Point the domain's document root at the public/ folder.

  1. Get a release zip. Download tidemark-x.y.z.zip from the releases page. Dependencies are bundled. Building it yourself? Run scripts/build-release.sh x.y.z from the source repository, which writes dist/tidemark-x.y.z.zip.
  2. Upload and unzip on your host with FTP or your control panel's file manager.
  3. Set the document root. Point the domain's document root at the public/ folder. If your host won't let you, leave the files in the web root as they are. The bundled root .htaccess forwards requests to public/ and blocks internal files.
  4. Open /install. The page checks the server, connects your database, runs the migrations and creates your administrator account.
  5. Add a site and paste its snippet into your site's <head>.

Keep the project folder out of the web root where you can:

Pointing the document root at public/ is the safest setup. It keeps .env, storage/ and your SQLite file out of reach of the web server entirely. The root .htaccess fallback blocks them on Apache; other servers need an equivalent rule.

Choosing a database#

Choice When to use it
SQLite Single site or a few, low to moderate traffic. No setup.
MySQL / MariaDB The default on most shared hosts. Create a database and user in your control panel, then enter them in the installer.
PostgreSQL If your host offers it.

After installing#

Other servers#

Any server that can run PHP 8.3 and rewrite unknown paths to public/index.php works. The front controller rules are in public/.htaccess; for Nginx send everything that is not a file to index.php.

Was this article helpful?
Last updated 10 Nov 2026
Powered by Tidemark Billing