This application should be used for an easy to setup all in one podcast website including additions like a wiki, advent calendars, different podcasts (feeds, specials, etc.)
THIS PROJECT IS CURRENTLY UNDER HEAVY DEVELOPMENT. SO ONLY USE IT WHEN YOU 100% KNOW WHAT YOU ARE DOING
See beta.gameofpods.de for an example
The project is a standard Maven project. To run it from the command line,
type mvnw
(Windows), or ./mvnw
(Mac & Linux), then open
http://localhost:8080 in your browser.
You can also import the project to your IDE of choice as you would with any Maven project. Read more on how to import Vaadin projects to different IDEs ( Eclipse, IntelliJ IDEA, NetBeans, and VS Code).
This application uses environment variables for basic settings.
Environment Variable | Default | Required | Description |
---|---|---|---|
PORT | 8080 | no | Sets the port the application runs on |
PODCAST_PROJECT_CONFIG | yes | Sets the path to the folder containing the settings files | |
DB_URL | yes | Sets the jdbc url for the database connection used for user management, etc | |
DB_USERNAME | "" | no | Sets the username used for database connection |
DB_PASSWORD | "" | no | Sets the password used for database connection |
DEFAULT_ADMIN | admin | no | Sets the default admin username |
DEFAULT_PASSWORD | yes (on first start only) | Sets the default admin password. Needs to be set when no user is present in database on startup, e.g. first run |
The application loads all .json
and .yml
files in the provided settings folder as settings, where the name is used
as the key,
if you want to access a custom settings-file while modifying or extending the application.
Following are some configurations that the system expects or can use. All of them can be given as .json
or .yml
application.json
{
"name": "Name of your porcast project"
}
podcasts.json
{
"perma-key-of-your-podcast": {
"url": "https://example.podcast.com/rss (Required)",
"clients": {
"key-for-service-1": {
"key": "value (See below)"
},
"rss": {},
"spotify": {"id": "spotify-id"},
"patreon": {"name": "patreon name"},
}
}
}
following are the available services you can set so your podcast can be followed with their respective data you have to provide for the element to work
Service | Key | Default | Required | Description |
---|---|---|---|---|
spotify | id | yes | ID of your spotify podcast (https://open.spotify.com/show/) | |
patreon | name | yes | Name of your Patreon campain | |
rss | NONE | None needed. Just uses the provided rss feed |
imprints.yml
Give the imprints for different languages as markdown texts
en: # Imprint
de: # Impressum
cookies.yml
Give the imprints for different languages as markdown texts
en: |
## Explanations
Some additional content you want to show on the cookies page
- Responsive layout for better viewing on mobile devices
- Services to subscribe
- Management interface for admins
- Move settings from files to db
- Additional roles like proof listeners, editors, podcasters etc.
- Wiki for podcast and podcast topics.
- Wiki can change content based on podcast episode
- Support for filtering in podcast view
- specials, etc
- Optimize Docker build so not whole source code is included