#web-server #kvarn #server-framework #config-format #extension #website #reference

bin+lib moella

Mölla是一个Kvarn Web服务器框架的实现,具有方便的配置格式

2个版本

0.1.1 2024年2月11日
0.1.0 2024年2月4日

#426 in HTTP服务器

Apache-2.0GPL-2.0-or-later

88KB
2K SLoC

Mölla

这是Kvarn服务器库的参考实现,提供简单的配置来帮助您开始使用Kvarn。

查看moella --help以获取配置选项

例如,它目前正在被我的域名icelk.devkvarn.org使用。

有关示例配置和配置模式,请参阅kvarn.org。您还可以查看icelk.dev配置以获取生产示例。

使用

首先安装moella

然后,创建一个配置文件,例如host.ron

(
    hosts: [
        Plain (
            name: "my-website.com",
            pk: "pk.pem",
            cert: "cert.pem",
            auto_cert: true,
            path: "./",
            extensions: ["arbetrary-name"],
            options: (
                public_data_directory: "build",
                disable_server_cache: true,
                disable_client_cache: false,
            )
        ),
    ],
    extensions: {
        "arbetrary-name": [
            // most of this can be removed; it's just an example
            Csp ({
                "/*": FromDefault ({
                    script_src: [UnsafeInline, WasmUnsafeEval],
                    style_src: [
                        Uri("https://fonts.googleapis.com"),
                        Uri("https://fonts.googleapis.com"),
                        UnsafeInline,
                    ],
                    default_src: [ Uri("https://fonts.gstatic.com") ],
                    img_src: [Uri("*"), Scheme("data:")]
                }),
                // SVG XSS attacks if viewing file
                "/groups/logo-images/*": FromDefault ({}),

            }),
            ClientCache ({
                "/": MaxAge(3600),
                "/_app/immutable/": Full,
                "/groups/logo-images/": Changing,
                "/groups/data": Changing,
                "/groups/locations": Changing,
            }),
        ]
    },
    import: [/* some other config file */],
    ports: Standard(All),
)

现在,运行moella -c host.ron --dev。您的网站应该可以正常工作。部署时请删除--dev标志。

有关更多详细信息,请参阅kvarn.org

安装

如果您已安装cargo,只需运行cargo install moella

Github Actions中有可用的Linux构建,其他平台在发布下。

要运行它,请下载适合您平台的可执行文件。

  • 平台特定
    • 如果您运行Linux:运行chmod +x <downloaded binary>使其可执行。
    • 如果您运行macOS:运行chmod +x <downloaded binary>,然后在Finder中打开它。右键单击并点击打开。接受警告。
    • 在Windows上,它应该可以正常运行
  • 最后,在您的shell中运行以下命令以获取使用信息:./<下载的二进制文件> --help

从最新源代码构建

安装Rust然后运行以下命令

目前这还不工作,因为我们还没有发布到crates.io。您需要设置开发环境

$ cargo install moella

文档

开发

在开发过程中,Mölla需要在../kvarn克隆Kvarn,在../kvarn-search克隆Kvarn Search,在../kvarn-auth克隆Kvarn Auth

依赖项

~26–38MB
~697K SLoC