From 118de3894824743159b0f72c1b22e9a3578f1a91 Mon Sep 17 00:00:00 2001 From: Ludo Mikula Date: Tue, 18 Jul 2023 16:03:32 +0200 Subject: [PATCH 1/3] new: unify usage of max request size across all components --- deploy/docker/README.md | 2 + deploy/docker/docker-compose-multi.yaml | 1 + deploy/docker/docker-compose.yaml | 2 + .../docker/frontend/01-update-nginx-conf.sh | 6 +- deploy/docker/frontend/nginx-http.conf | 1 + deploy/docker/frontend/nginx-https.conf | 1 + .../org/lowcoder/sdk/config/CommonConfig.java | 38 ++++++- server/api-service/lowcoder-server/pom.xml | 4 +- .../ApplicationConfiguration.java | 26 +++++ .../QueryExecuteHttpBodySizeFilter.java | 33 +++--- .../resources/selfhost/ce/application.yml | 5 +- .../configuration/CommonConfigTest.java | 103 ++++++++++++++++++ server/api-service/pom.xml | 10 +- 13 files changed, 205 insertions(+), 27 deletions(-) create mode 100644 server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/framework/configuration/ApplicationConfiguration.java create mode 100644 server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/framework/configuration/CommonConfigTest.java diff --git a/deploy/docker/README.md b/deploy/docker/README.md index 24252ee9e..d5463ecae 100644 --- a/deploy/docker/README.md +++ b/deploy/docker/README.md @@ -36,6 +36,7 @@ Image can be configured by setting environment variables. | `ENCRYPTION_PASSWORD` | Encryption password | `lowcoder.org` | | `ENCRYPTION_SALT` | Salt used for encrypting password | `lowcoder.org` | | `CORS_ALLOWED_DOMAINS` | CORS allowed domains | `*` | +| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `5m` | | `LOWCODER_API_SERVICE_URL` | Lowcoder API service URL | `http://localhost:8080` | | `LOWCODER_NODE_SERVICE_URL` | Lowcoder Node service (js executor) URL | `http://localhost:6060` | | `DEFAULT_ORGS_PER_USER` | Default maximum organizations per user | `100` | @@ -121,6 +122,7 @@ Image can be configured by setting environment variables. | --------------------------------| --------------------------------------------------------------------| ------------------------------------------------------- | | `PUID` | ID of user running services. It will own all created logs and data. | `9001` | | `PGID` | ID of group of the user running services. | `9001` | +| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `5m` | | `LOWCODER_API_SERVICE_URL` | Lowcoder API service URL | `http://localhost:8080` | | `LOWCODER_NODE_SERVICE_URL` | Lowcoder Node service (js executor) URL | `http://localhost:6060` | diff --git a/deploy/docker/docker-compose-multi.yaml b/deploy/docker/docker-compose-multi.yaml index 5bfd50d0f..2700b3577 100644 --- a/deploy/docker/docker-compose-multi.yaml +++ b/deploy/docker/docker-compose-multi.yaml @@ -75,6 +75,7 @@ services: environment: PUID: "9001" PGID: "9001" + LOWCODER_MAX_REQUEST_SIZE: 5m LOWCODER_API_SERVICE_URL: "http://lowcoder-api-service:8080" LOWCODER_NODE_SERVICE_URL: "http://lowcoder-node-service:6060" restart: unless-stopped diff --git a/deploy/docker/docker-compose.yaml b/deploy/docker/docker-compose.yaml index a79859698..3f9e54d05 100644 --- a/deploy/docker/docker-compose.yaml +++ b/deploy/docker/docker-compose.yaml @@ -36,6 +36,8 @@ services: # api and node service parameters LOWCODER_API_SERVICE_URL: "http://localhost:8080" LOWCODER_NODE_SERVICE_URL: "http://localhost:6060" + # frontend parameters + LOWCODER_MAX_REQUEST_SIZE: 5m volumes: - ./lowcoder-stacks:/lowcoder-stacks restart: unless-stopped diff --git a/deploy/docker/frontend/01-update-nginx-conf.sh b/deploy/docker/frontend/01-update-nginx-conf.sh index 67364c75e..524bbc923 100644 --- a/deploy/docker/frontend/01-update-nginx-conf.sh +++ b/deploy/docker/frontend/01-update-nginx-conf.sh @@ -18,9 +18,11 @@ else ln -s /etc/nginx/nginx-http.conf /etc/nginx/nginx.conf fi; +sed -i "s@__LOWCODER_MAX_REQUEST_SIZE__@${LOWCODER_MAX_REQUEST_SIZE:=5m}@" /etc/nginx/nginx.conf sed -i "s@__LOWCODER_API_SERVICE_URL__@${LOWCODER_API_SERVICE_URL:=http://localhost:8080}@" /etc/nginx/nginx.conf sed -i "s@__LOWCODER_NODE_SERVICE_URL__@${LOWCODER_NODE_SERVICE_URL:=http://localhost:6060}@" /etc/nginx/nginx.conf echo "nginx config updated with:" -echo " Lowcoder api service URL: ${LOWCODER_API_SERVICE_URL}" -echo " Lowcoder node service URL: ${LOWCODER_NODE_SERVICE_URL}" +echo " Lowcoder max upload size: ${LOWCODER_MAX_REQUEST_SIZE:=5m}" +echo " Lowcoder api service URL: ${LOWCODER_API_SERVICE_URL:=http://localhost:8080}" +echo " Lowcoder node service URL: ${LOWCODER_NODE_SERVICE_URL:=http://localhost:6060}" diff --git a/deploy/docker/frontend/nginx-http.conf b/deploy/docker/frontend/nginx-http.conf index ad1d228b5..fee35838d 100644 --- a/deploy/docker/frontend/nginx-http.conf +++ b/deploy/docker/frontend/nginx-http.conf @@ -10,6 +10,7 @@ http { include /etc/nginx/mime.types; default_type application/octet-stream; + client_max_body_size __LOWCODER_MAX_REQUEST_SIZE__; log_format main '"$time_local" client=$remote_addr ' 'method=$request_method request="$request" ' diff --git a/deploy/docker/frontend/nginx-https.conf b/deploy/docker/frontend/nginx-https.conf index d716b8e28..4f0e01cb7 100644 --- a/deploy/docker/frontend/nginx-https.conf +++ b/deploy/docker/frontend/nginx-https.conf @@ -10,6 +10,7 @@ http { include /etc/nginx/mime.types; default_type application/octet-stream; + client_max_body_size __LOWCODER_MAX_REQUEST_SIZE__; log_format main '"$time_local" client=$remote_addr ' 'method=$request_method request="$request" ' diff --git a/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/config/CommonConfig.java b/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/config/CommonConfig.java index fc5e6882c..626529ce8 100644 --- a/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/config/CommonConfig.java +++ b/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/config/CommonConfig.java @@ -6,6 +6,8 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; @@ -33,8 +35,9 @@ public class CommonConfig { private String version; private boolean blockHoundEnable; private String cookieName; - private int maxQueryRequestSizeInMb = 10; - private int maxQueryResponseSizeInMb = 10; + private String maxUploadSize = "20MB"; + private String maxQueryRequestSize = "20MB"; + private String maxQueryResponseSize = "20MB"; private Query query = new Query(); private Cookie cookie = new Cookie(); private JsExecutor jsExecutor = new JsExecutor(); @@ -48,6 +51,37 @@ public boolean isEnterpriseMode() { return workspace.getMode() == WorkspaceMode.ENTERPRISE; } + private static final Pattern HUMAN_DATA_SIZE_PATTERN = Pattern.compile("^([ \t]*)(?\\d+(\\.\\d+)?)([ \t]*)(?[kKmMgGtT]{1})?([bB \t]*)$"); + public static String normalizeDataUnits(String dataWithUnits) + { + String normalized = dataWithUnits; + Matcher m = HUMAN_DATA_SIZE_PATTERN.matcher(dataWithUnits); + if (m.matches()) + { + normalized = m.group("number"); + if (StringUtils.isNotBlank(m.group("unit"))) + { + normalized += m.group("unit").toUpperCase() + "B"; + } + } + return normalized; + } + + public void setMaxUploadSize(String size) + { + this.maxUploadSize = normalizeDataUnits(size); + } + + public void setMaxQueryRequestSize(String size) + { + this.maxQueryRequestSize = normalizeDataUnits(size); + } + + public void setMaxQueryResponseSize(String size) + { + this.maxQueryResponseSize = normalizeDataUnits(size); + } + @Data public static class Domain { private String defaultValue; diff --git a/server/api-service/lowcoder-server/pom.xml b/server/api-service/lowcoder-server/pom.xml index 3bb9def8e..12dac31cd 100644 --- a/server/api-service/lowcoder-server/pom.xml +++ b/server/api-service/lowcoder-server/pom.xml @@ -153,8 +153,8 @@ json-path - javax.servlet - javax.servlet-api + jakarta.servlet + jakarta.servlet-api diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/framework/configuration/ApplicationConfiguration.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/framework/configuration/ApplicationConfiguration.java new file mode 100644 index 000000000..1170b9761 --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/framework/configuration/ApplicationConfiguration.java @@ -0,0 +1,26 @@ +package org.lowcoder.api.framework.configuration; + +import org.lowcoder.sdk.config.CommonConfig; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.web.servlet.MultipartConfigFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.util.unit.DataSize; + +import jakarta.servlet.MultipartConfigElement; + +@Configuration +public class ApplicationConfiguration +{ + @Autowired + private CommonConfig common; + + @Bean + public MultipartConfigElement multipartConfigElement() + { + MultipartConfigFactory factory = new MultipartConfigFactory(); + factory.setMaxRequestSize(DataSize.parse(common.getMaxUploadSize())); + factory.setMaxFileSize(DataSize.parse(common.getMaxUploadSize())); + return factory.createMultipartConfig(); + } +} diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/framework/filter/QueryExecuteHttpBodySizeFilter.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/framework/filter/QueryExecuteHttpBodySizeFilter.java index 0b3fc4211..367c816da 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/framework/filter/QueryExecuteHttpBodySizeFilter.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/framework/filter/QueryExecuteHttpBodySizeFilter.java @@ -1,8 +1,13 @@ package org.lowcoder.api.framework.filter; -import jakarta.annotation.PostConstruct; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.io.FileUtils; +import static org.lowcoder.api.framework.filter.FilterOrder.QUERY_EXECUTE_HTTP_BODY_SIZE; +import static org.lowcoder.sdk.exception.BizError.EXCEED_QUERY_REQUEST_SIZE; +import static org.lowcoder.sdk.exception.BizError.EXCEED_QUERY_RESPONSE_SIZE; + +import java.util.concurrent.atomic.AtomicLong; + +import javax.annotation.Nonnull; + import org.lowcoder.infra.constant.NewUrl; import org.lowcoder.infra.constant.Url; import org.lowcoder.sdk.config.CommonConfig; @@ -19,19 +24,16 @@ import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.http.server.reactive.ServerHttpResponseDecorator; import org.springframework.stereotype.Component; +import org.springframework.util.unit.DataSize; import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebFilter; import org.springframework.web.server.WebFilterChain; + +import jakarta.annotation.PostConstruct; +import lombok.extern.slf4j.Slf4j; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -import javax.annotation.Nonnull; -import java.util.concurrent.atomic.AtomicLong; - -import static org.lowcoder.api.framework.filter.FilterOrder.QUERY_EXECUTE_HTTP_BODY_SIZE; -import static org.lowcoder.sdk.exception.BizError.EXCEED_QUERY_REQUEST_SIZE; -import static org.lowcoder.sdk.exception.BizError.EXCEED_QUERY_RESPONSE_SIZE; - /** * check query request and response size */ @@ -60,11 +62,13 @@ public Mono filter(@Nonnull ServerWebExchange exchange, @Nonnull WebFilter // check query api if (path.startsWith(NewUrl.QUERY_URL) || path.startsWith(Url.QUERY_URL)) { - long maxRequestSize = configInstance.ofLong("maxRequestSize", - commonConfig.getMaxQueryRequestSizeInMb() * FileUtils.ONE_MB); - long maxResponseSize = configInstance.ofLong("maxResponseSize", - commonConfig.getMaxQueryResponseSizeInMb() * FileUtils.ONE_MB); + String maxSize = configInstance.ofString("maxRequestSize", commonConfig.getMaxQueryRequestSize()); + long maxRequestSize = DataSize.parse(maxSize).toBytes(); + maxSize = configInstance.ofString("maxResponseSize", commonConfig.getMaxQueryResponseSize()); + long maxResponseSize = DataSize.parse(maxSize).toBytes(); + log.info("Setting up maximum query request size to: {} bytes", maxRequestSize); + log.info("Setting up maximum query response size to: {} bytes", maxResponseSize); ServerWebExchange newServerWebExchange = exchange.mutate() .request(new CustomServerHttpRequestDecorator(exchange.getRequest(), maxRequestSize)) .response(new CustomServerHttpResponseDecorator(exchange.getResponse(), maxResponseSize)) @@ -126,4 +130,5 @@ public Mono writeWith(@Nonnull Publisher body) { })); } } + } diff --git a/server/api-service/lowcoder-server/src/main/resources/selfhost/ce/application.yml b/server/api-service/lowcoder-server/src/main/resources/selfhost/ce/application.yml index 3f5f4ad27..b51df0e21 100644 --- a/server/api-service/lowcoder-server/src/main/resources/selfhost/ce/application.yml +++ b/server/api-service/lowcoder-server/src/main/resources/selfhost/ce/application.yml @@ -41,8 +41,9 @@ common: block-hound-enable: false js-executor: host: ${LOWCODER_NODE_SERVICE_URL:http://127.0.0.1:6060} - max-query-request-size-in-mb: 20 - max-query-response-size-in-mb: 20 + max-query-request-size: ${LOWCODER_MAX_REQUEST_SIZE:20m} + max-query-response-size: ${LOWCODER_MAX_REQUEST_SIZE:20m} + max-upload-size: ${LOWCODER_MAX_REQUEST_SIZE:20m} material: mongodb-grid-fs: diff --git a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/framework/configuration/CommonConfigTest.java b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/framework/configuration/CommonConfigTest.java new file mode 100644 index 000000000..83ffbb979 --- /dev/null +++ b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/framework/configuration/CommonConfigTest.java @@ -0,0 +1,103 @@ +package org.lowcoder.api.framework.configuration; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; +import org.lowcoder.sdk.config.CommonConfig; + +public class CommonConfigTest +{ + + /** + * Test parsing with nginx notations (k, m, g) + **/ + + @Test + public void normalizeDataUnit_worksWithNginxBytes() + { + String nginx = "123456"; + assertEquals("123456", CommonConfig.normalizeDataUnits(nginx)); + } + + @Test + public void normalizeDataUnit_worksWithNginxKiloBytes() + { + String nginx = "16k"; + assertEquals("16KB", CommonConfig.normalizeDataUnits(nginx)); + } + + @Test + public void normalizeDataUnit_worksWithNginxMegaBytes() + { + String nginx = "20m"; + assertEquals("20MB", CommonConfig.normalizeDataUnits(nginx)); + } + + @Test + public void normalizeDataUnit_worksWithNginxGigaBytes() + { + String nginx = "20g"; + assertEquals("20GB", CommonConfig.normalizeDataUnits(nginx)); + } + + /** + * Test parsing with spring notations (B, KB, MB, GB) + **/ + + @Test + public void normalizeDataUnit_worksWithSpringBytes() + { + String nginx = "123456B"; + assertEquals("123456", CommonConfig.normalizeDataUnits(nginx)); + } + + @Test + public void normalizeDataUnit_worksWithSpringKiloBytes() + { + String nginx = "16KB"; + assertEquals("16KB", CommonConfig.normalizeDataUnits(nginx)); + } + + @Test + public void normalizeDataUnit_worksWithSpringMegaBytes() + { + String nginx = "20MB"; + assertEquals("20MB", CommonConfig.normalizeDataUnits(nginx)); + } + + @Test + public void normalizeDataUnit_worksWithSpringGigaBytes() + { + String nginx = "20GB"; + assertEquals("20GB", CommonConfig.normalizeDataUnits(nginx)); + } + + /** + * Test parsing with mixed case + **/ + + @Test + public void normalizeDataUnit_worksWithMixedCase() + { + assertEquals("10MB", CommonConfig.normalizeDataUnits("10MB")); + assertEquals("10MB", CommonConfig.normalizeDataUnits("10mb")); + assertEquals("10MB", CommonConfig.normalizeDataUnits("10mB")); + assertEquals("10MB", CommonConfig.normalizeDataUnits("10m")); + assertEquals("10MB", CommonConfig.normalizeDataUnits("10M")); + } + + /** + * Test parsing with whitespaces + **/ + + @Test + public void normalizeDataUnit_worksWithWhitespaces() + { + assertEquals("10MB", CommonConfig.normalizeDataUnits("10 MB")); + assertEquals("10MB", CommonConfig.normalizeDataUnits("10M ")); + assertEquals("10MB", CommonConfig.normalizeDataUnits("10\tmb")); + assertEquals("10MB", CommonConfig.normalizeDataUnits(" 10 MB ")); + assertEquals("10MB", CommonConfig.normalizeDataUnits("\t10\tMB\t")); + assertEquals("10MB", CommonConfig.normalizeDataUnits(" \t 10 \tMB \t")); + } +} diff --git a/server/api-service/pom.xml b/server/api-service/pom.xml index 19e83e38c..a6acfae30 100644 --- a/server/api-service/pom.xml +++ b/server/api-service/pom.xml @@ -288,11 +288,11 @@ 1.0.6.RELEASE - - javax.servlet - javax.servlet-api - 4.0.1 - + + jakarta.servlet + jakarta.servlet-api + 6.0.0 + io.projectreactor From 9133d5009042e3c9116d0681fb36612e2aa38c04 Mon Sep 17 00:00:00 2001 From: Ludo Mikula Date: Tue, 18 Jul 2023 18:48:13 +0200 Subject: [PATCH 2/3] fix: api server jar file name in docker build --- deploy/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/docker/Dockerfile b/deploy/docker/Dockerfile index 28801a385..a3750e7a7 100644 --- a/deploy/docker/Dockerfile +++ b/deploy/docker/Dockerfile @@ -20,7 +20,7 @@ RUN --mount=type=cache,target=/root/.m2 mvn -f pom.xml clean package -DskipTests RUN mkdir -p /lowcoder/api-service/plugins /lowcoder/api-service/config /lowcoder/api-service/logs # Define lowcoder main jar and plugin jars -ARG JAR_FILE=/lowcoder-server/lowcoder-server/target/lowcoder-server-1.0-SNAPSHOT.jar +ARG JAR_FILE=/lowcoder-server/lowcoder-server/target/lowcoder-server-*.jar ARG PLUGIN_JARS=/lowcoder-server/lowcoder-plugins/*/target/*.jar # Copy Java runtime for running server From c5a6854c18f924e12baea97ac6d98f6fc92b90be Mon Sep 17 00:00:00 2001 From: Ludo Mikula Date: Tue, 18 Jul 2023 18:53:02 +0200 Subject: [PATCH 3/3] fix: unify max request size default values to 20mb --- deploy/docker/README.md | 4 ++-- deploy/docker/docker-compose-multi.yaml | 2 +- deploy/docker/docker-compose.yaml | 2 +- deploy/docker/frontend/01-update-nginx-conf.sh | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/deploy/docker/README.md b/deploy/docker/README.md index d5463ecae..378f9eadd 100644 --- a/deploy/docker/README.md +++ b/deploy/docker/README.md @@ -36,7 +36,7 @@ Image can be configured by setting environment variables. | `ENCRYPTION_PASSWORD` | Encryption password | `lowcoder.org` | | `ENCRYPTION_SALT` | Salt used for encrypting password | `lowcoder.org` | | `CORS_ALLOWED_DOMAINS` | CORS allowed domains | `*` | -| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `5m` | +| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `20m` | | `LOWCODER_API_SERVICE_URL` | Lowcoder API service URL | `http://localhost:8080` | | `LOWCODER_NODE_SERVICE_URL` | Lowcoder Node service (js executor) URL | `http://localhost:6060` | | `DEFAULT_ORGS_PER_USER` | Default maximum organizations per user | `100` | @@ -122,7 +122,7 @@ Image can be configured by setting environment variables. | --------------------------------| --------------------------------------------------------------------| ------------------------------------------------------- | | `PUID` | ID of user running services. It will own all created logs and data. | `9001` | | `PGID` | ID of group of the user running services. | `9001` | -| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `5m` | +| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `20m` | | `LOWCODER_API_SERVICE_URL` | Lowcoder API service URL | `http://localhost:8080` | | `LOWCODER_NODE_SERVICE_URL` | Lowcoder Node service (js executor) URL | `http://localhost:6060` | diff --git a/deploy/docker/docker-compose-multi.yaml b/deploy/docker/docker-compose-multi.yaml index 2700b3577..dbfecc714 100644 --- a/deploy/docker/docker-compose-multi.yaml +++ b/deploy/docker/docker-compose-multi.yaml @@ -75,7 +75,7 @@ services: environment: PUID: "9001" PGID: "9001" - LOWCODER_MAX_REQUEST_SIZE: 5m + LOWCODER_MAX_REQUEST_SIZE: 20m LOWCODER_API_SERVICE_URL: "http://lowcoder-api-service:8080" LOWCODER_NODE_SERVICE_URL: "http://lowcoder-node-service:6060" restart: unless-stopped diff --git a/deploy/docker/docker-compose.yaml b/deploy/docker/docker-compose.yaml index 3f9e54d05..d07aed9ea 100644 --- a/deploy/docker/docker-compose.yaml +++ b/deploy/docker/docker-compose.yaml @@ -37,7 +37,7 @@ services: LOWCODER_API_SERVICE_URL: "http://localhost:8080" LOWCODER_NODE_SERVICE_URL: "http://localhost:6060" # frontend parameters - LOWCODER_MAX_REQUEST_SIZE: 5m + LOWCODER_MAX_REQUEST_SIZE: 20m volumes: - ./lowcoder-stacks:/lowcoder-stacks restart: unless-stopped diff --git a/deploy/docker/frontend/01-update-nginx-conf.sh b/deploy/docker/frontend/01-update-nginx-conf.sh index 524bbc923..97e6570da 100644 --- a/deploy/docker/frontend/01-update-nginx-conf.sh +++ b/deploy/docker/frontend/01-update-nginx-conf.sh @@ -18,11 +18,11 @@ else ln -s /etc/nginx/nginx-http.conf /etc/nginx/nginx.conf fi; -sed -i "s@__LOWCODER_MAX_REQUEST_SIZE__@${LOWCODER_MAX_REQUEST_SIZE:=5m}@" /etc/nginx/nginx.conf +sed -i "s@__LOWCODER_MAX_REQUEST_SIZE__@${LOWCODER_MAX_REQUEST_SIZE:=20m}@" /etc/nginx/nginx.conf sed -i "s@__LOWCODER_API_SERVICE_URL__@${LOWCODER_API_SERVICE_URL:=http://localhost:8080}@" /etc/nginx/nginx.conf sed -i "s@__LOWCODER_NODE_SERVICE_URL__@${LOWCODER_NODE_SERVICE_URL:=http://localhost:6060}@" /etc/nginx/nginx.conf echo "nginx config updated with:" -echo " Lowcoder max upload size: ${LOWCODER_MAX_REQUEST_SIZE:=5m}" +echo " Lowcoder max upload size: ${LOWCODER_MAX_REQUEST_SIZE:=20m}" echo " Lowcoder api service URL: ${LOWCODER_API_SERVICE_URL:=http://localhost:8080}" echo " Lowcoder node service URL: ${LOWCODER_NODE_SERVICE_URL:=http://localhost:6060}"