Take back your feed.
Tuvix is a modern RSS aggregator that helps you follow all your favorite blogs, podcasts, and news sources in one place. It's not a social network, it's not an algorithmic feed, it's just old-fashioned RSS.
tuvix_promo.mp4
Head over to tuvix.app to create your free account and start reading!
Immediately begin subscribing to your favorite feeds. Remember, you can always export your data to OPML and migrate to your own self-hosted instance, or any other RSS reader.
Install the Tuvix Tricorder Extension for Chrome and Firefox to easily discover and subscribe to RSS feeds on any website with one click.
Tuvix supports two deployment methods:
- π³ Docker Compose - Self-hosted with containers
- βοΈ Cloudflare - Serverless edge deployment (Workers + Pages)
See the Deployment Guide for detailed instructions.
π¦ Docker Images Coming Soon: Pre-built container images will be published to a container registry once the project reaches a stable release. For now, use the Dockerfiles and docker-compose scripts included in the repository.
β οΈ Use a Release: Themainbranch contains active development and is not guaranteed to be stable. Always use the latest release for self-hosting.
Clone the repository and checkout the latest release:
git clone https://github.com/TechSquidTV/Tuvix-RSS.git
cd Tuvix-RSS
# Checkout the latest release tag (v*)
git checkout $(git tag -l 'v*' | sort -V | tail -n1)Configure and run:
cp env.example .env
# Edit .env and configure:
# 1. BETTER_AUTH_SECRET (generate: openssl rand -base64 32)
# 2. ADMIN_USERNAME, ADMIN_EMAIL, ADMIN_PASSWORD (for your admin user)
docker compose up -dVisit http://localhost:5173 and log in with your admin credentials.
Prerequisites: Node.js 20+ (with pnpm), SQLite3
pnpm install
cp env.example .env
# Edit .env and set BETTER_AUTH_SECRET, ADMIN_* credentials
pnpm run db:migrate
pnpm run devApp: http://localhost:5173 | API: http://localhost:3001
Tuvix uses a trunk-based development workflow:
main- Protected branch, all development happens here- Feature branches - Created from
main, merged back via PR
Development Process:
- Create feature branches from
main:git checkout -b feature/my-feature - Open PRs targeting
mainfor review and CI checks - After approval, changes merge to
mainand auto-deploy to staging - Production deployments happen via manual promotion or release tags
Required:
BETTER_AUTH_SECRET- Generate with:openssl rand -base64 32ADMIN_USERNAME,ADMIN_EMAIL,ADMIN_PASSWORD- Your admin credentials
Optional: DATABASE_PATH, PORT, CORS_ORIGIN, ALLOW_FIRST_USER_ADMIN
See env.example for all options and Deployment Guide for details.
- Documentation Index - Complete guide
- Deployment Guide - Docker & Cloudflare Workers
- tRPC API Architecture - API reference
- Project Integration - Frontend-backend guide
We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.
- Fork the repository
- Create your feature branch from
main:git checkout -b feature/amazing-feature - Make your changes and test them
- Commit using conventional commits:
git commit -m 'feat: add amazing feature' - Push to your fork:
git push origin feature/amazing-feature - Open a Pull Request targeting the
mainbranch
- Read our Contributing Guide for detailed guidelines
- Check out our Code of Conduct
- Browse existing issues or create a new one
- Join our community discussions
New to the project? Look for issues tagged with good first issue to get started!
git clone https://github.com/YOUR_USERNAME/Tuvix-RSS.git
cd Tuvix-RSS
pnpm install
cp env.example .env
# Edit .env and configure BETTER_AUTH_SECRET and ADMIN_* credentials
pnpm run db:migrate
pnpm run devSee the Contributing Guide and developer documentation for more details.
AGPLv3 - see the LICENSE file for details.
Made with β€οΈ by the TechSquidTV community