by LeslieLeung
A self-hosted RSS reader and personal knowledge management tool.
# Add to your Claude Code skills
git clone https://github.com/LeslieLeung/glean[!IMPORTANT] Join our Discord to stay updated on the latest developments and get support.
This project is still in development and is not ready for production use.
A self-hosted RSS reader and personal knowledge management tool.
Glean (拾灵) helps information-heavy consumers efficiently manage their reading through intelligent RSS aggregation.

No comments yet. Be the first to share your thoughts!
# Download docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/LeslieLeung/glean/main/docker-compose.yml -o docker-compose.yml
# Start Glean (full deployment with Milvus)
docker compose up -d
# Access:
# - Web App: http://localhost
# - Admin Dashboard: http://localhost:3001 (default: admin/Admin123!)
Default Admin Account: An admin account is automatically created with:
adminAdmin123!Lite Deployment (without Milvus, if you don't need Phase 3 features):
# Download lite version
curl -fsSL https://raw.githubusercontent.com/LeslieLeung/glean/main/docker-compose.lite.yml -o docker-compose.yml
# Start Glean
docker compose up -d
# Admin Dashboard: http://localhost:3001 (default: admin/Admin123!)
To use custom admin credentials instead of the defaults, create a .env file before starting:
# Set custom admin credentials in .env
cat > .env << EOF
ADMIN_USERNAME=admin
ADMIN_PASSWORD=YourSecurePassword123!
SECRET_KEY=$(openssl rand -base64 32)
EOF
# Start services
docker compose up -d
To disable auto-creation and create admin manually:
# Disable auto-creation in .env
echo "CREATE_ADMIN=false" >> .env
# Start services
docker compose up -d
# Create admin manually
docker exec -it glean-backend /app/scripts/create-admin-docker.sh
For production, customize your deployment with environment variables. Download the example file:
curl -fsSL https://raw.githubusercontent.com/LeslieLeung/glean/main/.env.example -o .env
Important settings to change:
| Variable | Description | Default |
| ------------------- | -------------------- | ----------------------------------- |
| SECRET_KEY | JWT signing key | Must change in production! |
| POSTGRES_PASSWORD | Database password | glean (Change in production!) |
| ADMIN_PASSWORD | Admin password | Admin123! (Change!) |
| WEB_PORT | Web interface port | 80 |
| ADMIN_PORT | Admin dashboard port | 3001 |
| CREATE_ADMIN | Auto-create admin | true (set false to disable) |
For all configuration options, see .env.example.
Pre-built images are available on GitHub Container Registry:
ghcr.io/leslieleung/glean-backend:latest - API server & workerghcr.io/leslieleung/glean-web:latest - Web frontendghcr.io/leslieleung/glean-admin:latest - Admin dashboardSupported architectures: linux/amd64, linux/arm64
Want to test upcoming features? Use pre-release versions (alpha/beta/rc):
Method 1: Using environment variable (recommended)
# Set the IMAGE_TAG in .env file
echo "IMAGE_TAG=v0.3.0-alpha.1" >> .env
# Or export it directly
export IMAGE_TAG=v0.3.0-alpha.1
# Start with pre-release images
docker compose up -d
Method 2: Inline environment variable
IMAGE_TAG=v0.3.0-alpha.1 docker compose up -d
Note: Pre-release versions are for testing only. They won't trigger auto-updates for Electron apps and are not recommended for production use.
See available pre-release versions on the Releases page.
The default deployment includes all services (full version):
Lite deployment (without Milvus) is also available using docker-compose.lite.yml.
For detailed deployment instructions and configuration, see DEPLOY.md.
Backend:
Frontend:
See DEVELOPMENT.md for complete development setup instructions.
Quick start:
# Clone and setup
git clone https://github.com/LeslieLeung/glean.git
cd glean
npm install
# Start infrastructure
make up
# Initialize database (first time only)
make db-upgrade
# Install pre-commit hooks (optional but recommended)
make pre-commit-install
# Start all services
make dev-all
# Access:
# - Web: http://localhost:3000
# - Admin: http://localhost:3001
# - API Docs: http://localhost:8000/api/docs
The project uses pre-commit hooks to ensure code quality:
# Install hooks (one-time setup)
make pre-commit-install
# Run hooks manually on all files
make pre-commit-run
# Uninstall hooks (if needed)
make pre-commit-uninstall
Hooks automatically run on commit and check:
| Phase | Status | Features | | ------------------------- | --------- | -------------------------------------------------------------- | | Phase 1: MVP | ✅ Done | User system, RSS subscription, reader, admin dashboard | | Phase 2: Organization | ✅ Done | Bookmarks, folders, tags, read later | | Phase 3: Preferences | 🚧 WIP | Embedding pipeline, preference learning, smart recommendations | | Phase 4: Rules | 📋 Planned | Rule engine, Jinja2 conditions, automated actions | | Phase 5: AI | 📋 Planned | AI summaries, auto-tagging, keyword extraction, BYOK support | | Phase 6: Extensions | 📋 Planned | Chrome extension, PWA, web snapshots |
See Product Requirements for detailed feature specifications.
Contributions are welcome! Please read our Development Guide first.
This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.