Mercurial Hosting > nabble
comparison conf/serve_nabble.luan @ 0:7ecd1a4ef557
add content
| author | Franklin Schmidt <fschmidt@gmail.com> | 
|---|---|
| date | Thu, 21 Mar 2019 19:15:52 -0600 | 
| parents | |
| children | abe0694e9849 | 
   comparison
  equal
  deleted
  inserted
  replaced
| -1:000000000000 | 0:7ecd1a4ef557 | 
|---|---|
| 1 java() | |
| 2 local Luan = require "luan:Luan.luan" | |
| 3 local error = Luan.error | |
| 4 local ipairs = Luan.ipairs or error() | |
| 5 local Io = require "luan:Io.luan" | |
| 6 local String = require "luan:String.luan" | |
| 7 local LoggerFactory = require "java:org.slf4j.LoggerFactory" | |
| 8 local Log4j = require "java:nabble.utils.Log4j" | |
| 9 local Init = require "file:conf/Init.luan" | |
| 10 | |
| 11 | |
| 12 local Serve = {} | |
| 13 | |
| 14 Serve.username = "nabble" | |
| 15 Serve.password = "password" | |
| 16 | |
| 17 Serve.is_www = false | |
| 18 Serve.is_forums = true | |
| 19 | |
| 20 Serve.www_port = 8080 | |
| 21 Serve.forums_port = 8080 | |
| 22 | |
| 23 local log_to_console = false | |
| 24 | |
| 25 for _, arg in ipairs{...} do | |
| 26 if arg == "console" then | |
| 27 log_to_console = true | |
| 28 end | |
| 29 if arg == "www" then | |
| 30 Serve.is_www = true | |
| 31 end | |
| 32 end | |
| 33 | |
| 34 Init.fix_serve(Serve) | |
| 35 | |
| 36 if log_to_console then | |
| 37 Log4j.initForConsole() | |
| 38 else | |
| 39 Log4j.initBasicFiles("logs/info.log", "logs/warn.log", "logs/error.log", "5MB") | |
| 40 Log4j.initForClass("nabble.view.web.embed.JsEmbed", "logs/embed.log", "1MB") | |
| 41 end | |
| 42 | |
| 43 local logger = LoggerFactory.getLogger("serve_nabble"); | |
| 44 | |
| 45 local function add_contexts(jetty) | |
| 46 local context = jetty.newTools2Context() | |
| 47 jetty.authenticate(context, "/*", Serve.username, Serve.password) | |
| 48 | |
| 49 -- /logs folder | |
| 50 context = jetty.newFolderContext("/logs", "logs", { "/*" }, true); | |
| 51 jetty.authenticate(context, "/*", Serve.username, Serve.password) | |
| 52 | |
| 53 -- /conf folder | |
| 54 context = jetty.newFolderContext("/conf", "conf", { "/*" }, true); | |
| 55 jetty.authenticate(context, "/*", Serve.username, Serve.password) | |
| 56 end | |
| 57 | |
| 58 | |
| 59 if Serve.is_www then | |
| 60 | |
| 61 -- jetty | |
| 62 | |
| 63 local GlobalJetty = require "java:global.GlobalJetty" | |
| 64 | |
| 65 local jetty = GlobalJetty.new(); | |
| 66 local context = jetty.newWebContext(); | |
| 67 | |
| 68 jetty.authenticate(context, "/tools/*", Serve.username, Serve.password) | |
| 69 | |
| 70 add_contexts(jetty) | |
| 71 | |
| 72 -- /html folder | |
| 73 context = jetty.newFolderContext("/html", "html", { "/*" }, true); | |
| 74 jetty.authenticate(context,"/*", Serve.username, Serve.password); | |
| 75 | |
| 76 local log = jetty.newNCSARequestLog() | |
| 77 local server = jetty.newServer(Serve.www_port, log); | |
| 78 server.start(); | |
| 79 | |
| 80 logger.error("www server started"); | |
| 81 end | |
| 82 | |
| 83 | |
| 84 if Serve.is_forums then | |
| 85 local Jetty = require "java:nabble.utils.Jetty" | |
| 86 | |
| 87 local jettyConfig = { | |
| 88 cache = "true" | |
| 89 timeLimit = "60000" | |
| 90 errorCacheSize = "1000" | |
| 91 ipListSize = "5" | |
| 92 exportDir = "export/" | |
| 93 } | |
| 94 | |
| 95 local jetty = Jetty.new(); | |
| 96 local context = jetty.newWebContext(jettyConfig); | |
| 97 | |
| 98 context.setMaxFormContentSize(500000); | |
| 99 jetty.authenticate(context, "/tools/*", Serve.username, Serve.password); | |
| 100 | |
| 101 | |
| 102 -- Start Filters | |
| 103 | |
| 104 Init.add_filters(context) | |
| 105 | |
| 106 jetty.addNabbleErrorFilter(context); | |
| 107 | |
| 108 jetty.addNabbleConnectionLimitFilter(context, { max = "115", queueSize = "1000", timeoutDelay = "45000" }); | |
| 109 | |
| 110 jetty.addBadBotFilter(context, { max = "10" }); | |
| 111 | |
| 112 jetty.addCachingFilter(context, { dir = Init.local_dir.."cache", hasDelayedDelete = "true", acceptEncoding = "gzip" }); | |
| 113 local FileHandler = require "java:cachingfilter.FileHandler" | |
| 114 FileHandler.factory = FileHandler.mappedOrIoFile; | |
| 115 | |
| 116 jetty.addGzipFilter(context); | |
| 117 | |
| 118 add_contexts(jetty) | |
| 119 | |
| 120 -- /backups folder | |
| 121 context = jetty.newFolderContext("/backups", Init.local_dir.."schemas", { "/*" }, false); | |
| 122 | |
| 123 local log | |
| 124 if log_to_console then | |
| 125 log = jetty.newNCSARequestLog() | |
| 126 else | |
| 127 Io.uri("file:logs/daily").mkdir() | |
| 128 log = jetty.newNCSARequestLog("logs/daily/yyyy_mm_dd.log") | |
| 129 log.setRetainDays(30) | |
| 130 end | |
| 131 | |
| 132 local server = jetty.newServer(Serve.forums_port, log); | |
| 133 jetty.setThreadPool(server); | |
| 134 | |
| 135 local DbGlobalUpdater = require "java:nabble.model.DbGlobalUpdater" | |
| 136 DbGlobalUpdater.updateGlobal() | |
| 137 logger.info "db update done" | |
| 138 | |
| 139 local ClearCache = require "java:nabble.view.lib.ClearCache" | |
| 140 ClearCache.run() | |
| 141 --logger.info "db cache cleared" | |
| 142 | |
| 143 server.start(); | |
| 144 | |
| 145 logger.error("nabble server started"); | |
| 146 | |
| 147 jetty.addShutdownHook(server); | |
| 148 end_if | 
