mirror of
https://github.com/R0m1k3/podcastic.git
synced 2026-10-18 20:56:20 +02:00
Replace the Node/Express backend with a Rust implementation that keeps the same REST API, MongoDB collections and Redis cache keys, so existing users, subscriptions and progress keep working. - axum + mongodb + redis, bcrypt and HS256 JWT compatible with old data - RSS parsing, iTunes discovery/trending, background sync (1h / 4h) - Docker image now builds a static Rust binary on debian-slim - CI runs cargo tests before publishing the image - compose uses pull_policy: always so a restart picks up the new image Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.4 KiB
2.4 KiB
Podcastic - Unraid Installation Guide
Single container on port 3579 — includes backend, frontend, and serves everything via the Rust backend.
What's Included
This single Docker container includes:
- Backend: Rust (axum) API
- Frontend: React web interface (served by the Rust backend as static files)
- Database: MongoDB (separate container, managed by Compose)
- Cache: Redis (separate container, managed by Compose)
Prerequisites
- Unraid server with Docker support
- Docker Compose (or Unraid's Compose Manager plugin)
Installation
Step 1: Clone Repository
cd /mnt/user/appdata
git clone https://github.com/R0m1k3/podcastic.git
cd podcastic
Step 2: Configure Environment
cp .env.example .env
nano .env
Change at minimum:
JWT_SECRET=your-random-secret-here
Step 3: Build and Start
docker-compose build --no-cache
docker-compose up -d
Step 4: Access
Open: http://your-unraid-ip:3579
Container Architecture
docker-compose services:
├── podcastic (port 3579)
│ ├── Rust (axum) API → /api/*
│ └── React frontend → /* (static files)
├── podcastic-mongodb → internal :27017
└── podcastic-redis → internal :6379
Only port 3579 is exposed externally.
Data Persistence
Add volume mounts to docker-compose.yml for persistence:
mongodb:
volumes:
- /mnt/user/appdata/podcastic/db:/data/db
redis:
volumes:
- /mnt/user/appdata/podcastic/redis:/data
Management Commands
# View logs
docker-compose logs -f app
# Restart
docker-compose restart app
# Stop all
docker-compose down
# Update
git pull
docker-compose build --no-cache
docker-compose up -d
Unraid WebUI Template
Add via Docker > Add Container:
| Field | Value |
|---|---|
| Repository | (build from compose) |
| Port | 3579:3579 |
| Variable: JWT_SECRET | your-secret |
| Variable: MONGODB_URI | mongodb://podcastic-mongodb:27017/podcastic |
| Variable: REDIS_URL | redis://podcastic-redis:6379 |
Or use Compose Manager plugin with the docker-compose.yml from this repo.
Troubleshooting
# Check container status
docker-compose ps
# Check health endpoint
curl http://localhost:3579/health
# Check API
curl http://localhost:3579/api/health
Last Updated: 2026-04-16