Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ConfigFile embed.FS
Content assets
var InitConfigFile = flag.String("init-config", "", "Initialize configuration file")
InitConfigFile initialize the config file
Functions ¶
func ExportVars ¶
func ExportVars(conf *Config)
ExportVars export some configuration variables to expvar
func WriteConfigFile ¶
WriteConfigFile write configuration file
Types ¶
type Config ¶
type Config struct {
Global GlobalConfig `toml:"global"`
Integration IntegrationConfig `toml:"integration"`
RateLimiting RateLimitingConfig `toml:"rate_limiting"`
UserPlans []UserPlan `toml:"user_plans"`
}
Config is the root of the configuration
func (Config) GetUserPlan ¶
GetUserPlan return an user plan by its name and fallback to first plan if missing
type Flags ¶
type Flags struct {
Config string `flag:"config" desc:"Configuration file to load" default:""`
LogLevel string `flag:"log-level" desc:"Log level (debug, info, warn, error)" default:"info"`
LogPretty bool `flag:"log-pretty" desc:"Output human readable logs" default:"false"`
}
Flags of the command line
type GlobalConfig ¶
type GlobalConfig struct {
AuthN string `toml:"authn"`
DatabaseURI string `toml:"db"`
ListenAddr string `toml:"listen_addr"`
MetricsListenAddr string `toml:"metrics_listen_addr"`
SMTPListenAddr string `toml:"smtp_listen_addr"`
PublicURL string `toml:"public_url"`
UILocation string `toml:"ui"`
SecretSalt string `toml:"secret_salt"`
BlockList string `toml:"block_list"`
}
GlobalConfig is the global configuration section
type IntegrationConfig ¶
type IntegrationConfig struct {
ExternalEventBrokerURI string `toml:"external_event_broker_uri"`
ExternalWebScraperURL string `toml:"external_web_scraper_url"`
ImageProxyURL string `toml:"image_proxy_url"`
PDFGeneratorURL string `toml:"pdf_generator_url"`
AvatarProvider string `toml:"avatar_provider"`
SecretsEngineProvider string `toml:"secrets_engine_provider"`
Sentry SentryConfiguration
Pocket PocketConfiguration
}
IntegrationConfig is the integration configuration section
type PocketConfiguration ¶
type PocketConfiguration struct {
ConsumerKey string `toml:"consumer_key"`
}
PocketConfiguration is the Pocket's integration configuration
type RateLimiting ¶
type RateLimiting struct {
// Provider of the rate limiting store
Provider string `toml:"provider"`
//Tokens allowed per interval
Tokens int `toml:"tokens"`
// Interval until tokens reset
Interval duration `toml:"interval"`
}
RateLimiterConfig is the configuration of a rate-limiter
type RateLimitingConfig ¶
type RateLimitingConfig struct {
Notification RateLimiting
Webhook RateLimiting
}
RateLimitingConfig is rate-limiting configuration section
type SentryConfiguration ¶
type SentryConfiguration struct {
DSN string `toml:"dsn_url"`
}
SentryConfiguration is the Sentry's integration configuration
type UserPlan ¶
type UserPlan struct {
Name string `toml:"name" json:"name"`
ArticlesLimit uint `toml:"articles_limit" json:"articles_limit"`
CategoriesLimit uint `toml:"categories_limit" json:"categories_limit"`
IncomingWebhooksLimit uint `toml:"incoming_webhooks_limit" json:"incoming_webhooks_limit"`
OutgoingWebhooksLimit uint `toml:"outgoing_webhooks_limit" json:"outgoing_webhooks_limit"`
OutgoingWebhooksTimeout duration `toml:"outgoing_webhooks_timeout" json:"outgoing_webhooks_timeout"`
}
UserPlanConfig is the configuration a a user plan