Docker
Tiger on your own machine in one command — the whole stack inside a container, with nothing installed on your computer but Docker itself. No PHP to set up, no database to install, no configuration file to fill in before you can look at anything.
You do not need to know anything about Docker to follow this. It is four steps.
Would rather click than type? Everything below can be done from the Docker Desktop window instead, without opening a terminal at all — see Without the terminal: Docker Desktop, further down this page.
Before you start
Install Docker Desktop from docker.com — it's free, and there's a version for Mac, Windows and Linux. Open it once after installing and leave it running. When its window shows a green Engine running indicator at the bottom, you're ready.
1. Open a terminal
- Mac — press
⌘ Space, typeTerminal, pressEnter. - Windows — press the Windows key, type
PowerShell, pressEnter. - Linux — your usual terminal.
A window opens with a blinking cursor. That's all it is: a place to type one line.
Docker Desktop also has one built in — the Terminal button at the bottom right of its window — if you'd rather not leave the app.
2. Paste in this command and press Enter
docker run -p 8080:80 webtigerscom/tiger
The first run downloads the image and installs Tiger, which takes a minute or two. You'll see progress scrolling past. Leave this window open — closing it stops the site.
3. Copy your sign-in details
When it's finished, the terminal prints a block like this:
Tiger is running — http://localhost:8080
Sign straight in (one-time link, valid ~2 minutes):
http://localhost:8080/auth/magic/id/eac16c76-.../t/4495d021...
Or sign in at http://localhost:8080/admin with:
admin@example.com
3aba6bd9f6f254043fae
Copy the long sign straight in link, paste it into your browser, and press Enter. You land in your new Tiger's Dashboard already signed in.
That link is good for about two minutes. If it has expired by the time you get to it, no problem — go to http://localhost:8080/admin and use the email address and password printed underneath it. Those don't expire. Copy the password somewhere safe now; it is shown only on this first run.
4. Look around
Your site is at http://localhost:8080 and its admin is at http://localhost:8080/admin. Open the first in one browser tab and the second in another, and you can watch a change in the admin appear on the site.
Need a fresh sign-in link later? In a second terminal window, find your container's name and ask it for one:
docker ps # the NAMES column, e.g. nice_torvalds
docker exec nice_torvalds tiger-login
Docker gives containers a random name like that unless you choose one with --name. The second
command prints a new one-time link.
Without the terminal: Docker Desktop
Docker Desktop can do all of it from its own window.
1. Get the image. Open Docker Desktop and type webtigerscom/tiger into the search box at the
top of the window. Select it in the results and press Pull. It downloads in the background;
when it's done it appears under Images. (The image is public, so no Docker account is needed.)
2. Run it. Go to Images, hover over webtigerscom/tiger and press Run. A panel opens —
expand Optional settings, because the one thing you must set is here:
- Host port — type
8080. Leave it blank and Docker picks a random port, and the sign-in links Tiger prints won't match the address you end up on. - Container name — optional. Something like
tigermakes it easier to find later.
Press Run. Docker switches to the container's view.
3. Get your sign-in details. You land on the Logs tab, where you can watch the install go by. After a minute or two the same block appears there as in the terminal:
Tiger is running — http://localhost:8080
Sign straight in (one-time link, valid ~2 minutes):
http://localhost:8080/auth/magic/id/eac16c76-.../t/4495d021...
Or sign in at http://localhost:8080/admin with:
admin@example.com
3aba6bd9f6f254043fae
Select the long link, copy it, paste it into your browser. You're in. (If more than two minutes have passed, use the email and password underneath instead — those don't expire. Copy the password somewhere safe; it's shown only on this first run.)
4. Open the site. Go to Containers in the left-hand menu. Your container is listed there —
with a random name like nice_torvalds if you didn't give it one. The Port(s) column shows
8080:80 as a link; click it and your new Tiger opens in a browser.
Later on: in the Actions column at the right of that row —
- the square stops the container; once stopped it becomes a triangle that starts it again. Both are safe, and your site is preserved either way.
- the trash deletes it. That is the
docker rmin the table above — the destructive one, with no undo.
Click the container's name to open it, and the Logs tab shows that sign-in block again any
time. The Exec tab opens a shell inside the container, where typing tiger-login prints a
fresh sign-in link.
Stopping and starting
Press Ctrl-C in the terminal window to stop the site. Your work is kept.
To bring it back, open Docker Desktop, go to Containers, and click the triangle in that
row's Actions column. From a terminal, docker start -a <name> does the same, using the name
shown in the Name column.
Your site lives inside the container. There is no separate folder on your computer holding it.
| Command | What happens |
|---|---|
docker stop / docker start |
Safe — your site, its database and uploads are preserved |
docker rm |
Destructive — all of it is deleted, and there is no undo |
If you're working with an AI coding assistant, it should ask you before running docker rm.
Changing the defaults
-p 8080:80 is what makes the site reachable at port 8080 on your machine. Docker publishes
nothing to the host without it, so without that flag the container would run and stay unreachable.
Any free port works — -p 3000:80 serves it at http://localhost:3000.
If you change the port, tell Tiger about it with TIGER_SITE_URL, so the links it prints and
builds match the address you're actually using.
| Variable | Default | |
|---|---|---|
TIGER_SITE_URL |
http://localhost:8080 |
set it to match if you publish a different port |
TIGER_ADMIN_EMAIL |
admin@example.com |
|
TIGER_ADMIN_PASSWORD |
generated | printed once on first run |
TIGER_SITE_NAME |
Tiger |
|
TIGER_LOCALE |
en |
es, pt, fr, de, hi |
docker run -p 3000:80 \
-e TIGER_SITE_URL=http://localhost:3000 \
-e TIGER_ADMIN_EMAIL=you@example.com \
-e TIGER_ADMIN_PASSWORD=choose-your-own \
webtigerscom/tiger
The image is also published to GitHub Container Registry as ghcr.io/webtigers/tiger.
Why this path
- Nothing to set up. No PHP version to match, no database to install.
- Disposable. Tear the container down and start clean; nothing is left behind on your machine.
- The same Tiger. It's the shipped framework installed the ordinary way, not a cut-down demo — so what you build here is what deploys.
When to pick something else
This image is for looking at Tiger and building against it locally. It ships without TLS and without a mail transport, so anything that sends email — signup verification, password reset — will not complete. To put a site in front of people, use TigerHosting, a TigerDen, your existing shared hosting, or Composer on a server you run. For how the deploy works wherever it lands, see Deployment.