diff --git a/app.lua b/app.lua
index 23814fa..4d1acce 100644
--- a/app.lua
+++ b/app.lua
local lapis = require("lapis")
+local db = require("lapis.db")
local app = lapis.Application()
-app:get("/", function()
- return "Welcome to Lapis " .. require("lapis.version")
+app:enable("etlua")
+app.layout = require "views.layout"
+
+app:get("/", function(self)
+ local res = db.query("SELECT * FROM asunnot")
+ self.asunnot = res
+ return { render = "index" }
end)
return app
diff --git a/config.lua b/config.lua
index e63bdfd..a38fde4 100644
--- a/config.lua
+++ b/config.lua
config("development", {
server = "nginx",
code_cache = "off",
- num_workers = "1"
+ num_workers = "1",
+ sqlite = {
+ database = "koivuhaka.sqlite",
+ }
})
diff --git a/koivuhaka.sqlite b/koivuhaka.sqlite
new file mode 100644
index 0000000..b3d66b8
Binary files /dev/null and b/koivuhaka.sqlite differ
diff --git a/logs/access.log b/logs/access.log
deleted file mode 100644
index a288983..0000000
--- a/logs/access.log
+++ /dev/null
-127.0.0.1 - - [25/Nov/2025:08:48:00 +0200] "\x16\x03\x01\x07a\x01\x00\x07]\x03\x03\xF0\x04\x9F*\xF0\xA3K\xA1\xF6s\xE3T\xB7f^\x8FSmf\x1ES\xF3\xFA\x9F\xA4`\x89E\x98w\xE1$ JN\xED\x17\x07\xAA\xF5\x96\x8C\xFF\xE26\xEDS\xB1@\x93\x00f\x84\xD7\xCA\xC4c\x07g\xF05\xCDD%I\x00\x22\x13\x01\x13\x03\x13\x02\xC0+\xC0/\xCC\xA9\xCC\xA8\xC0,\xC00\xC0" 400 163 "-" "-"
-127.0.0.1 - - [25/Nov/2025:08:48:00 +0200] "\x16\x03\x01\x02\x90\x01\x00\x02\x8C\x03\x03\x0C\x99\x9C5\xF1\x10~\x19\xBE\xA2*\x9E\x1B3\xAB\x97nS\xDE\xF3D\xBD\xF1?\xB5t\x8A\x8Bz6\x19\xD7 f\xFF\x9B\xD0\xC1\xD1Oh&\xC8\xF2\x90\xAB\xDE\x89 \x8E\xE1\xBF\xB2\xF6\xB3\xA4\xE3\x98\x0C\x96!\x9B\xD1\xEA\xC1\x00\x22\x13\x01\x13\x03\x13\x02\xC0+\xC0/\xCC\xA9\xCC\xA8\xC0,\xC00\xC0" 400 163 "-" "-"
-127.0.0.1 - - [25/Nov/2025:08:48:38 +0200] "GET / HTTP/1.1" 200 123 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0"
-127.0.0.1 - - [25/Nov/2025:08:48:38 +0200] "GET /favicon.ico HTTP/1.1" 404 159 "http://localhost:8080/" "Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0"
-127.0.0.1 - - [25/Nov/2025:08:48:50 +0200] "GET / HTTP/1.1" 200 123 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0"
diff --git a/logs/error.log b/logs/error.log
deleted file mode 100644
index c6319ae..0000000
--- a/logs/error.log
+++ /dev/null
-2025/11/25 08:47:17 [alert] 18555#0: lua_code_cache is off; this will hurt performance in /home/lhietala/repos/koivuhaka/nginx.conf.compiled:20
diff --git a/views/index.etlua b/views/index.etlua
new file mode 100644
index 0000000..756f914
--- /dev/null
+++ b/views/index.etlua
+<!doctype html>
+<html lang="fi">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>Bootstrap demo</title>
+ <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
+ </head>
+ <body>
+ <div class="container">
+ <div class="row row-cols-3 g-3">
+ <% for i, asunto in pairs(asunnot) do %>
+ <div class="col">
+ <div class="card">
+ <img class="card-img-top" src="<%= asunto["kuva"] %>" alt="kuva asunnosta">
+ <div class="card-img-overlay">
+ <h4 class="card-title">
+ <%= asunto["osoite"] %>
+ </h4>
+ </div>
+ </div>
+ </div>
+ <% end %>
+ </div>
+ </div>
+ <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js" integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI" crossorigin="anonymous"></script>
+ </body>
+</html>
diff --git a/views/layout.etlua b/views/layout.etlua
new file mode 100644
index 0000000..96156f6
--- /dev/null
+++ b/views/layout.etlua
+<!DOCTYPE HTML>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <title><%= page_title or "Koivuhaan asunnot" %></title>
+</head>
+<body>
+ <% content_for("inner") %>
+</body>
+</html>