first commit
This commit is contained in:
86
README.md
Normal file
86
README.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# Web News
|
||||
|
||||
Web News is a privacy-focused, offline-first RSS reader and full-text extractor. It combines a Svelte-based reactive frontend with a high-performance Go-based backend, available as a standalone web server or a native desktop application (Wails).
|
||||
|
||||
## Features
|
||||
|
||||
- **Privacy-First**: No tracking, no accounts, no clouds. Your data stays in your browser.
|
||||
- **Offline-First**: Articles, feeds, and settings are stored locally in IndexedDB.
|
||||
- **Desktop & Web**: Run as a single Go binary or a native app via Wails.
|
||||
- **Full-Text Extraction**: One-click "Read Mode" that pulls clean content from any URL.
|
||||
- **Global Search**: Instant full-text search across your entire reading history.
|
||||
- **Vim-like Shortcuts**: Navigate with `j`/`k`, save with `s`, and manage feeds without a mouse.
|
||||
- **Content Filtering**: "Mute Filters" to automatically hide articles based on keywords.
|
||||
- **Smart Feed**: Personalized ranking that learns from your reading habits locally.
|
||||
- **Activity Heatmap**: Visualize your reading trends over the last 30 days.
|
||||
- **Bulk Actions**: Multi-select mode to quickly manage large volumes of articles.
|
||||
- **Customizable Reader**: Adjust font (Serif/Sans), size, and line height for a premium reading experience.
|
||||
|
||||
## Privacy and Security
|
||||
|
||||
Web News follows a "zero-knowledge" philosophy:
|
||||
|
||||
1. **Data Sovereignty**: Your reading list and history never leave your device.
|
||||
2. **Anonymous Access**: 16-digit account numbers for server access.
|
||||
3. **Local Cache**: Full-text content is cached locally in IndexedDB for offline reading and instant access.
|
||||
4. **Hardened Backend**: Built-in bot blocking, rate limiting, and secure token generation.
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Prerequisites
|
||||
- Go 1.21+
|
||||
- Node.js 18+
|
||||
- [Wails CLI](https://wails.io/docs/gettingstarted/installation) (for desktop builds)
|
||||
|
||||
### Build & Run (Web Server)
|
||||
1. **Build the binary**:
|
||||
```bash
|
||||
make build
|
||||
```
|
||||
2. **Run it**:
|
||||
```bash
|
||||
./bin/web-news
|
||||
```
|
||||
|
||||
### Build & Run (Desktop App)
|
||||
1. **Launch Dev Mode**:
|
||||
```bash
|
||||
make desktop-dev
|
||||
```
|
||||
2. **Build for current platform**:
|
||||
```bash
|
||||
make desktop-build
|
||||
```
|
||||
3. **Cross-Compile**:
|
||||
```bash
|
||||
make desktop-windows # Build for Windows
|
||||
make desktop-darwin # Build for macOS (Universal)
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### Server Flags
|
||||
- `--auth-mode`: `none` (default), `token`, or `multi`.
|
||||
- `--allow-registration`: Allow generating new account numbers (default: true).
|
||||
- `--auth-file`: Path to the account storage (default: `accounts.json`).
|
||||
- `--port`: Port to listen on (default: `8080`).
|
||||
|
||||
### Keyboard Shortcuts (Default)
|
||||
- `j` / `k`: Next / Previous article
|
||||
- `r`: Mark as read
|
||||
- `s`: Toggle save
|
||||
- `x`: Toggle select mode
|
||||
- `o`: Open original URL
|
||||
|
||||
## Development
|
||||
|
||||
- **Dev Server**: `make dev` (Starts Go backend + Vite frontend)
|
||||
- **Format & Lint**: `npm run format && npm run lint`
|
||||
- **Clean Artifacts**: `make clean`
|
||||
|
||||
## License
|
||||
|
||||
MIT - See [LICENSE](LICENSE) for details.
|
||||
|
||||
---
|
||||
Created by [Quad4](https://quad4.io)
|
||||
Reference in New Issue
Block a user