annotate src/luan/host/init.luan @ 1811:55d89a183c82 default tip

remove line_diff from luan
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 15 May 2024 18:02:28 -0600
parents 792268dce5ec
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
1 local Luan = require "luan:Luan.luan"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2 local error = Luan.error
1238
3d29033de2bf changes for https
Franklin Schmidt <fschmidt@gmail.com>
parents: 1235
diff changeset
3 local do_file = Luan.do_file or error()
1611
f67f972bd648 make postgres.luan optional
Franklin Schmidt <fschmidt@gmail.com>
parents: 1454
diff changeset
4 local Package = require "luan:Package.luan"
1454
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
5 local Number = require "luan:Number.luan"
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
6 local long = Number.long or error()
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
7
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
8
1392
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
9 local dir, domain = ...
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
10
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
11
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
12 -- logging
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13
1454
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
14 local one_mb = long(1024*1024)
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
15
1392
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
16 do
1353
8d95711f6615 replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents: 1351
diff changeset
17 require "java"
1454
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
18 local LuanLogger = require "java:luan.modules.logging.LuanLogger"
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
19 local Layouts = require "java:goodjava.logger.Layouts"
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
20 local DateLayout = require "java:goodjava.logger.DateLayout"
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
21 local ListLayout = require "java:goodjava.logger.ListLayout"
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
22 local Level = require "java:goodjava.logger.Level"
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
23 local RollingFileAppender = require "java:goodjava.logger.RollingFileAppender"
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
24 local LevelAppender = require "java:goodjava.logger.LevelAppender"
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
25 local ListAppender = require "java:goodjava.logger.ListAppender"
1365
6617763dfd76 fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents: 1353
diff changeset
26
1454
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
27 local layout = ListLayout.new(DateLayout.new("yyyy-MM-dd HH:mm:ss,SSS")," ",Layouts.LEVEL_PADDED," ",Layouts.LOGGER," - ",Layouts.MESSAGE,"\n",Layouts.THROWABLE)
1199
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
28 local log_dir = dir.."/site/private/local/logs/"
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
29
1454
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
30 local function new_appender(file,level)
1682
97cc73664ca8 improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents: 1640
diff changeset
31 local files = { log_dir..file..".log", log_dir..file.."_1.log" }
97cc73664ca8 improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents: 1640
diff changeset
32 local appender = RollingFileAppender.new(layout, files)
1454
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
33 appender.maxFileSize = one_mb
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
34 appender = LevelAppender.new(appender,level)
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
35 return appender
1199
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
36 end
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
37
1682
97cc73664ca8 improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents: 1640
diff changeset
38 local err = new_appender("error",Level.ERROR)
97cc73664ca8 improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents: 1640
diff changeset
39 local warn = new_appender("warn",Level.WARN)
97cc73664ca8 improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents: 1640
diff changeset
40 local info = new_appender("info",Level.INFO)
1454
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
41 local appender = ListAppender.new(err,warn,info)
219f2b937f2b remove log4j
Franklin Schmidt <fschmidt@gmail.com>
parents: 1426
diff changeset
42 LuanLogger.configure(appender)
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
43 end
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
44
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
45
1235
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
46 -- set vars
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
47
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
48 local Io = require "luan:Io.luan"
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
49 local Http = require "luan:http/Http.luan"
1418
732b5de211fc add Hosted.luan
Franklin Schmidt <fschmidt@gmail.com>
parents: 1416
diff changeset
50 local Hosted = require "luan:host/Hosted.luan"
1235
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
51 local Mail = require "luan:mail/Mail.luan"
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
52
1330
f41919741100 fix security
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
53 Io.password = do_file(dir.."/info.luan").password or error()
1235
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
54
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
55 Http.dir = "file:"..dir.."/site"
1414
4abf88ec66de add Http.is_serving
Franklin Schmidt <fschmidt@gmail.com>
parents: 1407
diff changeset
56 Http.is_serving = true
1235
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
57
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
58 function Io.schemes.site(path,loading)
1426
Franklin Schmidt <fschmidt@gmail.com>
parents: 1418
diff changeset
59 local u = Io.uri( Http.dir..path, loading )
Franklin Schmidt <fschmidt@gmail.com>
parents: 1418
diff changeset
60 u.uri_string = "site:"..path
Franklin Schmidt <fschmidt@gmail.com>
parents: 1418
diff changeset
61 return u
1235
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
62 end
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
63
1743
792268dce5ec http push security
Franklin Schmidt <fschmidt@gmail.com>
parents: 1716
diff changeset
64 Http.set_domain(domain)
1418
732b5de211fc add Hosted.luan
Franklin Schmidt <fschmidt@gmail.com>
parents: 1416
diff changeset
65 Hosted.is_hosted = true
1392
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
66
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
67
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
68 -- postgres
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
69
1627
07be5015159d better config
Franklin Schmidt <fschmidt@gmail.com>
parents: 1626
diff changeset
70 require "java"
07be5015159d better config
Franklin Schmidt <fschmidt@gmail.com>
parents: 1626
diff changeset
71 local WebHandler = require "java:luan.host.WebHandler"
1392
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
72 local Sql = require "luan:sql/Sql.luan"
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
73 local database = Sql.database or error()
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
74 local Logging = require "luan:logging/Logging.luan"
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
75 local logger = Logging.logger "init"
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
76
1627
07be5015159d better config
Franklin Schmidt <fschmidt@gmail.com>
parents: 1626
diff changeset
77 local pg = WebHandler.config.postgres
1392
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
78
1418
732b5de211fc add Hosted.luan
Franklin Schmidt <fschmidt@gmail.com>
parents: 1416
diff changeset
79 function Hosted.postgres_spec()
1626
cf9dfead83a3 use Config.postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1611
diff changeset
80 if pg == nil then
1392
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
81 return nil
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
82 end
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
83 local spec = {
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
84 class = "org.postgresql.Driver"
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
85 url = "jdbc:postgresql://localhost:5432/"..domain
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
86 user = domain
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
87 password = Io.password
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
88 }
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
89 local db = database(pg)
1407
1979cff9aad2 add sql/Web_query
Franklin Schmidt <fschmidt@gmail.com>
parents: 1394
diff changeset
90 local exists = db.query("select datname from pg_database where datname=?",domain).results() ~= nil;
1394
8fe777ba5045 change postgres password
Franklin Schmidt <fschmidt@gmail.com>
parents: 1393
diff changeset
91 --logger.info("exists "..exists)
1392
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
92 if not exists then
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
93 db.update( [[create user "]]..spec.user..[[" with encrypted password ']]..spec.password..[[']] )
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
94 db.update( [[create database "]]..domain..[[" owner "]]..spec.user..[["]] )
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
95 end
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
96 db.close()
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
97 return spec
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
98 end
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
99
002152af497a hosted postgres
Franklin Schmidt <fschmidt@gmail.com>
parents: 1365
diff changeset
100
1640
570f3d483a31 host - move https.luan into src
Franklin Schmidt <fschmidt@gmail.com>
parents: 1627
diff changeset
101 do_file "classpath:luan/host/https.luan"
1238
3d29033de2bf changes for https
Franklin Schmidt <fschmidt@gmail.com>
parents: 1235
diff changeset
102
3d29033de2bf changes for https
Franklin Schmidt <fschmidt@gmail.com>
parents: 1235
diff changeset
103
1330
f41919741100 fix security
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
104 local LuanJava = require "java:luan.Luan"
f41919741100 fix security
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
105
1418
732b5de211fc add Hosted.luan
Franklin Schmidt <fschmidt@gmail.com>
parents: 1416
diff changeset
106 function Hosted.no_security(password)
1627
07be5015159d better config
Franklin Schmidt <fschmidt@gmail.com>
parents: 1626
diff changeset
107 WebHandler.config.password == password or error "wrong password"
1330
f41919741100 fix security
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
108 LuanJava.setSecurity(nil)
f41919741100 fix security
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
109 end
1351
21b153b4bcc4 better reset_luan for luanhost
Franklin Schmidt <fschmidt@gmail.com>
parents: 1332
diff changeset
110
21b153b4bcc4 better reset_luan for luanhost
Franklin Schmidt <fschmidt@gmail.com>
parents: 1332
diff changeset
111 function Http.reset_luan()
21b153b4bcc4 better reset_luan for luanhost
Franklin Schmidt <fschmidt@gmail.com>
parents: 1332
diff changeset
112 WebHandler.removeHandler(domain)
21b153b4bcc4 better reset_luan for luanhost
Franklin Schmidt <fschmidt@gmail.com>
parents: 1332
diff changeset
113 end