Files
jbrechtel 0861f7510b
Build and Deploy / build-and-deploy (push) Failing after 13s
Per-user podcasts, file uploads, RSS images, Docker support
- Each user owns a podcast: podcast title/author/image on users table
- Episodes scoped by user_id with context-based auth
- Audio file upload replaces URL linking, served from /uploads/
- Podcast and per-episode images with itunes:image in RSS
- RSS per-user via ?user=N, dashboard shows user-specific feed URL
- Settings form for title + author + image per user
- Docker multi-stage build (golang:1.25-alpine / alpine:3.21)
- Removed PODSTALK_TITLE/AUTHOR env vars
2026-07-08 09:20:19 -04:00

51 lines
1.4 KiB
Markdown

# Podstalk
Podstalk is a bare-bones podcast hosting platform. It hosts a single podcast —
allowing a user to create and manage episodes and serve an RSS feed for
subscribers.
## Quick Start
```sh
# Build the image
docker build -t podstalk .
# Run with persistent storage and your podcast's public URL
docker run -d \
--name podstalk \
-p 8080:8080 \
-v podstalk-data:/data \
-v podstalk-uploads:/uploads \
-e PODSTALK_LINK=https://podcast.example.com \
podstalk
On first launch, visit `http://localhost:8080/signup` to create your account.
## Environment Variables
| Variable | Default | Description |
|---|---|---|
| `PORT` | `8080` | HTTP listen port |
| `PODSTALK_DB` | `podstalk.db` | SQLite database path |
| `PODSTALK_UPLOAD_DIR` | `uploads` | Audio/image file storage |
| `PODSTALK_LINK` | `http://localhost:8080` | Public URL (used in RSS feed) |
Podcast details (title, author, image) are managed from the dashboard after signing in.
## RSS Feed
The RSS 2.0 feed (with iTunes extensions) is available at `/rss`. Each user
gets their own feed. By default `/rss` serves the first user's podcast; pass
`?user=N` to select a specific user's feed.
The feed includes `<enclosure>`, `<itunes:image>`, `<guid>`, `<pubDate>`, and
`<itunes:author>` for each episode.
## Running Without Docker
```sh
go run .
# or
CGO_ENABLED=0 go build -o podstalk . && ./podstalk
```