This is a minimalist GPodder server to self-host your podcast data.
Requires PHP 8.0+ and SQLite3 with JSON1 extension.
Just copy the files from the server
directory into a new directory of your webserver.
If you are not using Apache, make sure to replicate the rules from the .htaccess
file to your own server.
Just use the domain name where you installed the server, and the login and password you have chosen.
When installed, the server will allow to create a first account. Just go to the server URL and you will be able to create an account and login.
After that first account, account creation is disabled by default.
If you want to allow more accounts, you'll have to create a file named config.local.php
containing this:
<?php
const ENABLE_SUBSCRIPTIONS = true;
This server supports the following APIs:
It also supports endpoints defined by the NextCloud GPodder app.
The endpoint /api/2/updates/(username)/(deviceid).json
(from the Devices API) is not implemented.
This server only supports JSON format, except:
PUT /subscriptions/(username)/(deviceid).txt
GET /subscriptions/(username)/(deviceid).opml
GET /subscriptions/(username).opml
Trying to use a different format on other endpoints will result in a 501 error. JSONP is not supported either.
Please also note: the username "current" always points to the currently logged-in user. The deviceid "default" points to the first deviceid found.
This server has been tested so far with:
- AntennaPod 2.6.1 (both GPodder API and NextCloud API) - Android
Please report if apps work (or not).
It doesn't work with:
- gPodder 3.10.17 - Debian (bug report)
- Clementine 1.4.0rc1 - Debian (not possible to choose the server: bug report)
In order to run micro-gpodder-server with Docker you only need to build the Dockerfile
and run it while binding data.sqlite
file for persistence and setting the hostname, here is an example with docker compose:
services:
gpodder:
container_name: gPodder
build:
context: ./micro-gpodder-server
dockerfile: Dockerfile
volumes:
- type: bind
source: ~/docker_files/gpodder/data.sqlite
target: /var/www/html/data.sqlite:Z # `:Z`` is important
hostname: gpodder.example.org
ports:
- 80:80
Caution: at the first run you need to execute without the
volumes
section, then register your user and only after copy thedata.sqlite
file from the container to~/docker_files/gpodder/
and re-add the deleted section.
GNU AGPLv3