pub struct CoreConfig {Show 32 fields
pub title: String,
pub host: String,
pub port: u16,
pub passkey: String,
pub ui_write_disabled: bool,
pub ensure_server: String,
pub mongo: MongoConfig,
pub local_auth: bool,
pub transparent_mode: bool,
pub enable_new_users: bool,
pub jwt_secret: String,
pub jwt_ttl: Timelength,
pub google_oauth: OauthCredentials,
pub github_oauth: OauthCredentials,
pub webhook_secret: String,
pub webhook_base_url: Option<String>,
pub github_webhook_app: GithubWebhookAppConfig,
pub logging: LogConfig,
pub keep_stats_for_days: u64,
pub keep_alerts_for_days: u64,
pub stack_poll_interval: Timelength,
pub sync_poll_interval: Timelength,
pub build_poll_interval: Timelength,
pub repo_poll_interval: Timelength,
pub monitoring_interval: Timelength,
pub aws: AwsCredentials,
pub hetzner: HetznerCredentials,
pub git_providers: Vec<GitProvider>,
pub docker_registries: Vec<DockerRegistry>,
pub aws_ecr_registries: Vec<AwsEcrConfigWithCredentials>,
pub secrets: HashMap<String, String>,
pub repo_directory: PathBuf,
}
Expand description
§Core Configuration File
The Core API initializes it’s configuration by reading the environment,
parsing the CoreConfig schema from the file path specified by env.monitor_config_path
,
and then applying any config field overrides specified in the environment.
Note. The monitor core docker image includes the default core configuration found below.
To configure the core api, you can either mount your own custom configuration file
to /config/config.toml
inside the container, or simply override whichever fields
you need using the environment.
Refer to the example file for a full example.
Fields§
§title: String
The title of this monitor deployment. Will be used in the browser page title. Default: ‘Monitor’
host: String
The host to use with oauth redirect url, whatever host
the user hits to access monitor. eg https://monitor.mogh.tech
.
Only used if oauth used without user specifying redirect url themselves.
port: u16
Port the core web server runs on. Default: 9120.
passkey: String
Sent in auth header with req to periphery. Should be some secure hash, maybe 20-40 chars.
ui_write_disabled: bool
Disable user ability to use the UI to update resource configuration.
ensure_server: String
If defined, ensure an enabled server exists at this address.
Use with All In One compose.
Example: http://monitor-periphery:8120
mongo: MongoConfig
Configure core mongo connection.
An easy deployment method is to use Mongo Atlas to provide a reliable database.
local_auth: bool
enable login with local auth
transparent_mode: bool
Enable transparent mode, which gives all (enabled) users read access to all resources.
enable_new_users: bool
New users will be automatically enabled. Combined with transparent mode, this is suitable for a demo instance.
jwt_secret: String
Optionally provide a specific jwt secret. Passing nothing or an empty string will cause one to be generated. Default: “” (empty string)
jwt_ttl: Timelength
Control how long distributed JWT remain valid for.
Default: 1-day
.
google_oauth: OauthCredentials
Configure google oauth
github_oauth: OauthCredentials
Configure github oauth
webhook_secret: String
Used to verify validity from webhooks. Should be some secure hash maybe 20-40 chars. It is given to git provider when configuring the webhook.
webhook_base_url: Option<String>
Override the webhook listener base url, if None will use the address defined as ‘host’.
Example: https://webhooks.mogh.tech
This can be used if core sits on an internal network which is unreachable directly from the open internet. A reverse proxy in a public network can forward webhooks to the internal monitor.
github_webhook_app: GithubWebhookAppConfig
Configure a Github Webhook app. Allows users to manage repo webhooks from within the Monitor UI.
logging: LogConfig
Configure logging
keep_stats_for_days: u64
Number of days to keep stats, or 0 to disable pruning. Stats older than this number of days are deleted on a daily cycle Default: 14
keep_alerts_for_days: u64
Number of days to keep alerts, or 0 to disable pruning. Alerts older than this number of days are deleted on a daily cycle Default: 14
stack_poll_interval: Timelength
Interval at which to poll stacks for any updates / automated actions.
Options: 15-sec
, 1-min
, 5-min
, 15-min
, 1-hr
Default: 5-min
.
sync_poll_interval: Timelength
Interval at which to poll syncs for any updates / automated actions.
Options: 15-sec
, 1-min
, 5-min
, 15-min
, 1-hr
Default: 5-min
.
build_poll_interval: Timelength
Interval at which to poll build commit hash for any updates / automated actions.
Options: 15-sec
, 1-min
, 5-min
, 15-min
, 1-hr
Default: 5-min
.
repo_poll_interval: Timelength
Interval at which to poll repo commit hash for any updates / automated actions.
Options: 15-sec
, 1-min
, 5-min
, 15-min
, 1-hr
Default: 5-min
.
monitoring_interval: Timelength
Interval at which to collect server stats and send any alerts.
Default: 15-sec
aws: AwsCredentials
Configure AWS credentials to use with AWS builds / server launches.
hetzner: HetznerCredentials
Configure Hetzner credentials to use with Hetzner builds / server launches.
git_providers: Vec<GitProvider>
Configure git credentials used to clone private repos. Supports any git provider.
docker_registries: Vec<DockerRegistry>
Configure docker credentials used to push / pull images. Supports any docker image repository.
aws_ecr_registries: Vec<AwsEcrConfigWithCredentials>
Configure aws ecr registries, which are handled differently than other registries
secrets: HashMap<String, String>
Configure core-based secrets. These will be preferentially interpolated into values if they contain a matching secret. Otherwise, the periphery will have to have the secret configured.
repo_directory: PathBuf
Specify the directory used to clone stack / repo / build repos, for latest hash / contents.
The default is fine when using a container.
This directory has no need for persistence, so no need to mount it.
Default: /repos
Implementations§
Source§impl CoreConfig
impl CoreConfig
pub fn sanitized(&self) -> CoreConfig
Trait Implementations§
Source§impl Clone for CoreConfig
impl Clone for CoreConfig
Source§fn clone(&self) -> CoreConfig
fn clone(&self) -> CoreConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for CoreConfig
impl Debug for CoreConfig
Source§impl<'de> Deserialize<'de> for CoreConfig
impl<'de> Deserialize<'de> for CoreConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for CoreConfig
impl RefUnwindSafe for CoreConfig
impl Send for CoreConfig
impl Sync for CoreConfig
impl Unpin for CoreConfig
impl UnwindSafe for CoreConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.