Skip to main content

Overview

After successfully installing CrewAI Platform, perform these initial setup tasks to configure the system and prepare it for use.

Enable Multi-Organization Namespace Isolation (Optional)

If you need each organization to use a dedicated Kubernetes namespace, see the Multi-Organization Namespace Isolation guide.

Initial Setup Tasks

Initialize Internal Organization

kubectl exec -it deploy/crewai-web -- bin/rails studio:install_internal_organization
If you’re using Multi-Organization Namespace Isolation, the studio:install_internal_organization command will expect the namespaces described in the feature guide to exist before running.

Set Up Default Permissions

# Replace with your admin email
kubectl exec -it deploy/crewai-web -- \
  bin/rails factory:setup_permissions_defaults 'factory:add_owner[2,admin@company.com]'

Grant Admin Panel Access

Grant users access to the admin panel by assigning the factory-admin role.
If you are using Microsoft Entra ID, you can assign the factory-admin role directly in Azure via App Roles — no commands are needed. See the Entra ID setup guide for instructions.
For all other authentication providers, use the following Rails commands:
# Grant admin access to a user
kubectl exec -it deploy/crewai-web -- bin/rails 'factory:grant_admin[admin@company.com]'

# Revoke admin access from a user
kubectl exec -it deploy/crewai-web -- bin/rails 'factory:revoke_admin[admin@company.com]'

# List all users with admin access
kubectl exec -it deploy/crewai-web -- bin/rails factory:list_admins

Sync Built-In Integrations

If you have configured OAuth credentials for Built-In Integrations (Google Workspace, Microsoft 365, HubSpot, Notion, or Salesforce), you need to sync the integration definitions so the platform recognizes them. Option 1: Via Admin Panel
  1. Log in to the CrewAI web UI as an admin
  2. Navigate to Admin Panel > Tools & Integrations
  3. Click the Sync Integrations button
Option 2: Via kubectl
kubectl exec -it deploy/crewai-web -- bin/rails studio:tools:sync_crewai_tools
You must sync integrations after every Helm upgrade that adds or changes OAuth integration credentials. Without syncing, newly configured integrations will not appear as available to users.

Enable Studio V2 (Optional)

If using Crew Studio V2 features:
  1. Ensure the latest platform image is deployed
  2. Create an LLM Connection named studio-v2 (lowercase) in the UI
  3. Set as default connection in Settings → Crew Studio
  4. Run the following commands:
# Install Studio agent
kubectl exec -it deploy/crewai-web -- bin/rails studio:agent:install

# Sync and index tools
kubectl exec -it deploy/crewai-web -- \
  bin/rails studio:tools:sync_crewai_tools \
       studio:tools:sync_enterprise_tools

# Install Studio runner
kubectl exec -it deploy/crewai-web -- bin/rails studio:runner:install

Configuring the Studio Agent Model (Optional)

By default, the Studio Agent uses an Anthropic model to chat, build crews, and generate code. To use a different model, set the MODEL in the studio-v2 LLM connection you created during Studio V2 setup. The Studio Agent supports any model available through LiteLLM.
After updating the model in the studio-v2 LLM connection, you need to redeploy the studio-assistant deployment for the change to take effect. The platform does not automatically trigger a redeployment.

Accessing the Application

Choose the appropriate access method for your deployment:

Via Port Forwarding (Development)

# Forward web service port
kubectl port-forward svc/crewai-web 2603:80

# Access in browser
open http://localhost:2603

Via Ingress (Production)

If ingress is enabled, access via your configured hostname:
# Example with NGINX ingress
open https://crewai.company.com

Via LoadBalancer (Alternative)

If using LoadBalancer service type:
# Get LoadBalancer external IP
kubectl get svc crewai-web

# Access via LoadBalancer IP
open http://<EXTERNAL-IP>:80

Verification Steps

After completing post-installation setup:
  1. Access the Web UI using one of the methods above
  2. Log in with your configured authentication provider
  3. Verify admin access by checking user permissions
  4. Test basic functionality by creating a test crew or project
  5. Check background workers are processing jobs:
    kubectl logs -l app=crewai-worker --tail=50