<!-- Source: https://docs.squirro.com/en/latest/technical/neo/admin-guide/setup.html -->
# Setup

> **Warning**
>
> Project Neo is currently in [Technical Preview](../../../a-z/squirro-glossary.md#term-Technical-Preview). Features described in this section may change before general availability.

This page covers how to deploy Project Neo on an existing Squirro instance. Once deployed, Project Neo is accessible at `https://your-instance.example.com/neo/`. The existing Squirro interface continues to run unchanged at `https://your-instance.example.com/`.

[![Squirro Chat in Project Neo](https://s3.amazonaws.com/download.squirro.net/docs/neo/squirro-neo-chat-1778081058.jpg)](https://s3.amazonaws.com/download.squirro.net/docs/neo/squirro-neo-chat-1778081058.jpg)

## Prerequisites

- A Squirro installation managed by the `squirro-ansible` role.
- Squirro 3.15.5 or later.
- A configured SSO identity provider.

## SSO Configuration

Single sign-on (SSO) is the only supported authentication mode for Project Neo. The IdP must accept the AssertionConsumerService (ACS) callback URLs that Project Neo uses. Make sure the following URLs are allowed by the IdP for the Squirro instance hosting Project Neo, where `<instance>` is the host name of that instance:

- `https://<instance>/nextgen/sso/callback`

  The path that the webclient currently emits in its SAML requests. This path is retained as a legacy alias for backward compatibility.
- `https://<instance>/neo/sso/callback`

  The forward-looking path used by Project Neo. Allowing both URLs upfront avoids a second IdP change later.

## Deploy Project Neo

Open your existing Ansible playbook and add `squirro_webclientnode: True` to the `vars` block:

```yaml
- name: Quickstart Install Squirro with Project Neo
  hosts: all
  become: true
  vars:
    squirro_clusternode: True
    squirro_storagenode: True
    squirro_webclientnode: True
    yum_user: ...
    yum_password: ...
    squirro_channel: stable
    squirro_version: latest
    elasticsearch_discovery_type: single-node
  roles:
    - role: squirro-ansible
```

Then re-run the playbook:

```bash
ansible-playbook --connection=local --inventory 127.0.0.1, playbook.yml
```

Ansible applies only what changed. It does not reinstall the entire stack.

## Verify the Setup

After the playbook completes, open a browser and navigate to:

```text
https://your-instance.example.com/neo/
```

The Project Neo login screen should appear. The existing Squirro interface at `/` is not affected.

## Introducing Project Neo to Users

After deploying Project Neo, you can optionally display an announcement card in the classic Squirro Chat widget sidebar to help users discover the new interface. The card includes a brief description of Project Neo and an Open Preview button that opens `/neo/` in a new browser tab.

Users can dismiss the card by clicking the close button. Once dismissed, the card does not reappear unless the user clears their browser local storage. Clearing the browser cache alone does not reset the dismissal.

The card is turned off by default. A project administrator can turn it on per project by setting `frontend.sqgpt.project-neo-banner` to `true` under Setup Space → Settings → Project Configuration.
