You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Dec 13, 2023. It is now read-only.
The latest version is [](https://GitHub.com/Netflix/conductor/releases)
14
17
@@ -19,43 +22,15 @@ The modules contributed by the community are housed at [conductor-community](htt
19
22
20
23
[Discussion Forum](https://github.com/Netflix/conductor/discussions) Please use the forum for questions and discussing ideas and join the community.
21
24
22
-
[Access here other Conductor related projects made by the community!](/RELATED.md) - Backup tool, Cron like workflow starter, Docker containers...
25
+
[List of Conductor community projects](/docs/docs/resources/related.md) - Backup tool, Cron like workflow starter, Docker containers...
23
26
24
27
## Getting Started - Building & Running Conductor
25
28
### Docker
26
-
The easiest way to get started is with Docker containers. Please follow the instructions [here](https://github.com/Netflix/conductor/tree/main/docker). The server and UI can also be built from source separately.
27
-
28
-
### Conductor Server From Source
29
-
Conductor Server is a [Spring Boot](https://spring.io/projects/spring-boot) project and follows all applicable conventions. First, ensure that Java JDK 11+ is installed.
30
-
31
-
#### Development
32
-
The server can be started locally by running `./gradlew bootRun` from the project root. This will start up Conductor with an in-memory persistence and queue implementation. It is not recommended for production use but can come in handy for quickly evaluating what Conductor's all about. For actual production use-cases, please use one of the supported persistence and queue implementations.
33
-
34
-
You can verify the development server is up by navigating to `http://localhost:8080` in a browser.
35
-
36
-
#### Production Build
37
-
Running `./gradlew build` from the project root builds the project into the `/build` directory. Note that Docker is a requirement for tests to run, and thus a requirement to build even if you are building
38
-
outside of a Docker container. If you do not have Docker installed you can run `./gradlew build -x test` to skip tests.
29
+
The easiest way to get started is with Docker containers. Please follow the instructions [here](https://conductor.netflix.com/gettingstarted/docker.html).
39
30
31
+
### From Source
32
+
Conductor Server is a [Spring Boot](https://spring.io/projects/spring-boot) project and follows all applicable conventions. See instructions [here](http://conductor.netflix.com/gettingstarted/source.html).
40
33
41
-
#### Pre-built JAR
42
-
A [pre-built](https://artifacts.netflix.net/netflixoss/com/netflix/conductor/conductor-server/) executable jar is available that can be downloaded and run using:
43
-
44
-
`java -jar conductor-server-*-boot.jar`
45
-
46
-
### Conductor UI from Source
47
-
48
-
The UI is a standard `create-react-app` React Single Page Application (SPA). To get started, with Node 14 and `yarn` installed, first run `yarn install` from within the `/ui` directory to retrieve package dependencies.
49
-
50
-
There is no need to "build" the project unless you require compiled assets to host on a production web server. If the latter is true, the project can be built with the command `yarn build`.
51
-
52
-
To run the UI on the bundled development server, run `yarn run start`. Navigate your browser to `http://localhost:5000`. The server must already be running on port 8080.
[Getting Started Guide](https://netflix.github.io/conductor/gettingstarted/basicconcepts/).
59
34
60
35
## Published Artifacts
61
36
Binaries are available from [Netflix OSS Maven](https://artifacts.netflix.net/netflixoss/com/netflix/conductor/) repository, or the [Maven Central Repository](https://search.maven.org/search?q=g:com.netflix.conductor).
@@ -93,7 +68,7 @@ Binaries are available from [Netflix OSS Maven](https://artifacts.netflix.net/ne
93
68
* UI requires Node 14 to build. Earlier Node versions may work but is untested.
94
69
95
70
## Get Support
96
-
Conductor is maintained by Media Workflow Infrastructure team at Netflix. Use github issue tracking for filing issues and [Discussion Forum](https://github.com/Netflix/conductor/discussions) for any other questions, ideas or support requests.
71
+
Conductor is maintained by Media Workflow Infrastructure team at Netflix. Use Github issue tracking for filing issues and [Discussion Forum](https://github.com/Netflix/conductor/discussions) for any other questions, ideas or support requests.
97
72
98
73
## Contributions
99
74
Whether it is a small documentation correction, bug fix or new features, contributions are highly appreciated. We just ask to follow standard oss guidelines. [Discussion Forum](https://github.com/Netflix/conductor/discussions) is a good place to ask questions, discuss new features and explore ideas. Please check with us before spending too much time, only to find later that someone else is already working on a similar feature.
The easiest way to start experimenting with Conductor is via `docker-compose`.
4
-
```
5
-
cd docker
6
-
docker-compose build
7
-
docker-compose up
8
-
```
9
-
10
-
This default docker compose build establishes 3 services each running in its own container
11
-
* Elasticsearch
12
-
* Conductor Server
13
-
* Conductor UI
14
-
15
-
The UI can be accessed by pointing your browser to `http://localhost:5000/`
16
-
The Server API is accessible at `http://localhost:8080/`
17
-
18
-
### Alternative Persistence Engines
19
-
By default `docker-compose.yaml` uses `config-local.properties`. This configures the `memory` database, where data is lost when the server terminates. This configuration is useful for testing or demo only.
20
-
21
-
A selection of `docker-compose-*.yaml` and `config-*.properties` files are provided demonstrating the use of alternative persistence engines.
22
-
23
-
For example this will start the server instance backed by a PostgreSQL DB.
24
-
```
25
-
docker-compose -f docker-compose.yaml -f docker-compose-postgres.yaml up
26
-
```
27
-
28
-
### Exiting Compose
29
-
`Ctrl+c` will exit docker compose.
30
-
31
-
To ensure images are stopped execute: `docker-compose down`.
32
-
33
-
## Standalone Server Image
34
-
To build and run the server image, without using `docker-compose`, from the `docker` directory execute:
docker run -p 8080:8080 -d --name conductor_server conductor:server
38
-
```
39
-
This builds the image `conductor:server` and runs it in a container named `conductor_server`. The API should now be accessible at `localhost:8080`.
40
-
41
-
To 'login' to the running container, use the command:
42
-
```
43
-
docker exec -it conductor_server /bin/sh
44
-
```
45
-
46
-
## Standalone UI Image
47
-
From the `docker` directory,
48
-
```
49
-
docker build -t conductor:ui -f ui/Dockerfile ../
50
-
docker run -p 5000:5000 -d --name conductor_ui conductor:ui
51
-
```
52
-
This builds the image `conductor:ui` and runs it in a container named `conductor_ui`. The UI should now be accessible at `localhost:5000`.
53
-
54
-
### Note
55
-
* In order for the UI to do anything useful the Conductor Server must already be running on port 8080, either in a Docker container (see above), or running directly in the local JRE.
56
-
* Additionally, significant parts of the UI will not be functional without Elastisearch being available. Using the `docker-compose` approach alleviates these considerations.
57
-
58
-
## Monitoring with Prometheus
59
-
60
-
Start Prometheus with:
61
-
`docker-compose -f docker-compose-prometheus.yaml up -d`
62
-
63
-
Go to [http://127.0.0.1:9090](http://127.0.0.1:9090).
64
-
65
-
66
-
## Potential problem when using Docker Images
67
-
68
-
#### Elasticsearch timeout
69
-
Standalone(single node) elasticsearch has a yellow status which will cause timeout for conductor server (Required: Green).
70
-
Spin up a cluster (more than one) to prevent timeout or use config option `conductor.elasticsearch.clusteHealthColor=yellow`.
71
-
72
-
See issue: https://github.com/Netflix/conductor/issues/2262
73
-
74
-
#### Changes in config-*.properties do not take effect
75
-
Config is copy into image during docker build. You have to rebuild the image or better, link a volume to it to reflect new changes.
76
-
77
-
#### To troubleshoot a failed startup
78
-
Check the log of the server, which is located at `/app/logs` (default directory in dockerfile)
79
-
80
-
#### Unable to access to conductor:server API on port 8080
81
-
It may takes some time for conductor server to start. Please check server log for potential error.
82
-
83
-
#### Elasticsearch
84
-
Elasticsearch is optional, please be aware that disable it will make most of the conductor UI not functional.
85
-
86
-
##### How to enable Elasticsearch
87
-
* Set `workflow.indexing.enabled=true` in your_config.properties
| docker-compose.yaml | 1. In Memory Conductor Server 2. Elasticsearch 3. UI |
34
-
| docker-compose-dynomite.yaml | 1. In Memory Conductor Server 2. Elasticsearch 3. UI 4. Dynomite Redis for persistence |
35
-
| docker-compose-postgres.yaml | 1. In Memory Conductor Server 2. Elasticsearch 3. UI 4. Postgres persistence |
36
-
| docker-compose-prometheus.yaml | Brings up Prometheus server |
37
30
38
-
####3. Run Docker Compose
31
+
### 3. Run Docker Compose
39
32
40
33
```shell
41
34
docker $ docker-compose up
@@ -47,22 +40,41 @@ Once up and running, you will see the following in your Docker dashboard:
47
40
2. Conductor UI
48
41
3. Conductor Server
49
42
50
-
You can access all three on your browser to verify that it is running correctly:
43
+
You can access the UI & Server on your browser to verify that they are running correctly:
51
44
52
-
Conductor Server URL: [http://localhost:8080/swagger-ui/index.html?configUrl=/api-docs/swagger-config](http://localhost:8080/swagger-ui/index.html?configUrl=/api-docs/swagger-config)
To ensure images are stopped execute: `docker-compose down`.
65
60
61
+
## Alternative Persistence Engines
62
+
By default `docker-compose.yaml` uses `config-local.properties`. This configures the `memory` database, where data is lost when the server terminates. This configuration is useful for testing or demo only.
63
+
64
+
A selection of `docker-compose-*.yaml` and `config-*.properties` files are provided demonstrating the use of alternative persistence engines.
0 commit comments