{"id":17919616,"url":"https://github.com/asim/mu","last_synced_at":"2026-01-07T17:21:54.987Z","repository":{"id":259792445,"uuid":"869473704","full_name":"asim/mu","owner":"asim","description":"A muslim app platform","archived":false,"fork":false,"pushed_at":"2024-10-28T21:39:56.000Z","size":567,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-16T04:42:43.506Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asim.png","metadata":{"files":{"readme":"README.md","changelog":"news/.github/workflows/go.yml","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"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},"funding":{"github":"asim"}},"created_at":"2024-10-08T11:04:40.000Z","updated_at":"2024-10-28T13:14:38.000Z","dependencies_parsed_at":"2024-12-16T04:41:56.710Z","dependency_job_id":"ec9e0c76-5586-444d-aca0-15d91877f3f3","html_url":"https://github.com/asim/mu","commit_stats":null,"previous_names":["asim/mu","micro/mu"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asim%2Fmu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asim%2Fmu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asim%2Fmu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asim%2Fmu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asim","download_url":"https://codeload.github.com/asim/mu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237877085,"owners_count":19380347,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-28T20:18:00.522Z","updated_at":"2026-01-07T17:21:54.981Z","avatar_url":"https://github.com/asim.png","language":"Go","funding_links":["https://github.com/sponsors/asim","https://patreon.com/muxyz"],"categories":[],"sub_categories":[],"readme":"# mu\n\nThe Micro Network\n\n## Overview\n\nA personal app platform that provides services without ads, algorithms, or tracking.\n\n### Features\n\n- **App** - Progressive web app for desktop and mobile\n- **API** - Basic API for docs and programmatic access\n- **Home** - One place to catchup with everything\n- **Blog** - Microblogging and community sharing\n- **Chat** - AI assistant with contextual discussions\n- **Mail** - Private messaging and email inbox \n- **News** - Curated RSS feeds and market data\n- **Video** - YouTube search and Ad-free viewing\n\nMu runs as a single Go binary on your own server or use the hosted version at [mu.xyz](https://mu.xyz).\n\n## Rationale\n\nI'm tired of big tech platforms. We can't control any of them. Lots of addictive tendencies. It seems easier to turn them into API and data providers and rebuild the UX on top. Starting with blog, chat, news, mail and video.\n\n## Roadmap\n\nStarting with:\n\n- [x] API - Basic API\n- [x] App - Basic PWA\n- [x] Home - Overview\n- [x] Blog - Micro blogging\n- [x] Chat - LLM chat UI\n- [x] News - RSS news feed\n- [x] Video - YouTube search\n- [x] Mail - Private messaging \n\nComing soon:\n\n- [ ] Wallet - Credits for usage\n- [ ] Utilities - QR code scanner, etc\n- [ ] Services - Marketplace of services\n\n## Screenshots\n\n### Home\n\n\u003cimg width=\"3728\" height=\"1765\" alt=\"image\" src=\"https://github.com/user-attachments/assets/75e029f8-5802-49aa-9449-4902be5da805\" /\u003e\n\n[View more](docs/SCREENSHOTS.md)\n\n## Concepts\n\nBasic concepts. The app contains **cards** displayed on the home screen. These are a sort of summary or overview. Each card links to a **micro app** or an external website. For example the latest Video \"more\" links to the /video page with videos by channel and search, whereas the markets card redirects to an external app. \n\n## Free Hosting\n\n**Mu is free to use** at [mu.xyz](https://mu.xyz). Create an account and start using it immediately - no credit card required.\n\n## Paid Hosting\n\nContact asim@mu.xyz or file an issue to discuss managed hosting.\n\n## Self Hosting\n\nEnsure you have [Go](https://go.dev/doc/install) installed\n\nSet your Go bin\n```\nexport PATH=$HOME/go/bin:$PATH\n```\n\nDownload and install Mu\n\n```\ngit clone https://github.com/asim/mu\ncd mu \u0026\u0026 go install\n```\n\n### Configuration\n\nTo reconfigure prompts, topics, cards, etc you can adjust the following json files. \n\nNote: The binary will need to be recompiled as they are embedded at build time.\n\n#### Chat Prompts\n\nSet the chat prompts in chat/prompts.json\n\n#### Home Cards\n\nSet the home cards in home/cards.json\n\n#### News Feed\n\nSet the RSS news feeds in news/feeds.json\n\n#### Video Channels\n\nSet the YouTube video channels in video/channels.json\n\n### API Keys\n\nWe need API keys for the following\n\n#### Video Search\n\n- [Youtube Data](https://developers.google.com/youtube/v3)\n\n```\nexport YOUTUBE_API_KEY=xxx\n```\n\n#### Chat Model\n\n**Ollama (Default)**\n\nBy default, Mu uses [Ollama](https://ollama.ai/) for LLM queries. Install and run Ollama locally:\n\n```\n# Install Ollama from https://ollama.ai/\n# Pull a model (e.g., llama3.2)\nollama pull llama3.2\n\n# Ollama runs on http://localhost:11434 by default\n```\n\nOptional environment variables:\n```\nexport MODEL_NAME=llama3.2              # Default model\nexport MODEL_API_URL=http://localhost:11434  # Ollama API URL\n```\n\n**Fanar (Optional)**\n\nAlternatively, use [Fanar](https://fanar.qa/) by setting the API key:\n\n```\nexport FANAR_API_KEY=xxx\nexport FANAR_API_URL=https://api.fanar.qa  # Optional, this is the default\n```\n\nWhen `FANAR_API_KEY` is set, Mu will use Fanar instead of Ollama.\n\n**Note:** Fanar has a rate limit of 10 requests per minute. Mu enforces this limit automatically.\n\n**Anthropic Claude (Optional)**\n\nYou can also use Anthropic's Claude API:\n\n```\nexport ANTHROPIC_API_KEY=xxx\nexport ANTHROPIC_MODEL=claude-haiku-4.5-20250311  # Optional, this is the default\n```\n\nPriority order: Anthropic \u003e Fanar \u003e Ollama\n\nFor vector search see this [doc](docs/VECTOR_SEARCH.md)\n\n### Data Storage\n\nBy default, Mu stores search index and embeddings in JSON files loaded into memory. For production use with large datasets, enable SQLite storage to reduce memory usage:\n\n```\nexport MU_USE_SQLITE=1\n```\n\nThis stores the search index and embeddings in SQLite (`~/.mu/data/index.db`) instead of RAM. Migration from JSON happens automatically on first startup.\n\n### Run\n\nThen run the app\n\n```\nmu --serve\n```\n\nGo to localhost:8081\n\n## Documentation\n\nAdditional documentation is available in the [docs](docs/) folder:\n\n- [Design Documentation](docs/DESIGN.md) - Architecture and design decisions\n- [Messaging System](docs/MESSAGING_SYSTEM.md) - Complete messaging and mail setup guide\n- [Environment Variables](docs/ENVIRONMENT_VARIABLES.md) - All configuration options\n- [Contextual Discussions](docs/CONTEXTUAL_DISCUSSIONS.md) - Chat context and discussion features\n- [Vector Search](docs/VECTOR_SEARCH.md) - Setting up vector embeddings for semantic search\n- [Screenshots](docs/SCREENSHOTS.md) - Application screenshots\n\n## Development \n\n### Git Hooks\n\nInstall git hooks to run tests before commits:\n\n```bash\n./scripts/install-hooks.sh\n```\n\nThis will prevent commits if tests fail, helping catch regressions early. See [scripts/README.md](scripts/README.md) for more details.\n\n### Contributing\n\nJoin [Discord](https://discord.gg/jwTYuUVAGh) if you'd like to work on this.\n\n## Sponsorship \n\nYou can sponsor the project using [GitHub Sponsors](https://github.com/sponsors/asim) or via [Patreon](https://patreon.com/muxyz) to support ongoing development and hosting costs. Patreon members get access to premium features like Mail, early access to new features, and vote on the project roadmap. Most features remain free for all users.\n\n## License\n\nMu is licensed under the [GNU Affero General Public License v3.0 (AGPL-3.0)](LICENSE).\n\nThis means you are free to use, modify, and distribute this software, but if you run a modified version on a server and let others interact with it, you must make your modified source code available under the same license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasim%2Fmu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasim%2Fmu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasim%2Fmu/lists"}