4 个版本 (破坏性)
0.5.0 | 2024 年 2 月 22 日 |
---|---|
0.4.0 | 2024 年 2 月 5 日 |
0.3.2 | 2024 年 1 月 17 日 |
0.2.1 | 2023 年 12 月 25 日 |
0.1.0 |
|
#146 在 HTTP 服务器
每月 153 次下载
375KB
9K SLoC
OpenMood
Openmood 是一个自托管、模块化情绪跟踪器。
大多数情绪跟踪器似乎只允许在显示的微笑表情和/或纯文本字段之间进行简单的数字评分。现在,对于一些人来说,这可能已经足够,但如果这还不够,那就是 openmood 的作用。
- 它是 FOSS(太好了,哇 🎉)
- 它允许您自定义要跟踪的数据。
- 简单文本字段
- 文本选择
- 数字输入
- 您完全控制自己的数据,因为您拥有运行该服务器的服务器。
- 不喜欢我们提供的客户端?请随意提出改进建议或制作自己的。
目录
从 crates.io 安装
要求
安装
- 运行
cargo install openmood
- 服务器二进制文件现在作为
openmood
可用 - 运行服务器并 配置它
从源安装
要求
构建服务器
- 克隆仓库
$ git clone https://codeberg.org/OpenThingies/openmood.git
$ cd openmood
- 构建和安装服务器
$ cargo install --path .
二进制文件现在作为 openmood
可用。要了解如何配置 openmood,请参阅 配置
开发
要求
- Rust 工具链(稳定版)
rustfmt
(夜间版)clippy
(稳定版)
docker-compose
用于启动预配置的开发环境。knope
用于生成代码集和变更日志- 可选:
cargo-watch
,允许在代码更改时重新加载服务器。 - 可选:
sqlx-cli
二进制文件,用于手动应用迁移。(当从空数据库运行测试时很有用)
开发环境
只需在项目目录中运行 docker compose up
,即可启动所有必要的依赖项,包括方便使用的 PgAdmin。 注意:此命令仅限开发使用
使用 docker compose 时,您可以访问本地 PostgreSQL 数据库和 PgAdmin 实例。可以通过以下配置访问
- PostgreSQL URI 是:
postgres://postgres:123456@localhost
- PgAdmin 的凭证是:
dev@developer.dev
,密码为123456
必需的环境变量
如果您想设置其他配置选项,请转到 配置
OM_DB_URI
必须设置为连接到您的 PostgreSQL 实例所使用的 URI。OM_JWT_SECRET
在开发期间可以设置为任何字符串。RUST_LOG
这不是必需的,但我建议至少将其设置为openmood=debug,actix=info,jealousy=info,sqlx=info
。
运行服务器
如果您已安装 cargo-watch
,则可以在更改代码时自动重新加载服务器。
注意:如果您正在编写迁移并使用 cargo watch
,可能会遇到一些小问题,因为它们将在服务器重新加载时应用。如果您遇到此问题,最简单的方法是重置数据库并使用 sqlx migrate run --database-url [您的数据库 URI]
或重新启动服务器并自动应用嵌入的迁移。
# with cargo-watch installed
cargo watch -cqx run
# without cargo-watch installed
cargo run
配置
所有配置都通过环境变量完成。以下是可以设置的所有可能环境变量的列表。
环境变量 | 描述 | 必需 | 默认值 |
---|---|---|---|
RUST_LOG |
您希望设置的日志级别。您可以使用 RUST_LOG=info 在全局范围内设置严重性,或者可以按模块设置 RUST_LOG=openmood=info ,每个项之间用逗号分隔。级别可以是 error 、warn 、info 、debug 或 trace 。 |
否 |
error |
OM_PORT |
服务器将绑定的端口 | 否 |
3000 |
OM_BIND_ADDR |
服务器将绑定的 IP 地址 | 否 |
0.0.0.0 |
OM_DB_URI |
PostgreSQL 数据库 URI | 是 |
|
OM_JWT_SECRET |
您希望用于签署 JWT 令牌的 256 位 JWT 密钥。请确保使用足够随机的字符串。 | 是 |
|
OM_JWT_PERM_VALIDITY |
"永久" JWT 令牌有效的天数。当用户勾选“保持登录”复选框时使用 | 否 |
7 |
OM_JWT_TMP_VALIDITY |
"临时" JWT 令牌有效的小时数 | 否 |
3 |
OM_ADMIN_USER |
一个以逗号分隔的键值对列表,用于构建初始管理员用户的所需数据。例如:name:test,username:my_cool_username,password:some super C00l P@$$W0rd 。允许空白字符,但请注意,空白字符不会被过滤掉,它们既不会从键中也不会从值中过滤掉。注意: 这将不会覆盖或更改现有用户。为此,您需要将 OM_ADMIN_USER_OVERRIDE 设置为 true |
否 |
|
OM_ADMIN_USER_OVERRIDE |
允许修改现有用户,使其成为管理员。这样做只会更改管理员标志。它不会更改用户的姓名或电子邮件。 | no |
false |
OM_CORS_ALLOWED_ORIGINS |
一个以逗号分隔的列表,列出允许访问此API的源。这主要是为了浏览器,因此应包含前端可以访问的URI。 请注意,开发环境中的默认值与发布版本中的默认值不同。在发布版本中,它只接受来自同一源的请求,而在调试模式下,它接受来自前端连接。 |
否 |
开发: https://127.0.0.1:5173,http://127.0.0.1:5173 发布: same-origin |
OM_DISABLE_REGISTRATIONS |
允许禁用处理注册的端点,以防止新用户注册 | 否 |
false |
许可证
此项目根据AGPL 3.0许可证授权
贡献
除非您明确表示,否则您提交给openmood的任何有意贡献都将根据AGPL 3.0
授权,没有其他条款或条件。
依赖项
~64MB
~1M SLoC