netplex { controller { max_level = "debug"; (* Log level *) logging { type = "stderr"; (* Log to stderr *) } }; service { name = "My HTTP file service"; protocol { (* This section creates the socket *) name = "http"; address { type = "internet"; bind = "0.0.0.0:9999"; (* Port 9999 on all interfaces *) }; }; processor { (* This section specifies how to process data of the socket *) type = "nethttpd"; host { (* Think of Apache's "virtual hosts" *) pref_name = "localhost"; pref_port = 9999; names = "*:0"; (* Which requests are matched here: all *) uri { path = "/"; service { type = "file"; docroot = "/home/matitaweb/matita/matita/html"; media_types_file = "/etc/mime.types"; enable_listings = true; } }; uri { path = "/open"; service { type = "dynamic"; handler = "open"; } }; uri { path = "/advance"; service { type = "dynamic"; handler = "advance"; } }; uri { path = "/retract"; service { type = "dynamic"; handler = "retract"; } }; uri { path = "/bottom"; service { type = "dynamic"; handler = "bottom"; } }; uri { path = "/top"; service { type = "dynamic"; handler = "top"; } }; uri { path = "/register"; service { type = "dynamic"; handler = "register"; } }; uri { path = "/login"; service { type = "dynamic"; handler = "login"; } }; uri { path = "/logout"; service { type = "dynamic"; handler = "logout"; } }; uri { path = "/viewlib"; service { type = "dynamic"; handler = "viewlib"; } }; uri { path = "/reset"; service { type = "dynamic"; handler = "reset"; } }; uri { path = "/save"; service { type = "dynamic"; handler = "save"; } }; uri { path = "/commit"; service { type = "dynamic"; handler = "commit"; } }; uri { path = "/update"; service { type = "dynamic"; handler = "update"; } }; }; }; workload_manager { type = "dynamic"; max_jobs_per_thread = 1; (* Everything else is senseless *) min_free_jobs_capacity = 1; max_free_jobs_capacity = 1; max_threads = 20; }; } }