mirror of
https://github.com/R0m1k3/podcastic.git
synced 2026-10-11 17:26:20 +02:00
- Remove separate backend/ and frontend/ Dockerfiles - Add root Dockerfile (3-stage: frontend build → backend build → runtime) - Frontend static files served by Express from /public - Simplify docker-compose to 3 services: mongodb, redis, app (port 3579) - Fix vite proxy not to strip /api prefix from paths - Default API URL to relative /api instead of hardcoded localhost Co-Authored-By: Claude Haiku 4.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 Express.
What's Included
This single Docker container includes:
- Backend: Node.js + Express.js API
- Frontend: React web interface (served by Express 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)
│ ├── Express.js 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