Transsmute (transmute + RSS) is a server written in Go that builds RSS feeds for websites that don't provide them.
Currently, the following feed types are supported:
- YouTube (channel, playlist)
- Twitter (user)
- Container registries (DockerHub, ghcr.io)
Transsmute can be installed as a container (suggested) or as a compiled binary.
A Docker container is available at ghcr.io/gabe565/transsmute
. The
containerized version of Transsmute will run on port 80 by default,
and accepts all configuration as flags or as environment variables.
See Configuration for more info.
docker run --rm -it -p 80:80 ghcr.io/gabe565/transsmute
Alternatively, an example docker-compose.yml
file
is provided.
A Helm chart is available for Kubernetes deployment. For more information, see charts.gabe565.com or Artifact Hub.
Flag | Environment Variable | Description | Default |
---|---|---|---|
--address |
TRANSSMUTE_ADDRESS |
Listen address | ":3000" (":80" in container) |
--youtube-enabled |
TRANSSMUTE_YOUTUBE_ENABLED |
YouTube API enabled. | true |
--youtube-key |
TRANSSMUTE_YOUTUBE_KEY |
YouTube API key. Required to enable YouTube routes! | "" |
--docker-enabled |
TRANSSMUTE_DOCKER_ENABLED |
Docker API enabled. | true |
--dockerhub-username |
TRANSSMUTE_DOCKERHUB_USERNAME |
DockerHub username for private repos. | "" |
--dockerhub-password |
TRANSSMUTE_DOCKERHUB_PASSWORD |
DockerHub password for private repos. | "" |
--ghcr-username |
TRANSSMUTE_GHCR_USERNAME |
GitHub username for ghcr.io repos. | "" |
--ghcr-password |
TRANSSMUTE_GHCR_PASSWORD |
GitHub PAT for ghcr.io repos. | "" |
--twitter-enabled |
TRANSSMUTE_TWITTER_ENABLED |
Twitter API enabled. | true |
DockerHub credentials are only required to access private repositories.
A personal access token is used to authenticate into GitHub's ghcr.io API.
The only required scope is read:packages
.
Click here
to generate a personal access token with the necessary scopes prefilled.
An Atom feed is generated by default, but a file extension of
.json
or .rss
will change the output to the given format.
/youtube/playlist/:playlistId
/youtube/channel/:channelId
/twitter/user/:username
/docker/tags/:repo