Current Configuration
code_status
services_status
nodes_status
logging_status
cloudi_service_health_check
cloudi.conf file
https://cloudi.org (and https://ndforge.com) Configuration
%-*-Mode:erlang;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- % ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: {acl, [ {api, ["/cloudi/api/*"]}, {api_read_only, ["/cloudi/api/rpc/services_status.json/post", "/cloudi/api/rpc/nodes_status.json/post", "/cloudi/api/rpc/logging_status.json/get", "/cloudi/api/rpc/code_status.json/get", "/health_check/cloudi/hosts.json/get", "/health_check/cloudi/hosts.erl"]}, {files, ["/ndforge.com/*", "/cloudi.org/*", "/loadbalancer_health_check/*"]} ]}. {services, [ % CloudI Service API interface {internal, "/cloudi/api/", cloudi_service_api_requests, [], none, {5, seconds}, {5, seconds}, {5, seconds}, undefined, undefined, 1, 5, {5, minutes}, [{response_timeout_immediate_max, limit_min}]}, % ndforge.com files {internal, "/ndforge.com/", cloudi_service_filesystem, [{directory, "${HOME}/www/ndforge.com/"}, {replace, lfuda_gdsf}, % LFUDA GreedyDual-Size with Frequency (GDSF) {files_size, 16384}, % KiB per process {refresh, 900}, % 15 minutes {cache, refresh}], % 7.5 minutes none, {1, minute}, {5, seconds}, {5, seconds}, undefined, undefined, 4, 5, {5, minutes}, [{info_pid_uses, 1}]}, % cloudi.org files {internal, "/cloudi.org/", cloudi_service_filesystem, [{directory, "${HOME}/www/cloudi.org/"}, {replace, lfuda_gdsf}, % LFUDA GreedyDual-Size with Frequency (GDSF) {files_size, 16384}, % KiB per process {refresh, 900}, % 15 minutes {cache, refresh}], % 7.5 minutes none, {20, minutes}, {5, seconds}, {5, seconds}, undefined, undefined, 4, 5, {5, minutes}, [{info_pid_uses, 1}]}, % ec2 load-balancer health check {internal, "/loadbalancer_health_check/", cloudi_service_filesystem, [{directory, "${HOME}/www/private/"}], none, {5, seconds}, {5, seconds}, {5, seconds}, undefined, undefined, 1, 5, {5, minutes}, [{info_pid_uses, 1}]}, % CloudI health check requests {internal, "/health_check/cloudi/", cloudi_service_health_check, [{hosts, [{"$CLOUDI_HOST1", [{port, 8000}]}, {"$CLOUDI_HOST2", [{port, 8000}]}, {"$CLOUDI_HOST3", [{port, 8000}]}, {"$CLOUDI_HOST4", [{port, 8000}]}, {"$LOAD_BALANCER1", [{port, 80}]}, {"$LOAD_BALANCER2", [{port, 80}]}, {"sourceforge.net", [{ipv6, false}, {port, 443}, {interval, 30}, {tcp_test, {{cloudi_service_health_check, tcp_test_https, [get, "/projects/cloudi/files/2.0.7/cloudi-2.0.7.tar.gz/download", 302]}}} ]}, {"archive.org", [{ipv6, false}, {port, 443}, {interval, 30}, {tcp_test, {{cloudi_service_health_check, tcp_test_https, [get, "/download/cloudi-2.0.7/cloudi-2.0.7.tar.gz", 302]}}} ]}, {"github.com", [{ipv6, false}, {port, 443}]} ]}], lazy_local, {5, seconds}, {5, seconds}, {5, seconds}, undefined, undefined, 9, 5, {5, minutes}, [{info_pid_uses, 1}, {hibernate, true}, {restart_all, true}]}, % HTTP traffic {internal, "*", cloudi_service_null, [], none, {5, seconds}, {5, seconds}, {5, seconds}, undefined, undefined, 1, 5, {5, minutes}, [{response_timeout_immediate_max, limit_min}]}, {internal, "?/", cloudi_service_router, [{add_prefix, false}, {parameters_strict_matching_default, false}, {http_redirect_health, "/health_check/cloudi/"}, {http_redirect_health_refresh, 60}, % 30 seconds * 2 {destinations, [{"www.ndforge.com/*", [{parameters_selected, [2]}, {service_names, ["/ndforge.com/*"]}]}, {"ndforge.com/*", [{parameters_selected, [2]}, {service_names, ["/ndforge.com/*"]}]}, {"www.cloudi.org/*", [{parameters_selected, [2]}, {service_names, ["/cloudi.org/*"]}]}, {"cloudi.org/download/get", [{http_redirect, "https://sourceforge.net/projects/cloudi/files/2.0.7/cloudi-2.0.7.tar.gz/download"}, {http_redirect_secondaries, ["https://archive.org/download/cloudi-2.0.7/cloudi-2.0.7.tar.gz"]}]}, {"cloudi.org/download/cloudi-2.0.7.tar.?/get", [{parameters_selected, [2]}, {http_redirect, "https://sourceforge.net/projects/cloudi/files/2.0.7/cloudi-2.0.7.tar.*/download"}, {http_redirect_secondaries, ["https://archive.org/download/cloudi-2.0.7/cloudi-2.0.7.tar.*"]}]}, {"cloudi.org/download/cloudi-*.tar.?/get", [{parameters_selected, [2, 2, 3]}, {http_redirect, "https://sourceforge.net/projects/cloudi/files/*/cloudi-*.tar.*/download"}]}, {"cloudi.org/download/live_cd/?/?/get", [{parameters_selected, [2, 3]}, {http_redirect, "https://sourceforge.net/projects/cloudi/files/live_cd/*/*/download"}]}, {"cloudi.org/download/cloudi_tutorial_java/?/?/get", [{parameters_selected, [2, 3]}, {http_redirect, "https://sourceforge.net/projects/cloudi/files/cloudi_tutorial_java/*/*/download"}]}, {"cloudi.org/services_status.json/post", [{service_names, ["/cloudi/api/rpc/services_status.json/post"]}]}, {"cloudi.org/nodes_status.json/post", [{service_names, ["/cloudi/api/rpc/nodes_status.json/post"]}]}, {"cloudi.org/logging_status.json/get", [{service_names, ["/cloudi/api/rpc/logging_status.json/get"]}]}, {"cloudi.org/code_status.json/get", [{service_names, ["/cloudi/api/rpc/code_status.json/get"]}]}, {"cloudi.org/health_check/hosts.json/get", [{service_names, ["/health_check/cloudi/hosts.json/get"]}]}, {"cloudi.org/*", [{parameters_selected, [2]}, {service_names, ["/cloudi.org/*"]}]}, {"?/loadbalancer_health_check/index.html/get", [{parameters_strict_matching, false}, {service_names, ["/loadbalancer_health_check/index.html/get"]}]} ]}], lazy_closest, {5, seconds}, {5, seconds}, {5, seconds}, undefined, [files, api_read_only], 8, 5, {5, minutes}, [{duo_mode, true}, {dest_refresh_start, {3, seconds}}]}, {internal, "/", cloudi_service_http_cowboy, [{use_client_ip_prefix, true}, {use_host_prefix, true}, {content_security_policy, "default-src 'self'; " "script-src 'unsafe-inline' 'self'; " "style-src 'unsafe-inline' 'self'; " "object-src 'none'; " "worker-src 'none'"}, {set_x_content_type_options, true}, {set_x_xss_protection, true}, {ip, {0, 0, 0, 0}}, {port, 8000}, {output, binary}], lazy_closest, {5, seconds}, {5, seconds}, {5, seconds}, [api], undefined, 2, 5, {5, minutes}, [{info_pid_uses, 1}]} ]}. {nodes, [ {discovery, [{ec2, [{access_key_id, "${AWS_ACCESS_KEY_ID}"}, {secret_access_key, "${AWS_SECRET_ACCESS_KEY}"}, {host, "ec2.${AWS_DEFAULT_REGION}.amazonaws.com"}, {groups, ["ipv6-www"]}]}]} ]}. {logging, [ {level, debug}, % levels: off, fatal, error, warn, info, debug, trace {log_time_offset, info}, % For slower logging disk writes {file_sync, {5, seconds}} ]}.