Static site hosting via tangled
1import PagesService from "./pages-service.js";
2import express from "express";
3import dotenv from "dotenv";
4
5dotenv.config();
6
7const pagesService = new PagesService({
8 domain: process.env.KNOT_DOMAIN,
9 ownerDid: process.env.OWNER_DID,
10 repoName: process.env.REPO_NAME,
11 branch: process.env.BRANCH,
12 verbose: process.env.NODE_ENV === "development",
13});
14
15// preload to make sure there are no problems with the config
16await pagesService.loadConfig();
17
18const app = express();
19
20app.get("/{*any}", async (req, res) => {
21 const route = req.path;
22 const { status, content, contentType } = await pagesService.getPage(route);
23 res.status(status).set("Content-Type", contentType).send(content);
24});
25
26function main() {
27 const server = app.listen(3000, () => {
28 console.log("Server is running on port 3000");
29 });
30
31 server.on("error", (error) => {
32 console.error("Server error:", error);
33 });
34}
35
36main();