sally docs
This page is rendered from the canonical GitHub docs. Edit on GitHub.

Sally install tutorial for Ubuntu / Debian

This is the simplest end-to-end path for installing Sally on a fresh Ubuntu or Debian server.

It is written to be easy to copy and paste.


What this guide does

It will:

  • install Node.js
  • run the Sally installer
  • let Sally install Docker automatically if needed
  • set up the web app, API, database, and HTTPS
  • prepare hosted Sally MCP usage

This guide assumes you want the easiest path:

  • managed-simple

Before you start

You need:

  • an Ubuntu or Debian server
  • a domain name already pointed to that server
  • root access or a user that can use sudo
  • your SMTP credentials if you want invite/reset emails to work immediately

Example domain used below:

  • projects.example.com

Replace that with your real domain.


1. Connect to the server

ssh root@your-server-ip

If you are not root, use a sudo-capable user instead.


2. Install Node.js

Run this exactly:

apt update && apt install -y curl ca-certificates gnupg && \
mkdir -p /etc/apt/keyrings && \
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" > /etc/apt/sources.list.d/nodesource.list && \
apt update && apt install -y nodejs

Check it:

node -v
npm -v
npx -v

3. Make sure your domain points to the server

Check the server IP:

curl -4 ifconfig.me

Check the domain:

dig +short projects.example.com

The domain must resolve to the server IP.

If it does not, stop here and fix DNS first.


4. Run the Sally installer

Use:

npx --yes create-sally@latest

5. What to select in the installer

When the installer asks questions, choose/fill these values.

Install mode

Choose:

  • managed-simple — sally_ sets up Docker + Postgres + HTTPS

Where should the installer write the instance files?

Press Enter to accept the default:

/opt/sally-instance

Domain for this sally_ instance

Enter your real domain, for example:

projects.example.com

The installer will check that the domain already points to this server.

Sally version

For normal use, enter:

latest

First workspace name

Example:

Operations

Or your real workspace name, such as:

  • AutomateThis
  • Kraftfabrik
  • Client Ops

Superadmin email

Enter the email of the first admin user.

Example:

you@example.com

Superadmin name

Example:

Alex Hammerschmied

ACME / TLS contact email

Usually use the same admin email.

Example:

you@example.com

Email setup choice

Recommended:

  • Configure email now (recommended)

If you skip this, Sally will install, but invites, password resets, and other emails will not work until you configure SMTP later.

SMTP settings

Enter your real SMTP credentials.

Example for Amazon SES on port 587:

SMTP host: email-smtp.eu-west-1.amazonaws.com
SMTP port: 587
SMTP username: YOUR_SMTP_USERNAME
SMTP password: YOUR_SMTP_PASSWORD
MAIL_FROM address: sally@yourdomain.com

The installer now writes the SMTP config in the format the Sally API mailer expects.


6. Wait for the installer to finish

The installer will automatically:

  • install Docker if needed
  • pull the latest Sally images
  • start Postgres
  • apply the database schema
  • bootstrap the first superadmin and workspace
  • start the web app + API + HTTPS
  • prepare hosted Sally MCP usage

At the end you will see a welcome block like this:

W E L C O M E  :::::::  T O  :::::::  S A L L Y
URL: https://projects.example.com
USER: you@example.com
PASSWORD: generated-password

Save that password.


7. Log in

Open your Sally URL in the browser:

https://projects.example.com

Log in with:

  • the superadmin email you entered
  • the generated password shown at the end of install

8. Test email delivery

After login:

  • create or invite a test team member
  • confirm that the invite email sends successfully

If invite creation works but email fails, check:

  • SMTP host
  • SMTP port
  • SMTP username
  • SMTP password
  • MAIL_FROM

9. Hosted MCP setup after install

Hosted MCP is now the primary path.

That means:

  • MCP runs inside Sally itself
  • users do not need SSH access to the server
  • users do not need to run a local run-mcp.sh script on the server

To use hosted MCP

  1. log into Sally
  2. open your profile / API keys area
  3. create a hosted MCP key
  4. copy the hosted MCP endpoint and the generated hosted MCP key
  5. paste them into your MCP client config

Hosted MCP endpoint

Your hosted MCP endpoint will be:

https://projects.example.com/mcp

Example hosted MCP client config

{
  "mcpServers": {
    "sally": {
      "url": "https://projects.example.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_HOSTED_MCP_KEY"
      }
    }
  }
}

Optional advanced restriction:

  • when creating a hosted MCP key in Sally, you can optionally restrict it to one workspace
  • that restriction is managed inside Sally itself, not by editing server files

Legacy / advanced local MCP

The local sally-mcp package still exists for advanced or legacy setups, but it is no longer the primary onboarding path.


10. Useful checks

Check containers

cd /opt/sally-instance
docker compose ps

Check API logs

cd /opt/sally-instance
docker compose logs --tail=100 api

Check web logs

cd /opt/sally-instance
docker compose logs --tail=100 web

Check Caddy logs

cd /opt/sally-instance
docker compose logs --tail=100 caddy

Check health endpoint

curl -I https://projects.example.com/api/health

11. Fast reinstall / cleanup

If you want to remove the current install and try again:

cd /opt/sally-instance && docker compose down -v
rm -rf /opt/sally-instance

12. Short version

If you already have Node installed and DNS is correct, the shortest path is:

npx --yes create-sally@latest

Then choose:

  • managed-simple
  • /opt/sally-instance
  • your domain
  • latest
  • your workspace name
  • your admin email/name
  • your SMTP settings

And wait for the welcome screen.