Lightweight implementation of the Gpodder API
 
 
Go to file
Jef Roosens 320a46c0f3
feat: define device sync abstraction API
2025-03-16 16:02:59 +01:00
bruno feat: implemented episode actions GET route 2025-03-04 16:44:30 +01:00
migrations/2025-02-23-095541_initial chore: merge session last seen migration into initial 2025-03-16 14:05:29 +01:00
src feat: define device sync abstraction API 2025-03-16 16:02:59 +01:00
.env feat: started db cli tool; switched to i64 ids 2025-02-23 17:07:54 +01:00
.gitignore feat: implement simple api subscription routes 2025-02-24 16:00:49 +01:00
CHANGELOG.md feat: added flexible configuration system using figment 2025-03-08 22:08:21 +01:00
Cargo.lock feat: added flexible configuration system using figment 2025-03-08 22:08:21 +01:00
Cargo.toml feat: added flexible configuration system using figment 2025-03-08 22:08:21 +01:00
README.md feat: added flexible configuration system using figment 2025-03-08 22:08:21 +01:00
diesel.toml feat: started db cli tool; switched to i64 ids 2025-02-23 17:07:54 +01:00
otter.toml feat: added flexible configuration system using figment 2025-03-08 22:08:21 +01:00

README.md

Otter

Otter is a modern implementation of the Gpodder server API. Its primary goal is to be used as a self-hostable drop-in replacement for Gpodder, suitable for low-power devices.

Features

  • Implementation of API sections needed for synchronisation
    • Authentication
    • Devices API
    • Subscriptions API
    • Episode actions API

Configuration

Otter is configurable via a TOML config file, environment variables and CLI arguments thanks to the Figment library. Each variable in the configuration file below can be provided via an environment variable (prefixed using OTTER_) or a CLI argument.

data_dir = "./data"
domain = "127.0.0.1"
port = 8080

Otter can be told to read a config variable using the --config/-c flag (see the help command for other useful CLI commands). Each variable needs to be provided either from the config file, as an environment variable (e.g. OTTER_DATA_DIR) or a CLI argument (e.g. --data-dir).

If a variable is provided in multiple ways, environment variables overwrite configuration file variables, and CLI arguments overwrite both.