diff --git a/README.md b/README.md index f0bbddda91..d5d951c0bb 100644 --- a/README.md +++ b/README.md @@ -284,6 +284,7 @@ you to have it being synced automatically everyday. | ------------------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | | DATABASE_URL | | The Postgres database url. | All | | DISABLE_NSJAIL | true | Disable Nsjail Sandboxing | Worker | +| SERVER_BIND_ADDR | 0.0.0.0 | IP Address on which to bind listening socket | Server | | PORT | 8000 | Exposed port | Server | | | NUM_WORKERS | 3 | The number of worker per Worker instance (set to 1 on Eks to have 1 pod = 1 worker, set to 0 for an API only instance) | Worker | | DISABLE_SERVER | false | Binary would operate as a worker only instance | Worker | diff --git a/backend/src/main.rs b/backend/src/main.rs index a5ca7192cd..8d6b6f1d54 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -6,7 +6,7 @@ * LICENSE-AGPL for a copy of the license. */ -use std::net::SocketAddr; +use std::net::{IpAddr, Ipv4Addr, SocketAddr}; use git_version::git_version; use sqlx::{Pool, Postgres}; @@ -15,6 +15,7 @@ use windmill_common::utils::rd_string; const GIT_VERSION: &str = git_version!(args = ["--tag", "--always"], fallback = "unknown-version"); const DEFAULT_NUM_WORKERS: usize = 3; const DEFAULT_PORT: u16 = 8000; +const DEFAULT_SERVER_BIND_ADDR: Ipv4Addr = Ipv4Addr::new(0, 0, 0, 0); mod ee; @@ -39,6 +40,11 @@ async fn main() -> anyhow::Result<()> { .transpose()? .flatten(); + let server_bind_address: IpAddr = std::env::var("SERVER_BIND_ADDR") + .ok() + .and_then(|x| x.parse().ok() ) + .unwrap_or(IpAddr::from(DEFAULT_SERVER_BIND_ADDR)); + let port: u16 = std::env::var("PORT") .ok() .and_then(|x| x.parse::().ok()) @@ -87,6 +93,7 @@ Windmill Community Edition {GIT_VERSION} "TIMEOUT", "SLEEP_QUEUE", "MAX_LOG_SIZE", + "SERVER_BIND_ADDR", "PORT", "KEEP_JOB_DIR", "S3_CACHE_BUCKET", @@ -115,7 +122,7 @@ Windmill Community Edition {GIT_VERSION} ]); if server_mode || num_workers > 0 { - let addr = SocketAddr::from(([0, 0, 0, 0], port)); + let addr = SocketAddr::from((server_bind_address, port)); let server_f = async { if server_mode {