# 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: ```bash bash <(curl -fsSL https://gitea.app.monadical.io/monadical/internalai-setup/raw/branch/main/install.sh) ``` This will: 1. Check system dependencies 2. Prompt for Gitea authentication 3. Clone the InternalAI platform repository 4. 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) ### 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) 1. Go to [Gitea Token Settings](https://gitea.app.monadical.io/user/settings/applications) 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: ```bash ssh-keygen -t ed25519 -C "your.email@monadical.com" ``` 2. Add your SSH key to [Gitea SSH Settings](https://gitea.app.monadical.io/user/settings/keys) 3. Select SSH authentication when prompted by the installer ## Installation Steps ### 1. Run the Installer ```bash bash <(curl -fsSL https://gitea.app.monadical.io/monadical/internalai-setup/raw/branch/main/install.sh) ``` ### 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: ```bash 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: ```bash 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: ```bash 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 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: ```bash internalai cache show internalai cache edit ``` ## Updating the CLI To update the CLI tool to the latest version: ```bash 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:** ```bash brew install docker just ``` **Linux:** ```bash # 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: ```bash 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: ```bash git clone git@gitea.app.monadical.io:monadical/internalai.git ~/internalai cd ~/internalai ``` 2. Install the CLI: ```bash ./scripts/install.sh ``` 3. Configure the platform: ```bash internalai install ``` ## Uninstallation To remove the InternalAI platform: ```bash 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 # One-liner installer ├── setup.sh # Main setup script └── README.md # This file ``` 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.