Self-hosted

Install Shifti on your own server

The Shifti packages are publicly available — pull and run them yourself with Docker, no account or source-code access needed. Teams of 3 or fewer employees are free forever, automatically — nothing to request. Want to try it with a bigger team first? Contact us to have your trial seat limit raised, and you'll get 7 days fully-featured before a license key is needed.

1
Get the compose file

One file, nothing else to copy over. On your server (Docker and Docker Compose installed):

mkdir -p /opt/shifti && cd /opt/shifti
curl -O https://shiftiapp.com/docker-compose.yml

Or just download it directly and copy it over yourself.

2
Start it up
docker compose up -d

No .env file needed to start. This pulls the published images, starts the app and its database together, applies the database setup, and creates the first Admin account automatically — nothing else to run.

3
Log in and set a real password

First boot creates one Admin account automatically:

Email: [email protected] (or username admin)
Password: adminadmin

Change this immediately after your first sign-in. Shifti forces a password change the moment you log in with it, but this default is the same on every fresh install, so don't leave it in place any longer than that first login.

From there, add your locations, positions, and the rest of your team from Settings — see Setting up your company below.

Configuring your hostname and port

Both are optional — Shifti runs out of the box at http://localhost:3000 with no .env file at all. To point it at your real domain or change the port, create a .env file next to your docker-compose.yml:

NEXTAUTH_URL=https://schedule.yourcompany.com
APP_PORT=3000
  • NEXTAUTH_URL — the public URL your team reaches Shifti at. Used for sign-in, links in emails, and Chat's real-time connection.
  • APP_PORT — the port on your server Shifti listens on (default 3000). Change this if something else on your server already uses that port.

Prefer not to add a separate .env file? You can edit docker-compose.yml directly in any text editor instead — under the app service, change NEXTAUTH_URL: ${NEXTAUTH_URL:-http://localhost:3000} to your own URL, and its ports: line, change "${APP_PORT:-3000}:3000" to your own port.

Apply changes with:

docker compose up -d

Setting up your company

Once you're logged in, everything lives under Settings — Locations, Positions, Employees, and the rest. For the full walkthrough of every tab, see Company settings and Employees & permissions in the Docs Admin Guide.

Installing your license key

3 or fewer employees? You don't need this — a free license was already issued automatically on first boot. This section is for teams of 4 or more.

There's no field in the app to type your key into — it's applied the same way as your hostname and port: add it to the same .env file next to your docker-compose.yml:

LICENSE_KEY=your-license-key-here

Or edit docker-compose.yml directly in any text editor instead — under the app service, change LICENSE_KEY: ${LICENSE_KEY:-} to LICENSE_KEY: your-license-key-here.

Then restart to apply it:

docker compose up -d

Once it's applied, see License & billing in the Docs for what Settings → License shows you.

Don't have a key yet? Get one on the Buy page.

Need more help?

Something not behaving as expected? Settings → Logs (for admins with the right permission) is a searchable audit trail of email, login, password, account, employee, settings, and schedule changes — worth a look before reaching out.

Still stuck? See Help for the FAQ and full usage guides, or email [email protected] directly.

Free for small teams, free trial for everyone else

On first boot, Shifti checks in automatically — teams of 3 or fewer employees are issued a free license on the spot, no signup, no credit card, nothing to enter. Want to evaluate it with more than 3 employees first? Contact us to have your trial seat limit raised, and you'll get the full feature set for 7 days with no license key needed. If that window passes without a valid key, the app shows a simple lock screen rather than losing anything: add a license key and restart, and you're back where you left off.

  • 3 or fewer employees? You're already done — nothing else to buy, ever
  • More than 3? Contact us to raise your trial seat limit before you buy
  • Ready to buy? What you get by contacting us is the license key — see pricing
  • Your data stays on your server the whole time — nothing moves when you add a key
Get a license key

Decide self-hosting isn't for you? Shifti Cloud is a hosted version — 14-day free trial, no credit card required.

See the Docs for how to actually use it day-to-day. More questions? See Help.