PinePods

PinePods is a Rust-based podcast management system that supports multiple users and relies on a central database with clients to connect to it. It's browser-based, allowing your podcasts and settings to follow you from device to device due to everything being stored on the server. PinePods works on mobile devices and can also sync with a Nextcloud server, enabling you to use external apps like AntennaPod.

Getting Started

PinePods provides a comprehensive solution for managing podcasts with multi-user support. It offers features like playing, downloading, and keeping track of podcasts. Users can search for new podcasts using The Podcast Index or iTunes, and the UI provides a modern interface to browse through shows and episodes. PinePods saves everything into a MySQL database, though alternative database support is on the roadmap.

Features

  • Multi-user support with simple user management.
  • Modern UI for browsing podcasts and episodes.
  • Search for new podcasts using The Podcast Index or iTunes.
  • Synchronize podcasts with Nextcloud.
  • Fully self-hosted and open-source.
  • Dockerized for easy deployment.
  • Various themes to choose from.

Try it out! ⚡

A publicly accessible instance of PinePods for testing is available at try.pinepods.online. Create an account to test the features before setting up your own server.

Installation 🏃

Server Installation 💾

It is highly recommended to run the server using Docker Compose. Below is a template compose file for setting up PinePods with MariaDB:

version: "3"
services:
  db:
    image: mariadb:latest
    command: --wait_timeout=1800
    environment:
      MYSQL_TCP_PORT: 3306
      MYSQL_ROOT_PASSWORD: myS3curepass
      MYSQL_DATABASE: pinepods_database
      MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
      MYSQL_CHARACTER_SET_SERVER: utf8mb4
      MYSQL_INIT_CONNECT: "SET @@GLOBAL.max_allowed_packet=64*1024*1024;"
    volumes:
      - /home/user/pinepods/sql:/var/lib/mysql
    ports:
      - "3306:3306"
    restart: always
  pinepods:
    image: madeofpendletonwool/pinepods:latest
    ports:
      - "8040:8040"
    environment:
      SEARCH_API_URL: "https://search.pinepods.online/api/search"
      USERNAME: myadminuser01
      PASSWORD: myS3curepass
      FULLNAME: Pinepods Admin
      EMAIL: [email protected]
      DB_TYPE: mariadb
      DB_HOST: db
      DB_PORT: 3306
      DB_USER: root
      DB_PASSWORD: myS3curepass
      DB_NAME: pinepods_database
      DEBUG_MODE: False
    volumes:
      - /home/user/pinepods/downloads:/opt/pinepods/downloads
      - /home/user/pinepods/backups:/opt/pinepods/backups
    depends_on:
      - db

Client Installation 💻

PinePods clients are available for various platforms. Detailed instructions for each platform can be found below.

Linux Client Install

Download the latest Linux release from the GitHub releases page. For non-Debian-based distributions, use the AppImage:

sudo chmod +x pinepods.appimage

Windows Client Install

Download the .exe or .msi file from the GitHub releases page. The .exe file provides an installer, while the .msi file runs a portable version of the app.

Mac Client Install

Download the .dmg or pinepods_mac file from the GitHub releases page. The .dmg file installs PinePods into the applications folder, while the pinepods_mac file runs a portable version.

Android and iOS Install

Currently, the web app works great on phones. For Android, you can use AntennaPod with Nextcloud sync to manage your podcasts.

PinePods Firewood

A CLI-only client is in development, which can be used to remotely share your podcasts. Stay tuned for updates on PinePods Firewood.

Platform Availability

PinePods aims to be available on Windows, Linux, Mac, Android, and iOS. ARM devices, including Raspberry Pis, are also supported. For ARM devices, a 64-bit OS is required.

ToDo

  • Organize downloads by podcast
  • Add a "download entire podcast" button
  • Restore server via GUI
  • Add OAuth login options
  • Ensure descriptions appear when searching iTunes podcasts
  • Add guest user functionality
  • Implement installable PWA
  • Add more searching indexes like Fyyd
  • Add timestamp features
  • Offline mode for local playback
  • Client sharing for network playback
  • Subscription filtering options
  • YouTube subscriptions for audio-only playback
  • Add how-to guides
  • Highlight the current page
  • Implement podcast ad blocking
  • Improve podcast saving with tags
  • Suggest podcasts based on current subscriptions
  • Better queue interaction
  • Implement a rating system
  • Implement a sharing system
  • Add background image options
  • Implement guest parsing and search features
  • Allow reorganization of the queue via drag-and-drop
  • Support chapter images
  • Link sharing for podcast episodes
  • Enable side loading of web audio
  • Custom podcast start positions

PinePods offers a comprehensive, multi-user podcast management system that's easy to deploy and use across various platforms. Get started today and enjoy seamless podcast management!

Similar Projects