Add installer scripts and documentation for the InternalAI platform setup repository. This provides a streamlined installation process for the private InternalAI monorepo platform. + Add .gitignore with macOS, editor, and temporary file exclusions + Add comprehensive README.md with installation instructions, prerequisites, CLI commands, and troubleshooting guide + Add install.sh one-liner script that downloads and executes the main setup
292 lines
6.8 KiB
Markdown
292 lines
6.8 KiB
Markdown
# 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.
|