{"id":31108647,"url":"https://github.com/dilolabs/nosia","last_synced_at":"2026-03-05T19:10:52.526Z","repository":{"id":246639406,"uuid":"813234559","full_name":"dilolabs/nosia","owner":"dilolabs","description":"Self-hosted AI RAG + MCP Platform","archived":false,"fork":false,"pushed_at":"2026-02-26T19:24:00.000Z","size":736,"stargazers_count":201,"open_issues_count":21,"forks_count":17,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-26T22:53:17.737Z","etag":null,"topics":["ai","all-in-one","docker","embedding","llm","mcp","rag","ruby","ruby-on-rails","shell"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/dilolabs/nosia","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dilolabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-10T18:22:19.000Z","updated_at":"2026-02-26T16:53:07.000Z","dependencies_parsed_at":"2025-02-25T06:10:33.272Z","dependency_job_id":"3c1b17e8-1ac5-4eae-b310-35425750c041","html_url":"https://github.com/dilolabs/nosia","commit_stats":{"total_commits":30,"total_committers":2,"mean_commits":15.0,"dds":"0.033333333333333326","last_synced_commit":"2eb6dfd4882e0e5fd8c7ea8712b969492b90c53f"},"previous_names":["nosia-ai/nosia","dilolabs/nosia"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/dilolabs/nosia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dilolabs%2Fnosia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dilolabs%2Fnosia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dilolabs%2Fnosia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dilolabs%2Fnosia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dilolabs","download_url":"https://codeload.github.com/dilolabs/nosia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dilolabs%2Fnosia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30144705,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T16:58:46.102Z","status":"ssl_error","status_checked_at":"2026-03-05T16:58:45.706Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","all-in-one","docker","embedding","llm","mcp","rag","ruby","ruby-on-rails","shell"],"created_at":"2025-09-17T06:02:31.850Z","updated_at":"2026-03-05T19:10:52.502Z","avatar_url":"https://github.com/dilolabs.png","language":"Ruby","readme":"# Nosia\n\n**Self-hosted AI RAG + MCP Platform**\n\nNosia is a platform that allows you to run AI models on your own data with complete privacy and control. Beyond traditional RAG capabilities, Nosia integrates the Model Context Protocol (MCP) to connect AI models with external tools, services, and data sources. It is designed to be easy to install and use, providing OpenAI-compatible APIs that work seamlessly with existing AI applications.\n\n## Features\n\n- **🔒 Private \u0026 Secure** - Your data stays on your infrastructure\n- **🤖 OpenAI-Compatible API** - Drop-in replacement for OpenAI clients\n- **📚 RAG-Powered** - Augment AI responses with your documents\n- **🔌 MCP Integration** - Connect AI to external tools and services via Model Context Protocol\n- **🔄 Real-time Streaming** - Server-sent events for live responses\n- **📄 Multi-format Support** - PDFs, text files, websites, and Q\u0026A pairs\n- **🎯 Semantic Search** - Vector similarity search with pgvector\n- **🐳 Easy Deployment** - Docker Compose with one-command setup\n- **🔑 Multi-tenancy** - Account-based isolation for secure data separation\n\n## Preview\n\n### Install\n\n```sh\ncurl -fsSL https://get.nosia.ai | sh\n```\n\n![nosia-install](https://github.com/user-attachments/assets/9a11c964-ed84-4bab-be9a-01b1d1191fee)\n\n### Start and First Run\n\n```sh\ndocker compose up -d\n```\n\n![nosia-start](https://github.com/user-attachments/assets/4b802c43-6b34-4ec2-8a12-f5de5d730030)\n\n```\nhttps://nosia.localhost\n```\n\n![nosia-prompt](https://github.com/user-attachments/assets/45953fce-e9f1-476c-9c47-3906c23fc9d8)\n\n## Quick Links\n\n- 📖 [Nosia Guides](https://guides.nosia.ai/) - Step-by-step tutorials\n- 🏗️ [Architecture Documentation](docs/README.md) - Technical deep dive\n- 💬 [Community Support](https://github.com/nosia-ai/nosia/issues) - Get help\n\n## Documentation\n\n- [📐 Architecture](docs/ARCHITECTURE.md) - Detailed system design and implementation\n- [📊 System Diagrams](docs/DIAGRAMS.md) - Visual representations of system components\n- [🚀 Deployment Guide](docs/DEPLOYMENT.md) - Production deployment strategies and best practices\n- [📋 Documentation Index](docs/README.md) - Complete documentation overview\n- [🤝 Code of Conduct](CODE_OF_CONDUCT.md) - Community guidelines\n\n## Table of Contents\n\n- [Quickstart](#quickstart)\n  - [One Command Installation](#one-command-installation)\n  - [Custom Installation](#custom-installation)\n  - [Advanced Installation](#advanced-installation)\n- [Configuration](#configuration)\n- [Using Nosia](#using-nosia)\n  - [Web Interface](#web-interface)\n  - [API Access](#api-access)\n  - [MCP Integration](#mcp-integration)\n- [Managing Your Installation](#managing-your-installation)\n  - [Start](#start)\n  - [Stop](#stop)\n  - [Upgrade](#upgrade)\n  - [Logs](#logs)\n- [Troubleshooting](#troubleshooting)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Quickstart\n\n### One Command Installation\n\nGet Nosia up and running in minutes on macOS, Debian, or Ubuntu.\n\n#### Prerequisites\n\n- macOS, Debian, or Ubuntu operating system\n- Internet connection\n- sudo/root access (for Docker installation if needed)\n\n#### Installation\n\nThe installation script will:\n1. Install Docker and Docker Compose if not already present\n2. Download Nosia configuration files\n3. Generate a secure `.env` file\n4. Pull all required Docker images\n\n```bash\ncurl -fsSL https://get.nosia.ai | sh\n```\n\nYou should see the following output:\n\n```\nSetting up prerequisites\nSetting up Nosia\nGenerating .env file\nPulling latest Nosia\n[+] Pulling 6/6\n ✔ llm Pulled\n ✔ embedding Pulled\n ✔ web Pulled\n ✔ reverse-proxy Pulled\n ✔ postgres-db Pulled\n ✔ solidq Pulled\n```\n\n#### Starting Nosia\n\nStart all services with:\n\n```bash\ndocker compose up\n# OR run in the background\ndocker compose up -d\n```\n\n#### Accessing Nosia\n\nOnce started, access Nosia at:\n- **Web Interface:** `https://nosia.localhost`\n- **API Endpoint:** `https://nosia.localhost/v1`\n\n\u003e **Note:** The default installation uses a self-signed SSL certificate. Your browser will show a security warning on first access. For production deployments, see the [Deployment Guide](docs/DEPLOYMENT.md) for proper SSL certificate configuration.\n\n### Custom Installation\n\n#### Default Models\n\nBy default, Nosia uses:\n\n- **Completion model:** `ai/granite-4.0-h-tiny`\n- **Embeddings model:** `ai/granite-embedding-multilingual`\n\n#### Using a Custom Completion Model\n\nYou can use any completion model available on [Docker Hub AI](https://hub.docker.com/u/ai) by setting the `LLM_MODEL` environment variable during installation.\n\n**Example with Granite 4.0 32B:**\n\n```bash\ncurl -fsSL https://get.nosia.ai | LLM_MODEL=ai/granite-4.0-h-small sh\n```\n\n**Model options:**\n- `ai/granite-4.0-h-micro` - 3B long-context instruct model by IBM\n- `ai/granite-4.0-h-tiny` - 7B long-context instruct model by IBM (default)\n- `ai/granite-4.0-h-small` - 32B long-context instruct model by IBM\n- `ai/mistral` - Efficient open model (7B) with top-tier performance and fast inference by Mistral AI\n- `ai/magistral-small-3.2` - 24B multimodal instruction model by Mistral AI\n- `ai/devstral-small` - Agentic coding LLM (24B) fine-tuned from Mistral-Small 3.1 by Mistral AI\n- `ai/llama3.3` - Meta's Llama 3.3 model\n- `ai/gemma3` - Google's Gemma 3 model\n- `ai/qwen3` - Alibaba's Qwen 3 model\n- `ai/deepseek-r1-distill-llama` - DeepSeek's distilled Llama model\n- Browse more at [Docker Hub AI](https://hub.docker.com/u/ai)\n\n#### Using a Custom Embeddings Model\n\nBy default, Nosia uses `ai/granite-embedding-multilingual` for generating document embeddings.\n\n**To change the embeddings model:**\n\n1. Update the environment variables in your `.env` file:\n   ```bash\n   EMBEDDING_MODEL=your-preferred-embedding-model\n   EMBEDDING_DIMENSIONS=768  # Adjust based on your model's output dimensions\n   ```\n\n2. Restart Nosia to apply changes:\n   ```bash\n   docker compose down\n   docker compose up -d\n   ```\n\n3. Update existing embeddings (if you have documents already indexed):\n   ```bash\n   docker compose run web bin/rails embeddings:change_dimensions\n   ```\n\n\u003e **Important:** Different embedding models produce vectors of different dimensions. Ensure `EMBEDDING_DIMENSIONS` matches your model's output size, or vector search will fail.\n\n### Advanced Installation\n\n#### With Docling Document Processing\n\n[Docling](https://github.com/DS4SD/docling) provides enhanced document processing capabilities for complex PDFs and documents.\n\n**To enable Docling:**\n\n1. Start Nosia with the Docling serve compose file:\n   ```bash\n    # For NVIDIA GPUs\n   docker compose -f docker-compose-docling-serve-nvidia.yml up -d\n    # OR for AMD GPUs\n   docker compose -f docker-compose-docling-serve-amd.yml up -d\n    # OR for CPU only\n   docker compose -f docker-compose-docling-serve-cpu.yml up -d\n   ```\n\n2. Configure the Docling URL in your `.env` file:\n   ```env\n   DOCLING_SERVE_BASE_URL=http://localhost:5001\n   ```\n\nThis starts a Docling serve instance on port 5001 that Nosia will use for advanced document parsing.\n\n#### With Augmented Context (RAG)\n\nEnable Retrieval Augmented Generation to enhance AI responses with relevant context from your documents.\n\n**To enable RAG:**\n\nAdd to your `.env` file:\n```env\nAUGMENTED_CONTEXT=true\n```\n\nWhen enabled, Nosia will:\n1. Search your document knowledge base for relevant chunks\n2. Include the most relevant context in the AI prompt\n3. Generate responses grounded in your specific data\n\n**Additional RAG configuration:**\n```env\nRETRIEVAL_FETCH_K=3          # Number of document chunks to retrieve\nLLM_TEMPERATURE=0.1          # Lower temperature for more factual responses\n```\n\n## Configuration\n\n### Environment Variables\n\nNosia validates required environment variables at startup to prevent runtime failures. If any required variables are missing or invalid, the application will fail to start with a clear error message.\n\n#### Required Variables\n\n| Variable | Description | Example |\n|----------|-------------|---------|\n| `SECRET_KEY_BASE` | Rails secret key for session encryption | Generate with `bin/rails secret` |\n| `AI_BASE_URL` | Base URL for OpenAI-compatible API | `http://model-runner.docker.internal/engines/llama.cpp/v1` |\n| `LLM_MODEL` | Language model identifier | `ai/mistral`, `ai/granite-4.0-h-tiny` |\n| `EMBEDDING_MODEL` | Embedding model identifier | `ai/granite-embedding-multilingual` |\n| `EMBEDDING_DIMENSIONS` | Embedding vector dimensions | `768`, `384`, `1536` |\n\n#### Optional Variables with Defaults\n\n| Variable | Description | Default | Range/Options |\n|----------|-------------|---------|---------------|\n| `AI_API_KEY` | API key for the AI service | empty | Any string |\n| `LLM_TEMPERATURE` | Model creativity (lower = more factual) | `0.1` | `0.0` - `2.0` |\n| `LLM_TOP_K` | Top K sampling parameter | `40` | `1` - `100` |\n| `LLM_TOP_P` | Top P (nucleus) sampling | `0.9` | `0.0` - `1.0` |\n| `RETRIEVAL_FETCH_K` | Number of document chunks to retrieve for RAG | `3` | `1` - `10` |\n| `AUGMENTED_CONTEXT` | Enable RAG for chat completions | `false` | `true`, `false` |\n| `DOCLING_SERVE_BASE_URL` | Docling document processing service URL | empty | `http://localhost:5001` |\n\nSee `.env.example` for a complete list of configuration options.\n\n### Setting Up Your Environment\n\n#### For Docker Compose (Recommended)\n\nThe installation script automatically generates a `.env` file. To customize:\n\n1. Edit the `.env` file in your installation directory:\n   ```bash\n   nano .env\n   ```\n\n2. Update values as needed and restart:\n   ```bash\n   docker compose down\n   docker compose up -d\n   ```\n\n#### For Manual/Development Setup\n\n1. Copy the example environment file:\n   ```bash\n   cp .env.example .env\n   ```\n\n2. Generate a secure secret key:\n   ```bash\n   SECRET_KEY_BASE=$(bin/rails secret)\n   echo \"SECRET_KEY_BASE=$SECRET_KEY_BASE\" \u003e\u003e .env\n   ```\n\n3. Update other required values in `.env`:\n   ```env\n   AI_BASE_URL=http://your-ai-service:11434/v1\n   LLM_MODEL=ai/mistral\n   EMBEDDING_MODEL=ai/granite-embedding-multilingual\n   EMBEDDING_DIMENSIONS=768\n   ```\n\n4. Test your configuration:\n   ```bash\n   bin/rails runner \"puts 'Configuration valid!'\"\n   ```\n\nIf validation fails, you'll see a detailed error message indicating which variables are missing or invalid.\n\n## Using Nosia\n\n### Web Interface\n\nAfter starting Nosia, access the web interface at `https://nosia.localhost`:\n\n1. **Create an account** or log in\n2. **Upload documents** - PDFs, text files, or add website URLs\n3. **Create Q\u0026A pairs** - Add domain-specific knowledge\n4. **Start chatting** - Ask questions about your documents\n\n### API Access\n\nNosia provides an OpenAI-compatible API that works with existing OpenAI client libraries.\n\n#### Getting an API Token\n\n1. Log in to Nosia web interface\n2. Navigate to `https://nosia.localhost/api_tokens`\n3. Click \"Generate Token\" and copy your API key\n4. Store it securely - it won't be shown again\n\n#### Using the API\n\nConfigure your OpenAI client to use Nosia:\n\n**Python Example:**\n```python\nfrom openai import OpenAI\n\nclient = OpenAI(\n    base_url=\"https://nosia.localhost/v1\",\n    api_key=\"your-nosia-api-token\"\n)\n\nresponse = client.chat.completions.create(\n    model=\"default\",  # Nosia uses your configured model\n    messages=[\n        {\"role\": \"user\", \"content\": \"What is in my documents about AI?\"}\n    ],\n    stream=True\n)\n\nfor chunk in response:\n    if chunk.choices[0].delta.content:\n        print(chunk.choices[0].delta.content, end=\"\")\n```\n\n**cURL Example:**\n```bash\ncurl https://nosia.localhost/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer your-nosia-api-token\" \\\n  -d '{\n    \"model\": \"default\",\n    \"messages\": [\n      {\"role\": \"user\", \"content\": \"Summarize my documents\"}\n    ]\n  }'\n```\n\n**Node.js Example:**\n```javascript\nimport OpenAI from 'openai';\n\nconst client = new OpenAI({\n  baseURL: 'https://nosia.localhost/v1',\n  apiKey: 'your-nosia-api-token'\n});\n\nconst response = await client.chat.completions.create({\n  model: 'default',\n  messages: [\n    { role: 'user', content: 'What information do you have about my project?' }\n  ]\n});\n\nconsole.log(response.choices[0].message.content);\n```\n\nFor more API examples and details, see the [API Guide](https://guides.nosia.ai/api#start-a-chat-completion).\n\n### MCP Integration\n\nNosia supports the Model Context Protocol (MCP), allowing AI models to interact with external tools, services, and data sources. MCP servers can provide tools, prompts, and resources that extend the AI's capabilities beyond text generation.\n\n#### What is MCP?\n\nThe Model Context Protocol is an open protocol that standardizes how applications provide context to Large Language Models (LLMs). MCP enables AI to:\n\n- **Execute Tools** - Perform actions in external systems (calendars, file storage, databases)\n- **Access Resources** - Read from various data sources in real-time\n- **Use Prompts** - Leverage pre-configured prompt templates\n- **Extend Capabilities** - Add custom functionality without modifying core code\n\n#### Using MCP Servers\n\n1. **Navigate to MCP Settings** in the web interface\n2. **Browse the MCP Catalog** - Pre-configured servers for popular services:\n   - **Productivity**: Infomaniak Calendar, kDrive file storage\n   - **Communication**: kChat messaging\n   - **And more** - Extensible catalog of integrations\n\n3. **Activate an MCP Server**:\n   - Click on a server from the catalog\n   - Provide required configuration (API keys, tokens)\n   - Test the connection\n   - Enable it for your chats\n\n4. **Add MCP to Chat**:\n   - Open or create a chat session\n   - Select which MCP servers to use\n   - The AI can now use tools from connected servers\n\n#### Example: Using Calendar MCP\n\n```python\nfrom openai import OpenAI\n\nclient = OpenAI(\n    base_url=\"https://nosia.localhost/v1\",\n    api_key=\"your-nosia-api-token\"\n)\n\n# The AI can now use calendar tools if enabled in the chat\nresponse = client.chat.completions.create(\n    model=\"default\",\n    messages=[\n        {\"role\": \"user\", \"content\": \"Schedule a meeting tomorrow at 2pm\"}\n    ]\n)\n\nprint(response.choices[0].message.content)\n```\n\nWhen MCP servers are enabled, the AI can:\n- Search your calendar for availability\n- Create new events\n- Access file storage\n- Post messages to chat systems\n- And execute any tools provided by connected MCP servers\n\n#### Custom MCP Servers\n\nBeyond the catalog, you can add custom MCP servers:\n\n1. **Navigate to MCP Settings** → **Custom Servers**\n2. **Choose transport type**:\n   - **stdio** - Local processes (NPX, Python scripts)\n   - **SSE** - Server-sent events over HTTP\n   - **HTTP** - Standard HTTP endpoints\n\n3. **Configure connection**:\n   - Provide endpoint or command\n   - Add authentication credentials\n   - Test connection\n\n4. **Use in chats** - Enable the custom server for your conversations\n\nFor more details on MCP integration, see the [MCP Documentation](https://modelcontextprotocol.io/).\n\n## Managing Your Installation\n\n### Start\n\nStart all Nosia services:\n\n```bash\n# Start in foreground (see logs in real-time)\ndocker compose up\n\n# Start in background (detached mode)\ndocker compose up -d\n```\n\nCheck that all services are running:\n```bash\ndocker compose ps\n```\n\n### Stop\n\nStop all running services:\n\n```bash\n# Stop services (keeps data)\ndocker compose down\n\n# Stop and remove all data (⚠️ destructive)\ndocker compose down -v\n```\n\n### Upgrade\n\nKeep Nosia up to date with the latest features and security fixes:\n\n```bash\n# Pull latest images\ndocker compose pull\n\n# Restart services with new images\ndocker compose up -d\n\n# View logs to ensure successful upgrade\ndocker compose logs -f web\n```\n\n**Upgrade checklist:**\n1. Backup your data before upgrading (see [Deployment Guide](docs/DEPLOYMENT.md))\n2. Review release notes for breaking changes\n3. Pull latest images\n4. Restart services\n5. Verify functionality\n\n### Logs\n\nView logs for troubleshooting:\n\n```bash\n# All services\ndocker compose logs -f\n\n# Specific service\ndocker compose logs -f web\ndocker compose logs -f postgres-db\ndocker compose logs -f llm\n\n# Last 100 lines\ndocker compose logs --tail=100 web\n```\n\n### Health Check\n\nVerify Nosia is running correctly:\n\n```bash\n# Check service status\ndocker compose ps\n\n# Check web application health\ncurl -k https://nosia.localhost/up\n\n# Check background jobs\ndocker compose exec web bin/rails runner \"puts SolidQueue::Job.count\"\n```\n\n## Troubleshooting\n\n### Common Issues\n\n#### Installation Problems\n\n**Docker not found:**\n```bash\n# Verify Docker is installed\ndocker --version\n\n# Install Docker if needed (Ubuntu/Debian)\ncurl -fsSL https://get.docker.com | sh\n```\n\n**Permission denied:**\n```bash\n# Add your user to docker group\nsudo usermod -aG docker $USER\n\n# Log out and back in, then try again\n```\n\n#### Runtime Issues\n\n**Services won't start:**\n```bash\n# Check logs for errors\ndocker compose logs\n\n# Verify .env file exists and has required variables\ncat .env | grep -E 'SECRET_KEY_BASE|AI_BASE_URL|LLM_MODEL'\n\n# Restart services\ndocker compose down \u0026\u0026 docker compose up -d\n```\n\n**Slow AI responses:**\n1. Check background jobs: `https://nosia.localhost/jobs`\n2. View job logs:\n   ```bash\n   docker compose logs -f solidq\n   ```\n3. Ensure your hardware meets minimum requirements (see [Deployment Guide](docs/DEPLOYMENT.md))\n\n**Can't access web interface:**\n```bash\n# Check if services are running\ndocker compose ps\n\n# Verify reverse-proxy is healthy\ndocker compose logs reverse-proxy\n\n# Test connectivity\ncurl -k https://nosia.localhost/up\n```\n\n**Database connection errors:**\n```bash\n# Check PostgreSQL is running\ndocker compose ps postgres-db\n\n# View database logs\ndocker compose logs postgres-db\n\n# Test database connection\ndocker compose exec web bin/rails runner \"ActiveRecord::Base.connection.execute('SELECT 1')\"\n```\n\n#### Document Processing Issues\n\n**Documents not processing:**\n1. Check background jobs: `https://nosia.localhost/jobs`\n2. View processing logs:\n   ```bash\n   docker compose logs -f web\n   ```\n3. Verify embedding service is running:\n   ```bash\n   docker compose ps embedding\n   ```\n\n**Embedding errors:**\n```bash\n# Verify EMBEDDING_DIMENSIONS matches your model\ndocker compose exec web bin/rails runner \"puts ENV['EMBEDDING_DIMENSIONS']\"\n\n# Rebuild embeddings if dimensions changed\ndocker compose run web bin/rails embeddings:change_dimensions\n```\n\n### Log Locations\n\n| Issue Type | Log Location | Command |\n|------------|--------------|---------|\n| Installation | `./log/production.log` | `tail -f log/production.log` |\n| Runtime errors | Docker logs | `docker compose logs -f web` |\n| Background jobs | Jobs dashboard | Visit `https://nosia.localhost/jobs` |\n| Database | PostgreSQL logs | `docker compose logs postgres-db` |\n| AI model | LLM container logs | `docker compose logs llm` |\n\n### Getting Help\n\nIf you need further assistance:\n\n1. **Check Documentation:**\n   - [Architecture Guide](docs/ARCHITECTURE.md) - Understand how Nosia works\n   - [Deployment Guide](docs/DEPLOYMENT.md) - Advanced configuration\n\n2. **Search Existing Issues:**\n   - [GitHub Issues](https://github.com/nosia-ai/nosia/issues)\n   - Someone may have encountered the same problem\n\n3. **Open a New Issue:**\n   - Include your Nosia version: `docker compose images | grep web`\n   - Describe the problem with steps to reproduce\n   - Include relevant logs (remove sensitive information)\n   - Specify your OS and Docker version\n\n4. **Community Support:**\n   - [GitHub Discussions](https://github.com/nosia-ai/nosia/discussions)\n   - Share your use case and get advice from the community\n\n## Contributing\n\nWe welcome contributions! Here's how you can help:\n\n- **Report bugs** - Open an issue with details and reproduction steps\n- **Suggest features** - Share your ideas in GitHub Discussions\n- **Improve documentation** - Submit PRs for clarity and accuracy\n- **Write code** - Fix bugs or implement new features\n- **Share your experience** - Write blog posts or tutorials\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) if available, or start by opening an issue to discuss your ideas.\n\n## License\n\nNosia is open source software. See [LICENSE](LICENSE) for details.\n\n## Additional Resources\n\n- **Website:** [nosia.ai](https://nosia.ai/)\n- **Documentation:** [guides.nosia.ai](https://guides.nosia.ai/)\n- **Source Code:** [github.com/nosia-ai/nosia](https://github.com/nosia-ai/nosia)\n- **Docker Hub:** [hub.docker.com/u/ai](https://hub.docker.com/u/ai)\n\n---\n\n**Built with ❤️ by the Nosia community**\n","funding_links":[],"categories":["📚 Projects (1974 total)","Ruby"],"sub_categories":["MCP Servers"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdilolabs%2Fnosia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdilolabs%2Fnosia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdilolabs%2Fnosia/lists"}