gpodder-docker
gpodder-docker copied to clipboard
📦 Dockerized version of gPodder podcatcher.
** Attention Existing gPodder Docker users **
This image has been rebased and the config directory structure has changed slightly, along with the WebUI port. If you have settings and/or subscription data you'd like to preserve, please be sure to copy the contents of /config/gPodder to /config after pulling the latest image and then restart your container. Please also update your WebUI port to <port>:3000
gPodder Docker
A dockerized version of the gPodder podcast client with a built-in browser-based GUI.
gPodder is a simple, open source podcast client written in Python using GTK+. In development since 2005 with a proven, mature codebase.
Application Setup
This image sets up the gPodder desktop app and makes its interface available via Guacamole in your web browser. The interface is available at http://your-ip:3000.
By default, there is no password set for the main gui. Optional environment variable PASSWORD will allow setting a password for the user abc.
You can access advanced features of the Guacamole remote desktop using ctrl+alt+shift enabling you to use remote copy/paste and different languages.
gPodder themes
Two versions of this image are available, one with gPodder running with a light GTK theme and one with a dark theme. There are tagged light and dark versions of the image, and light and dark version of each SemVer tagged release. Using the latest tag or no tag at all will default to the the lasest version of image and the light theme.
| Theme | Tag |
|---|---|
| Light | latest/light |
| Light | v*..-light |
| Dark | dark |
| Dark | v*..-dark |
Usage
Here are some examples to help you get started creating a container. If you are an UNRAID user you can access my UNRAID gPodder template in Community Apps.
docker-compose
Compatible with docker-compose v2 schemas.
---
version: "2.1"
services:
gpodder:
image: xthursdayx/gpodder-docker
container_name: gPodder
environment:
- PUID=99
- PGID=100
- TZ=America/New_York
- PASSWORD= #optional
volumes:
- /path/to/config:/config
- /path/to/downloads:/downloads
ports:
- 3000:3000
restart: unless-stopped
docker cli
docker run -d \
--name=gPodder \
-e PUID=99 \
-e PGID=100 \
-e TZ=America/new_York \
-e PASSWORD= `#optional` \
-p 3000:3000 \
-v /path/to/config:/config \
-v /path/to/downloads:/downloads \
--restart unless-stopped \
xthursdayx/gpodder-docker
Parameters
Container images are configured using parameters passed at runtime (such as those listed above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. You can change the external/host port and volume mappings to suit your needs.
| Parameter | Function |
|---|---|
-p 3000 |
HTTP access to the gPodder WebUI. |
-e PUID=99 |
for UserID - see below for more information. |
-e PGID=100 |
for GroupID - see below for more information. |
-e TZ=America/New_York |
Specify a timezone to use, e.g. America/New_York. |
-e PASSWORD= |
Optionally set a password for the gui. |
-v /config |
Directory where gPodder's configuration and database files will reside, so you won't lose data when you update, reinstall, etc. |
-v /downloads |
The directory gPodder will download your podcasts to. |
Environment variables from files (Docker secrets)
You can set any environment variable from a file by using a special prepend FILE__.
As an example:
-e FILE__PASSWORD=/run/secrets/mysecretpassword
Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.
User / Group Identifiers
When using volumes (-v flags) permissions issues can arise between the host OS and the container, you can avoid this by specifying the user PUID and group PGID.
Ensure any mapped volume directories on your host machine are owned by the same user you specify and you will avoid any permissions issues.
In this instance PUID=1000 and PGID=1000, to find yours using the following command:
$ id <username> # Replace with your username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
Versions
- 19.06.21: - Rebase to rdesktop-web Alpine baseimage.
If you appreciate my work please consider buying me a coffee, cheers! 😁
