https://github.com/marcusleg/briefing-officer
News reader with AI features
https://github.com/marcusleg/briefing-officer
ai ai-assistant atom-feed news rss
Last synced: about 1 month ago
JSON representation
News reader with AI features
- Host: GitHub
- URL: https://github.com/marcusleg/briefing-officer
- Owner: marcusleg
- License: mit
- Created: 2024-08-21T07:15:50.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-09-29T13:53:22.000Z (9 months ago)
- Last Synced: 2025-09-29T15:32:50.314Z (9 months ago)
- Topics: ai, ai-assistant, atom-feed, news, rss
- Language: TypeScript
- Homepage:
- Size: 4.1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Briefing Officer
AI summaries for your favorite news feeds.

## Features
- News reader with RSS and Atom support.
- Three types of AI summaries:
- Short descriptions that summarize the article instead of just teasing it.
- A bullet-point list of the key points and takeaways.
- Executive summary, a detailed summary containing all the original
information but very condensed.
- Save articles for later using the "Read Later" and "Star" feature.
- Support for multiple AI providers (OpenAI, Azure OpenAI, Anthropic, and any
OpenAI-compatible API).
- Multi-user support.
- Dark mode.
- Mobile friendly design.
## Getting Started
```bash
docker run -it --rm \
-e DATABASE_URL=file:/data/database.sqlite \
-e AZURE_OPENAI_RESOURCE_NAME=oai-example-dev-001 \
-e AZURE_OPENAI_API_KEY=lorem-ipsum \
-e BETTER_AUTH_SECRET=something-random \
-e BETTER_AUTH_URL=http://localhost:3000 \
-e CRON_API_TOKEN=something-else-random \
-p 3000:3000 \
ghcr.io/marcusleg/briefing-officer
```
## Configuration
### Application
| Environment Variable | Description |
| -------------------- | ------------------------------------------------ |
| `DATABASE_URL` | URL to the SQLite database. |
| `CRON_API_TOKEN` | Token required to call the `/api/cron` endpoint. |
### AI Providers
One provider must be configured.
| Environment Variable | Description |
| ---------------------------- | ------------------------------------------------------------------------------------------------ |
| `AZURE_OPENAI_API_KEY` | Azure OpenAI API key. |
| `AZURE_OPENAI_MODEL` | Azure OpenAI model name. |
| `AZURE_OPENAI_RESOURCE_NAME` | Azure OpenAI resource name. |
| `ANTHROPIC_API_KEY` | Anthropic API key. |
| `ANTHROPIC_MODEL` | Anthropic model name. |
| `OPENAI_BASE_URL` | Optional base URL for OpenAI-compatible API. Defaults to `https://api.openai.com/v1` if not set. |
| `OPENAI_API_KEY` | API key for OpenAI or OpenAI-compatible provider. |
| `OPENAI_MODEL` | Model name for OpenAI or OpenAI-compatible provider. |
### Authentication
| Environment Variable | Description | Default |
| ---------------------------------------------- | -------------------------------------------- | ---------------- |
| `AUTH_SECRET` | Secret value used for encryption and hashing | |
| `AUTH_SELF_REGISTRATION_ENABLED` | Allow anyone to create a new account | `false` |
| `BASE_URL` | Base URL of Briefing Officer. | |
| `NEXT_PUBLIC_AUTH_GENERIC_OAUTH_ENABLE` | Enable generic OAuth provider | `false` |
| `NEXT_PUBLIC_AUTH_GENERIC_OAUTH_PROVIDER_NAME` | OAuth provider name | `Single Sign-On` |
| `AUTH_GENERIC_OAUTH_CLIENT_ID` | OAuth client ID | |
| `AUTH_GENERIC_OAUTH_CLIENT_SECRET` | OAuth client secret | |
| `AUTH_GENERIC_OAUTH_DISCOVERY_URL` | OAuth discovery URL | |
| `AUTH_GENERIC_OAUTH_PKCE_ENABLED` | Enable PKCE for OAuth flow | `false` |