Getting started
Installation
There are three ways to install Timber. They all end the same way: you open your site in a browser and the setup wizard appears.
Option 1 — Upload to a server#
- Download the Timber zip from the Timber website and unzip it on your computer.
- Read the
README.mdat the top of the folder — it's a one-page summary of everything here. - Upload the contents to your web root (often
public_html,wwworhtdocs) with FTP/SFTP, your host's file manager, or by dragging the folder in your SFTP client. Make sure the hidden files come along, especially.htaccess. - Open your domain in a browser. You'll land on
/padmin/install. - Answer three questions (site title, admin email, password) and press Get Started with Timber. You're in.
Option 2 — Commit and deploy#
Timber is plain files, so it works with any Git-based workflow: GitHub Actions, GitLab CI, Netlify-style pushes to a PHP host, a git pull on a VPS, Forge, Ploi, Coolify, Dokku.
git init && git add . && git commit -m "Add Timber"
git remote add origin [email protected]:you/your-site.git
git push -u origin main
# on the server:
git clone [email protected]:you/your-site.git /var/www/your-siteThe included .gitignore already keeps your content out of Git (data/*.json, uploads/*). That's usually what you want — but it has one important consequence:
Option 3 — Run it on localhost#
You only need PHP 8.1+:
cd timber
php -S localhost:8430 router.phpOpen <http://localhost:8430>. router.php mirrors the .htaccess rules so everything behaves like production.
To allow bigger uploads (for example a large WordPress export), start it with:
php -d upload_max_filesize=64M -d post_max_size=72M -S localhost:8430 router.phpOn macOS, brew install php gets you PHP. On Windows, use the official zip from php.net or Laragon. On Linux, your package manager.
In a subfolder#
Timber works at example.com/blog/ as well as at a domain root — the folder is detected automatically. To force it, set the TIMBER_BASE_PATH environment variable.
What gets created#
On first run Timber writes JSON files into data/ (settings, menus, pages, posts, versions, forms…) and creates uploads/ content as you add media. Nothing else on disk changes. To start over, delete data/*.json (keep data/.htaccess) and reload.
Next#
- The setup wizard — what each question means.
- Your first hour — make the starter site yours.
- Deploying anywhere — Apache, nginx, CloudPanel and friends.