A podcast manager with cats here and there, inspired by Podgrab.
I just wanted to have some fun with Vue.js 3 and Vuetify 3 while learning some GoLang skill (still very basic, tho), that's why I started this project.
Client: Vue.js, Vuetify, howler.js, marked
Server: GoLang, gin-gonic, gorm, viper
Database: SQLite
- ✅ Play podcast episodes (o rly?)
- ✅ Multi-user support
- ✅ Import podcast RSS feeds and store them in an SQLite database
- ✅ Search for and import new podcasts from the iTunes API
- ✅ Cron job checks for new episodes every 5 minutes
- ✅ In-app notifications for the cron job
- ✅ Search for imported podcasts from anywhere in the app by pressing
Ctrl+K
, with fuzzy search (using fuse.js) - ✅ Mark episodes as played or unplayed
- ✅ Mark episodes as favorites
- ✅ Resume listening feature
- Play entire podcasts
- "Listen Later" playlist
- Offline listening capability
- Categorize podcasts
- Import/Export using OPML
- Mobile UI design
- Light Theme
- Configurable interval for the new episode cron job
- Email notifications for the cron job with configurable SMTP server
- Basic user settings page
To deploy this project you need Docker installed on your server.
Fastest way to get started with Podcats is to deploy it via docker-compose file, just download it from the repository or copy the following snippet:
version: "3.8"
services:
podcats:
image: j1mm0/podcats:latest
container_name: podcats
restart: always
ports:
- 8000:8000
volumes:
- ${PWD}/podcats-db/:/go/src/podcats/db
If you prefer to avoid docker-compose, you can retrieve the latest Podcats docker image with the following command:
docker pull j1mm0/podcats:latest
Otherwise, if you want the very last code version, with higher probability of quirks, then clone the repository:
git clone https://github.com/c4mbr0nn3/podcats.git
Go to the project directory:
cd podcats
And finally build the docker image using the All-In-One Dockerfile:
docker build --rm -f aio.Dockerfile --tag j1mm0/podcats:latest .
Once you have the image in your server, just run:
docker container run -d -p 8000:8000 -v ${PWD}/podcats-db/:/go/src/podcats/db --name podcats j1mm0/podcats:latest
Default credentials are:
- Username: root
- Password: changeme
It is going to ask you to change the password on the first login.