{"slug": "homebound-self-host-your-social-media-history-search-it-talk-to-it", "title": "Homebound – self-host your social-media history, search it, talk to it", "summary": "Homebound, an open-source self-hosted personal archive tool, allows users to import social media history from platforms like Google+, Facebook, and Twitter/X into a Django blog with semantic search, an MCP server for LLM integration, and a public bot widget. The alpha-stage project, licensed under AGPL-3.0, emphasizes user control and privacy by keeping data on the user's machine.", "body_md": "Self-hosted personal-archive blog: import your social-media history, search it, talk to it, hand it to your LLM.\n\nHomebound takes the years of content you've scattered across Google+ (RIP), Facebook, and Twitter/X, parks them in a Django blog you control, and gives both humans and language models good ways to find what's in there.\n\n**Status:** alpha. The maintainer's deployment runs at [vyakunin.org](https://vyakunin.org); use that as a reference of what the surface looks like. APIs and DB schema may change without notice until Stage 2 ships.\n\n**Ingest pipeline**— adapters for Google+ Takeout HTML/CSV, Facebook activity-log export (via the bundled browser extension), and Twitter/X export + Wayback Machine reconstruction**Browser extensions**(also on the Chrome Web Store):[Homebound: Activity Log Exporter](https://chromewebstore.google.com/detail/kaghpmdkjknpefjhfjgmnaclmhalgbkb)(Facebook) and[Homebound: Timeline Exporter](https://chromewebstore.google.com/detail/gidophdcplhcbkelkejbeogdnnkmndni)(X/Twitter) — export*your own*data to a local ZIP; nothing leaves your machine**Django blog**— post listing + detail, tag cloud, full-text search, RSS, JSON-LD`BlogPosting`\n\nstructured data, year-sharded sitemap**Markdown editor**— EasyMDE-backed authoring with OG-metadata fetch** Semantic search (Stage 1.3)**— Voyage embeddings + pgvector for natural-language queries across your whole archive** MCP server (Stage 1/2.7)**— stdio mode for Claude Desktop / Cursor; tools include`search_posts`\n\n,`get_post`\n\n,`on_this_day`\n\n,`search_media`\n\n,`get_timeline`\n\n,`ghostwrite`\n\n**Public bot widget (Stage 2.5, optional)**— a chat surface on your site that answers visitor questions from your public posts, with citations\n\nSee [ docs/HIGH_LEVEL_DESIGN.md](/vyakunin/homebound/blob/main/docs/HIGH_LEVEL_DESIGN.md) for the architecture and\n\n[/](/vyakunin/homebound/blob/main/docs/STAGE_1_FOUNDATIONS.md)\n\n`docs/STAGE_1_FOUNDATIONS.md`\n\n[for the roadmap.](/vyakunin/homebound/blob/main/docs/STAGE_2_LLM_FEATURES.md)\n\n`docs/STAGE_2_LLM_FEATURES.md`\n\n```\ngit clone https://github.com/vyakunin/homebound.git\ncd homebound\ncp .env.example .env   # fill in DB creds + optional API keys\ndocker compose up -d\n# Wait for migrations, then visit http://localhost:8080\nbazel build //...\nbazel test //tests:all           # the test gate — run the whole package, not a subset\nbazel run //:runserver           # localhost:8080\n```\n\nTests run **only** through Bazel (`bazel test //tests:all`\n\n) — not a bare `pytest`\n\n.\nThe venv below is for one-off management commands, not the test suite.\n\nManagement commands run via the venv (Bazel sandbox lacks `allauth`\n\n's transitive deps):\n\n```\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements_lock.txt\nDJANGO_SETTINGS_MODULE=django_config.settings PYTHONPATH=\"bazel-bin:.\" \\\n  python manage.py import_posts --source google_plus --input-dir ./takeout/\n```\n\nAfter Phase 3 lands:\n\n```\n{\n  \"mcpServers\": {\n    \"homebound\": {\n      \"command\": \"docker\",\n      \"args\": [\"exec\", \"-i\", \"homebound-web\", \"homebound\", \"mcp\"]\n    }\n  }\n}\n```\n\nTools available: `search_posts`\n\n, `get_post`\n\n, `on_this_day`\n\n, `search_media`\n\n, `get_timeline`\n\n, `ghostwrite`\n\n.\n\n| Key | What it unlocks | Get from |\n|---|---|---|\n`VOYAGE_API_KEY` |\nEmbeddings → semantic search, MCP `search_posts` , bot RAG |\n|\n\n`ANTHROPIC_API_KEY_GHOSTWRITER`\n\n`ghostwrite`\n\ntool (private authoring)[console.anthropic.com](https://console.anthropic.com/)`ANTHROPIC_API_KEY_PUBLICBOT`\n\nWithout keys, semantic search + MCP `ghostwrite`\n\n+ public bot are disabled; the blog and full-text search work without any external service.\n\nThe Docker compose in this repo is the *generic* self-host setup. For your own production deployment (TLS, reverse proxy, backups, monitoring), keep a private overlay repo. The maintainer's overlay is `homebound-platform`\n\n; treat it as a worked example, not a dependency.\n\n[AGPL-3.0](/vyakunin/homebound/blob/main/LICENSE). If you host a modified version of Homebound and serve it over the network, you must make your modifications available to your users.\n\nIssues + PRs welcome. Run `bazel test //tests:all`\n\nbefore submitting; CI runs the same on every PR.", "url": "https://wpnews.pro/news/homebound-self-host-your-social-media-history-search-it-talk-to-it", "canonical_source": "https://github.com/vyakunin/homebound", "published_at": "2026-07-15 16:43:05+00:00", "updated_at": "2026-07-15 16:58:18.865053+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-tools", "ai-products", "ai-infrastructure", "developer-tools"], "entities": ["Homebound", "Django", "Voyage", "pgvector", "Claude Desktop", "Cursor", "Google+", "Facebook"], "alternates": {"html": "https://wpnews.pro/news/homebound-self-host-your-social-media-history-search-it-talk-to-it", "markdown": "https://wpnews.pro/news/homebound-self-host-your-social-media-history-search-it-talk-to-it.md", "text": "https://wpnews.pro/news/homebound-self-host-your-social-media-history-search-it-talk-to-it.txt", "jsonld": "https://wpnews.pro/news/homebound-self-host-your-social-media-history-search-it-talk-to-it.jsonld"}}