Skip to content

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, type Terminal, press Enter.
  • Windows — press the Windows key, type PowerShell, press Enter.
  • 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 tiger makes 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 rm in 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.