pydio / cells

Future-proof content collaboration platform
https://pydio.com
GNU Affero General Public License v3.0
1.82k stars 180 forks source link

running cluster with goreman / profile #475

Open gedw99 opened 1 year ago

gedw99 commented 1 year ago

hey @cdujeu

add https://github.com/mattn/goreman, so users can run the nats system easily in development

worked for me.

if you want a PR let me know.

gedw99 commented 1 year ago
 cells % goreman start
13:52:57 cluster1d | Starting cluster1d on port 5400
13:52:57  cluster1 | Starting cluster1 on port 5100
13:52:57     node1 | Starting node1 on port 5600
13:52:57  cluster2 | Starting cluster2 on port 5200
13:52:57 cluster2d | Starting cluster2d on port 5500
13:52:57      seed | Starting seed on port 5000
13:52:57  cluster3 | Starting cluster3 on port 5300
13:52:57     node2 | Starting node2 on port 5700
13:52:57     node3 | Starting node3 on port 5800
13:52:57 cluster2d | /bin/sh: debug: command not found
13:52:57 cluster2d | Terminating cluster2d
13:52:57 cluster1d | /bin/sh: debug: command not found
13:52:57 cluster1d | Terminating cluster1d
13:53:02     node3 | Error: unknown flag: --port_registry
13:53:02     node3 | Usage:
13:53:02     node3 |   ./cells start [flags]
13:53:02     node3 | Aliases:
13:53:02     node3 |   start, daemon
13:53:02     node3 | Flags:
13:53:02     node3 |       --advertise_address string     Address that should be advertised to other members of the cluster (leave it empty for default advertise address)
13:53:02     node3 |       --bind_address string          Address on which servers will bind. Binding port depends on the server type (grpc, http, etc). (default "127.0.0.1")
13:53:02     node3 |       --broker string                Pub/sub service URL for events broadcast. Supported schemes: grpc|mem|nats|rabbit (default "mem://")
13:53:02     node3 |       --enable_metrics               Instrument code to expose internal metrics (to local JSON file, or service discovery if Metrics Basic Auth is set)
13:53:02     node3 |       --enable_pprof                 Enable pprof remote debugging
13:53:02     node3 |   -x, --exclude stringArray          Select services to start by filtering out some specific ones by name
13:53:02     node3 |       --grpc_discovery_port string   Default discovery gRPC server port (registry, broker, config, and log services). (default "8030")
13:53:02     node3 |       --grpc_port string             Default gRPC server port (all gRPC services, except discovery ones) (default "8031")
13:53:02     node3 |       --healthcheck int              Healthcheck port number
13:53:02     node3 |   -h, --help                         help for start
13:53:02     node3 |       --log string                   Output log level: debug, info, warn, error (production is equivalent to log_json+info) (default "info")
13:53:02     node3 |       --log_json                     Output log formatted as JSON instead of text
13:53:02     node3 |       --log_to_file                  Write logs on-file in CELLS_LOG_DIR (default true)
13:53:02     node3 |       --metrics_basic_auth string    Expose metrics to a service discovery endpoint /metrics/sd
13:53:02     node3 |       --registry string              Registry URL used to manage services. Supported schemes: etcd|etcd+tls|file|grpc|mem (default "mem://?cache=shared")
13:53:02     node3 |       --site_bind string             [Site] The 'site_' flags suite overrides config-defined sites. Bind is the site binding address IP|DOMAIN:PORT (default 0.0.0.0:8080)
13:53:02     node3 |       --site_external string         [Site] External full URL http[s]://IP|DOMAIN[:PORT] exposed to the outside
13:53:02     node3 |       --site_le_agree                [Site] Accept Let's Encrypt EULA
13:53:02     node3 |       --site_le_email string         [Site] Set email to enable Let's Encrypt automatic TLS configuration
13:53:02     node3 |       --site_le_staging              [Site] Use Let's Encrypt staging CA instead of production to avoid being banned on misconfiguration.
13:53:02     node3 |       --site_no_tls                  [Site] Use plain HTTP (default false, use self-signed)
13:53:02     node3 |       --site_tls_cert_file string    [Site] Path to custom TLS certificate file
13:53:02     node3 |       --site_tls_key_file string     [Site] Path to custom TLS key file
13:53:02     node3 |   -t, --tags stringArray             Select services to start by tags, possible values are 'broker', 'data', 'datasource', 'discovery', 'frontend', 'gateway', 'idm', 'scheduler'
13:53:02     node3 | Global Flags:
13:53:02     node3 |       --config string   Configuration storage URL. Supported schemes: etcd|etcd+tls|file|grpc|mem|vault|vaults (default "file:///Users/apple/Library/Application Support/Pydio/cells/pydio.json")
13:53:02     node3 | unknown flag: --port_registry
13:53:02     node3 | Terminating node3
13:53:02  cluster2 | Error: unknown command "cluster" for "./cells"
13:53:02  cluster2 | Run './cells --help' for usage.
13:53:02  cluster2 | unknown command "cluster" for "./cells"
13:53:02      seed | Error: unknown flag: --port_registry
13:53:02      seed | Usage:
13:53:02      seed |   ./cells start [flags]
13:53:02      seed | Aliases:
13:53:02      seed |   start, daemon
13:53:02      seed | Flags:
13:53:02      seed |       --advertise_address string     Address that should be advertised to other members of the cluster (leave it empty for default advertise address)
13:53:02      seed |       --bind_address string          Address on which servers will bind. Binding port depends on the server type (grpc, http, etc). (default "127.0.0.1")
13:53:02      seed |       --broker string                Pub/sub service URL for events broadcast. Supported schemes: grpc|mem|nats|rabbit (default "mem://")
13:53:02      seed |       --enable_metrics               Instrument code to expose internal metrics (to local JSON file, or service discovery if Metrics Basic Auth is set)
13:53:02      seed |       --enable_pprof                 Enable pprof remote debugging
13:53:02      seed |   -x, --exclude stringArray          Select services to start by filtering out some specific ones by name
13:53:02      seed |       --grpc_discovery_port string   Default discovery gRPC server port (registry, broker, config, and log services). (default "8030")
13:53:02      seed |       --grpc_port string             Default gRPC server port (all gRPC services, except discovery ones) (default "8031")
13:53:02      seed |       --healthcheck int              Healthcheck port number
13:53:02      seed |   -h, --help                         help for start
13:53:02      seed |       --log string                   Output log level: debug, info, warn, error (production is equivalent to log_json+info) (default "info")
13:53:02      seed |       --log_json                     Output log formatted as JSON instead of text
13:53:02      seed |       --log_to_file                  Write logs on-file in CELLS_LOG_DIR (default true)
13:53:02      seed |       --metrics_basic_auth string    Expose metrics to a service discovery endpoint /metrics/sd
13:53:02      seed |       --registry string              Registry URL used to manage services. Supported schemes: etcd|etcd+tls|file|grpc|mem (default "mem://?cache=shared")
13:53:02      seed |       --site_bind string             [Site] The 'site_' flags suite overrides config-defined sites. Bind is the site binding address IP|DOMAIN:PORT (default 0.0.0.0:8080)
13:53:02      seed |       --site_external string         [Site] External full URL http[s]://IP|DOMAIN[:PORT] exposed to the outside
13:53:02      seed |       --site_le_agree                [Site] Accept Let's Encrypt EULA
13:53:02      seed |       --site_le_email string         [Site] Set email to enable Let's Encrypt automatic TLS configuration
13:53:02      seed |       --site_le_staging              [Site] Use Let's Encrypt staging CA instead of production to avoid being banned on misconfiguration.
13:53:02      seed |       --site_no_tls                  [Site] Use plain HTTP (default false, use self-signed)
13:53:02  cluster2 | Terminating cluster2
13:53:02      seed |       --site_tls_cert_file string    [Site] Path to custom TLS certificate file
13:53:02      seed |       --site_tls_key_file string     [Site] Path to custom TLS key file
13:53:02      seed |   -t, --tags stringArray             Select services to start by tags, possible values are 'broker', 'data', 'datasource', 'discovery', 'frontend', 'gateway', 'idm', 'scheduler'
13:53:02      seed | Global Flags:
13:53:02      seed |       --config string   Configuration storage URL. Supported schemes: etcd|etcd+tls|file|grpc|mem|vault|vaults (default "file:///Users/apple/Library/Application Support/Pydio/cells/pydio.json")
13:53:02      seed | unknown flag: --port_registry
13:53:02      seed | Terminating seed
13:53:02  cluster1 | Error: unknown command "cluster" for "./cells"
13:53:02  cluster1 | Run './cells --help' for usage.
13:53:02  cluster1 | unknown command "cluster" for "./cells"
13:53:02  cluster3 | Error: unknown command "cluster" for "./cells"
13:53:02  cluster3 | Run './cells --help' for usage.
13:53:02  cluster1 | Terminating cluster1
13:53:02  cluster3 | unknown command "cluster" for "./cells"
13:53:02  cluster3 | Terminating cluster3
13:53:02     node1 | Error: unknown flag: --port_registry
13:53:02     node2 | Error: unknown flag: --port_registry
13:53:02     node1 | Usage:
13:53:02     node1 |   ./cells start [flags]
13:53:02     node1 | Aliases:
13:53:02     node1 |   start, daemon
13:53:02     node1 | Flags:
13:53:02     node1 |       --advertise_address string     Address that should be advertised to other members of the cluster (leave it empty for default advertise address)
13:53:02     node1 |       --bind_address string          Address on which servers will bind. Binding port depends on the server type (grpc, http, etc). (default "127.0.0.1")
13:53:02     node1 |       --broker string                Pub/sub service URL for events broadcast. Supported schemes: grpc|mem|nats|rabbit (default "mem://")
13:53:02     node1 |       --enable_metrics               Instrument code to expose internal metrics (to local JSON file, or service discovery if Metrics Basic Auth is set)
13:53:02     node1 |       --enable_pprof                 Enable pprof remote debugging
13:53:02     node1 |   -x, --exclude stringArray          Select services to start by filtering out some specific ones by name
13:53:02     node1 |       --grpc_discovery_port string   Default discovery gRPC server port (registry, broker, config, and log services). (default "8030")
13:53:02     node1 |       --grpc_port string             Default gRPC server port (all gRPC services, except discovery ones) (default "8031")
13:53:02     node1 |       --healthcheck int              Healthcheck port number
13:53:02     node1 |   -h, --help                         help for start
13:53:02     node1 |       --log string                   Output log level: debug, info, warn, error (production is equivalent to log_json+info) (default "info")
13:53:02     node1 |       --log_json                     Output log formatted as JSON instead of text
13:53:02     node1 |       --log_to_file                  Write logs on-file in CELLS_LOG_DIR (default true)
13:53:02     node1 |       --metrics_basic_auth string    Expose metrics to a service discovery endpoint /metrics/sd
13:53:02     node1 |       --registry string              Registry URL used to manage services. Supported schemes: etcd|etcd+tls|file|grpc|mem (default "mem://?cache=shared")
13:53:02     node2 | Usage:
13:53:02     node2 |   ./cells start [flags]
13:53:02     node2 | Aliases:
13:53:02     node2 |   start, daemon
13:53:02     node2 | Flags:
13:53:02     node1 |       --site_bind string             [Site] The 'site_' flags suite overrides config-defined sites. Bind is the site binding address IP|DOMAIN:PORT (default 0.0.0.0:8080)
13:53:02     node1 |       --site_external string         [Site] External full URL http[s]://IP|DOMAIN[:PORT] exposed to the outside
13:53:02     node1 |       --site_le_agree                [Site] Accept Let's Encrypt EULA
13:53:02     node1 |       --site_le_email string         [Site] Set email to enable Let's Encrypt automatic TLS configuration
13:53:02     node1 |       --site_le_staging              [Site] Use Let's Encrypt staging CA instead of production to avoid being banned on misconfiguration.
13:53:02     node1 |       --site_no_tls                  [Site] Use plain HTTP (default false, use self-signed)
13:53:02     node1 |       --site_tls_cert_file string    [Site] Path to custom TLS certificate file
13:53:02     node1 |       --site_tls_key_file string     [Site] Path to custom TLS key file
13:53:02     node1 |   -t, --tags stringArray             Select services to start by tags, possible values are 'broker', 'data', 'datasource', 'discovery', 'frontend', 'gateway', 'idm', 'scheduler'
13:53:02     node1 | Global Flags:
13:53:02     node1 |       --config string   Configuration storage URL. Supported schemes: etcd|etcd+tls|file|grpc|mem|vault|vaults (default "file:///Users/apple/Library/Application Support/Pydio/cells/pydio.json")
13:53:02     node1 | unknown flag: --port_registry
13:53:02     node2 |       --advertise_address string     Address that should be advertised to other members of the cluster (leave it empty for default advertise address)
13:53:02     node2 |       --bind_address string          Address on which servers will bind. Binding port depends on the server type (grpc, http, etc). (default "127.0.0.1")
13:53:02     node2 |       --broker string                Pub/sub service URL for events broadcast. Supported schemes: grpc|mem|nats|rabbit (default "mem://")
13:53:02     node2 |       --enable_metrics               Instrument code to expose internal metrics (to local JSON file, or service discovery if Metrics Basic Auth is set)
13:53:02     node2 |       --enable_pprof                 Enable pprof remote debugging
13:53:02     node2 |   -x, --exclude stringArray          Select services to start by filtering out some specific ones by name
13:53:02     node2 |       --grpc_discovery_port string   Default discovery gRPC server port (registry, broker, config, and log services). (default "8030")
13:53:02     node2 |       --grpc_port string             Default gRPC server port (all gRPC services, except discovery ones) (default "8031")
13:53:02     node2 |       --healthcheck int              Healthcheck port number
13:53:02     node2 |   -h, --help                         help for start
13:53:02     node2 |       --log string                   Output log level: debug, info, warn, error (production is equivalent to log_json+info) (default "info")
13:53:02     node2 |       --log_json                     Output log formatted as JSON instead of text
13:53:02     node2 |       --log_to_file                  Write logs on-file in CELLS_LOG_DIR (default true)
13:53:02     node2 |       --metrics_basic_auth string    Expose metrics to a service discovery endpoint /metrics/sd
13:53:02     node2 |       --registry string              Registry URL used to manage services. Supported schemes: etcd|etcd+tls|file|grpc|mem (default "mem://?cache=shared")
13:53:02     node2 |       --site_bind string             [Site] The 'site_' flags suite overrides config-defined sites. Bind is the site binding address IP|DOMAIN:PORT (default 0.0.0.0:8080)
13:53:02     node1 | Terminating node1
13:53:02     node2 |       --site_external string         [Site] External full URL http[s]://IP|DOMAIN[:PORT] exposed to the outside
13:53:02     node2 |       --site_le_agree                [Site] Accept Let's Encrypt EULA
13:53:02     node2 |       --site_le_email string         [Site] Set email to enable Let's Encrypt automatic TLS configuration
13:53:02     node2 |       --site_le_staging              [Site] Use Let's Encrypt staging CA instead of production to avoid being banned on misconfiguration.
13:53:02     node2 |       --site_no_tls                  [Site] Use plain HTTP (default false, use self-signed)
13:53:02     node2 |       --site_tls_cert_file string    [Site] Path to custom TLS certificate file
13:53:02     node2 |       --site_tls_key_file string     [Site] Path to custom TLS key file
13:53:02     node2 |   -t, --tags stringArray             Select services to start by tags, possible values are 'broker', 'data', 'datasource', 'discovery', 'frontend', 'gateway', 'idm', 'scheduler'
13:53:02     node2 | Global Flags:
13:53:02     node2 |       --config string   Configuration storage URL. Supported schemes: etcd|etcd+tls|file|grpc|mem|vault|vaults (default "file:///Users/apple/Library/Application Support/Pydio/cells/pydio.json")
13:53:02     node2 | unknown flag: --port_registry
13:53:02     node2 | Terminating node2
gedw99 commented 1 year ago

Probably worth adding nats setup info too. any reason its commented out in procfile ?

# cluster with nats
#nats1: ./cells cluster start --port_registry 9000 --port_broker 9003 --registry nats://localhost:4222 --broker nats://localhost:4222 --nats_streaming_cluster_node_id 1
#nats2: ./cells cluster start --port_registry 9100 --port_broker 9103 --registry nats://localhost:4222 --broker nats://localhost:4222 --nats_streaming_cluster_node_id 2 
#nats3: ./cells cluster start --port_registry 9100 --port_broker 9103 --registry nats://localhost:4222 --broker nats://localhost:4222 --nats_streaming_cluster_node_id 3