2017-09-11 19:36:40 +01:00
|
|
|
# Pogo
|
|
|
|
Podcast RSS feed generator and CMS in Go.
|
|
|
|
---
|
2017-07-19 22:01:46 +01:00
|
|
|
|
2017-09-24 20:09:57 +01:00
|
|
|
[![Build Status](https://travis-ci.org/gmemstr/pogo.svg?branch=master)](https://travis-ci.org/gmemstr/pogo) [![gitgalaxy](https://img.shields.io/badge/website-gitgalaxy.com-blue.svg)](https://gitgalaxy.com) [![shield](https://img.shields.io/badge/live-podcast.gitgalaxy.com-green.svg)](https://podcast.gitgalaxy.com) [![follow](https://img.shields.io/twitter/follow/gitgalaxy.svg?style=social&label=Follow)](https://twitter.com/gitgalaxy)
|
2017-07-19 22:01:46 +01:00
|
|
|
|
2017-09-11 19:36:40 +01:00
|
|
|
## Goal
|
2017-07-19 22:01:46 +01:00
|
|
|
|
2017-09-11 19:36:40 +01:00
|
|
|
To produce a product that is easy to deploy and easier to use when hosting a podcast from ones own servers.
|
2017-07-19 22:01:46 +01:00
|
|
|
|
2017-09-11 19:36:40 +01:00
|
|
|
## Features
|
2017-07-19 22:01:46 +01:00
|
|
|
|
2017-09-11 19:36:40 +01:00
|
|
|
* Auto-generate rss feed
|
|
|
|
* Basic frontend for listening to episodes
|
|
|
|
* Flat-file directory structure
|
|
|
|
* Human readable files
|
|
|
|
* Self publishing interface w/ password protection
|
|
|
|
* Custom CSS and themeing capabilities
|
|
|
|
* JSON feed generation for easier parsing
|
|
|
|
* Docker support
|
2017-07-19 22:01:46 +01:00
|
|
|
|
2017-09-11 19:36:40 +01:00
|
|
|
## Requirements
|
2017-07-05 08:31:01 +01:00
|
|
|
|
2017-07-19 22:01:46 +01:00
|
|
|
[github.com/gmemstr/feeds](https://github.com/gmemstr/feeds) _this branch contains some fixes for "podcast specific" tags_
|
2017-07-05 08:32:04 +01:00
|
|
|
|
2017-07-05 08:31:01 +01:00
|
|
|
[github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify)
|
2017-07-05 08:32:04 +01:00
|
|
|
|
2017-07-05 08:31:01 +01:00
|
|
|
[github.com/spf13/viper](https://github.com/spf13/viper)
|
2017-07-05 08:32:04 +01:00
|
|
|
|
2017-07-05 08:31:01 +01:00
|
|
|
[github.com/gorilla/mux](https://github.com/gorilla/mux)
|
|
|
|
|
2017-09-11 19:36:40 +01:00
|
|
|
## Building
|
2017-06-15 17:23:09 +01:00
|
|
|
|
2017-07-25 16:02:48 +01:00
|
|
|
```
|
|
|
|
make install
|
2017-09-11 18:10:35 +01:00
|
|
|
make
|
2017-07-25 16:02:48 +01:00
|
|
|
./webserver
|
|
|
|
```
|
|
|
|
|
2017-09-11 19:36:40 +01:00
|
|
|
### Makefile
|
|
|
|
|
|
|
|
There are several commands in the Makefile, for various reasons (commands are preceded by the `make` command).
|
|
|
|
|
|
|
|
* `all` - also works by just running `make`, compiles go code to executable
|
|
|
|
* `windows` - creates named compiled .exe (pogoapp.exe)
|
|
|
|
* `linux` - creates named compiled binary (pogoapp)
|
|
|
|
* `install` - installs go dependencies
|
|
|
|
* `docker` - build docker image for running elsewhere
|
|
|
|
* `and run` - build and run the executable (remove .exe in file for \*nix)
|
2017-07-25 16:02:48 +01:00
|
|
|
|
|
|
|
**non-make**
|
2017-07-05 08:31:01 +01:00
|
|
|
```
|
|
|
|
go get github.com/gmemstr/feeds
|
|
|
|
go get github.com/fsnotify/fsnotify
|
|
|
|
go get github.com/spf13/viper
|
|
|
|
go get github.com/gorilla/mux
|
2017-07-25 16:02:48 +01:00
|
|
|
go build webserver.go generate_rss.go admin.go
|
2017-07-05 08:31:01 +01:00
|
|
|
./webserver
|
|
|
|
```
|
2017-09-07 21:45:31 +01:00
|
|
|
|
2017-09-11 19:36:40 +01:00
|
|
|
## File format
|
2017-09-11 18:10:35 +01:00
|
|
|
|
2017-09-11 19:36:40 +01:00
|
|
|
Pogo uses a flat file structure for managing podcast episodes. as such, files have a special naming convention.
|
2017-09-11 18:10:35 +01:00
|
|
|
|
2017-09-11 19:36:40 +01:00
|
|
|
For podcast audio files, filenames take the form of YEAR-MONTH-DAY followed by the title. The two values are
|
2017-09-11 18:10:35 +01:00
|
|
|
seperated by underscores (`YYYY-MM-DD_TITLE.mp3`).
|
|
|
|
|
2017-09-11 19:36:40 +01:00
|
|
|
Shownote fils are markdown formatted and simply append `_SHOWNOTES.md` to the existing filename (sans .mp3 of course).
|
2017-09-07 21:45:31 +01:00
|
|
|
|