Secure Multi-Model AI Chat Platform
π€ Multiple AI Models | π Web UI | β‘ Real-time Streaming | π Secure | π¨ Cyberpunk Terminal
CyberAI is a powerful, secure multi-user chat platform that integrates multiple AI models through a cyberpunk-inspired terminal interface. Built with performance, security, and flexibility in mind, it provides a centralized interface for interacting with various language models, leveraging Retrieval-Augmented Generation (RAG) with web search and chat history to deliver more informed and contextually relevant responses.
The intention is to provide a sleek, secure, and efficient way to interact with AI language models through a unified interface.
Model Support | Chat Features |
---|---|
|
|
User Interface | Security |
|
|
- Gated User Profile (Can only access Persona's)
- Agents for Users (Persona's with special prompts!)
- Agents with Tools (can do work)
- Search (Brave API and Google API)
You can run CyberAI using Docker with either docker run
or docker-compose
.
Default credentials:
- Username:
admin
- Password:
admin
This command uses a Docker named volume (cyberai-data
) to store the application's data (like the SQLite database) persistently.
docker run -d --name cyberai \
-p 8080:8080 \
-v cyberai-data:/cyberai/data \
mattrogers/cyberai:latest
-d
: Run in detached mode.--name cyberai
: Assign a name to the container.-p 8080:8080
: Map host port 8080 to container port 8080.-v cyberai-data:/cyberai/data
: Mount the named volumecyberai-data
to the/cyberai/data
directory inside the container.
- Create a
docker-compose.yml
file with the following content:version: '3.8' services: cyberai: image: ramborogers/cyberai:latest container_name: cyberai ports: - "8080:8080" volumes: - cyberai-data:/cyberai/data restart: unless-stopped volumes: cyberai-data:
- Run the following command in the same directory as the
docker-compose.yml
file:This will automatically create the named volumedocker-compose up -d
cyberai-data
if it doesn't exist.
Once the container is running (using either method), access the web interface at:
- Web UI: http://localhost:8080
Using Docker Run:
- Pull the latest image:
docker pull mattrogers/cyberai:latest
- Stop and remove the existing container:
docker stop cyberai && docker rm cyberai
- Start the new container using the same volume mount command as above.
Using Docker Compose:
- Pull the latest image:
docker-compose pull
- Restart the service, which will automatically use the new image and the existing volume:
docker-compose up -d
- Go 1.21 or later
# Clone the repository
git clone https://github.com/ramborogers/cyberai.git
cd cyberai
# Build the application
go build -o cyberai ./cmd/cyberai
# Run the application (creates data/cyberai.db by default)
./cyberai
# Run directly with Go
go run ./cmd/cyberai
CyberAI uses environment variables for configuration (no config file needed):
Variable | Description | Default |
---|---|---|
PORT | Web server port | 8080 |
SESSION_KEY | Secret key for session cookies | Default insecure key (only for development) |
DB_PATH | SQLite database file path | /cyberai/data/cyberai.db (Docker) or data/cyberai.db (local) |
Example usage when running locally:
# Set environment variables
export PORT=9090
export SESSION_KEY="your-secure-session-key"
export DB_PATH="/path/to/database.db"
# Run the application
./cyberai
CyberAI provides a unified interface for interacting with various AI models:
- Login with your credentials
- Select your preferred AI model
- Chat in real-time with streaming responses
- Create custom agents with specialized system prompts
- Search the web directly from your chat with integrated search providers
# Access admin dashboard
http://localhost:8080/admin
# Add new API endpoints
# Manage user permissions
# Create specialized agents
# Configure search providers (Brave Search, Google CSE)
# View system metrics
- Modular server structure to handle multiple LLM API integrations
- User authentication and session management
- WebSocket handlers for real-time chat updates
- Admin API for managing system resources
- Search provider integration for web search capabilities
- Responsive chat interface with S3270 terminal-inspired design
- Dynamic model selection and agent management
- Admin dashboard for system configuration
- User credentials and permissions storage
- Chat history preservation
- Configuration management
- Search provider settings
CyberAI is licensed under the GNU General Public License v3.0 (GPLv3).
Free Software