Setup Guide
Complete the 10-step Setup Wizard after installing FlowSquad — covering every field, every pre-requisite, and every configuration option from SSL/TLS to license activation.
ℹ️
This guide follows installation
You must have FlowSquad installed and running before starting this guide. If you have not yet installed FlowSquad, start with the
Installation Guide. Once the application starts and you open it in a browser for the first time, the Setup Wizard launches automatically.
Before You Begin
Gather the following credentials and settings before starting the wizard. Having everything ready avoids partial completions and reduces the chance of needing to re-run individual steps.
| Required For | What to Have Ready | Where to Get It |
| Step 1 — Infrastructure & Database | SSL/TLS certificate + private key paths (if using direct HTTPS). PostgreSQL or MySQL hostname, port, database name, username, password | Your CA-issued certificate files; your DBA or cloud database service console |
| Step 2 — Vector DB | ChromaDB (nothing needed — runs locally) | Nothing required — ChromaDB is bundled |
| Step 3 — LLM Provider | API key for at least one provider: OpenAI, Anthropic, GitHub Models, or Ollama URL | platform.openai.com / console.anthropic.com / github.com/marketplace?type=models |
| Step 4 — Authentication | LDAP: server URL, bind DN, bind password, user search base. SAML: IdP SSO URL, Entity ID, X.509 certificate. OAuth2: Client ID + Secret from provider's developer console | Your IT / identity team; IdP admin console |
| Step 5 — Source Control | Personal access token or App Password for your Git provider (GitHub, GitLab, Bitbucket Cloud, Bitbucket Server, Azure DevOps, or Gitea) | github.com/settings/tokens • GitLab: User Settings → Access Tokens • Bitbucket: Personal Settings → App passwords |
| Step 6 — Collaboration | Jira: URL + email + API token. Confluence: URL + email + API token | id.atlassian.com -> API tokens |
| Step 7 — Admin Users | Full name, email, and temporary password for each initial admin | Decide before starting |
| Step 8 — License | .lic license file | Provided by your FlowSquad account manager or partner portal |
| Step 9 — System Settings | SMTP hostname, port, credentials (required for MFA email OTP and password resets) | Your email provider or IT team; audit retention period decision |
⚠️
Only Global Admins can run the wizard
The Setup Wizard opens automatically on first launch and can be re-opened at any time via the ⚙️ Setup button in the top navigation bar (visible to admins only). Only the initial administrator (created in Step 7) or a subsequent Global Admin can access it. Changes made in the wizard take effect immediately.
Step 1 — Infrastructure & Database
Step 1 covers two independent sub-sections: SSL/TLS Configuration and Database Configuration. Both can be configured in either order.
SSL/TLS Configuration (Optional — Direct HTTPS)
ℹ️
Only needed for direct HTTPS (Model B)
If you are using a
reverse proxy (nginx, IIS, or a cloud load balancer) to terminate TLS in front of FlowSquad, you do
not configure SSL here — TLS is handled at the proxy layer and FlowSquad runs plain HTTP internally. Configure this section only if FlowSquad must terminate TLS directly (e.g. a standalone Windows server with no reverse proxy). See the
Installation Guide — Deployment Models for guidance on choosing the right model.
| Field | Description | Example |
| Enable HTTPS/SSL | Toggle to enable direct TLS termination inside FlowSquad. | Check only for Model B deployments |
| SSL Certificate Path | Full path to the PEM-format certificate file (.crt, .pem, or .cer). Must include the full chain (certificate + intermediates). | /var/lib/flowsquad/ssl/flowsquad.crt |
| SSL Private Key Path | Full path to the PEM-format private key file (.key or .pem). Must be readable by the FlowSquad process and not readable by other users. | /var/lib/flowsquad/ssl/flowsquad.key |
| CA Bundle Path | Optional. Full path to the intermediate CA bundle if provided separately by your CA. If the certificate file already includes the full chain, leave this blank. | /var/lib/flowsquad/ssl/ca-bundle.crt |
Click Test SSL Configuration to validate the certificate and key can be loaded, then click Save SSL Configuration. FlowSquad will restart on port 443 after the full wizard completes.
⚠️
Production certificates only
Self-signed certificates must not be used in production. Use a certificate issued by your enterprise CA or a publicly trusted CA (Let's Encrypt, DigiCert, etc.). Self-signed certificates may be used for local development only.
Database Configuration
FlowSquad requires an external PostgreSQL or MySQL database to store all product data, requirements, artifacts, and users. A small SQLite configuration database (flowsquad_engine.db) is created automatically alongside the application — you do not configure this here.
Pre-requisites
- A running PostgreSQL 14+ or MySQL 8.0+ server accessible from the FlowSquad host
- A dedicated database and a dedicated user account created in advance (recommended) — or FlowSquad can create the database for you if the user has CREATE DATABASE privileges
- The firewall allows TCP on port 5432 (PostgreSQL) or 3306 (MySQL) from the FlowSquad server IP
Creating the Database User (PostgreSQL — recommended)
sudo -u postgres psql
CREATE DATABASE flowsquad;
CREATE USER flowsquad_app WITH PASSWORD 'replace-with-strong-password';
GRANT CONNECT ON DATABASE flowsquad TO flowsquad_app;
\c flowsquad
GRANT USAGE, CREATE ON SCHEMA public TO flowsquad_app;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO flowsquad_app;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO flowsquad_app;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO flowsquad_app;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO flowsquad_app;
\q
Creating the Database User (MySQL)
sudo mysql -u root
CREATE DATABASE flowsquad CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'flowsquad_app'@'%' IDENTIFIED BY 'replace-with-strong-password';
GRANT ALL PRIVILEGES ON flowsquad.* TO 'flowsquad_app'@'%';
FLUSH PRIVILEGES;
EXIT;
Fields in the Wizard
| Field | Description | Example |
| Database Type | Choose PostgreSQL (recommended for production) or MySQL/MariaDB | PostgreSQL |
| Host | Hostname or IP of your database server. Use localhost if on the same machine, host.docker.internal if FlowSquad runs in Docker on Mac/Windows | db.internal.company.com |
| Port | Default 5432 for PostgreSQL, 3306 for MySQL | 5432 |
| Database Name | The name of the database you created above | flowsquad |
| Username | The dedicated application database user | flowsquad_app |
| Password | The password for the database user. Stored encrypted in the configuration database. | — |
Click Test Connection to validate the credentials. FlowSquad applies all required database schema migrations automatically if the connection test passes. Click Save & Continue.
💡
Test Connection must pass before you can proceed
The wizard enforces a successful connection test before allowing you to continue to Step 2. If the test fails, check that the database service is running, the firewall permits the connection, and the credentials are correct.
Step 2 — Vector Database
The vector database stores the semantic embeddings of your codebase and documents. It powers all AI retrieval — Analyze, AskProduct, Quality Score, and Security Scan all query this store.
Options
| Option | Description | Best For |
| ChromaDB (default) |
Runs locally inside FlowSquad with zero additional setup. Persists data to the FlowSquad data directory. |
All deployments, including air-gapped. The recommended default choice. |
Fields — ChromaDB
No fields required. Select ChromaDB (Local) and click Save & Continue.
Step 3 — LLM Provider
FlowSquad requires at least one AI (LLM) provider to generate requirements, epics, stories, designs, and test cases. You must configure the global default here; per-product overrides can be set later from the Admin Panel.
Supported Providers
| Provider | Models Available | Pre-requisite | Notes |
| OpenAI | GPT-4o, GPT-4o-mini, GPT-4-turbo, GPT-4, GPT-3.5-turbo | OpenAI account with billing enabled | Most widely used. GPT-4o-mini is recommended for cost-efficiency. |
| Anthropic Claude | Claude 3.5 Sonnet, Claude 3 Opus, Claude 3 Sonnet, Claude 3 Haiku | Anthropic account with API access | Excellent for long-context reasoning and design generation. |
| GitHub Models | GPT-4o, GPT-4o-mini, GPT-4-turbo | GitHub account with Models marketplace access | Free tier: 15 RPM / 150 RPD. Suitable for low-volume or trial use. |
| Ollama (Enterprise) | Llama 3, Mistral, Code Llama, and any locally pulled model | Ollama server running locally or on a reachable host | Fully offline — suitable for air-gapped deployments. Enterprise tier only. |
Fields — OpenAI
| Field | Description |
| API Key | Starts with sk-.... Obtain from platform.openai.com -> API keys. Stored encrypted in the configuration database. |
| Default Model | Select the model to use for all operations unless overridden per product. GPT-4o-mini is recommended for cost efficiency; GPT-4o for highest quality. |
Fields — GitHub Models
| Field | Description |
| Token | A fine-grained Personal Access Token (starts with github_pat_). Create at github.com/settings/personal-access-tokens/new → under Permissions expand Copilot Request and set to Read-only. No repository access is needed. Classic PATs are not supported by this endpoint. |
| Text Model | Select from the models returned after a successful Test Connection (e.g. GPT-4o, GPT-4o-mini, Llama 3.1). |
| Enrollment required | Your GitHub account must be enrolled in the GitHub Models marketplace (free). Enterprise-managed user (EMU) accounts cannot access GitHub Models — use a personal GitHub account. |
Fields — Anthropic Claude
| Field | Description |
| API Key | Starts with sk-ant-.... Obtain from console.anthropic.com -> API Keys. |
| Default Model | Claude 3.5 Sonnet recommended for best quality/cost balance. |
Fields — Ollama
| Field | Description |
| Ollama URL | Base URL of your Ollama instance. Default: http://localhost:11434. Must be reachable from the FlowSquad server. |
| Model | Auto-detected from the Ollama server. Select from the available pulled models. |
Click Test Connection to verify the API key is valid and the provider is reachable. Click Save & Continue.
Step 4 — Authentication
Choose how users will sign in to FlowSquad. Multiple authentication methods can be enabled simultaneously — for example, Local Accounts (always on) plus LDAP for corporate users, plus SAML for executive accounts. Each method is independently configured and tested.
Local Accounts (Always Active)
Local authentication is always enabled and cannot be disabled. It provides the initial admin account and is the fallback if SSO is unavailable. Passwords are stored using bcrypt (12 rounds) — never in plain text.
- Minimum password length is configurable (default: 8 characters)
- Password complexity rules are configurable in Admin Panel -> Settings -> Security after setup
- No external dependencies
LDAP / Active Directory
Pre-requisites: A dedicated LDAP service account with read-only directory access. The FlowSquad server must be able to reach the LDAP server on port 389 (LDAP) or port 636 (LDAPS).
| Field | Description | Example |
| LDAP Server URL | Full URL including protocol and port. Use ldaps:// for encrypted connections. | ldaps://dc.company.com:636 |
| Bind DN | Distinguished Name of the service account used to search the directory. | CN=svc-flowsquad,OU=ServiceAccounts,DC=company,DC=com |
| Bind Password | Password for the service account. Stored encrypted. | — |
| User Search Base | The LDAP subtree to search for user objects. Broader base = more users found. | OU=Users,DC=company,DC=com |
| User Search Filter | LDAP filter to locate a specific user. {username} is replaced with the login name at runtime. | (sAMAccountName={username}) |
| Username Attribute | The LDAP attribute containing the user's login name. | sAMAccountName (Active Directory) / uid (OpenLDAP) |
| Email Attribute | The attribute containing the user's email address. | mail |
| Group Search Base | Required for group-to-role mapping. The subtree containing group objects. | OU=Groups,DC=company,DC=com |
| Group Member Attribute | Attribute on the user object listing their group memberships. | memberOf |
Group-to-Role Mapping
Map AD/LDAP groups to FlowSquad roles. Users in the mapped groups automatically receive the corresponding role on every login.
CN=FlowSquad-Admins,OU=Groups,DC=company,DC=com -> Global Admin
CN=FlowSquad-ProdAdmins,OU=Groups,DC=company,DC=com -> Product Admin
CN=FlowSquad-Users,OU=Groups,DC=company,DC=com -> Regular User
SAML 2.0 SSO
Pre-requisites: You need IdP metadata (SSO URL and X.509 certificate) from your identity provider — Keycloak, Okta, Azure AD, OneLogin, ADFS, Google Workspace, or any standard SAML 2.0 IdP.
There are three fields to fill in. Everything else is auto-generated.
| Field | Description | Where to Find |
| Service Provider Entity ID | The public URL of this FlowSquad server ending in /saml/metadata. Register this exact value as the Client ID in your IdP. | You enter this — use the URL users actually access FlowSquad from |
| IdP SSO URL | The endpoint to which FlowSquad sends SAML authentication requests. | IdP metadata — SingleSignOnService Location attribute. For Keycloak: Realm Settings → Keys → Endpoints → SAML 2.0 Identity Provider Metadata |
| IdP x509 Certificate | The signing certificate from your IdP (base64, no PEM headers). Used to verify SAML assertion signatures. | For Keycloak: Realm Settings → Keys → RS256 row → “Certificate” button. Or copy <ds:X509Certificate> value from IdP metadata XML. |
| Designated Global Admins | Optional. Comma-separated email addresses automatically promoted to Global Admin on first SAML login. Must be email addresses — FlowSquad uses the IdP email attribute as the user identifier. | Decide before configuring |
The SP fields (SP Entity ID, ACS URL /saml/callback, Single Logout URL /saml/logout) are auto-generated from the Entity ID you enter and displayed as read-only values to copy into your IdP. There is no separate “Attribute Mapping” section — FlowSquad automatically reads the email SAML attribute. For a full Keycloak SAML walkthrough, see the Reference Guide — Keycloak SAML.
OAuth2 Social / Enterprise Login
Pre-requisites: An OAuth2 application registered in your provider's developer console with the correct redirect URI.
The redirect URI to register in each provider's console is:
https://flowsquad.yourcompany.com/oauth2/<provider>/callback
# Examples:
https://flowsquad.yourcompany.com/oauth2/github/callback
https://flowsquad.yourcompany.com/oauth2/google/callback
https://flowsquad.yourcompany.com/oauth2/microsoft/callback
https://flowsquad.yourcompany.com/oauth2/okta/callback
https://flowsquad.yourcompany.com/oauth2/keycloak/callback
https://flowsquad.yourcompany.com/oauth2/custom/callback
| Provider | Where to Create the App | Required Fields |
| GitHub | Settings → Developer Settings → OAuth Apps → New OAuth App | Client ID, Client Secret |
| Google | console.cloud.google.com → APIs → Credentials → OAuth 2.0 Client ID | Client ID, Client Secret |
| Microsoft (Azure AD) | portal.azure.com → App registrations → New registration | Application (Client) ID, Client Secret |
| Okta | Okta Admin → Applications → Create App Integration → OIDC / OAuth2 | Client ID, Client Secret |
| Keycloak | Keycloak Admin → Clients → Create client (type: OpenID Connect) → enable Client Authentication → Credentials tab | Server URL, Realm, Client ID, Client Secret |
| Custom Provider | Any standards-compliant OAuth2 / OIDC provider. Supply Authorization URL, Token URL, User Info URL, and scopes. | Client ID, Client Secret, endpoint URLs |
💡
Test each method before saving
The wizard provides a Test Connection or Test SAML Login button for each authentication method. Always test before clicking Save — a misconfigured auth provider can lock users out.
Multi-Factor Authentication (MFA)
MFA is configured in Setup Wizard Step 4. When enabled, users can enrol MFA from the 🔑 MFA button in the navigation bar. Enforcement policies can make MFA mandatory for all users or admins only.
MFA Methods
| Method | Description | Pre-requisite |
| TOTP (Authenticator App) | Time-based one-time password compatible with Google Authenticator, Microsoft Authenticator, Authy, and any RFC 6238 app. Recommended — works offline. | None — no external service required |
| Email OTP | A one-time code sent to the user's registered email address on each login. | SMTP configured (Setup Wizard step or Admin Panel → Settings → Email) |
| SMS OTP | A one-time code sent by SMS. Enterprise deployments with an SMS gateway configured. | SMS gateway credentials entered in Settings |
Enforcement Policies
| Policy | Effect |
| Require MFA for Global Admins | Forces all Global Administrator accounts to enrol MFA on next login. Recommended for all production deployments. |
| Require MFA for All Users | Forces every user account to enrol MFA on next login. Enables organisation-wide MFA compliance. |
💡
MFA enrolment flow
After MFA is enabled and an enforcement policy is set, users are prompted to enrol on their next login. They can also self-enrol at any time via the navbar 🔑 MFA button → Set up MFA. Backup codes are generated at enrolment time and should be stored securely.
Step 5 — Source Control
Connect FlowSquad to your source control provider to enable direct codebase loading via Git URL in the Analyze tab. This step is optional — you can also load codebases via ZIP file or local path without any configuration here.
Pre-requisites
- A personal access token (PAT) or service account token with read-only repository access
- The token must be authorised for your organisation if SAML SSO is enforced on GitHub
| Provider | Token Type | Required Scope / Permission | Where to Create |
| GitHub Cloud / Enterprise | Personal Access Token (classic or fine-grained) | repo (private repos) or public_repo | github.com → Settings → Developer settings → Personal access tokens |
| GitLab Cloud / Self-hosted | Personal Access Token | read_repository | GitLab → User Settings → Access Tokens |
| Bitbucket Cloud | App Password (not account password) | Repositories: Read | bitbucket.org → Personal Settings → App passwords |
| Bitbucket Server / Data Center | HTTP Basic or project PAT | Repository read access | Bitbucket Server → Manage account → Personal access tokens |
| Azure DevOps | Personal Access Token | Code: Read | dev.azure.com → User Settings → Personal access tokens |
| Gitea / Forgejo | API Token | Repository read access | Gitea → Settings → Applications → Access tokens |
Enter the token and click Test Connection. FlowSquad attempts to list repositories accessible to the token to confirm it is valid. Click Save & Continue (or Skip if not configuring source control now).
Step 6 — Collaboration Tools
Connect FlowSquad to Jira and Confluence to enable pushing generated artifacts (Epics, Stories, Tasks, Designs) directly to your project management and documentation tools. Both integrations are optional and can be configured or updated later via Admin Panel -> Settings.
Jira Setup
Pre-requisites: A Jira account (Cloud or Server/Data Center). For Jira Cloud, you need an API token (not your account password). For Jira Server, you use your username and password.
| Field | Description | Example |
| Jira Type | Select Jira Cloud or Jira Server/Data Center. This changes the authentication method used. | Jira Cloud |
| Jira URL | The base URL of your Jira instance. | https://yourcompany.atlassian.net |
| Email / Username | Cloud: your Atlassian email. Server: your Jira username. | john.doe@company.com |
| API Token / Password | Cloud: API token from id.atlassian.com -> API tokens. Server: your Jira password. | — |
| Default Project Key | Optional. The Jira project key where artifacts are pushed by default. Can be overridden per product. | ENG |
Confluence Setup
Pre-requisites: A Confluence account with create-page permissions in your target space.
| Field | Description | Example |
| Confluence URL | For Confluence Cloud, include the /wiki path. | https://yourcompany.atlassian.net/wiki |
| Email / Username | Your Atlassian email (Cloud) or Confluence username (Server). | john.doe@company.com |
| API Token / Password | Same API token as Jira if using Atlassian Cloud (the token works for both). | — |
| Default Space Key | Optional. The Confluence space key where design documents are published by default. | ENG |
⚠️
Save Confluence settings before testing
Always click Save before clicking Test Connection for Confluence. If you test without saving, the Confluence URL may show as blank in the Analyze tab even if testing appeared to succeed.
Step 7 — Create Admin Users
Create the initial administrator account(s). Accounts created here receive the Global Administrator role, which grants unrestricted access to all products, all user management functions, and all system settings.
Fields
| Field | Description | Requirements |
| Full Name | Display name shown in the UI and audit logs. | Required |
| Email Address | Used for login and system notifications. Must be unique. | Required, valid email format |
| Password | Initial password for local authentication. The admin should change this on first login. | Minimum 12 characters; mix of uppercase, lowercase, numbers, and symbols recommended |
You can create multiple admins in this step by clicking + Add Another Admin. At least one admin account is required to proceed.
⚠️
Global Admin accounts are powerful
Limit Global Admin accounts to 2-3 trusted individuals. The system prevents the last remaining Global Admin from being demoted or deleted — this is a safety measure to prevent lockout. Additional admins can be created later from Admin Panel -> User Management.
Step 8 — License Activation
Upload your FlowSquad Enterprise license file (.lic). License validation is performed locally — no internet access is required.
Pre-requisites
- A valid
.lic license file from your FlowSquad account manager or the partner portal
- For Docker or Kubernetes deployments: the
FLOWSQUAD_CLUSTER_ID environment variable must match the ID used when the license was generated
- For Linux bare-metal or Windows:
/etc/machine-id (Linux) or the Windows machine GUID is used automatically
Uploading the License
- Click Upload License File and select your
.lic file.
- FlowSquad validates the RSA-4096 signature, expiration date, and machine ID binding.
- If valid, license details are displayed: license type, company name, maximum products, and validity period.
- Click Activate & Continue.
ℹ️
Need a license?
FlowSquad ships with a bundled evaluation license (1 product, 30 days, full feature access) that activates automatically — no action needed to start evaluating. Contact
support@flowsquad.ai to obtain an enterprise license for production use.
Step 9 — System Settings
Step 9 configures system-level services. Both sub-sections are optional but Email (SMTP) is strongly recommended — it is required for MFA email OTP, password reset emails, and audit alert notifications.
Email Server (SMTP)
| Field | Description | Example |
| Enable Email Server | Toggle to enable outbound email. Must be on for MFA email OTP and password resets to work. | Recommended: ON |
| SMTP Host | Hostname of your SMTP server. | smtp.office365.com, smtp.gmail.com, smtp.sendgrid.net |
| SMTP Port | 587 for STARTTLS (recommended), 465 for SSL/TLS, 25 for unauthenticated relay. | 587 |
| Security | STARTTLS (recommended) upgrades the connection after EHLO. SSL/TLS uses implicit TLS from the start. None uses plain-text with auto-upgrade if the server supports it. | STARTTLS |
| SMTP Authentication | Enable if your SMTP server requires a username and password. | ON for most cloud providers |
| SMTP Username | Your SMTP account email or username. | noreply@company.com |
| SMTP Password | SMTP account password or app password. Stored encrypted. For Gmail, generate an App Password at myaccount.google.com → Security. | — |
| From Email Address | The “From” address shown on all system emails. | noreply@company.com |
| From Name | Display name on outbound emails. | FlowSquad Notifications |
Click Send Test Email to verify the SMTP configuration, then click Save Configuration.
Audit Logging
Audit logging is always enabled and cannot be disabled — it is a compliance requirement. You can configure retention and alert behaviour:
| Field | Description | Default |
| Retention Period (Days) | How long audit log entries are kept. Minimum 30 days. | 365 days |
| Failed Login Alert Threshold | Show a warning in the Admin Panel after N consecutive failed login attempts for the same account. | 5 |
| Allow CSV Export | Permits Global Admins to download audit logs as a CSV file from Admin Panel → Audit Logs. | ON |
| Alert on Privilege Escalation | Show an Admin Panel alert when any user’s role is changed. | ON |
| Alert on User Deletion | Show an Admin Panel alert when a user account is deleted. | ON |
| Enable Email Alerts | Send email notifications for critical audit events (privilege escalation, account deletion). Requires SMTP to be configured above. | OFF (requires SMTP) |
Step 10 — Complete Setup
The final step presents a summary of your complete configuration. Review each section:
- SSL/TLS — enabled/disabled; certificate path (if direct HTTPS)
- Database — type, host, port, database name (password redacted)
- Vector Database — ChromaDB (local)
- LLM Provider — provider name and selected default model
- Authentication — enabled methods and their test status; MFA enforcement policy
- Source Control — connected provider (if configured)
- Collaboration Tools — Jira and/or Confluence connection status
- Admin Accounts — list of created Global Admin emails
- License — type, validity, and product limit
- System Settings — SMTP email status; audit log retention
Configuration Database Security
The configuration database (flowsquad_engine.db) stores API keys, credentials, and license information. All sensitive values are automatically encrypted at the field level before storage — no additional configuration is required. Click Complete Setup to finish.
Click Complete Setup. FlowSquad saves the configuration and applies any final database migrations. You are redirected to the login page.
💡
Wizard can be re-run at any time
Global Admins can re-open the Setup Wizard at any time from the top navigation bar (the ⚙️ Setup button). Changes take effect immediately — no restart is required. This is the correct way to change your database, LLM provider, or integration settings after initial setup.
Post-Setup Checklist
After completing the wizard, verify the following before onboarding users:
- Login with the Global Admin account you created succeeds
- Admin Panel is accessible at
/admin after login
- License Management shows the correct license type, company name, and validity dates
- LLM Configuration shows the provider as connected (green status)
- Database Settings shows the product database as connected
- If SSO is configured: test login via each enabled SSO method
- Create a test product and run a test AI generation to confirm the LLM pipeline works end-to-end
- MFA enabled on the Global Admin account (User Preferences -> Security -> Enable MFA)
- Admin password changed from the setup temporary value (if applicable)
- SMTP email configured for system notifications (Admin Panel -> Settings -> Email)
Troubleshooting
Database Connection Failed
Symptoms: "Connection refused" or "could not connect to server" when clicking Test Connection in Step 1.
Solutions:
- Confirm the database service is running:
sudo systemctl status postgresql (Linux) or Get-Service postgresql* (Windows)
- Check that
listen_addresses in postgresql.conf includes the FlowSquad server's IP (or '*')
- Verify the firewall allows the database port from the FlowSquad host:
sudo ufw allow 5432/tcp
- Test the connection manually:
psql -h <host> -U flowsquad_app -d flowsquad
LLM "Invalid API Key" (401)
Symptoms: Test Connection returns authentication error in Step 3.
Solutions:
- Verify there are no leading/trailing spaces in the pasted API key
- For OpenAI: check billing is active and the key is not restricted to specific IPs at platform.openai.com -> API keys
- For Anthropic: confirm the key starts with
sk-ant- and was created in the correct workspace
- Generate a new key from the provider's console and re-enter it
LDAP "Invalid Credentials" (Correct Password)
Symptoms: Test Connection fails with "LDAP bind failed" even though the service account password is correct.
Solutions:
- Verify the Bind DN format exactly — use
ldapsearch to confirm: ldapsearch -H ldap://ad.company.com -D "CN=svc-flowsquad,OU=ServiceAccounts,DC=company,DC=com" -W -b "DC=company,DC=com" "(sAMAccountName=svc-flowsquad)"
- Check the service account password has not expired in Active Directory
- If using LDAPS (port 636), ensure the server's certificate is trusted: import the CA certificate to the FlowSquad server's trust store
- Broaden the User Search Base to
DC=company,DC=com to cover users across all OUs
SAML "Invalid SAML Response"
Symptoms: User authenticates at IdP but FlowSquad shows "Invalid SAML response" or "Signature validation failed".
Solutions:
- Verify the SP Entity ID in your IdP matches the auto-filled value in FlowSquad exactly, including port number:
https://flowsquad.company.com:5000/saml/metadata
- Download the SP certificate from FlowSquad (Step 4 -> SAML -> "Generate SP Certificate" -> Download) and import it into your IdP
- Confirm both "Sign Assertions" and "Sign Document" are enabled in your IdP
- Check that the Email Attribute name in FlowSquad matches the attribute name your IdP sends
License "Validation Failed — Machine ID Mismatch"
Symptoms: License upload fails with machine ID or cluster ID mismatch error in Step 8.
Solutions:
- For Docker: verify
FLOWSQUAD_CLUSTER_ID environment variable in docker-compose.yml matches the ID provided when the license was issued
- For Linux: check
/etc/machine-id is correctly mounted into the container: - /etc/machine-id:/etc/host-machine-id:ro
- For Kubernetes: confirm the
flowsquad-machine secret contains the correct cluster ID
- Contact support@flowsquad.ai with your deployment type and machine ID if re-issuance is needed
Setup Wizard Does Not Appear on First Load
Symptoms: Navigating to FlowSquad shows a login page or a blank page instead of the Setup Wizard.
Solutions:
- If the wizard was previously partially completed, navigate to
/setup directly
- If the wizard is locked due to a previous failed run, stop FlowSquad, remove the
flowsquad_engine.db file from the data directory, and restart — this resets all setup state (warning: all previous settings are lost)
- Check the application logs for startup errors: Linux:
sudo journalctl -u flowsquad -f; Docker: docker compose logs -f
->
Setup complete — next step: Admin Guide
Your FlowSquad instance is now configured across all 10 steps. Proceed to the
Admin Guide to create your first product, assign Product Admins, configure per-product LLM settings, manage users, and review audit logs.