captainVersion: 4 services: $$cap_appname-postgres: image: postgres:$$cap_postgres_version volumes: - $$cap_appname-postgres-data:/var/lib/postgresql/data restart: always environment: POSTGRES_DB: windmill POSTGRES_USER: postgres POSTGRES_PASSWORD: $$cap_postgres_pass caproverExtra: notExposeAsWebApp: 'true' $$cap_appname: image: ghcr.io/windmill-labs/windmill:$$cap_app_version expose: - 8000 environment: DATABASE_URL: postgres://postgres:$$cap_postgres_pass@srv-captain--$$cap_appname-postgres/windmill?sslmode=disable BASE_URL: $$cap_wm_base_url RUST_LOG: 'info' NUM_WORKERS: '0' DISABLE_SERVER: 'false' METRICS_ADDR: 'false' depends_on: - $$cap_appname-postgres caproverExtra: containerHttpPort: '8000' $$cap_appname-worker: image: ghcr.io/windmill-labs/windmill:$$cap_app_version environment: DATABASE_URL: postgres://postgres:$$cap_postgres_pass@srv-captain--$$cap_appname-postgres/windmill?sslmode=disable BASE_URL: $$cap_wm_base_url BASE_INTERNAL_URL: 'http://srv-captain--$$cap_appname:8000' RUST_LOG: 'info' NUM_WORKERS: '1' DISABLE_SERVER: 'true' KEEP_JOB_DIR: 'false' DENO_PATH: '/usr/bin/deno' PYTHON_PATH: '/usr/local/bin/python3' METRICS_ADDR: 'false' depends_on: - $$cap_appname-postgres caproverExtra: notExposeAsWebApp: 'true' $$cap_appname-lsp: image: ghcr.io/windmill-labs/windmill-lsp:$$cap_app_version expose: - 3001 caproverExtra: containerHttpPort: '3001' notExposeAsWebApp: 'true' caproverOneClickApp: instructions: start: |- Windmill is an open-source alternative to Retool, Airplane and n8n to build all your internal tools (endpoints, workflows, UIs) through simple scripts - in Typescript, Python, Go & Bash - and low code builders. end: |- Windmill has been successfully deployed! Please change the following settings before using the service: 1. Go to the settings for `$$cap_appname` 2. Enable **Websocket Support** 3. Enable **HTTPS** 4. Click on **Edit Default Nginx Configurations** and paste the following content before the last closing bracket "}": ``` location /ws/ { proxy_pass http://srv-captain--$$cap_appname-lsp:3001/ws/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } ``` Now you can access it at `https://$$cap_appname.$$cap_root_domain` Default e-mail is `admin@windmill.dev` and the password is `changeme` displayName: Windmill isOfficial: true description: Windmill is an open-source alternative to Retool, Airplane and n8n. documentation: https://windmill.dev variables: - id: $$cap_app_version label: Windmill Version defaultValue: '1.99' description: Checkout their github page for the valid tags https://github.com/windmill-labs/windmill/releases validRegex: /^([^\s^\/])+$/ - id: $$cap_wm_base_url label: WM Base URL defaultValue: https://$$cap_appname.$$cap_root_domain description: |- Server fully qualified url of the user-facing URL. Example: https://windmill.example.com - id: $$cap_postgres_version label: Postgres Version defaultValue: '15-alpine' description: Checkout their page for the valid tags https://hub.docker.com/_/postgres validRegex: /^([^\s^\/])+$/ - id: $$cap_postgres_pass label: Potgress Database password description: 'Password for postgres' defaultValue: $$cap_gen_random_hex(16) validRegex: /^([^\s^\/])+$/