This repository automatically builds and releases Docker images for the gpodder/mygpo project.
A GitHub Actions workflow runs daily (and on pushes to main
) to:
- Check for new commits in the
gpodder/mygpo
repository. - If new commits are found, build a new Docker image.
- Push the image to GitHub Container Registry (GHCR) at
ghcr.io/thekoma/gpodder-docker
. Images are tagged withlatest
and the Git SHA of the build commit in this repository. - Create a new GitHub Release in this repository. The release tag follows the format
YYYY.MM.N
(e.g.,2025.04.0
) and includes a changelog generated from the newgpodder/mygpo
commit messages. - Tag the corresponding Docker image on GHCR with the new release tag (e.g.,
ghcr.io/thekoma/gpodder-docker:2025.04.0
). - Update the
last_source_commit.txt
file to track the latest processed commit fromgpodder/mygpo
.
A docker-compose.yml
file is provided for easy deployment using PostgreSQL as the database backend.
1. Create an Environment File:
Copy the example environment file:
cp .env.example .env
Now, edit the .env
file and set the required values:
POSTGRES_DB
: Name for the mygpo database (e.g.,mygpo
).POSTGRES_USER
: Username for the database user (e.g.,mygpo
).POSTGRES_PASSWORD
: A strong, unique password for the database user.MYGPO_SECRET_KEY
: A long, random, and secret string. You MUST change this for security. You can generate one usingopenssl rand -base64 32
or similar tools.MYGPO_ALLOWED_HOSTS
: Comma-separated list of hostnames/IP addresses allowed to serve the site (e.g.,localhost,127.0.0.1,yourdomain.com
).MYGPO_DEFAULT_BASE_URL
: The base URL of your deployment (e.g.,https://gpodder.yourdomain.com
). This is crucial for generating correct URLs within the application.
2. Start the Services:
docker-compose up -d
This will download the images (if not present locally) and start the mygpo
application container (app
) and the PostgreSQL database container (db
).
3. Initialize the Database:
After the containers are running for the first time, you need to run the database migrations:
docker-compose exec app python manage.py migrate
4. Access mygpo:
Your mygpo instance should now be accessible at the host and port configured (default is port 8000 on your Docker host, e.g., http://localhost:8000
).
The mygpo
application is configured via environment variables. The essential variables needed for the docker-compose
setup are defined in the .env
file (see above).
Refer to the official mygpo configuration documentation for a complete list of available variables if you need further customization. These can be added to the environment
section of the app
service in docker-compose.yml
or directly to your .env
file (if the compose file is adapted to read them).
Images are available on GitHub Container Registry: ghcr.io/thekoma/gpodder-docker
You can pull a specific release tag (e.g., 2025.04.0
) or latest
.
docker pull ghcr.io/thekoma/gpodder-docker:latest