{"id":50341466,"url":"https://github.com/buguno/gridlib","last_synced_at":"2026-05-29T17:30:38.542Z","repository":{"id":331702305,"uuid":"1131441240","full_name":"buguno/gridlib","owner":"buguno","description":"Pharos ia a portable offline knowledge lighthouse. A lightweight Raspberry Pi Zero W hotspot powered by Kiwix to provide access to Wikipedia and digital libraries in areas without internet connectivity. Bringing the Great Library of Alexandria to the palm of your hand.","archived":false,"fork":false,"pushed_at":"2026-04-21T04:06:40.000Z","size":204,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-15T20:39:11.688Z","etag":null,"topics":["kiwix","raspberry-pi"],"latest_commit_sha":null,"homepage":"","language":"Vue","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/buguno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-10T02:47:33.000Z","updated_at":"2026-04-21T04:06:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/buguno/gridlib","commit_stats":null,"previous_names":["buguno/pharos","buguno/gridlib"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/buguno/gridlib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buguno%2Fgridlib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buguno%2Fgridlib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buguno%2Fgridlib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buguno%2Fgridlib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/buguno","download_url":"https://codeload.github.com/buguno/gridlib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buguno%2Fgridlib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33664259,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["kiwix","raspberry-pi"],"created_at":"2026-05-29T17:30:37.269Z","updated_at":"2026-05-29T17:30:38.536Z","avatar_url":"https://github.com/buguno.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pharos\n\nA portable offline knowledge lighthouse. A lightweight Raspberry Pi Zero W hotspot powered by Kiwix to deliver Wikipedia and digital libraries to areas without internet connectivity—bringing the Great Library of Alexandria to the palm of your hand.\n\n## About the Name\n\n**Pharos** was the famous lighthouse of Alexandria, one of the Seven Wonders of the Ancient World, built to guide ships safely to harbor. Just as the original Pharos illuminated the path for seafarers, this project serves as a beacon of knowledge, illuminating minds in connectivity-challenged regions by providing offline access to humanity's collective knowledge through Wikipedia and other digital libraries.\n\n## Overview\n\nPharos transforms a Raspberry Pi Zero 2 W into a self-contained wireless access point that serves offline content via Kiwix. Connect to the hotspot, open your browser, and access Wikipedia, technical documentation, and educational resources—all without an internet connection.\n\n### Key Features\n\n- **Portable \u0026 Battery-Friendly**: Designed for the Raspberry Pi Zero W with minimal power consumption\n- **Offline-First**: Complete offline access to Wikipedia and other ZIM-based libraries\n- **Easy Setup**: Automated installation script handles everything\n- **Expandable**: Add more content libraries (ZIM files) as needed\n- **Hotspot-Ready**: Built-in wireless access point configuration\n\n## Prerequisites\n\nTo clone and use this repository, you'll need:\n\n- **Git** installed on your system\n- A **Raspberry Pi Zero W** (or compatible model) running Debian/Raspberry Pi OS\n- An **SD card** (512GB recommended) with the OS installed\n- **Root access** (the setup script must be run with `sudo`)\n\n## Installation\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/buguno/pharos\ncd pharos\n```\n\n### 2. Run the Setup Script\n\n```bash\nsudo ./setup.sh\n```\n\nThe script will:\n\n1. **Update package lists** (`apt update`)\n2. **Install required packages**:\n   - `kiwix-tools` (provides the `kiwix-serve` binary)\n   - `ca-certificates` (for secure HTTPS downloads)\n   - `curl` (installed on-demand if needed for ZIM downloads)\n3. **Create the ZIM directory** at `/srv/kiwix/content` (configurable via `ZIM_DIR` environment variable)\n4. **Set up systemd service** (`kiwix-serve.service`) for automatic startup and management\n5. **Prompt for optional ZIM downloads**:\n   - Bitcoin wiki ZIM (`bitcoin_en_all_maxi_2021-03.zim`)\n   - iFixit ZIM (`ifixit_en_all_2025-12.zim`)\n6. **Start the Kiwix service** if ZIM files are present\n\n### 3. Configure Options (Optional)\n\nYou can customize the setup using environment variables:\n\n```bash\nsudo KIWIX_PORT=8080 ZIM_DIR=/mnt/storage/kiwix ./setup.sh\n```\n\n- `KIWIX_PORT`: Port for the Kiwix web server (default: `8080`)\n- `ZIM_DIR`: Directory where ZIM files are stored (default: `/srv/kiwix/content`)\n\n## How It Works\n\n### Architecture\n\n```bash\n┌─────────────────────────────────────┐\n│     Raspberry Pi Zero W             │\n│                                     │\n│  ┌───────────────────────────────┐  │\n│  │  Kiwix Server (Port 8080)     │  │\n│  │  Serving ZIM files            │  │\n│  └───────────────────────────────┘  │\n│           ▲                         │\n│           │                         │\n│  ┌───────────────────────────────┐  │\n│  │  Hotspot (Wi-Fi AP)           │  │\n│  │  SSID: PHAROS                 │  │\n│  └───────────────────────────────┘  │\n│           │                         │\n└───────────┼─────────────────────────┘\n            │\n            ▼\n    ┌───────────────┐\n    │   Client      │\n    │  (Phone/PC)   │\n    └───────────────┘\n```\n\n### Components\n\n1. **Kiwix Server** (`kiwix-serve`): Serves offline content from ZIM files via HTTP\n2. **Systemd Service**: Manages the Kiwix process, ensures it starts on boot, and handles restarts\n3. **ZIM Files**: Compressed archive format containing offline Wikipedia/digital library content\n4. **Hotspot** (future): Wireless access point configuration (to be implemented)\n\n### Service Management\n\nThe Kiwix server runs as a systemd service:\n\n```bash\n# Check status\nsudo systemctl status kiwix-serve.service\n\n# View logs\nsudo journalctl -u kiwix-serve.service -f\n\n# Restart service\nsudo systemctl restart kiwix-serve.service\n\n# Stop service\nsudo systemctl stop kiwix-serve.service\n```\n\n### Accessing Content\n\nOnce the service is running, connect to the hotspot and navigate to:\n\n```bash\nhttp://10.42.0.1:8080\n```\n\nOr, if accessing from the Pi itself:\n\n```bash\nhttp://localhost:8080\n```\n\n## Adding More Content\n\n### Download ZIM Files\n\nYou can download additional ZIM files from the [Kiwix ZIM library](https://download.kiwix.org/zim/):\n\n1. Download the `.zim` file to your computer\n2. Transfer it to the Pi (via `scp`, USB drive, or other method)\n3. Place it in the ZIM directory (default: `/srv/kiwix/content`)\n4. Restart the service:\n\n```bash\nsudo systemctl restart kiwix-serve.service\n```\n\n### Available ZIM Libraries\n\nPopular ZIM files include:\n\n- **Wikipedia** (various languages and sizes)\n- **Wikibooks**, **Wiktionary**, **Wikiquote**\n- **Project Gutenberg** (free e-books)\n- **Stack Overflow** (programming Q\u0026A)\n- **Khan Academy** (educational content)\n- And many more at [download.kiwix.org](https://download.kiwix.org/zim/)\n\n## Troubleshooting\n\n### Service Not Starting\n\nIf `kiwix-serve.service` fails to start:\n\n1. Check if ZIM files exist:\n\n   ```bash\n   sudo ls -lah /srv/kiwix/content\n   ```\n\n2. Check service logs:\n\n   ```bash\n   sudo journalctl -u kiwix-serve.service -n 50 --no-pager\n   ```\n\n3. Test the kiwix-serve command manually:\n\n   ```bash\n   sudo /usr/bin/kiwix-serve -p 8080 /srv/kiwix/content/*.zim\n   ```\n\n4. Verify the service configuration:\n\n   ```bash\n   sudo systemctl cat kiwix-serve.service\n   sudo cat /etc/default/kiwix-serve\n   ```\n\n### No ZIM Files Found\n\nThe service will not start if no `.zim` files are present. Download at least one ZIM file using the setup script prompts or manually.\n\n### Port Already in Use\n\nIf port `8080` is already in use, set a different port:\n\n```bash\nsudo KIWIX_PORT=9090 ./setup.sh\n```\n\n## Future Enhancements\n\n- [ ] Hotspot/access point configuration (internal Wi-Fi + USB dongle for WAN)\n- [ ] Web-based management interface\n- [ ] Automatic ZIM updates\n- [ ] Support for multiple languages\n- [ ] Battery monitoring and power management\n- [ ] Docker containerization option\n\n## License\n\nLicensed under the MIT License. See [`LICENSE`](LICENSE) for more details.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## Acknowledgments\n\n- [Kiwix](https://www.kiwix.org/) for the offline content serving technology\n- Wikipedia and all content contributors for making knowledge freely available\n- The Raspberry Pi Foundation for affordable computing hardware\n\n---\n\n**Light the way. Share knowledge. Build bridges.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuguno%2Fgridlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuguno%2Fgridlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuguno%2Fgridlib/lists"}