Files
internalai-setup/README.md
Jose B c53675e892 chore: consolidate setup scripts and improve installation process
Merge setup.sh into install.sh to create a single comprehensive installer that handles dependency installation, Gitea authentication, repository cloning, git credential configuration, and CLI tool installation. Add ASCII art banner, improve user prompts with better formatting, and enhance error handling throughout the installation flow.
2025-12-04 17:31:19 -05:00

7.2 KiB

InternalAI Platform Setup

Official installer for the InternalAI Platform - a multi-service monorepo platform combining Python backends and TypeScript frontends for internal tools.

Quick Start

Run this one-liner to install the InternalAI platform:

curl -fsSL https://gitea.app.monadical.io/jose/internalai-setup/raw/branch/main/install.sh | bash

This will:

  1. Check system dependencies (git, docker, docker compose, bash)
  2. Install missing dependencies (just, uv)
  3. Set up Gitea authentication
  4. Clone the InternalAI platform repository
  5. Configure git credentials
  6. Install the internalai command-line tool

Prerequisites

Before installing, ensure you have:

  • Git - Version control system
  • Docker - Container runtime (v20.10+)
  • Docker Compose - Container orchestration (v2.0+)
  • Just - Command runner (will auto-install if missing)
  • uv - Python package manager (will auto-install if missing)

Platform Requirements

  • macOS 10.15+ or Linux (Ubuntu 20.04+, Debian 11+, etc.)
  • 4GB RAM minimum (8GB+ recommended)
  • 10GB disk space for platform and data
  • Ports available: 42000 (or custom port)

Authentication

The InternalAI platform repository is private. You'll need one of:

  1. Go to Gitea Token Settings
  2. Click "Generate New Token"
  3. Give it a name (e.g., "InternalAI Setup")
  4. Select the repo scope
  5. Click "Generate Token" and copy it
  6. Enter the token when prompted by the installer

Option 2: SSH Key

  1. Generate an SSH key if you don't have one:

    ssh-keygen -t ed25519 -C "your.email@monadical.com"
    
  2. Add your SSH key to Gitea SSH Settings

  3. Select SSH authentication when prompted by the installer

Installation Steps

1. Run the Installer

curl -fsSL https://gitea.app.monadical.io/jose/internalai-setup/raw/branch/main/install.sh | bash

2. Follow the Prompts

The installer will guide you through:

  • Dependency checking
  • Authentication setup
  • Repository cloning
  • CLI installation

3. Configure the Platform

After installation, run:

internalai install

This will:

  • Set up environment configuration
  • Configure API keys (Hunter.io, Apollo.io, LLM)
  • Set up Caddy reverse proxy with authentication
  • Optionally configure HTTPS with a custom domain
  • Create data directories
  • Build and start all services

4. Verify Installation

Check the platform status:

internalai status

Default Installation Location

The platform installs to: $HOME/internalai

You can change this during setup or set the PLATFORM_ROOT environment variable.

CLI Commands

After installation, use these commands:

internalai install       # Full platform setup
internalai start         # Start all services
internalai stop          # Stop all services
internalai restart       # Restart services
internalai status        # Show service status
internalai logs [svc]    # View logs
internalai upgrade       # Upgrade platform
internalai caddy         # Manage Caddy proxy
internalai help          # Show all commands

Services

The platform includes:

  • ContactDB - Unified contact management with relationship tracking
  • DataIndex - Data aggregation and semantic search engine
  • Meeting Prep - AI-powered meeting preparation assistant
  • Caddy - Reverse proxy with authentication

Accessing the Platform

Once started, access services at:

Default credentials (if authentication is enabled):

  • Username: admin
  • Password: Generated during setup (saved in cache)

Configuration

Environment Variables

Configuration is stored in $HOME/internalai/.env

Key variables:

  • PLATFORM_BASE_URL - Base URL for the platform
  • CONTACTDB_SELF_EMAIL - Your email for contact management
  • SHARED_HUNTER_API_KEY - Hunter.io API key
  • SHARED_APOLLO_API_KEY - Apollo.io API key
  • SHARED_LLM_API_KEY - LLM API key

Credential Cache

Credentials are cached in $HOME/internalai/.credentials.cache

You can optionally encrypt this cache with AES-256-CBC during installation.

View or edit the cache:

internalai cache show
internalai cache edit

Updating the CLI

To update the CLI tool to the latest version:

internalai update

This will re-download and reinstall the CLI from the latest version in the repository.

Troubleshooting

Dependencies Not Found

If the installer can't find Docker, Just, or other dependencies:

macOS:

brew install docker just

Linux:

# Docker (Ubuntu/Debian)
curl -fsSL https://get.docker.com | sh

# Just
cargo install just  # Or download from releases

Authentication Failed

If git clone fails with authentication error:

  1. For Token auth: Verify your token has repo scope
  2. For SSH auth: Test connection with ssh -T git@gitea.app.monadical.io
  3. Check you're a member of the Monadical organization on Gitea

Port Already in Use

If port 42000 is already in use, you can change it:

  1. Edit $HOME/internalai/.env
  2. Change PLATFORM_BASE_URL=http://localhost:YOURPORT
  3. Restart: internalai restart

Services Won't Start

Check logs for specific services:

internalai logs contactdb
internalai logs dataindex

Common issues:

  • Docker not running: docker info should work
  • Port conflicts: Check with lsof -i :42000
  • Permission issues: Ensure Docker doesn't require sudo

Manual Installation

If the automated installer doesn't work, you can install manually:

  1. Clone the repository:

    git clone git@gitea.app.monadical.io:monadical/internalai.git ~/internalai
    cd ~/internalai
    
  2. Install the CLI:

    sudo cp scripts/internalai /usr/local/bin/internalai
    sudo chmod +x /usr/local/bin/internalai
    
  3. Configure the platform:

    internalai install
    

Uninstallation

To remove the InternalAI platform:

cd ~/internalai
just down              # Stop services
cd ~
rm -rf ~/internalai    # Remove platform files
sudo rm /usr/local/bin/internalai  # Remove CLI

Development

Repository Structure

internalai-setup/
├── install.sh         # Complete installation script
└── README.md         # This file

The installer handles:

  • Dependency checking and installation (just, uv)
  • Gitea authentication (token or SSH)
  • Repository cloning
  • Git credential configuration
  • CLI tool installation

The actual platform code is in the private internalai repository.

Contributing

To contribute to the installer:

  1. Fork the internalai-setup repository
  2. Make your changes
  3. Test thoroughly
  4. Submit a pull request

Support

For issues or questions:

  • Platform Issues: Check ~/internalai/docs/
  • CLI Issues: Run internalai help
  • Setup Issues: Create an issue in this repository

License

Copyright © 2024 Monadical SAS. All rights reserved.