Files
podcastic/UNRAID_INSTALL.md
T
MichaelandClaude Haiku 4.5 1822ab1afe fix: single container without nginx — Express serves frontend
- 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>
2026-04-16 10:43:06 +02:00

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