From 732323496b17bebbe3b7a7020373f99d84c1295d Mon Sep 17 00:00:00 2001 From: Jiadong Bai Date: Sun, 21 Sep 2025 21:47:34 -0700 Subject: [PATCH 1/2] keep the docker compose up-to-date --- deployment/single-node/.env | 25 +++++--- deployment/single-node/docker-compose.yml | 71 ++++++++++++++++++++--- deployment/single-node/nginx.conf | 26 +++++++++ 3 files changed, 104 insertions(+), 18 deletions(-) diff --git a/deployment/single-node/.env b/deployment/single-node/.env index 4b5d1d58364..ad2a9ee3d35 100644 --- a/deployment/single-node/.env +++ b/deployment/single-node/.env @@ -28,25 +28,25 @@ LAKEFS_INSTALLATION_ACCESS_KEY_ID=AKIAIOSFOLKFSSAMPLES LAKEFS_INSTALLATION_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY LAKEFS_BLOCKSTORE_TYPE=s3 LAKEFS_BLOCKSTORE_S3_FORCE_PATH_STYLE=true -LAKEFS_BLOCKSTORE_S3_ENDPOINT=http://texera-minio:9000 +LAKEFS_BLOCKSTORE_S3_ENDPOINT=http://minio:9000 LAKEFS_BLOCKSTORE_S3_CREDENTIALS_ACCESS_KEY_ID=texera_minio LAKEFS_BLOCKSTORE_S3_CREDENTIALS_SECRET_ACCESS_KEY=password LAKEFS_AUTH_ENCRYPT_SECRET_KEY=random_string_for_lakefs LAKEFS_LOGGING_LEVEL=INFO LAKEFS_STATS_ENABLED=1 LAKEFS_DATABASE_TYPE=postgres -LAKEFS_DATABASE_POSTGRES_CONNECTION_STRING=postgres://texera:password@texera-postgres:5432/texera_lakefs?sslmode=disable +LAKEFS_DATABASE_POSTGRES_CONNECTION_STRING=postgres://texera:password@postgres:5432/texera_lakefs?sslmode=disable -STORAGE_S3_ENDPOINT=http://texera-minio:9000 -STORAGE_LAKEFS_ENDPOINT=http://texera-lakefs:8000/api/v1 -STORAGE_JDBC_URL=jdbc:postgresql://texera-postgres:5432/texera_db?currentSchema=texera_db,public +STORAGE_S3_ENDPOINT=http://minio:9000 +STORAGE_LAKEFS_ENDPOINT=http://lakefs:8000/api/v1 +STORAGE_JDBC_URL=jdbc:postgresql://postgres:5432/texera_db?currentSchema=texera_db,public STORAGE_JDBC_USERNAME=texera STORAGE_JDBC_PASSWORD=password -FILE_SERVICE_GET_PRESIGNED_URL_ENDPOINT=http://texera-file-service:9092/api/dataset/presign-download -FILE_SERVICE_UPLOAD_ONE_FILE_TO_DATASET_ENDPOINT=http://texera-file-service:9092/api/dataset/did/upload +FILE_SERVICE_GET_PRESIGNED_URL_ENDPOINT=http://file-service:9092/api/dataset/presign-download +FILE_SERVICE_UPLOAD_ONE_FILE_TO_DATASET_ENDPOINT=http://file-service:9092/api/dataset/did/upload USER_SYS_ENABLED=true STORAGE_ICEBERG_CATALOG_TYPE=postgres -STORAGE_ICEBERG_CATALOG_POSTGRES_URI_WITHOUT_SCHEME=texera-postgres:5432/texera_iceberg_catalog +STORAGE_ICEBERG_CATALOG_POSTGRES_URI_WITHOUT_SCHEME=postgres:5432/texera_iceberg_catalog STORAGE_ICEBERG_CATALOG_POSTGRES_USERNAME=texera STORAGE_ICEBERG_CATALOG_POSTGRES_PASSWORD=password @@ -55,4 +55,11 @@ TEXERA_EXAMPLE_USERNAME=texera TEXERA_EXAMPLE_PASSWORD=texera TEXERA_EXAMPLE_IS_PUBLIC=true TEXERA_EXAMPLE_DATASET_DIR=/example_data/data -TEXERA_EXAMPLE_WORKFLOW_DIR=/example_data/workflows \ No newline at end of file +TEXERA_EXAMPLE_WORKFLOW_DIR=/example_data/workflows + +# Additional configuration for GUI +GUI_DATASET_SINGLE_FILE_UPLOAD_MAXIMUM_SIZE_MB=10240 +GUI_WORKFLOW_WORKSPACE_PRODUCTION_SHARED_EDITING_SERVER=true +GUI_WORKFLOW_WORKSPACE_WORKFLOW_EXECUTIONS_TRACKING_ENABLED=true +GUI_WORKFLOW_WORKSPACE_EXPORT_EXECUTION_RESULT_ENABLED=true +GUI_LOGIN_GOOGLE_LOGIN=false \ No newline at end of file diff --git a/deployment/single-node/docker-compose.yml b/deployment/single-node/docker-compose.yml index bd2394a8821..973fa050018 100644 --- a/deployment/single-node/docker-compose.yml +++ b/deployment/single-node/docker-compose.yml @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -name: texera-single-node-release-1-0-0 +name: texera-single-node-release-1-1-0 services: # Part1: Specification of the storage services used by Texera # MinIO is an S3-compatible object storage used to store datasets and files. @@ -78,7 +78,7 @@ services: # Part2: Specification of Texera's micro-services # FileService provides endpoints for Texera's dataset management file-service: - image: texera/file-service:single-node-release-1-0-0 + image: texera/file-service:release-1-1-0 container_name: texera-file-service restart: always depends_on: @@ -94,9 +94,41 @@ services: timeout: 3s retries: 10 + # ConfigService provides configuration management endpoints + config-service: + image: texera/config-service:release-1-1-0 + container_name: texera-config-service + restart: always + depends_on: + postgres: + condition: service_healthy + env_file: + - .env + healthcheck: + test: ["CMD", "curl", "-sf", "http://localhost:9094/api/healthcheck"] + interval: 5s + timeout: 3s + retries: 10 + + # ComputingUnitManagingService manages computing unit allocation and resources + computing-unit-managing-service: + image: texera/workflow-computing-unit-managing-service:release-1-1-0 + container_name: texera-computing-unit-managing-service + restart: always + depends_on: + postgres: + condition: service_healthy + env_file: + - .env + healthcheck: + test: ["CMD", "curl", "-sf", "http://localhost:8888/api/healthcheck"] + interval: 5s + timeout: 3s + retries: 10 + # WorkflowCompilingService provides endpoints for sanity check and schema propagation while workflows are being edited workflow-compiling-service: - image: texera/workflow-compiling-service:single-node-release-1-0-0 + image: texera/workflow-compiling-service:release-1-1-0 container_name: texera-workflow-compiling-service restart: always depends_on: @@ -110,10 +142,20 @@ services: timeout: 3s retries: 10 + # Y-WebSocket server for real-time collaboration + y-websocket-server: + image: texera/y-websocket-server:release-1-1-0 + container_name: texera-y-websocket-server + restart: always + env_file: + - .env + ports: + - "1234:1234" + # ComputingUnitMaster provides endpoints for executing workflows and interactions during executions. computing-unit-master: - # to enable R operators, change the image tag to single-node-release-1-0-0-R - image: texera/computing-unit-master:single-node-release-1-0-0 + # to enable R operators, change the image tag to release-1-1-0-R + image: texera/computing-unit-master:release-1-1-0 container_name: texera-computing-unit-master restart: always depends_on: @@ -126,16 +168,22 @@ services: # TexeraWebApplication provides endpoints for hub resource management. texera-web-application: - image: texera/texera-web-application:single-node-release-1-0-0 + image: texera/texera-web-application:release-1-1-0 container_name: texera-web-application restart: always depends_on: computing-unit-master: condition: service_started + computing-unit-managing-service: + condition: service_healthy workflow-compiling-service: condition: service_healthy file-service: condition: service_healthy + config-service: + condition: service_healthy + y-websocket-server: + condition: service_started env_file: - .env volumes: @@ -147,14 +195,16 @@ services: retries: 10 texera-example-data-loader: - image: texera/texera-example-data-loader:single-node-release-1-0-0 + image: texera/texera-example-data-loader:release-1-1-0 container_name: texera-example-data-loader depends_on: texera-web-application: condition: service_healthy + file-service: + condition: service_healthy environment: TEXERA_WEB_APPLICATION_URL: http://texera-web-application:8080/api - TEXERA_FILE_SERVICE_URL: http://texera-file-service:9092/api + TEXERA_FILE_SERVICE_URL: http://file-service:9092/api restart: "no" texera-access-message: @@ -191,6 +241,9 @@ services: - file-service - texera-web-application - computing-unit-master + - computing-unit-managing-service + - config-service + - y-websocket-server volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro ports: @@ -198,7 +251,7 @@ services: networks: default: - name: texera-single-node-release-1-0-0 + name: texera-single-node-release-1-1-0 # persistent volumes volumes: diff --git a/deployment/single-node/nginx.conf b/deployment/single-node/nginx.conf index f703fb027ff..234f87f555b 100644 --- a/deployment/single-node/nginx.conf +++ b/deployment/single-node/nginx.conf @@ -42,6 +42,24 @@ http { proxy_set_header X-Real-IP $remote_addr; } + location /api/access/computing-unit/ { + proxy_pass http://texera-computing-unit-managing-service:8888; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + } + + location /api/config/ { + proxy_pass http://texera-config-service:9094; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + } + + location /api/computing-unit { + proxy_pass http://texera-computing-unit-managing-service:8888; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + } + location /api/ { proxy_pass http://texera-web-application:8080; proxy_set_header Host $host; @@ -56,6 +74,14 @@ http { proxy_set_header Host $host; } + location /rtc { + proxy_pass http://texera-y-websocket-server:1234; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $host; + } + # Fallback for all other routes location / { proxy_pass http://texera-web-application:8080; From 0a19fd349b10ba88be66268fb7bc3b633eca324f Mon Sep 17 00:00:00 2001 From: Jiadong Bai Date: Mon, 22 Sep 2025 22:54:04 -0700 Subject: [PATCH 2/2] update env vars --- deployment/single-node/.env | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/deployment/single-node/.env b/deployment/single-node/.env index ad2a9ee3d35..d374a3fbf33 100644 --- a/deployment/single-node/.env +++ b/deployment/single-node/.env @@ -49,10 +49,13 @@ STORAGE_ICEBERG_CATALOG_TYPE=postgres STORAGE_ICEBERG_CATALOG_POSTGRES_URI_WITHOUT_SCHEME=postgres:5432/texera_iceberg_catalog STORAGE_ICEBERG_CATALOG_POSTGRES_USERNAME=texera STORAGE_ICEBERG_CATALOG_POSTGRES_PASSWORD=password +# variables for admin user credentials +USER_SYS_ADMIN_USERNAME=texera +USER_SYS_ADMIN_PASSWORD=texera # variables for example user, datasets and workflows -TEXERA_EXAMPLE_USERNAME=texera -TEXERA_EXAMPLE_PASSWORD=texera +TEXERA_EXAMPLE_USERNAME="${USER_SYS_ADMIN_USERNAME}" +TEXERA_EXAMPLE_PASSWORD="${USER_SYS_ADMIN_PASSWORD}" TEXERA_EXAMPLE_IS_PUBLIC=true TEXERA_EXAMPLE_DATASET_DIR=/example_data/data TEXERA_EXAMPLE_WORKFLOW_DIR=/example_data/workflows @@ -62,4 +65,7 @@ GUI_DATASET_SINGLE_FILE_UPLOAD_MAXIMUM_SIZE_MB=10240 GUI_WORKFLOW_WORKSPACE_PRODUCTION_SHARED_EDITING_SERVER=true GUI_WORKFLOW_WORKSPACE_WORKFLOW_EXECUTIONS_TRACKING_ENABLED=true GUI_WORKFLOW_WORKSPACE_EXPORT_EXECUTION_RESULT_ENABLED=true -GUI_LOGIN_GOOGLE_LOGIN=false \ No newline at end of file +GUI_LOGIN_GOOGLE_LOGIN=false +GUI_TABS_HUB_ENABLED=false +GUI_LOGIN_DEFAULT_LOCAL_USER_USERNAME="${USER_SYS_ADMIN_USERNAME}" +GUI_LOGIN_DEFAULT_LOCAL_USER_PASSWORD="${USER_SYS_ADMIN_PASSWORD}" \ No newline at end of file