selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

mygpo logo

Self-host mygpo

2.11

Podcast synchronization web service powering gpodder.net

BetaOpen SourceAGPL-3.0
Updated10 months ago
LanguagePython
Setup difficultyAdvanced
Stars
310
Port
8000 (development web server)
Requires
PostgreSQL, Redis
mygpo screenshot 1

What is mygpo?

mygpo is the backend web service powering gpodder.net, a podcast synchronization platform that lets users manage podcast subscriptions, track playback progress, discover new content, and sync across multiple devices and podcast clients. Built with Django, it uses PostgreSQL and Redis, and provides a REST API (v2.11) for client integration with apps like gPodder, AntennaPod, and Clementine. The service can be self-hosted via documented manual installation, with Docker Compose and Kubernetes support in development via open pull requests. The project is licensed under AGPL-3.0 and operated as a hobby project relying on donations.

Should you self-host mygpo?

mygpo scores 46/100 on selfhost.directory (how scoring works) and ranks #8 of 18 in Podcasts. It has 310 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. It is AGPL-3.0-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is Pinepods (61/100, 1 032 stars). It scores higher overall, so compare the two before you pick. See mygpo vs Pinepods side by side.

Features

  • Backup subscriptions
  • Feed downloader
  • Multi-Client Support
  • Playback progress tracking
  • Podcast directory
  • Podcast discovery
  • Podcast lists
  • Podcast Search
  • Podcast subscription synchronization
  • Publisher Analytics
  • REST API
  • Share content
  • Toplist
  • Web Interface

mygpo README

How to configure mygpo

  • ADMINSDjango ADMINS setting

    Django ADMINS setting

  • BROKER_POOL_LIMITCelery broker pool limit

    Celery broker pool limit

  • BROKER_URLCelery broker URL

    Celery broker URL

  • CACHE_BACKENDDjango cache backend

    Django cache backend

  • CACHE_LOCATIONLocation of the cache

    Location of the cache

  • DATABASE_URLDatabase connection string

    Database connection string

  • DEBUGDebug flag

    Debug flag

  • DEFAULT_BASE_URLBase URL for creating URLs

    Base URL for creating URLs

  • DEFAULT_FROM_EMAILFrom address for outgoing emails

    From address for outgoing emails

  • DIRECTORY_EXCLUDED_TAGSTags excluded from podcast directory

    Tags excluded from podcast directory

  • ELASTICSEARCH_SERVERElasticsearch server host:port

    Elasticsearch server host:port

  • ELASTICSEARCH_TIMEOUTTimeout for Elasticsearch queries

    Timeout for Elasticsearch queries

  • EMAIL_BACKENDDjango email backend

    Django email backend

  • FLICKR_API_KEYFlickr API key

    Flickr API key

  • INTERNAL_IPSInternal IPs for development

    Internal IPs for development

  • MAINTENANCEMaintenance flag

    Maintenance flag

  • MEDIA_ROOTMedia files root directory

    Media files root directory

  • PODCAST_AD_IDDatabase ID of advertising podcast

    Database ID of advertising podcast

  • QUERY_LENGTH_CUTOFFMaximum search query length

    Maximum search query length

  • SEARCH_CUTOFFMinimum search rank

    Minimum search rank

  • SECRET_KEYDjango secret key

    Django secret key

  • SOUNDCLOUD_CONSUMER_KEYSoundCloud consumer key

    SoundCloud consumer key

  • STAFF_TOKENToken for staff-only pages

    Token for staff-only pages

  • SUPPORT_URLURL where users can get support

    URL where users can get support

FAQ

How can I ensure my podcast is up-to-date?

Use PubSubHubbub, request a Publisher account to trigger manual updates, or donate to increase update resources.

How often is my podcast updated?

Update interval depends on the average time between episodes.

How can I add a logo / description / etc?

All information is retrieved from the podcast feed. Add it to the feed and it will appear after the next update.

How can I add my podcast?

Go to https://gpodder.net/missing/ and enter the URL of your podcast feed.

More in Podcasts

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…