Add centralized `add_to_path` function to consistently update shell profile files (.profile, .bash_profile, .bashrc, .zshrc) with PATH exports. Update just and uv installation to use direct binary verification instead of relying on `command -v`, ensuring tools are properly installed even when PATH isn't immediately updated. Enhance platform installation by explicitly setting PATH and using full CLI path for execution.
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/monadical/internalai-setup/raw/branch/main/install.sh | bash
This will:
- Check system dependencies (git, docker, docker compose, bash)
- Install missing dependencies (just, uv)
- Set up Gitea authentication
- Clone the InternalAI platform repository
- Configure git credentials
- Install the
internalaicommand-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:
Option 1: Personal Access Token (Recommended)
- Go to Gitea Token Settings
- Click "Generate New Token"
- Give it a name (e.g., "InternalAI Setup")
- Select the
reposcope - Click "Generate Token" and copy it
- Enter the token when prompted by the installer
Option 2: SSH Key
-
Generate an SSH key if you don't have one:
ssh-keygen -t ed25519 -C "your.email@monadical.com" -
Add your SSH key to Gitea SSH Settings
-
Select SSH authentication when prompted by the installer
Installation Steps
1. Run the Installer
curl -fsSL https://gitea.app.monadical.io/monadical/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:
- Dashboard: http://localhost:42000 (or your configured URL)
- ContactDB: http://localhost:42000/contactdb/
- DataIndex: http://localhost:42000/dataindex/
- Meeting Prep: http://localhost:42000/meeting-prep/
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 platformCONTACTDB_SELF_EMAIL- Your email for contact managementSHARED_HUNTER_API_KEY- Hunter.io API keySHARED_APOLLO_API_KEY- Apollo.io API keySHARED_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:
- For Token auth: Verify your token has
reposcope - For SSH auth: Test connection with
ssh -T git@gitea.app.monadical.io - 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:
- Edit
$HOME/internalai/.env - Change
PLATFORM_BASE_URL=http://localhost:YOURPORT - Restart:
internalai restart
Services Won't Start
Check logs for specific services:
internalai logs contactdb
internalai logs dataindex
Common issues:
- Docker not running:
docker infoshould 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:
-
Clone the repository:
git clone git@gitea.app.monadical.io:monadical/internalai.git ~/internalai cd ~/internalai -
Install the CLI:
sudo cp scripts/internalai /usr/local/bin/internalai sudo chmod +x /usr/local/bin/internalai -
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:
- Fork the
internalai-setuprepository - Make your changes
- Test thoroughly
- 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.