elk:Mastodon 替代 Web 客户端,支持多实例部署与 PWA 功能

A nimble Mastodon web client

Branch46Tags204
FilesLast commitLast update
1 month ago
3 years ago
2 years ago
1 month ago
2 months ago
1 month ago
3 years ago
3 years ago
23 days ago
1 year ago
1 month ago
3 years ago
3 years ago
2 months ago
4 months ago
5 months ago
3 months ago
7 months ago
1 month ago
2 years ago
2 years ago
3 years ago
2 years ago
11 months ago
9 months ago
3 years ago
1 month ago
1 month ago
3 years ago
1 month ago
3 months ago
3 years ago
3 months ago
11 months ago
3 years ago
2 years ago
1 month ago
1 month ago
1 month ago
1 month ago
1 year ago
1 month ago
2 months ago
3 years ago
11 months ago
8 months ago
5 months ago
3 years ago

Elk logo

Elk

一款灵活的 Mastodon 网页客户端


discord chat Open board on Volta


Elk screenshots

感谢您的反馈与贡献。欢迎查看开放议题并参与其中。加入Elk Discord 服务器,与我们交流并了解更多项目相关信息。

部署

官方部署

Elk 团队维护着以下部署:

  • 🦌 生产环境:elk.zone
  • 🐙 预览环境:main.elk.zone(每次提交到 main 分支时部署)

自托管 Docker 部署

若要自行托管 Elk,您可以使用提供的 Dockerfile 构建包含 Elk 的容器。请注意,Elk 仅在通过 SSL/TLS 连接时才能正常加载。Docker 容器本身不提供任何 SSL/TLS 处理,您需要自行添加此部分。您可以将 Elk 置于流行的带有 SSL 处理功能的反向代理之后,如 Traefik、NGINX 等。

  1. 克隆源代码 git clone https://github.com/elk-zone/elk.git
  2. 进入新的源代码目录:cd elk
  3. 创建用于设置的本地存储目录:mkdir elk-storage
  4. 调整存储目录的权限:sudo chown 911:911 ./elk-storage
  5. 启动容器:docker compose up --build -d

Note

提供的 Dockerfile 创建的容器最终将以非 root 用户身份运行,并在首次启动时(如果该卷尚不存在)创建一个持久化的命名 Docker 卷。此卷始终以 root 权限创建。如果未能将此卷内的 /elk/data 目录权限更改为 Dockerfile 中为 Elk 指定的 UID:GID 911,将导致 Elk 无法存储用户账户的配置。您要么需要修复创建的命名卷中的权限,要么将具有正确权限的目录挂载到容器内的 /elk/data

生态系统

以下是已知的基于 Elk 的部署实例,它们或作为 Mastodon 服务器的替代 Web 客户端,或作为联邦宇宙(fediverse)中其他项目的基础:

注意:社区部署不由 Elk 团队维护。它们可能未与 Elk 的源代码同步。使用前请自行研究托管服务器的相关信息。

💖 赞助商

我们非常感谢以下机构的慷慨赞助和帮助:

NuxtLabs

StackBlitz

以及所有赞助 Elk 团队及其成员的公司和个人。如果您喜欢这款应用,欢迎考虑赞助我们:

或者您也可以单独赞助我们的核心团队成员:

我们也鼓励赞助 Elk 项目的其他贡献者。如果有人帮助您解决了问题或实现了您想要的功能,支持他们将有助于这个项目和开源社区的可持续发展。

📍 路线图

Volta 上的公开看板

🧑‍💻 贡献指南

非常高兴您有兴趣为 Elk 贡献力量!在提交贡献之前,请仔细阅读以下指南。

本地设置

克隆仓库并在根文件夹中运行:

pnpm i
pnpm run dev

警告:你需要启用 corepack,请查看 Elk 贡献指南 了解有关如何在本地设置项目的详细说明。

我们建议安装 ni,它会在你的每个项目中使用正确的包管理器。如果已安装 ni,你可以改为运行:

ni
nr dev

测试

Elk 使用 Vitest。你可以通过以下命令运行测试套件:

nr test

📲 PWA

你可以查阅 PWA 文档,了解更多关于 Elk 的 PWA 功能、如何在桌面或移动设备上安装 Elk PWA,以及一些关于 Elk 上 PWA 相关的提示。

🦄 技术栈

  • Vite - 下一代前端构建工具
  • Nuxt - 直观的 Web 框架
  • Vue - 渐进式 JavaScript 框架
  • VueUse - Vue 组合式工具集
  • Pinia - 让你爱不释手的 Vue 状态管理库
  • Vue Macros - 为 Vue 提供更多宏和语法糖
  • UnoCSS - 即时按需原子化 CSS 引擎
  • Iconify - JSON 格式的 Iconify 图标集
  • Masto.js - TypeScript 编写的 Mastodon API 客户端
  • shiki - 美观且强大的语法高亮器
  • vite-plugin-pwa - 更新提示、Web 推送通知和 Web 共享目标 API

👨‍💻 贡献者

贡献者图标列表

📄 许可证

MIT © 2022-至今 Elk 贡献者们 😃

Introduction

一个敏捷的Mastodon网页客户端【此简介由AI生成】

Customize your domain
596.04 K621Visit GitHub