From 7f0fcd8a35e40899483e3b06907e0a0faa4d74fb Mon Sep 17 00:00:00 2001 From: pooneyy <85266337+pooneyy@users.noreply.github.com> Date: Tue, 17 Jun 2025 22:14:50 +0800 Subject: [PATCH] Update Apps --- apps/adguardhome/README.md | 592 ++++++----------- apps/adguardhome/README_en.md | 529 ++++++++++++++++ .../data.yml | 0 .../docker-compose.yml | 2 +- .../envs/default.env | 0 .../envs/global.env | 0 .../scripts/init.sh | 0 .../scripts/uninstall.sh | 0 .../scripts/upgrade.sh | 0 apps/als/README.md | 73 ++- apps/als/README_en.md | 52 ++ apps/libreoffice/README.md | 222 +++---- apps/libreoffice/README_en.md | 242 +++++++ apps/lsky-pro/README.md | 141 ++--- apps/lsky-pro/README_en.md | 98 +++ apps/matomo/README.md | 145 ++--- apps/meowfacts/README.md | 138 ++-- apps/minipaint/README.md | 88 ++- apps/minipaint/README_en.md | 63 ++ .../2.0/.env.sample | 0 .../2.0/data.yml | 0 .../2.0/docker-compose.yml | 0 .../README.md | 0 .../{moments => moments-drizzle2001}/data.yml | 0 .../latest/.env.sample | 0 .../latest/data.yml | 0 .../latest/docker-compose.yml | 0 .../{moments => moments-drizzle2001}/logo.png | Bin .../0.2.11}/.env.sample | 0 .../0.2.11}/data.yml | 0 .../0.2.11}/docker-compose.yml | 2 +- apps/{moments1 => moments-kingwrcy}/README.md | 0 apps/{moments1 => moments-kingwrcy}/data.yml | 0 .../latest/.env.sample | 0 .../latest/data.yml | 0 .../latest/docker-compose.yml | 0 apps/{moments1 => moments-kingwrcy}/logo.png | Bin apps/navidrome/README.md | 102 ++- apps/navidrome/README_en.md | 93 +++ apps/nextcloud/README.md | 142 ++--- apps/nextcloud/README_en.md | 163 +++++ apps/nginx-proxy-manager/README.md | 101 ++- apps/nginx-proxy-manager/README_en.md | 122 ++++ apps/nitter/README.md | 28 +- apps/nitter/README_en.md | 20 + apps/obsidian/README.md | 164 +++-- apps/obsidian/README_en.md | 283 +++++++++ apps/onedev/README.md | 113 ++-- apps/onedev/README_en.md | 140 ++++ apps/onlyoffice/README.md | 226 +++---- apps/onlyoffice/README_en.md | 149 +++++ apps/open-webui/README.md | 2 +- apps/openlitespeed/README.md | 34 +- apps/openlitespeed/README_en.md | 43 ++ apps/openresume/README.md | 95 +-- apps/openresume/README_en.md | 71 +++ apps/openvpn-as/README.md | 16 +- apps/openvpn-as/README_en.md | 17 + apps/passwordpusher/README.md | 62 +- apps/passwordpusher/README_en.md | 45 ++ apps/pgadmin4/README.md | 278 ++++---- apps/pgadmin4/README_en.md | 286 +++++++++ apps/photoprism/README.md | 136 ++-- apps/photoprism/README_en.md | 119 ++++ apps/photoview/README.md | 209 +++--- apps/photoview/README_en.md | 209 ++++++ apps/pic-smaller/README.md | 4 +- apps/prometheus/README.md | 172 ++--- apps/prometheus/README_en.md | 197 ++++++ apps/qbittorrent-vnc/README.md | 86 +-- apps/qbittorrent-vnc/README_en.md | 94 +++ apps/remmina/README.md | 63 +- apps/remmina/README_en.md | 54 ++ apps/searxng/README.md | 95 ++- apps/searxng/README_en.md | 82 +++ apps/seatable/README.md | 90 +-- apps/seatable/README_en.md | 84 +++ apps/slash/README.md | 34 +- apps/slash/README_en.md | 37 ++ apps/slink/README.md | 24 +- apps/slink/README_en.md | 47 ++ apps/sqlitebrowser/README.md | 32 +- apps/sqlitebrowser/README_en.md | 23 + apps/stackedit/README.md | 34 +- apps/stackedit/README_en.md | 96 +++ apps/stream-rec-backend/README.md | 100 +-- apps/stream-rec-backend/README_en.md | 72 +++ apps/stream-rec-frontend/README.md | 100 +-- apps/stream-rec-frontend/README_en.md | 72 +++ apps/synapse-admin/README.md | 142 ++--- apps/synapse-admin/README_en.md | 106 ++++ apps/syncthing-relaysrv/README.md | 155 ++--- apps/syncthing-relaysrv/README_en.md | 129 ++++ apps/syncthing/README.md | 140 ++-- apps/syncthing/README_en.md | 114 ++++ apps/tailscale/README.md | 82 +-- apps/tailscale/README_en.md | 88 +++ apps/telegram/README.md | 120 ++-- apps/telegram/README_en.md | 94 +++ apps/tldraw/README.md | 101 ++- apps/tldraw/README_en.md | 112 ++++ apps/transmission/README.md | 142 ++--- apps/transmission/README_en.md | 101 +++ apps/ugly-avatar/README.md | 2 +- apps/ugly-avatar/README_en.md | 3 + apps/vocechat/README.md | 102 ++- apps/vocechat/README_en.md | 77 +++ apps/wallos/README.md | 38 +- apps/wallos/README_en.md | 26 + apps/watchtower/README.md | 173 +---- apps/watchtower/README_en.md | 175 +++++ apps/web-check/README.md | 596 ++++++++---------- apps/web-check/README_en.md | 493 +++++++++++++++ apps/weektodo/README.md | 143 +++-- apps/weektodo/README_en.md | 128 ++++ apps/wgcf-socks5-proxy/README.md | 104 +-- apps/wgcf-socks5-proxy/README_en.md | 364 +++++++++++ apps/wireguard-ui/README.md | 17 +- apps/wireguard-ui/README_en.md | 28 + apps/woodpecker/README.md | 124 ++-- apps/woodpecker/README_en.md | 123 ++++ apps/wps-office/README.md | 212 +++---- apps/wps-office/README_en.md | 240 +++++++ apps/yourls/README.md | 113 +--- apps/yourls/README_en.md | 116 ++++ apps/zabbix-agent/README.md | 33 +- apps/zabbix-agent/README_en.md | 32 + apps/zabbix-server/README.md | 40 +- apps/zabbix-server/README_en.md | 57 ++ apps/zerotier-moon/README.md | 234 +++---- apps/zerotier-moon/README_en.md | 171 +++++ apps/zerotier-one/README.md | 235 +++---- apps/zerotier-one/README_en.md | 180 ++++++ renovate.json | 5 + 134 files changed, 9589 insertions(+), 3968 deletions(-) create mode 100644 apps/adguardhome/README_en.md rename apps/affine/{stable-1623f5d => stable-e98f035}/data.yml (100%) rename apps/affine/{stable-1623f5d => stable-e98f035}/docker-compose.yml (94%) rename apps/affine/{stable-1623f5d => stable-e98f035}/envs/default.env (100%) rename apps/affine/{stable-1623f5d => stable-e98f035}/envs/global.env (100%) rename apps/affine/{stable-1623f5d => stable-e98f035}/scripts/init.sh (100%) rename apps/affine/{stable-1623f5d => stable-e98f035}/scripts/uninstall.sh (100%) rename apps/affine/{stable-1623f5d => stable-e98f035}/scripts/upgrade.sh (100%) create mode 100644 apps/als/README_en.md create mode 100644 apps/libreoffice/README_en.md create mode 100644 apps/lsky-pro/README_en.md create mode 100644 apps/minipaint/README_en.md rename apps/{moments => moments-drizzle2001}/2.0/.env.sample (100%) rename apps/{moments => moments-drizzle2001}/2.0/data.yml (100%) rename apps/{moments => moments-drizzle2001}/2.0/docker-compose.yml (100%) rename apps/{moments => moments-drizzle2001}/README.md (100%) rename apps/{moments => moments-drizzle2001}/data.yml (100%) rename apps/{moments => moments-drizzle2001}/latest/.env.sample (100%) rename apps/{moments => moments-drizzle2001}/latest/data.yml (100%) rename apps/{moments => moments-drizzle2001}/latest/docker-compose.yml (100%) rename apps/{moments => moments-drizzle2001}/logo.png (100%) rename apps/{moments1/1.0.7 => moments-kingwrcy/0.2.11}/.env.sample (100%) rename apps/{moments1/1.0.7 => moments-kingwrcy/0.2.11}/data.yml (100%) rename apps/{moments1/1.0.7 => moments-kingwrcy/0.2.11}/docker-compose.yml (91%) rename apps/{moments1 => moments-kingwrcy}/README.md (100%) rename apps/{moments1 => moments-kingwrcy}/data.yml (100%) rename apps/{moments1 => moments-kingwrcy}/latest/.env.sample (100%) rename apps/{moments1 => moments-kingwrcy}/latest/data.yml (100%) rename apps/{moments1 => moments-kingwrcy}/latest/docker-compose.yml (100%) rename apps/{moments1 => moments-kingwrcy}/logo.png (100%) create mode 100644 apps/navidrome/README_en.md create mode 100644 apps/nextcloud/README_en.md create mode 100644 apps/nginx-proxy-manager/README_en.md create mode 100644 apps/nitter/README_en.md create mode 100644 apps/obsidian/README_en.md create mode 100644 apps/onedev/README_en.md create mode 100644 apps/onlyoffice/README_en.md create mode 100644 apps/openlitespeed/README_en.md create mode 100644 apps/openresume/README_en.md create mode 100644 apps/openvpn-as/README_en.md create mode 100644 apps/passwordpusher/README_en.md create mode 100644 apps/pgadmin4/README_en.md create mode 100644 apps/photoprism/README_en.md create mode 100644 apps/photoview/README_en.md create mode 100644 apps/prometheus/README_en.md create mode 100644 apps/qbittorrent-vnc/README_en.md create mode 100644 apps/remmina/README_en.md create mode 100644 apps/searxng/README_en.md create mode 100644 apps/seatable/README_en.md create mode 100644 apps/slash/README_en.md create mode 100644 apps/slink/README_en.md create mode 100644 apps/sqlitebrowser/README_en.md create mode 100644 apps/stackedit/README_en.md create mode 100644 apps/stream-rec-backend/README_en.md create mode 100644 apps/stream-rec-frontend/README_en.md create mode 100644 apps/synapse-admin/README_en.md create mode 100644 apps/syncthing-relaysrv/README_en.md create mode 100644 apps/syncthing/README_en.md create mode 100644 apps/tailscale/README_en.md create mode 100644 apps/telegram/README_en.md create mode 100644 apps/tldraw/README_en.md create mode 100644 apps/transmission/README_en.md create mode 100644 apps/ugly-avatar/README_en.md create mode 100644 apps/vocechat/README_en.md create mode 100644 apps/wallos/README_en.md create mode 100644 apps/watchtower/README_en.md create mode 100644 apps/web-check/README_en.md create mode 100644 apps/weektodo/README_en.md create mode 100644 apps/wgcf-socks5-proxy/README_en.md create mode 100644 apps/wireguard-ui/README_en.md create mode 100644 apps/woodpecker/README_en.md create mode 100644 apps/wps-office/README_en.md create mode 100644 apps/yourls/README_en.md create mode 100644 apps/zabbix-agent/README_en.md create mode 100644 apps/zabbix-server/README_en.md create mode 100644 apps/zerotier-moon/README_en.md create mode 100644 apps/zerotier-one/README_en.md diff --git a/apps/adguardhome/README.md b/apps/adguardhome/README.md index 6aa82defc..286a6ec1c 100644 --- a/apps/adguardhome/README.md +++ b/apps/adguardhome/README.md @@ -1,276 +1,174 @@ -  -

- - - AdGuard Home - -

-

Privacy protection center for you and your devices

-

- Free and open source, powerful network-wide ads & trackers blocking DNS - server. -

-

- AdGuard.com | - Wiki | - Reddit | - Twitter | - Telegram -

- - Code Coverage - - - Go Report Card - - - Docker Pulls - -
- - Latest release - - - adguard-home - -

-
-

- -

-
+ ![AdGuard Home](https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/doc/adguard_home_lightmode.svg) -AdGuard Home is a network-wide software for blocking ads and tracking. After you -set it up, it'll cover ALL your home devices, and you don't need any client-side -software for that. +### 隐私保护中心,守护你和你的设备 -It operates as a DNS server that re-routes tracking domains to a “black hole”, -thus preventing your devices from connecting to those servers. It's based on -software we use for our public [AdGuard DNS] servers, and both share a lot of -code. +免费开源,强大的网络范围广告和追踪者阻断 DNS 服务器。 -[AdGuard DNS]: https://adguard-dns.io/ +[AdGuard.com](https://adguard.com/) | [Wiki](https://github.com/AdguardTeam/AdGuardHome/wiki) | [Reddit](https://reddit.com/r/Adguard) | [Twitter](https://twitter.com/AdGuard) | [Telegram](https://t.me/adguard_en) + [![Code Coverage](https://img.shields.io/codecov/c/github/AdguardTeam/AdGuardHome/master.svg)](https://codecov.io/github/AdguardTeam/AdGuardHome?branch=master)[![Go Report Card](https://goreportcard.com/badge/github.com/AdguardTeam/AdGuardHome) ](https://goreportcard.com/report/AdguardTeam/AdGuardHome)[![Docker Pulls](https://img.shields.io/docker/pulls/adguard/adguardhome.svg?maxAge=604800)](https://hub.docker.com/r/adguard/adguardhome) + [![Latest release](https://img.shields.io/github/release/AdguardTeam/AdGuardHome/all.svg)](https://github.com/AdguardTeam/AdGuardHome/releases)[![adguard-home](https://snapcraft.io/adguard-home/badge.svg)](https://snapcraft.io/adguard-home) +![](https://cdn.adtidy.org/public/Adguard/Common/adguard_home.gif) +* * * - * [Getting Started](#getting-started) - * [Automated install (Unix)](#automated-install-linux-and-mac) - * [Alternative methods](#alternative-methods) - * [Guides](#guides) - * [API](#api) - * [Comparing AdGuard Home to other solutions](#comparison) - * [How is this different from public AdGuard DNS servers?](#comparison-adguard-dns) - * [How does AdGuard Home compare to Pi-Hole](#comparison-pi-hole) - * [How does AdGuard Home compare to traditional ad blockers](#comparison-adblock) - * [Known limitations](#comparison-limitations) - * [How to build from source](#how-to-build) - * [Prerequisites](#prerequisites) - * [Building](#building) - * [Contributing](#contributing) - * [Test unstable versions](#test-unstable-versions) - * [Reporting issues](#reporting-issues) - * [Help with translations](#translate) - * [Other](#help-other) - * [Projects that use AdGuard Home](#uses) - * [Acknowledgments](#acknowledgments) - * [Privacy](#privacy) +AdGuard Home 是一种网络范围内的软件,用于屏蔽广告和跟踪。设置完成后,它会覆盖你家中的所有设备,无需任何客户端软件。 +它作为 DNS 服务器运行,将跟踪域名重定向到“黑洞”,从而防止您的设备连接到这些服务器。它基于我们用于公共 AdGuard DNS 服务器的软件,并且两者共享大量代码。 +* [开始使用](#getting-started) + * [自动安装(Unix)](#automated-install-linux-and-mac) + * [替代方法](#alternative-methods) + * [指南](#guides) + * [API](#api) +* [将 AdGuard Home 与其他解决方案进行比较](#comparison) + * [这与公共 AdGuard DNS 服务器有何不同?](#comparison-adguard-dns) + * [AdGuard Home 与 Pi-Hole 相比如何](#comparison-pi-hole) + * [AdGuard Home 与传统广告拦截器相比如何](#comparison-adblock) + * [已知限制](#comparison-limitations) +* [如何从源代码构建](#how-to-build) + * [先决条件](#prerequisites) + * [构建](#building) +* [贡献](#contributing) + * [测试不稳定版本](#test-unstable-versions) + * [报告问题](#reporting-issues) + * [翻译帮助](#translate) + * [其他](#help-other) +* [使用 AdGuard Home 的项目](#uses) +* [致谢](#acknowledgments) +* [隐私](#privacy) -## Getting Started +## [开始使用](#getting-started) - ### Automated install (Unix) +### [自动化安装(Unix)](#automated-install-linux-and-mac) -To install with `curl` run the following command: +使用 \``curl`\` 安装,请运行以下命令: ```sh curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v ``` -To install with `wget` run the following command: +使用 \``wget`\` 安装,请运行以下命令: ```sh wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v ``` -To install with `fetch` run the following command: +使用 \``fetch`\` 安装,请运行以下命令: ```sh fetch -o - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v ``` -The script also accepts some options: +脚本还接受一些选项: - * `-c ` to use specified channel; - * `-r` to reinstall AdGuard Home; - * `-u` to uninstall AdGuard Home; - * `-v` for verbose output. +* `-c ` 使用指定的渠道; +* `-r` 重新安装 AdGuard Home; +* `-u` 卸载 AdGuard Home; +* `-v` 显示详细输出。 -Note that options `-r` and `-u` are mutually exclusive. +注意,选项 `-r` 和 `-u` 互斥。 +### [替代方法](#alternative-methods) +#### [手动安装](#manual-installation) - ### Alternative methods +请阅读我们 Wiki 上的 **[入门指南](https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started)** 文章,了解如何手动安装 AdGuard Home,以及如何配置设备使用它。 - #### Manual installation +#### [Docker](#docker) -Please read the **[Getting Started][wiki-start]** article on our Wiki to learn -how to install AdGuard Home manually, and how to configure your devices to use -it. +您可以在 [Docker Hub](https://hub.docker.com/r/adguard/adguardhome) 使用我们的官方 Docker 镜像。 - #### Docker +#### [Snap Store](#snap-store) -You can use our official Docker image on [Docker Hub]. +如果您正在运行 **Linux**,可以通过 [Snap Store](https://snapcraft.io/adguard-home) 安全且方便地安装 AdGuard Home。 - #### Snap Store +### [指南](#guides) -If you're running **Linux,** there's a secure and easy way to install AdGuard -Home: get it from the [Snap Store]. +请参阅我们的 [Wiki](https://github.com/AdguardTeam/AdGuardHome/wiki)。 -[Docker Hub]: https://hub.docker.com/r/adguard/adguardhome -[Snap Store]: https://snapcraft.io/adguard-home -[wiki-start]: https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started +### [API](#api) +如果您想集成 AdGuard Home,可以使用我们的 [REST API](https://github.com/AdguardTeam/AdGuardHome/tree/master/openapi)。或者,您可以使用这个 [python 客户端](https://pypi.org/project/adguardhome/) ,它用于构建 [AdGuard Home Hass.io 插件](https://www.home-assistant.io/integrations/adguard/) 。 +## [与其他解决方案相比,AdGuard Home 有何不同?](#comparison) - ### Guides +### [这与公共 AdGuard DNS 服务器有何不同?](#comparison-adguard-dns) -See our [Wiki][wiki]. +运行自己的 AdGuard Home 服务器可以让你做到远不止使用公共 DNS 服务器所能做的。这是一个完全不同的层次。你自己试试看: -[wiki]: https://github.com/AdguardTeam/AdGuardHome/wiki +* 选择服务器具体拦截和允许的内容。 + +* 监控网络活动。 + +* 添加您自己的自定义过滤规则。 + +* **最重要的是,这是您自己的服务器,也只有您能掌控。** + +### [AdGuard Home 与 Pi-Hole 有何不同?](#comparison-pi-hole) +到目前为止,AdGuard Home 与 Pi-Hole 很多方面都有相似之处。两者都使用所谓的“DNS 漏洞利用”方法来屏蔽广告和追踪器,并且都允许用户自定义屏蔽内容。 - ### API +我们不会止步于此。DNS 漏洞利用可以作为一个不错的起点,但这仅仅是个开始。 -If you want to integrate with AdGuard Home, you can use our [REST API][openapi]. -Alternatively, you can use this [python client][pyclient], which is used to -build the [AdGuard Home Hass.io Add-on][hassio]. +AdGuard Home 提供了许多开箱即用的功能,无需安装和配置额外的软件。我们希望它简单到即使是普通用户也能在最少的努力下完成设置。 -[hassio]: https://www.home-assistant.io/integrations/adguard/ -[openapi]: https://github.com/AdguardTeam/AdGuardHome/tree/master/openapi -[pyclient]: https://pypi.org/project/adguardhome/ +\*\*免责声明:\*\* 列出的一些功能可以通过安装额外的软件或通过使用 SSH 终端手动重新配置 Pi-Hole 组成的一部分工具来添加。然而,在我们看来,这不能合法地算作 Pi-Hole 的功能。 +| 功能 | AdGuard Home | Pi-Hole | +| --- | --- | --- | +| 拦截广告和跟踪器 | ✅ | ✅ | +| 自定义屏蔽列表 | ✅ | ✅ | +| 内置 DHCP 服务器 | ✅ | ✅ | +| Admin 界面使用 HTTPS | ✅ | 是的,但你需要手动配置 lighttpd | +| 加密的 DNS 上游服务器(DNS-over-HTTPS、DNS-over-TLS、DNSCrypt) | ✅ | ❌(需要额外软件) | +| 跨平台 | ✅ | ❌(不原生支持,仅可通过 Docker 实现) | +| 运行作为 HTTPS-over-DNS 或 TLS-over-DNS 服务器 | ✅ | ❌ 需要额外软件 | +| 阻止钓鱼和恶意软件域名 | ✅ | ❌ 需要非默认黑名单 | +| 家长控制(屏蔽成人网站) | ✅ | ❌ | +| 强制使用安全搜索 | ✅ | ❌ | +| 每客户端(设备)配置 | ✅ | ✅ | +| 访问设置(选择谁可以使用 AGH DNS) | ✅ | ❌ | +| 以非 root 权限运行 | ✅ | ❌ | +### [AdGuard Home 与传统广告拦截器有何不同](#comparison-adblock) -## Comparing AdGuard Home to other solutions +视情况而定。 - ### How is this different from public AdGuard DNS servers? +DNS 黑洞能够拦截大量广告,但缺乏传统广告拦截器的灵活性和功能。你可以通过阅读 [这篇文章](https://adguard.com/blog/adguard-vs-adaway-dns66.html) 来了解这两种方法之间的差异,该文章将 AdGuard for Android(一种传统广告拦截器)与主机级别广告拦截器(在功能上几乎与基于 DNS 的拦截器相同)进行了比较。这种级别的保护对一些用户来说已经足够。 -Running your own AdGuard Home server allows you to do much more than using a -public DNS server. It's a completely different level. See for yourself: +此外,使用基于 DNS 的阻塞器还可以帮助在智能电视、智能音箱或其他类型的物联网设备(在这些设备上无法安装传统广告拦截器)上阻止广告、跟踪和分析请求。 - * Choose what exactly the server blocks and permits. +### [已知限制](#comparison-limitations) - * Monitor your network activity. +以下是一些 DNS 级别阻塞器无法阻止的示例: - * Add your own custom filtering rules. +* YouTube、Twitch 的广告; + +* Facebook、Twitter、Instagram 的赞助帖子。 + - * **Most importantly, it's your own server, and you are the only one who's in - control.** +本质上,任何与内容共享域的广告都无法被 DNS 级别的阻塞器拦截。 +未来是否有处理这种情况的可能性?DNS 从来都不足以做到这一点。我们唯一的办法是使用内容阻塞代理,就像我们在独立的 AdGuard 应用程序中所做的那样。未来我们将为 AdGuard Home 带来这一功能支持。不幸的是,即使在这种情况下,仍然会有无法拦截或需要相当复杂配置的情况。 +## [如何从源代码构建](#how-to-build) - ### How does AdGuard Home compare to Pi-Hole +### [前提条件](#prerequisites) -At this point, AdGuard Home has a lot in common with Pi-Hole. Both block ads -and trackers using the so-called “DNS sinkholing” method and both allow -customizing what's blocked. +运行 \`make init\` 来准备开发环境。 - +你需要以下内容来构建 AdGuard Home: -AdGuard Home provides a lot of features out-of-the-box with no need to install -and configure additional software. We want it to be simple to the point when -even casual users can set it up with minimal effort. +* Go v1.19 或更新版本; +* Node.js v10.16.2 或更高版本; +* npm v6.14 或更高版本; +* yarn v1.22.5 或更高版本。 -**Disclaimer:** some of the listed features can be added to Pi-Hole by -installing additional software or by manually using SSH terminal and -reconfiguring one of the utilities Pi-Hole consists of. However, in our -opinion, this cannot be legitimately counted as a Pi-Hole's feature. +### [构建](#building) -| Feature | AdGuard Home | Pi-Hole | -|-------------------------------------------------------------------------|-------------------|-----------------------------------------------------------| -| Blocking ads and trackers | ✅ | ✅ | -| Customizing blocklists | ✅ | ✅ | -| Built-in DHCP server | ✅ | ✅ | -| HTTPS for the Admin interface | ✅ | Kind of, but you'll need to manually configure lighttpd | -| Encrypted DNS upstream servers (DNS-over-HTTPS, DNS-over-TLS, DNSCrypt) | ✅ | ❌ (requires additional software) | -| Cross-platform | ✅ | ❌ (not natively, only via Docker) | -| Running as a DNS-over-HTTPS or DNS-over-TLS server | ✅ | ❌ (requires additional software) | -| Blocking phishing and malware domains | ✅ | ❌ (requires non-default blocklists) | -| Parental control (blocking adult domains) | ✅ | ❌ | -| Force Safe search on search engines | ✅ | ❌ | -| Per-client (device) configuration | ✅ | ✅ | -| Access settings (choose who can use AGH DNS) | ✅ | ❌ | -| Running [without root privileges][wiki-noroot] | ✅ | ❌ | - -[wiki-noroot]: https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started#running-without-superuser - - - - ### How does AdGuard Home compare to traditional ad blockers - -It depends. - -DNS sinkholing is capable of blocking a big percentage of ads, but it lacks -the flexibility and the power of traditional ad blockers. You can get a good -impression about the difference between these methods by reading [this -article][blog-adaway], which compares AdGuard for Android (a traditional ad -blocker) to hosts-level ad blockers (which are almost identical to DNS-based -blockers in their capabilities). This level of protection is enough for some -users. - -Additionally, using a DNS-based blocker can help to block ads, tracking and -analytics requests on other types of devices, such as SmartTVs, smart speakers -or other kinds of IoT devices (on which you can't install traditional ad -blockers). - - - - ### Known limitations - -Here are some examples of what cannot be blocked by a DNS-level blocker: - - * YouTube, Twitch ads; - - * Facebook, Twitter, Instagram sponsored posts. - -Essentially, any advertising that shares a domain with content cannot be blocked -by a DNS-level blocker. - -Is there a chance to handle this in the future? DNS will never be enough to do -this. Our only option is to use a content blocking proxy like what we do in the -standalone AdGuard applications. We're [going to bring][issue-1228] this -feature support to AdGuard Home in the future. Unfortunately, even in this -case, there still will be cases when this won't be enough or would require quite -a complicated configuration. - -[blog-adaway]: https://adguard.com/blog/adguard-vs-adaway-dns66.html -[issue-1228]: https://github.com/AdguardTeam/AdGuardHome/issues/1228 - - - -## How to build from source - - ### Prerequisites - -Run `make init` to prepare the development environment. - -You will need this to build AdGuard Home: - - * [Go](https://golang.org/dl/) v1.19 or later; - * [Node.js](https://nodejs.org/en/download/) v10.16.2 or later; - * [npm](https://www.npmjs.com/) v6.14 or later; - * [yarn](https://yarnpkg.com/) v1.22.5 or later. - - - - ### Building - -Open your terminal and execute these commands: +在终端中执行以下命令: ```sh git clone https://github.com/AdguardTeam/AdGuardHome @@ -278,252 +176,164 @@ cd AdGuardHome make ``` -**NOTE:** The non-standard `-j` flag is currently not supported, so building -with `make -j 4` or setting your `MAKEFLAGS` to include, for example, `-j 4` is -likely to break the build. If you do have your `MAKEFLAGS` set to that, and you -don't want to change it, you can override it by running `make -j 1`. +\*\*注意:\*\* 非标准的 `-j` 标志目前不被支持,因此使用 `make -j 4` 或设置 `MAKEFLAGS` 包含例如 `-j 4` 可能会破坏构建过程。如果你的 `MAKEFLAGS` 已经设置为这个值,并且你不想更改它,可以通过运行 `make -j 1` 来覆盖它。 -Check the [`Makefile`][src-makefile] to learn about other commands. +查看 `Makefile` 了解其他命令。 - #### Building for a different platform +#### [为不同的平台进行构建](#building-cross) -You can build AdGuard Home for any OS/ARCH that Go supports. In order to do -this, specify `GOOS` and `GOARCH` environment variables as macros when running -`make`. +你可以为 Go 支持的任何操作系统/架构构建 AdGuard Home。为了做到这一点,在运行时将 `GOOS` 和 `GOARCH` 环境变量指定为宏。 使用 \`make\` 命令。 -For example: +例如: ```sh env GOOS='linux' GOARCH='arm64' make ``` -or: +或者: ```sh make GOOS='linux' GOARCH='arm64' ``` - #### Preparing releases +#### [准备发布](#preparing-releases) -You'll need [`snapcraft`] to prepare a release build. Once installed, run the -following command: +你需要 [`snapcraft`](https://snapcraft.io/) 来准备发布构建。安装完成后,运行以下命令: ```sh make build-release CHANNEL='...' VERSION='...' ``` -See the [`build-release` target documentation][targ-release]. +请参阅 [`build-release` 目标文档](https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-releasesh-build-a-release-for-all-platforms) 。 - #### Docker image +#### [Docker 镜像](#docker-image) -Run `make build-docker` to build the Docker image locally (the one that we -publish to DockerHub). Please note, that we're using [Docker Buildx][buildx] to -build our official image. +运行 \``make build-docker`\` 以在本地构建 Docker 镜像(我们发布到 DockerHub 的镜像)。请注意,我们使用 [Docker Buildx](https://docs.docker.com/buildx/working-with-buildx/) 来构建官方镜像。 -You may need to prepare before using these builds: - - * (Linux-only) Install Qemu: +在使用这些构建之前,您可能需要做一些准备工作: +* (仅限 Linux)安装 Qemu: + ```sh docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes ``` - - * Prepare the builder: - + +* 准备构建器: + ```sh docker buildx create --name buildx-builder --driver docker-container --use ``` + -See the [`build-docker` target documentation][targ-docker]. +参见 [`build-docker` 目标文档](https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-dockersh-build-a-multi-architecture-docker-image) 。 - #### Debugging the frontend +#### [前端调试](#debugging-the-frontend) -When you need to debug the frontend without recompiling the production version -every time, for example to check how your labels would look on a form, you can -run the frontend build a development environment. - -1. In a separate terminal, run: +当您需要调试前端而无需每次重新编译生产版本,例如检查您的标签在表单中会如何显示时,可以运行前端构建开发环境。 +1. 在另一个终端中运行: + ```sh ( cd ./client/ && env NODE_ENV='development' npm run watch ) ``` + +2. 运行 `AdGuardHome` 二进制文件并添加 `--local-frontend` 标志,这将指示 AdGuard Home 忽略内置前端文件并使用 `./build/` 目录中的文件。 + +3. 现在,您在 `./client/` 目录中所做的任何更改都应该重新编译并在 Web UI 中可用。请确保禁用浏览器缓存,以确保您实际获取到重新编译的版本。 + -2. Run your `AdGuardHome` binary with the `--local-frontend` flag, which - instructs AdGuard Home to ignore the built-in frontend files and use those - from the `./build/` directory. +## [贡献](#contributing) -3. Now any changes you make in the `./client/` directory should be recompiled - and become available on the web UI. Make sure that you disable the browser - cache to make sure that you actually get the recompiled version. +欢迎您 fork 本仓库,进行更改并 [提交拉取请求](https://github.com/AdguardTeam/AdGuardHome/pulls) 。不过请确保遵循我们的 [代码规范](https://github.com/AdguardTeam/CodeGuidelines/) 。 -[`snapcraft`]: https://snapcraft.io/ -[buildx]: https://docs.docker.com/buildx/working-with-buildx/ -[src-makefile]: https://github.com/AdguardTeam/AdGuardHome/blob/master/Makefile -[targ-docker]: https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-dockersh-build-a-multi-architecture-docker-image -[targ-release]: https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-releasesh-build-a-release-for-all-platforms +请注意,我们不期望人们同时对程序的 UI 部分和后端部分进行贡献。理想情况下,后端部分(如配置、API 和功能本身)应首先实现。UI 部分可以在不同的 pull request 中由不同的人稍后实现。 +### [测试不稳定版本](#test-unstable-versions) +您可以使用两种更新渠道: -## Contributing +* `beta`: AdGuard Home 的 beta 版本。较为稳定的版本,通常每两周或更频繁地发布一次。 + +* `edge`: AdGuard Home 开发分支的最新版本。此渠道每天都会推送新更新。 + -You are welcome to fork this repository, make your changes and [submit a pull -request][pr]. Please make sure you follow our [code guidelines][guide] though. - -Please note that we don't expect people to contribute to both UI and backend -parts of the program simultaneously. Ideally, the backend part is implemented -first, i.e. configuration, API, and the functionality itself. The UI part can -be implemented later in a different pull request by a different person. - -[guide]: https://github.com/AdguardTeam/CodeGuidelines/ -[pr]: https://github.com/AdguardTeam/AdGuardHome/pulls - - - - ### Test unstable versions - -There are two update channels that you can use: - - * `beta`: beta versions of AdGuard Home. More or less stable versions, - usually released every two weeks or more often. - - * `edge`: the newest version of AdGuard Home from the development branch. New - updates are pushed to this channel daily. - -There are three options how you can install an unstable version: - -1. [Snap Store]: look for the `beta` and `edge` channels. - -2. [Docker Hub]: look for the `beta` and `edge` tags. - -3. Standalone builds. Use the automated installation script or look for the - available builds [on the Wiki][wiki-platf]. - - Script to install a beta version: +有三种方式可以安装不稳定版本: +1. [Snap Store](https://snapcraft.io/adguard-home): 查找 `beta` 和 `edge` 渠道。 + +2. [Docker Hub](https://hub.docker.com/r/adguard/adguardhome): 查找 `beta` 和 `edge` 标签。 + +3. 独立构建。使用自动化安装脚本,或在维基上查找可用的构建 [on the Wiki](https://github.com/AdguardTeam/AdGuardHome/wiki/Platforms)。 + + 安装测试版本的脚本: + ```sh curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c beta ``` - - Script to install an edge version: - + + 安装边缘版本的脚本: + ```sh curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c edge ``` -[wiki-platf]: https://github.com/AdguardTeam/AdGuardHome/wiki/Platforms + +### [报告问题](#reporting-issues) +如果遇到任何问题或有建议,请访问 [此页面](https://github.com/AdguardTeam/AdGuardHome/issues) 并点击“新建问题”按钮。 - ### Report issues +### [帮助进行翻译](#translate) -If you run into any problem or have a suggestion, head to [this page][iss] and -click on the “New issue” button. +如果您想帮助翻译 AdGuard Home,请了解我们在 [知识库](https://kb.adguard.com/en/general/adguard-translations) 中关于翻译 AdGuard 产品的更多信息。您可以在 [CrowdIn 上的 AdGuardHome 项目](https://crowdin.com/project/adguard-applications/en#/adguard-home) 中贡献自己的力量。 -[iss]: https://github.com/AdguardTeam/AdGuardHome/issues +### [其他](#help-other) +另一种贡献方式是查找标记为 `help wanted` 的问题,询问该问题是否可以参与,并提交修复漏洞或实现新功能的 PR。 +## [使用 AdGuard Home 的项目](#uses) - ### Help with translations +* [AdGuard Home Remote](https://apps.apple.com/app/apple-store/id1543143740):由 [Joost](https://rocketscience-it.nl/) 开发的 iOS 应用。 + +* [Python 库](https://github.com/frenck/python-adguardhome)由 [@frenck](https://github.com/frenck) + +* [Home Assistant 插件](https://github.com/hassio-addons/addon-adguard-home) 由 [@frenck](https://github.com/frenck) 提供。 + +* [OpenWrt LUCI 应用程序](https://github.com/kongfl888/luci-app-adguardhome)由 [@kongfl888](https://github.com/kongfl888) (原作者为 [@rufengsuixing](https://github.com/rufengsuixing)). + +* [AdGuard Home 的 Prometheus 导出器](https://github.com/ebrianne/adguard-exporter)由 [@ebrianne](https://github.com/ebrianne) 编写. + +* [基于终端的 AdGuard Home 实例实时流量监控和统计](https://github.com/Lissy93/AdGuardian-Term)由 [@Lissy93](https://github.com/Lissy93) + +* [AdGuard Home 在 GLInet 路由器上](https://forum.gl-inet.com/t/adguardhome-on-gl-routers/10664)由 [Gl-Inet](https://gl-inet.com/). + +* [Cloudron 应用](https://git.cloudron.io/cloudron/adguard-home-app)由 [@gramakri](https://github.com/gramakri)。 + +* [Asuswrt-Merlin-AdGuardHome-Installer](https://github.com/jumpsmm7/Asuswrt-Merlin-AdGuardHome-Installer) 由 [@jumpsmm7](https://github.com/jumpsmm7) 即 [@SomeWhereOverTheRainBow](https://www.snbforums.com/members/somewhereovertherainbow.64179/) 提供。 + +* [Node.js 库](https://github.com/Andrea055/AdguardHomeAPI)由 [@Andrea055](https://github.com/Andrea055/) 开发。 + -If you want to help with AdGuard Home translations, please learn more about -translating AdGuard products [in our Knowledge Base][kb-trans]. You can -contribute to the [AdGuardHome project on CrowdIn][crowdin]. +## [致谢](#acknowledgments) -[crowdin]: https://crowdin.com/project/adguard-applications/en#/adguard-home -[kb-trans]: https://kb.adguard.com/en/general/adguard-translations +如果没有以下人员的帮助,这款软件是不可能实现的: +* [Go](https://golang.org/dl/) 及其库: + * [gcache](https://github.com/bluele/gcache) + * [miekg 的 dns](https://github.com/miekg/dns) + * [go-yaml](https://github.com/go-yaml/yaml) + * [service](https://godoc.org/github.com/kardianos/service) + * [dnsproxy](https://github.com/AdguardTeam/dnsproxy) + * [urlfilter](https://github.com/AdguardTeam/urlfilter) +* [Node.js](https://nodejs.org/) 和其库: + * 和许多更多的 Node.js 包。 + * [React.js](https://reactjs.org) + * [Tabler](https://github.com/tabler/tabler) +* [whotracks.me 数据](https://github.com/cliqz-oss/whotracks.me) +你可能之前见过这里提到了 [CoreDNS](https://coredns.io),但我们已经停止在 AdGuard Home 中使用它。 - ### Other +要查看所有使用的 Node.js 包的完整列表,请查看 [`client/package.json`](https://github.com/AdguardTeam/AdGuardHome/blob/master/client/package.json) 文件。 -Another way you can contribute is by [looking for issues][iss-help] marked as -`help wanted`, asking if the issue is up for grabs, and sending a PR fixing the -bug or implementing the feature. +## [隐私](#privacy) -[iss-help]: https://github.com/AdguardTeam/AdGuardHome/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22 - - - -## Projects that use AdGuard Home - - - - * [AdGuard Home Remote](https://apps.apple.com/app/apple-store/id1543143740): - iOS app by [Joost](https://rocketscience-it.nl/). - - * [Python library](https://github.com/frenck/python-adguardhome) by - [@frenck](https://github.com/frenck). - - * [Home Assistant add-on](https://github.com/hassio-addons/addon-adguard-home) - by [@frenck](https://github.com/frenck). - - * [OpenWrt LUCI app](https://github.com/kongfl888/luci-app-adguardhome) by - [@kongfl888](https://github.com/kongfl888) (originally by - [@rufengsuixing](https://github.com/rufengsuixing)). - - * [Prometheus exporter for AdGuard - Home](https://github.com/ebrianne/adguard-exporter) by - [@ebrianne](https://github.com/ebrianne). - - * [Terminal-based, real-time traffic monitoring and statistics for your AdGuard Home - instance](https://github.com/Lissy93/AdGuardian-Term) by - [@Lissy93](https://github.com/Lissy93) - - * [AdGuard Home on GLInet - routers](https://forum.gl-inet.com/t/adguardhome-on-gl-routers/10664) by - [Gl-Inet](https://gl-inet.com/). - - * [Cloudron app](https://git.cloudron.io/cloudron/adguard-home-app) by - [@gramakri](https://github.com/gramakri). - - * [Asuswrt-Merlin-AdGuardHome-Installer](https://github.com/jumpsmm7/Asuswrt-Merlin-AdGuardHome-Installer) - by [@jumpsmm7](https://github.com/jumpsmm7) aka - [@SomeWhereOverTheRainBow](https://www.snbforums.com/members/somewhereovertherainbow.64179/). - - * [Node.js library](https://github.com/Andrea055/AdguardHomeAPI) by - [@Andrea055](https://github.com/Andrea055/). - - - -## Acknowledgments - - - -This software wouldn't have been possible without: - - * [Go](https://golang.org/dl/) and its libraries: - * [gcache](https://github.com/bluele/gcache) - * [miekg's dns](https://github.com/miekg/dns) - * [go-yaml](https://github.com/go-yaml/yaml) - * [service](https://godoc.org/github.com/kardianos/service) - * [dnsproxy](https://github.com/AdguardTeam/dnsproxy) - * [urlfilter](https://github.com/AdguardTeam/urlfilter) - * [Node.js](https://nodejs.org/) and its libraries: - * And many more Node.js packages. - * [React.js](https://reactjs.org) - * [Tabler](https://github.com/tabler/tabler) - * [whotracks.me data](https://github.com/cliqz-oss/whotracks.me) - -You might have seen that [CoreDNS] was mentioned here before, but we've stopped -using it in AdGuard Home. - -For the full list of all Node.js packages in use, please take a look at -[`client/package.json`][src-packagejson] file. - -[CoreDNS]: https://coredns.io -[src-packagejson]: https://github.com/AdguardTeam/AdGuardHome/blob/master/client/package.json - - - -## Privacy - -Our main idea is that you are the one, who should be in control of your data. -So it is only natural, that AdGuard Home does not collect any usage statistics, -and does not use any web services unless you configure it to do so. See also -the [full privacy policy][privacy] with every bit that *could in theory be sent* -by AdGuard Home is available. - -[privacy]: https://adguard.com/en/privacy/home.html +我们的主要理念是,数据应该是你自己的,因此 AdGuard Home 不会收集任何使用统计数据,也不会使用任何网络服务,除非你进行相应的配置。有关 AdGuard Home 可能发送的所有详细信息,请参阅*完整的隐私政策* ,其中包含了所有理论上可能被发送的内容。 \ No newline at end of file diff --git a/apps/adguardhome/README_en.md b/apps/adguardhome/README_en.md new file mode 100644 index 000000000..6aa82defc --- /dev/null +++ b/apps/adguardhome/README_en.md @@ -0,0 +1,529 @@ +  +

+ + + AdGuard Home + +

+

Privacy protection center for you and your devices

+

+ Free and open source, powerful network-wide ads & trackers blocking DNS + server. +

+

+ AdGuard.com | + Wiki | + Reddit | + Twitter | + Telegram +

+ + Code Coverage + + + Go Report Card + + + Docker Pulls + +
+ + Latest release + + + adguard-home + +

+
+

+ +

+
+ +AdGuard Home is a network-wide software for blocking ads and tracking. After you +set it up, it'll cover ALL your home devices, and you don't need any client-side +software for that. + +It operates as a DNS server that re-routes tracking domains to a “black hole”, +thus preventing your devices from connecting to those servers. It's based on +software we use for our public [AdGuard DNS] servers, and both share a lot of +code. + +[AdGuard DNS]: https://adguard-dns.io/ + + + + * [Getting Started](#getting-started) + * [Automated install (Unix)](#automated-install-linux-and-mac) + * [Alternative methods](#alternative-methods) + * [Guides](#guides) + * [API](#api) + * [Comparing AdGuard Home to other solutions](#comparison) + * [How is this different from public AdGuard DNS servers?](#comparison-adguard-dns) + * [How does AdGuard Home compare to Pi-Hole](#comparison-pi-hole) + * [How does AdGuard Home compare to traditional ad blockers](#comparison-adblock) + * [Known limitations](#comparison-limitations) + * [How to build from source](#how-to-build) + * [Prerequisites](#prerequisites) + * [Building](#building) + * [Contributing](#contributing) + * [Test unstable versions](#test-unstable-versions) + * [Reporting issues](#reporting-issues) + * [Help with translations](#translate) + * [Other](#help-other) + * [Projects that use AdGuard Home](#uses) + * [Acknowledgments](#acknowledgments) + * [Privacy](#privacy) + + + +## Getting Started + + ### Automated install (Unix) + +To install with `curl` run the following command: + +```sh +curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v +``` + +To install with `wget` run the following command: + +```sh +wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v +``` + +To install with `fetch` run the following command: + +```sh +fetch -o - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v +``` + +The script also accepts some options: + + * `-c ` to use specified channel; + * `-r` to reinstall AdGuard Home; + * `-u` to uninstall AdGuard Home; + * `-v` for verbose output. + +Note that options `-r` and `-u` are mutually exclusive. + + + + ### Alternative methods + + #### Manual installation + +Please read the **[Getting Started][wiki-start]** article on our Wiki to learn +how to install AdGuard Home manually, and how to configure your devices to use +it. + + #### Docker + +You can use our official Docker image on [Docker Hub]. + + #### Snap Store + +If you're running **Linux,** there's a secure and easy way to install AdGuard +Home: get it from the [Snap Store]. + +[Docker Hub]: https://hub.docker.com/r/adguard/adguardhome +[Snap Store]: https://snapcraft.io/adguard-home +[wiki-start]: https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started + + + + ### Guides + +See our [Wiki][wiki]. + +[wiki]: https://github.com/AdguardTeam/AdGuardHome/wiki + + + + ### API + +If you want to integrate with AdGuard Home, you can use our [REST API][openapi]. +Alternatively, you can use this [python client][pyclient], which is used to +build the [AdGuard Home Hass.io Add-on][hassio]. + +[hassio]: https://www.home-assistant.io/integrations/adguard/ +[openapi]: https://github.com/AdguardTeam/AdGuardHome/tree/master/openapi +[pyclient]: https://pypi.org/project/adguardhome/ + + + +## Comparing AdGuard Home to other solutions + + ### How is this different from public AdGuard DNS servers? + +Running your own AdGuard Home server allows you to do much more than using a +public DNS server. It's a completely different level. See for yourself: + + * Choose what exactly the server blocks and permits. + + * Monitor your network activity. + + * Add your own custom filtering rules. + + * **Most importantly, it's your own server, and you are the only one who's in + control.** + + + + ### How does AdGuard Home compare to Pi-Hole + +At this point, AdGuard Home has a lot in common with Pi-Hole. Both block ads +and trackers using the so-called “DNS sinkholing” method and both allow +customizing what's blocked. + + + +AdGuard Home provides a lot of features out-of-the-box with no need to install +and configure additional software. We want it to be simple to the point when +even casual users can set it up with minimal effort. + +**Disclaimer:** some of the listed features can be added to Pi-Hole by +installing additional software or by manually using SSH terminal and +reconfiguring one of the utilities Pi-Hole consists of. However, in our +opinion, this cannot be legitimately counted as a Pi-Hole's feature. + +| Feature | AdGuard Home | Pi-Hole | +|-------------------------------------------------------------------------|-------------------|-----------------------------------------------------------| +| Blocking ads and trackers | ✅ | ✅ | +| Customizing blocklists | ✅ | ✅ | +| Built-in DHCP server | ✅ | ✅ | +| HTTPS for the Admin interface | ✅ | Kind of, but you'll need to manually configure lighttpd | +| Encrypted DNS upstream servers (DNS-over-HTTPS, DNS-over-TLS, DNSCrypt) | ✅ | ❌ (requires additional software) | +| Cross-platform | ✅ | ❌ (not natively, only via Docker) | +| Running as a DNS-over-HTTPS or DNS-over-TLS server | ✅ | ❌ (requires additional software) | +| Blocking phishing and malware domains | ✅ | ❌ (requires non-default blocklists) | +| Parental control (blocking adult domains) | ✅ | ❌ | +| Force Safe search on search engines | ✅ | ❌ | +| Per-client (device) configuration | ✅ | ✅ | +| Access settings (choose who can use AGH DNS) | ✅ | ❌ | +| Running [without root privileges][wiki-noroot] | ✅ | ❌ | + +[wiki-noroot]: https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started#running-without-superuser + + + + ### How does AdGuard Home compare to traditional ad blockers + +It depends. + +DNS sinkholing is capable of blocking a big percentage of ads, but it lacks +the flexibility and the power of traditional ad blockers. You can get a good +impression about the difference between these methods by reading [this +article][blog-adaway], which compares AdGuard for Android (a traditional ad +blocker) to hosts-level ad blockers (which are almost identical to DNS-based +blockers in their capabilities). This level of protection is enough for some +users. + +Additionally, using a DNS-based blocker can help to block ads, tracking and +analytics requests on other types of devices, such as SmartTVs, smart speakers +or other kinds of IoT devices (on which you can't install traditional ad +blockers). + + + + ### Known limitations + +Here are some examples of what cannot be blocked by a DNS-level blocker: + + * YouTube, Twitch ads; + + * Facebook, Twitter, Instagram sponsored posts. + +Essentially, any advertising that shares a domain with content cannot be blocked +by a DNS-level blocker. + +Is there a chance to handle this in the future? DNS will never be enough to do +this. Our only option is to use a content blocking proxy like what we do in the +standalone AdGuard applications. We're [going to bring][issue-1228] this +feature support to AdGuard Home in the future. Unfortunately, even in this +case, there still will be cases when this won't be enough or would require quite +a complicated configuration. + +[blog-adaway]: https://adguard.com/blog/adguard-vs-adaway-dns66.html +[issue-1228]: https://github.com/AdguardTeam/AdGuardHome/issues/1228 + + + +## How to build from source + + ### Prerequisites + +Run `make init` to prepare the development environment. + +You will need this to build AdGuard Home: + + * [Go](https://golang.org/dl/) v1.19 or later; + * [Node.js](https://nodejs.org/en/download/) v10.16.2 or later; + * [npm](https://www.npmjs.com/) v6.14 or later; + * [yarn](https://yarnpkg.com/) v1.22.5 or later. + + + + ### Building + +Open your terminal and execute these commands: + +```sh +git clone https://github.com/AdguardTeam/AdGuardHome +cd AdGuardHome +make +``` + +**NOTE:** The non-standard `-j` flag is currently not supported, so building +with `make -j 4` or setting your `MAKEFLAGS` to include, for example, `-j 4` is +likely to break the build. If you do have your `MAKEFLAGS` set to that, and you +don't want to change it, you can override it by running `make -j 1`. + +Check the [`Makefile`][src-makefile] to learn about other commands. + + #### Building for a different platform + +You can build AdGuard Home for any OS/ARCH that Go supports. In order to do +this, specify `GOOS` and `GOARCH` environment variables as macros when running +`make`. + +For example: + +```sh +env GOOS='linux' GOARCH='arm64' make +``` + +or: + +```sh +make GOOS='linux' GOARCH='arm64' +``` + + #### Preparing releases + +You'll need [`snapcraft`] to prepare a release build. Once installed, run the +following command: + +```sh +make build-release CHANNEL='...' VERSION='...' +``` + +See the [`build-release` target documentation][targ-release]. + + #### Docker image + +Run `make build-docker` to build the Docker image locally (the one that we +publish to DockerHub). Please note, that we're using [Docker Buildx][buildx] to +build our official image. + +You may need to prepare before using these builds: + + * (Linux-only) Install Qemu: + + ```sh + docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes + ``` + + * Prepare the builder: + + ```sh + docker buildx create --name buildx-builder --driver docker-container --use + ``` + +See the [`build-docker` target documentation][targ-docker]. + + #### Debugging the frontend + +When you need to debug the frontend without recompiling the production version +every time, for example to check how your labels would look on a form, you can +run the frontend build a development environment. + +1. In a separate terminal, run: + + ```sh + ( cd ./client/ && env NODE_ENV='development' npm run watch ) + ``` + +2. Run your `AdGuardHome` binary with the `--local-frontend` flag, which + instructs AdGuard Home to ignore the built-in frontend files and use those + from the `./build/` directory. + +3. Now any changes you make in the `./client/` directory should be recompiled + and become available on the web UI. Make sure that you disable the browser + cache to make sure that you actually get the recompiled version. + +[`snapcraft`]: https://snapcraft.io/ +[buildx]: https://docs.docker.com/buildx/working-with-buildx/ +[src-makefile]: https://github.com/AdguardTeam/AdGuardHome/blob/master/Makefile +[targ-docker]: https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-dockersh-build-a-multi-architecture-docker-image +[targ-release]: https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-releasesh-build-a-release-for-all-platforms + + + +## Contributing + +You are welcome to fork this repository, make your changes and [submit a pull +request][pr]. Please make sure you follow our [code guidelines][guide] though. + +Please note that we don't expect people to contribute to both UI and backend +parts of the program simultaneously. Ideally, the backend part is implemented +first, i.e. configuration, API, and the functionality itself. The UI part can +be implemented later in a different pull request by a different person. + +[guide]: https://github.com/AdguardTeam/CodeGuidelines/ +[pr]: https://github.com/AdguardTeam/AdGuardHome/pulls + + + + ### Test unstable versions + +There are two update channels that you can use: + + * `beta`: beta versions of AdGuard Home. More or less stable versions, + usually released every two weeks or more often. + + * `edge`: the newest version of AdGuard Home from the development branch. New + updates are pushed to this channel daily. + +There are three options how you can install an unstable version: + +1. [Snap Store]: look for the `beta` and `edge` channels. + +2. [Docker Hub]: look for the `beta` and `edge` tags. + +3. Standalone builds. Use the automated installation script or look for the + available builds [on the Wiki][wiki-platf]. + + Script to install a beta version: + + ```sh + curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c beta + ``` + + Script to install an edge version: + + ```sh + curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c edge + ``` +[wiki-platf]: https://github.com/AdguardTeam/AdGuardHome/wiki/Platforms + + + + ### Report issues + +If you run into any problem or have a suggestion, head to [this page][iss] and +click on the “New issue” button. + +[iss]: https://github.com/AdguardTeam/AdGuardHome/issues + + + + ### Help with translations + +If you want to help with AdGuard Home translations, please learn more about +translating AdGuard products [in our Knowledge Base][kb-trans]. You can +contribute to the [AdGuardHome project on CrowdIn][crowdin]. + +[crowdin]: https://crowdin.com/project/adguard-applications/en#/adguard-home +[kb-trans]: https://kb.adguard.com/en/general/adguard-translations + + + + ### Other + +Another way you can contribute is by [looking for issues][iss-help] marked as +`help wanted`, asking if the issue is up for grabs, and sending a PR fixing the +bug or implementing the feature. + +[iss-help]: https://github.com/AdguardTeam/AdGuardHome/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22 + + + +## Projects that use AdGuard Home + + + + * [AdGuard Home Remote](https://apps.apple.com/app/apple-store/id1543143740): + iOS app by [Joost](https://rocketscience-it.nl/). + + * [Python library](https://github.com/frenck/python-adguardhome) by + [@frenck](https://github.com/frenck). + + * [Home Assistant add-on](https://github.com/hassio-addons/addon-adguard-home) + by [@frenck](https://github.com/frenck). + + * [OpenWrt LUCI app](https://github.com/kongfl888/luci-app-adguardhome) by + [@kongfl888](https://github.com/kongfl888) (originally by + [@rufengsuixing](https://github.com/rufengsuixing)). + + * [Prometheus exporter for AdGuard + Home](https://github.com/ebrianne/adguard-exporter) by + [@ebrianne](https://github.com/ebrianne). + + * [Terminal-based, real-time traffic monitoring and statistics for your AdGuard Home + instance](https://github.com/Lissy93/AdGuardian-Term) by + [@Lissy93](https://github.com/Lissy93) + + * [AdGuard Home on GLInet + routers](https://forum.gl-inet.com/t/adguardhome-on-gl-routers/10664) by + [Gl-Inet](https://gl-inet.com/). + + * [Cloudron app](https://git.cloudron.io/cloudron/adguard-home-app) by + [@gramakri](https://github.com/gramakri). + + * [Asuswrt-Merlin-AdGuardHome-Installer](https://github.com/jumpsmm7/Asuswrt-Merlin-AdGuardHome-Installer) + by [@jumpsmm7](https://github.com/jumpsmm7) aka + [@SomeWhereOverTheRainBow](https://www.snbforums.com/members/somewhereovertherainbow.64179/). + + * [Node.js library](https://github.com/Andrea055/AdguardHomeAPI) by + [@Andrea055](https://github.com/Andrea055/). + + + +## Acknowledgments + + + +This software wouldn't have been possible without: + + * [Go](https://golang.org/dl/) and its libraries: + * [gcache](https://github.com/bluele/gcache) + * [miekg's dns](https://github.com/miekg/dns) + * [go-yaml](https://github.com/go-yaml/yaml) + * [service](https://godoc.org/github.com/kardianos/service) + * [dnsproxy](https://github.com/AdguardTeam/dnsproxy) + * [urlfilter](https://github.com/AdguardTeam/urlfilter) + * [Node.js](https://nodejs.org/) and its libraries: + * And many more Node.js packages. + * [React.js](https://reactjs.org) + * [Tabler](https://github.com/tabler/tabler) + * [whotracks.me data](https://github.com/cliqz-oss/whotracks.me) + +You might have seen that [CoreDNS] was mentioned here before, but we've stopped +using it in AdGuard Home. + +For the full list of all Node.js packages in use, please take a look at +[`client/package.json`][src-packagejson] file. + +[CoreDNS]: https://coredns.io +[src-packagejson]: https://github.com/AdguardTeam/AdGuardHome/blob/master/client/package.json + + + +## Privacy + +Our main idea is that you are the one, who should be in control of your data. +So it is only natural, that AdGuard Home does not collect any usage statistics, +and does not use any web services unless you configure it to do so. See also +the [full privacy policy][privacy] with every bit that *could in theory be sent* +by AdGuard Home is available. + +[privacy]: https://adguard.com/en/privacy/home.html diff --git a/apps/affine/stable-1623f5d/data.yml b/apps/affine/stable-e98f035/data.yml similarity index 100% rename from apps/affine/stable-1623f5d/data.yml rename to apps/affine/stable-e98f035/data.yml diff --git a/apps/affine/stable-1623f5d/docker-compose.yml b/apps/affine/stable-e98f035/docker-compose.yml similarity index 94% rename from apps/affine/stable-1623f5d/docker-compose.yml rename to apps/affine/stable-e98f035/docker-compose.yml index fdf9d449f..cb93027f9 100644 --- a/apps/affine/stable-1623f5d/docker-compose.yml +++ b/apps/affine/stable-e98f035/docker-compose.yml @@ -4,7 +4,7 @@ networks: services: affine: - image: ghcr.io/toeverything/affine-graphql:stable-1623f5d + image: ghcr.io/toeverything/affine-graphql:stable-e98f035 container_name: ${CONTAINER_NAME} labels: createdBy: "Apps" diff --git a/apps/affine/stable-1623f5d/envs/default.env b/apps/affine/stable-e98f035/envs/default.env similarity index 100% rename from apps/affine/stable-1623f5d/envs/default.env rename to apps/affine/stable-e98f035/envs/default.env diff --git a/apps/affine/stable-1623f5d/envs/global.env b/apps/affine/stable-e98f035/envs/global.env similarity index 100% rename from apps/affine/stable-1623f5d/envs/global.env rename to apps/affine/stable-e98f035/envs/global.env diff --git a/apps/affine/stable-1623f5d/scripts/init.sh b/apps/affine/stable-e98f035/scripts/init.sh similarity index 100% rename from apps/affine/stable-1623f5d/scripts/init.sh rename to apps/affine/stable-e98f035/scripts/init.sh diff --git a/apps/affine/stable-1623f5d/scripts/uninstall.sh b/apps/affine/stable-e98f035/scripts/uninstall.sh similarity index 100% rename from apps/affine/stable-1623f5d/scripts/uninstall.sh rename to apps/affine/stable-e98f035/scripts/uninstall.sh diff --git a/apps/affine/stable-1623f5d/scripts/upgrade.sh b/apps/affine/stable-e98f035/scripts/upgrade.sh similarity index 100% rename from apps/affine/stable-1623f5d/scripts/upgrade.sh rename to apps/affine/stable-e98f035/scripts/upgrade.sh diff --git a/apps/als/README.md b/apps/als/README.md index 599608831..9aa549343 100644 --- a/apps/als/README.md +++ b/apps/als/README.md @@ -1,52 +1,55 @@ [![docker image build](https://github.com/wikihost-opensource/als/actions/workflows/docker-image.yml/badge.svg)](https://github.com/wikihost-opensource/als/actions/workflows/docker-image.yml) -# ALS - Another Looking-glass Server +# ALS - 另一个镜像服务器 + +## 快速上手 -## Quick start ``` docker run -d --name looking-glass --restart always --network host wikihostinc/looking-glass-server ``` [DEMO](http://lg.hk1-bgp.hkg.50network.com/) -## Host Requirements - - Can run docker (yes, only docker is required) +## 主机要求 -## Image Environment Variables -| Key | Example | Default | Description | -| ------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| LISTEN_IP | 127.0.0.1 | (all ip) | which IP address will be listen use | -| HTTP_PORT | 80 | 80 | which HTTP port should use | -| SPEEDTEST_FILE_LIST | 100MB 1GB | 1MB 10MB 100MB 1GB | size of static test files, separate with space | -| LOCATION | "this is location" | (from maxmind database, ip via PUBLIC_IPV4 or PUBLIC_IPV6) | location string | -| MAXMIND_KEY | THE_KEY | (empty) | about more https://dev.maxmind.com/geoip/geolite2-free-geolocation-data | -| PUBLIC_IPV4 | 1.1.1.1 | (fetch from http://ifconfig.co) | The IPv4 address of the server | -| PUBLIC_IPV6 | fe80::1 | (fetch from http://ifconfig.co) | The IPv6 address of the server | -| DISPLAY_TRAFFIC | true | true | Toggle the streaming traffic graph | -| ENABLE_SPEEDTEST | true | true | Toggle the speedtest feature | -| UTILITIES_PING | true | true | Toggle the ping feature | -| UTILITIES_SPEEDTESTDOTNET | true | true | Toggle the speedtest.net feature | -| UTILITIES_FAKESHELL | true | true | Toggle the HTML Shell feature | -| UTILITIES_IPERF3 | true | true | Toggle the iperf3 feature | -| UTILITIES_IPERF3_PORT_MIN | 30000 | 30000 | iperf3 listen port range - from | -| UTILITIES_IPERF3_PORT_MAX | 31000 | 31000 | iperf3 listen port range - to | -| SPONSOR_MESSAGE | "Test message" or "/tmp/als_readme.md" or "http://some_host/114514.md" | '' | Show server sponsor message (support markdown file, required mapping file to container) | +* 可以运行 docker(是的,只需要 docker 即可) +## 图像环境变量 -## Features -- [x] HTML 5 Speed Test -- [x] Ping - IPv4 -- [x] iPerf3 server -- [x] Streaming traffic graph -- [x] Speedtest.net Client -- [x] Online shell box (limited commands) +| 键 | 示例 | 默认 | 描述 | +| --- | --- | --- | --- | +| LISTEN\_IP | 127.0.0.1 | (all ip) | 哪个 IP 地址将被监听使用 | +| HTTP\_PORT | 80 | 80 | 应该使用哪个 HTTP 端口 | +| SPEEDTEST\_FILE\_LIST | 100MB 1GB | 1MB 10MB 100MB 1GB | 静态测试文件的大小,用空格隔开 | +| LOCATION | "这是位置" | (from maxmind 数据库,ip 通过 PUBLIC\_IPV4 或 PUBLIC\_IPV6) | 位置字符串 | +| MAXMIND\_KEY | THE\_KEY | (空) | 关于更多详情:https://dev.maxmind.com/geoip/geolite2-free-geolocation-data | +| PUBLIC\_IPV4 | 1.1.1.1 | (从 http://ifconfig.co 获取) | 服务器的 IPv4 地址 | +| PUBLIC\_IPV6 | fe80::1 | (从 http://ifconfig.co 获取) | 服务器的 IPv6 地址 | +| DISPLAY\_TRAFFIC | true | true | 切换流媒体流量图 | +| ENABLE\_SPEEDTEST | true | true | 切换速度测试功能 | +| UTILITIES\_PING | true | true | 启用 ping 功能 | +| UTILITIES\_SPEEDTESTDOTNET | true | true | 启用 speedtest.net 功能 | +| UTILITIES\_FAKESHELL | true | true | 启用 HTML 壳功能 | +| UTILITIES\_IPERF3 | true | true | 启用 iperf3 功能 | +| UTILITIES\_IPERF3\_PORT\_MIN | 30000 | 30000 | iperf3 监听端口范围 - 起始 | +| UTILITIES\_IPERF3\_PORT\_MAX | 31000 | 31000 | iperf3 监听端口范围 - 终止 | +| SPONSOR\_MESSAGE | "测试消息" 或 "/tmp/als\_readme.md" 或 "http://some\_host/114514.md" | '' | 显示服务器赞助商信息(支持 markdown 文件,需要映射文件到容器) | -## Thanks to -https://github.com/librespeed/speedtest +## 功能 -## License +- [x] HTML 5 速度测试 +- [x] IPv4 - 平行传输 +- [x] iPerf3 服务器 +- [x] 流媒体流量图 +- [x] Speedtest.net 客户端 +- [x] 在线 Shell 箱(限用命令) -Code is licensed under MIT Public License. +## 感谢 -* If you wish to support my efforts, keep the "Powered by LookingGlass" link intact. +[https://github.com/librespeed/speedtest](https://github.com/librespeed/speedtest) +## 许可证 + +代码采用 MIT 公开许可协议授权。 + +* 如果您愿意支持我的努力,请保留“Powered by LookingGlass”链接。 \ No newline at end of file diff --git a/apps/als/README_en.md b/apps/als/README_en.md new file mode 100644 index 000000000..599608831 --- /dev/null +++ b/apps/als/README_en.md @@ -0,0 +1,52 @@ +[![docker image build](https://github.com/wikihost-opensource/als/actions/workflows/docker-image.yml/badge.svg)](https://github.com/wikihost-opensource/als/actions/workflows/docker-image.yml) + +# ALS - Another Looking-glass Server + +## Quick start +``` +docker run -d --name looking-glass --restart always --network host wikihostinc/looking-glass-server +``` + +[DEMO](http://lg.hk1-bgp.hkg.50network.com/) + +## Host Requirements + - Can run docker (yes, only docker is required) + +## Image Environment Variables +| Key | Example | Default | Description | +| ------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| LISTEN_IP | 127.0.0.1 | (all ip) | which IP address will be listen use | +| HTTP_PORT | 80 | 80 | which HTTP port should use | +| SPEEDTEST_FILE_LIST | 100MB 1GB | 1MB 10MB 100MB 1GB | size of static test files, separate with space | +| LOCATION | "this is location" | (from maxmind database, ip via PUBLIC_IPV4 or PUBLIC_IPV6) | location string | +| MAXMIND_KEY | THE_KEY | (empty) | about more https://dev.maxmind.com/geoip/geolite2-free-geolocation-data | +| PUBLIC_IPV4 | 1.1.1.1 | (fetch from http://ifconfig.co) | The IPv4 address of the server | +| PUBLIC_IPV6 | fe80::1 | (fetch from http://ifconfig.co) | The IPv6 address of the server | +| DISPLAY_TRAFFIC | true | true | Toggle the streaming traffic graph | +| ENABLE_SPEEDTEST | true | true | Toggle the speedtest feature | +| UTILITIES_PING | true | true | Toggle the ping feature | +| UTILITIES_SPEEDTESTDOTNET | true | true | Toggle the speedtest.net feature | +| UTILITIES_FAKESHELL | true | true | Toggle the HTML Shell feature | +| UTILITIES_IPERF3 | true | true | Toggle the iperf3 feature | +| UTILITIES_IPERF3_PORT_MIN | 30000 | 30000 | iperf3 listen port range - from | +| UTILITIES_IPERF3_PORT_MAX | 31000 | 31000 | iperf3 listen port range - to | +| SPONSOR_MESSAGE | "Test message" or "/tmp/als_readme.md" or "http://some_host/114514.md" | '' | Show server sponsor message (support markdown file, required mapping file to container) | + + +## Features +- [x] HTML 5 Speed Test +- [x] Ping - IPv4 +- [x] iPerf3 server +- [x] Streaming traffic graph +- [x] Speedtest.net Client +- [x] Online shell box (limited commands) + +## Thanks to +https://github.com/librespeed/speedtest + +## License + +Code is licensed under MIT Public License. + +* If you wish to support my efforts, keep the "Powered by LookingGlass" link intact. + diff --git a/apps/libreoffice/README.md b/apps/libreoffice/README.md index 1fc15878f..b00beb19b 100644 --- a/apps/libreoffice/README.md +++ b/apps/libreoffice/README.md @@ -1,80 +1,80 @@ -The [LinuxServer.io](https://linuxserver.io/) team brings you another container release featuring: +[LinuxServer.io](https://linuxserver.io/) 团队为您带来另一个容器版本,其特点是: -- regular and timely application updates -- easy user mappings (PGID, PUID) -- custom base image with s6 overlay -- weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth -- regular security updates +* 定期和及时的应用程序更新 +* 简单的用户映射(PGID,PUID) +* 自定义基本图像与 s6 覆盖 +* 在整个 LinuxServer.io 生态系统中,每周更新一次基本操作系统的通用层,以最大限度地减少空间使用、停机时间和带宽 +* 定期安全更新 -Find us at: +联系我们: -- [Blog](https://blog.linuxserver.io/) \- all the things you can do with our containers including How-To guides, opinions and much more! -- [Discord](https://discord.gg/YWrKVTn) \- realtime support / chat with the community and the team. -- [Discourse](https://discourse.linuxserver.io/) \- post on our community forum. -- [Fleet](https://fleet.linuxserver.io/) \- an online web interface which displays all of our maintained images. -- [GitHub](https://github.com/linuxserver) \- view the source for all of our repositories. -- [Open Collective](https://opencollective.com/linuxserver) \- please consider helping us by either donating or contributing to our budget +* [博客](https://blog.linuxserver.io/) \-您可以使用我们的容器做的所有事情,包括操作指南,意见等等! +* [Discord](https://discord.gg/YWrKVTn)\-与社区和团队的实时支持/聊天。 +* [发表](https://discourse.linuxserver.io/)在我们的社区论坛上。 +* [Fleet](https://fleet.linuxserver.io/)\-一个在线 Web 界面,显示我们维护的所有图像。 +* [GitHub](https://github.com/linuxserver)\-查看我们所有仓库的源代码。 +* [开放集体](https://opencollective.com/linuxserver) \-请考虑通过捐赠或为我们的预算做出贡献来帮助我们 -[LibreOffice](https://www.libreoffice.org/) is a free and powerful office suite, and a successor to OpenOffice.org (commonly known as OpenOffice). Its clean interface and feature-rich tools help you unleash your creativity and enhance your productivity. +[LibreOffice](https://www.libreoffice.org/) 是一个免费且功能强大的办公套件,是 OpenOffice.org(通常称为 OpenOffice)的继任者。其简洁的界面和功能丰富的工具可帮助您释放创造力并提高生产力。 [![libreoffice](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/libreoffice-logo.png)](https://www.libreoffice.org/) -## Supported Architectures +## 支持的体系结构 -We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). +我们利用 Docker manifest 实现多平台感知。更多信息可以从 docker [这里](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list)和我们的公告这里获得。[](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/) -Simply pulling `lscr.io/linuxserver/libreoffice:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. +简单地拉 `lscr.io/linuxserver/libreoffice:latest` 应该会为你的拱门检索正确的图像,但你也可以通过标签拉特定的拱门图像。 -The architectures supported by this image are: +此映像支持的体系结构包括: -| Architecture | Available | Tag | +| 架构 | 可用 | 标签 | | --- | --- | --- | -| x86-64 | ✅ | amd64-<version tag> | -| arm64 | ✅ | arm64v8-<version tag> | -| armhf | ❌ | | +| x86-64 | ✅ | amd64- | +| arm64 | ✅ | 臂 64 v8- | +| armhf | ❌ | | -## Application Setup +## 应用程序安装 -The application can be accessed at: +该应用程序可在以下网址访问: -- http://yourhost:3000/ -- https://yourhost:3001/ +* [http://yourhost:3000/](http://yourhost:3000/) +* [https://yourhost:3001/](https://yourhost:3001/) -### Options in all KasmVNC based GUI containers +### 所有基于 KasmVNC 的 GUI 容器中的选项 -This container is based on [Docker Baseimage KasmVNC](https://github.com/linuxserver/docker-baseimage-kasmvnc) which means there are additional environment variables and run configurations to enable or disable specific functionality. +这个容器基于 [Docker Baseimage KasmVNC](https://github.com/linuxserver/docker-baseimage-kasmvnc),这意味着有额外的环境变量和运行配置来启用或禁用特定功能。 -#### Optional environment variables +#### 可选环境变量 -| Variable | Description | +| 可变 | 描述 | | --- | --- | -| CUSTOM_PORT | Internal port the container listens on for http if it needs to be swapped from the default 3000. | -| CUSTOM\_HTTPS\_PORT | Internal port the container listens on for https if it needs to be swapped from the default 3001. | -| CUSTOM_USER | HTTP Basic auth username, abc is default. | -| PASSWORD | HTTP Basic auth password, abc is default. If unset there will be no auth | -| SUBFOLDER | Subfolder for the application if running a subfolder reverse proxy, need both slashes IE `/subfolder/` | -| TITLE | The page title displayed on the web browser, default "KasmVNC Client". | -| FM_HOME | This is the home directory (landing) for the file manager, default "/config". | -| START_DOCKER | If set to false a container with privilege will not automatically start the DinD Docker setup. | -| DRINODE | If mounting in /dev/dri for [DRI3 GPU Acceleration](https://www.kasmweb.com/kasmvnc/docs/master/gpu_acceleration.html) allows you to specify the device to use IE `/dev/dri/renderD128` | +| CUSTOM\_PORT | 如果需要从默认的 3000 交换,容器监听 http 的内部端口。 | +| CUSTOM\_HTTPS\_PORT | 如果需要从默认的 3001 交换,容器监听 https 的内部端口。 | +| CUSTOM\_USER | HTTP 基本身份验证用户名,abc 为默认值。 | +| PASSWORD | HTTP 基本身份验证密码,默认为 abc。如果未设置,则没有授权 | +| SUBFOLDER | 应用程序的子文件夹如果运行子文件夹反向代理,需要两个斜杠 IE/subfolder/ | +| TITLE | 网页浏览器上显示的页面标题,默认为“KasmVNC 客户端”。 | +| FM\_HOME | 这是文件管理器的主目录(登陆),默认为“/config”。 | +| START\_DOCKER | 如果设置为 false,具有特权的容器将不会自动启动 DinD Docker 设置。 | +| DRINODE | 如果安装在/dev/dri forDRI 3 GPU Acceleration 允许您指定设备使用 IE/dev/dri/renderD 128 | -#### Optional run configurations +#### 可选运行配置 -| Variable | Description | +| 可变 | 描述 | | --- | --- | -| `--privileged` | Will start a Docker in Docker (DinD) setup inside the container to use docker in an isolated environment. For increased performance mount the Docker directory inside the container to the host IE `-v /home/user/docker-data:/var/lib/docker`. | -| `-v /var/run/docker.sock:/var/run/docker.sock` | Mount in the host level Docker socket to either interact with it via CLI or use Docker enabled applications. | -| `--device /dev/dri:/dev/dri` | Mount a GPU into the container, this can be used in conjunction with the `DRINODE` environment variable to leverage a host video card for GPU accelerated appplications. Only **Open Source** drivers are supported IE (Intel,AMDGPU,Radeon,ATI,Nouveau) | +| \--privileged | 将在容器内启动 Docker in Docker(DinD)设置,以便在隔离环境中使用 Docker。为了提高性能,将容器内的 Docker 目录挂载到主机 IE -v /home/user/docker-data:/var/lib/docker 。 | +| \-v /var/run/docker.sock:/var/run/docker.sock | 挂载到主机级 Docker 套接字中,通过 CLI 与之交互或使用支持 Docker 的应用程序。 | +| \--device /dev/dri:/dev/dri | 将 GPU 装载到容器中,这可以与 DRINODE 环境变量结合使用,以利用主机视频卡进行 GPU 加速应用。仅支持开源驱动程序 IE(Intel,AMDGPU,Radeon,ATI,Nouveau) | -### Lossless mode +### 无损模式 -This container is capable of delivering a true lossless image at a high framerate to your web browser by changing the Stream Quality preset to "Lossless", more information [here](https://www.kasmweb.com/docs/latest/how_to/lossless.html#technical-background). In order to use this mode from a non localhost endpoint the HTTPS port on 3001 needs to be used. If using a reverse proxy to port 3000 specific headers will need to be set as outlined [here](https://github.com/linuxserver/docker-baseimage-kasmvnc#lossless). +此容器能够通过将流质量预设更改为“无损”,以高帧率向 Web 浏览器提供真正的无损图像,更多信息[请点击此处](https://www.kasmweb.com/docs/latest/how_to/lossless.html#technical-background) 。为了从非本地主机端点使用此模式,需要使用 3001 上的 HTTPS 端口。如果使用反向代理到端口 3000,则需要按[此处所](https://github.com/linuxserver/docker-baseimage-kasmvnc#lossless)述设置特定的标头。 -## Usage +## 使用 -Here are some example snippets to help you get started creating a container. +下面是一些示例代码段,可帮助您开始创建容器。 -### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose)) +### docker-compose(推荐, [点击这里获取更多信息](https://docs.linuxserver.io/general/docker-compose) ) ``` --- @@ -97,7 +97,7 @@ services: restart: unless-stopped ``` -### docker cli ([click here for more info](https://docs.docker.com/engine/reference/commandline/cli/)) +### docker 插件( [点击这里获取更多信息](https://docs.docker.com/engine/reference/commandline/cli/) ) ``` docker run -d \ @@ -113,87 +113,87 @@ docker run -d \ lscr.io/linuxserver/libreoffice:latest ``` -## Parameters +## 参数 -Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `:` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container. +容器镜像是使用运行时传递的参数配置的(比如上面的那些)。这些参数用冒号分隔,分别表示 ``。例如,`-p 8080:80` 将从容器内部暴露端口 `80,` 以便从容器外部端口 `8080` 上的主机 IP 访问。 -| Parameter | Function | +| 参数 | 功能 | | --- | --- | -| `-p 3000` | LibreOffice desktop gui. | -| `-p 3001` | LibreOffice desktop gui HTTPS. | -| `-e PUID=1000` | for UserID - see below for explanation | -| `-e PGID=1000` | for GroupID - see below for explanation | -| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | -| `-v /config` | Users home directory in the container, stores program settings and documents | -| `--security-opt seccomp=unconfined` | For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. | +| \-p 3000 | LibreOffice 桌面 GUI。 | +| \-p 3001 | LibreOffice 桌面 GUI HTTPS。 | +| \-e PUID=1000 | 对于用户 ID-请参阅下文了解解释 | +| \-e PGID=1000 | 对于 GroupID -请参见下面的说明 | +| \-e TZ=Etc/UTC | 指定要使用时区,请参阅此列表 。 | +| \-v /config | 容器中的用户主目录,存储程序设置和文档 | +| \--security-opt seccomp=unconfined | 仅对于 Docker Engine,许多现代 gui 应用程序需要它才能在旧主机上运行,因为 Docker 不知道系统调用。 | -## Environment variables from files (Docker secrets) +## 文件中的环境变量(Docker secrets) -You can set any environment variable from a file by using a special prepend `FILE__`. +您可以使用特殊的前缀 `FILE__` 从文件中设置任何环境变量。 -As an example: +例如: ``` -e FILE__PASSWORD=/run/secrets/mysecretpassword ``` -Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file. +将根据 `/run/secrets/mysecretpassword` 文件的内容设置环境变量 `PASSWORD`。 -## Umask for running applications +## 用于运行应用程序的 Umask -For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional `-e UMASK=022` setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up [here](https://en.wikipedia.org/wiki/Umask) before asking for support. +对于我们所有的镜像,我们都提供了覆盖默认 umask 设置的能力,这些默认 umask 设置是在容器中启动的,使用可选`的-e UMASK=022` 设置。请记住,umask 不是 chmod,它会根据它不添加的值从权限中减去。请在寻求支持之前阅读[此处](https://en.wikipedia.org/wiki/Umask) 。 -## User / Group Identifiers +## 用户/组标识符 -When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`. +当使用卷(`-v` 标志)时,主机操作系统和容器之间可能会出现权限问题,我们通过允许您指定用户 `PUID` 和组 `PGID 来`避免此问题。 -Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. +确保主机上的所有卷目录都归您指定的同一用户所有,并且任何权限问题都会像魔术一样消失。 -In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below: +在这种情况下 `,PUID=1000` 和 `PGID=1000`,要找到你的使用 `id 用户`如下: ``` $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) ``` -## Docker Mods +## Docker 模块 -We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. +我们发布了各种 [Docker Mods](https://github.com/linuxserver/docker-mods),以在容器中启用其他功能。此图像可用的模组列表(如果有的话)以及可以应用于任何一个图像的通用模组可以通过上面的动态徽章访问。 -## Support Info +## 支持信息 -- Shell access whilst the container is running: `docker exec -it libreoffice /bin/bash` -- To monitor the logs of the container in realtime: `docker logs -f libreoffice` -- container version number - - `docker inspect -f '{{ index .Config.Labels "build_version" }}' libreoffice` -- image version number - - `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/libreoffice:latest` +* 容器运行时的 Shell 访问: `docker exec -it libreoffice /bin/bash` +* 实时监控容器的日志:`docker logs -f libreoffice` +* 容器版本号 + * `docker inspect -f '{{ index .Config.Labels "build_version" }}' libreoffice` +* 镜像版本号 + * `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/libreoffice:latest` -## Updating Info +## 更新信息 -Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image. +我们的大多数图像都是静态的,版本化的,需要图像更新和容器重建来更新内部的应用程序。但也有例外(如。nextcloud,plex),我们不建议也不支持在容器内更新应用程序。请参阅上面的[应用程序设置](#application-setup)部分,以了解是否建议用于映像。 -Below are the instructions for updating containers: +下面是更新容器的说明: -### Via Docker Compose +### 通过 Docker 编写 -- Update all images: `docker-compose pull` - - or update a single image: `docker-compose pull libreoffice` -- Let compose update all containers as necessary: `docker-compose up -d` - - or update a single container: `docker-compose up -d libreoffice` -- You can also remove the old dangling images: `docker image prune` +* 更新所有图像:`docker-compose pull` + * 或更新单个映像: `docker-compose pull libreoffice` +* 让 compose 根据需要更新所有容器:`docker-compose up -d` + * 或更新单个容器: `docker-compose up -d libreoffice` +* 您也可以删除旧的悬空图像:`docker image prune` -### Via Docker Run +### 通过 Docker Run -- Update the image: `docker pull lscr.io/linuxserver/libreoffice:latest` -- Stop the running container: `docker stop libreoffice` -- Delete the container: `docker rm libreoffice` -- Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved) -- You can also remove the old dangling images: `docker image prune` +* 更新图片: `docker pull lscr.io/linuxserver/libreoffice:latest` +* 停止正在运行的容器:`Docker Stop LibreOffice` +* 删除容器:`docker rm libreoffice` +* 按照上面的说明使用相同的 docker 运行参数重新创建一个新容器(如果正确映射到主机文件夹,则 `/config` 文件夹和设置将被保留) +* 您也可以删除旧的悬空图像:`docker image prune` -### Via Watchtower auto-updater (only use if you don't remember the original parameters) +### 通过瞭望塔自动更新(仅在您不记得原始参数时使用) -- Pull the latest image at its tag and replace it with the same env variables in one run: +* 在标签处拉取最新的图像,并在一次运行中将其替换为相同的 env 变量: ``` docker run --rm \ @@ -202,18 +202,18 @@ Below are the instructions for updating containers: --run-once libreoffice ``` -- You can also remove the old dangling images: `docker image prune` +* 你也可以删除旧的悬空镜像:`docker image prune` -**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose). +**注意:** 我们不支持使用 Watchtower 作为现有 Docker 容器自动更新的解决方案。事实上,我们通常不鼓励自动更新。然而,对于忘记原始参数的容器的一次性手动更新来说,这是一个有用的工具。从长远来看,我们强烈建议使用 [Docker Compose](https://docs.linuxserver.io/general/docker-compose)。 -### Image Update Notifications - Diun (Docker Image Update Notifier) +### 镜像更新通知- Diun(Docker 镜像更新通知) -- We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. +* 我们建议 [Diun](https://crazymax.dev/diun/) 更新通知。不推荐或不支持自动更新容器的其他工具。 -## Building locally +## 当地建筑 -If you want to make local modifications to these images for development purposes or just to customize the logic: +如果您希望出于开发目的或仅为了自定义逻辑而对这些映像进行本地修改: ``` git clone https://github.com/linuxserver/docker-libreoffice.git @@ -224,19 +224,19 @@ docker build \ -t lscr.io/linuxserver/libreoffice:latest . ``` -The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` +ARM 变体可以使用 `multiarch/qemu-user-static` 在 x86\_64 硬件上构建 ``` docker run --rm --privileged multiarch/qemu-user-static:register --reset ``` -Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. +注册后,您可以定义 dockerfile 以使用 `-f Dockerfile.aarch64`。 -## Versions +## 版本 -- **13.05.23:** \- Rebase to Alpine 3.18. -- **18.03.23:** \- Rebase to KasmVNC base image. -- **21.10.22:** \- Rebase to Alpine 3.16, migrate to s6v3. -- **23.12.21:** \- Rebase to Alpine 3.15. -- **26.09.21:** \- Rebase to Alpine 3.14. -- **05.04.21:** \- Initial release. \ No newline at end of file +* **13.05.23:**\-重定基准到 Alpine 3.18。 +* **18.03.23:**\-重定向到 KasmVNC 基础映像。 +* **21.10.22:**\-重基到 Alpine 3.16,迁移到 s6 v3。 +* **23.12.21:**\-重定基准至 Alpine 3.15。 +* **26.09.21:**\-重定基准到 Alpine 3.14。 +* **05.04.21:**\-初始版本。 \ No newline at end of file diff --git a/apps/libreoffice/README_en.md b/apps/libreoffice/README_en.md new file mode 100644 index 000000000..1fc15878f --- /dev/null +++ b/apps/libreoffice/README_en.md @@ -0,0 +1,242 @@ +The [LinuxServer.io](https://linuxserver.io/) team brings you another container release featuring: + +- regular and timely application updates +- easy user mappings (PGID, PUID) +- custom base image with s6 overlay +- weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth +- regular security updates + +Find us at: + +- [Blog](https://blog.linuxserver.io/) \- all the things you can do with our containers including How-To guides, opinions and much more! +- [Discord](https://discord.gg/YWrKVTn) \- realtime support / chat with the community and the team. +- [Discourse](https://discourse.linuxserver.io/) \- post on our community forum. +- [Fleet](https://fleet.linuxserver.io/) \- an online web interface which displays all of our maintained images. +- [GitHub](https://github.com/linuxserver) \- view the source for all of our repositories. +- [Open Collective](https://opencollective.com/linuxserver) \- please consider helping us by either donating or contributing to our budget + +[LibreOffice](https://www.libreoffice.org/) is a free and powerful office suite, and a successor to OpenOffice.org (commonly known as OpenOffice). Its clean interface and feature-rich tools help you unleash your creativity and enhance your productivity. + +[![libreoffice](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/libreoffice-logo.png)](https://www.libreoffice.org/) + +## Supported Architectures + +We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). + +Simply pulling `lscr.io/linuxserver/libreoffice:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. + +The architectures supported by this image are: + +| Architecture | Available | Tag | +| --- | --- | --- | +| x86-64 | ✅ | amd64-<version tag> | +| arm64 | ✅ | arm64v8-<version tag> | +| armhf | ❌ | | + +## Application Setup + +The application can be accessed at: + +- http://yourhost:3000/ +- https://yourhost:3001/ + +### Options in all KasmVNC based GUI containers + +This container is based on [Docker Baseimage KasmVNC](https://github.com/linuxserver/docker-baseimage-kasmvnc) which means there are additional environment variables and run configurations to enable or disable specific functionality. + +#### Optional environment variables + +| Variable | Description | +| --- | --- | +| CUSTOM_PORT | Internal port the container listens on for http if it needs to be swapped from the default 3000. | +| CUSTOM\_HTTPS\_PORT | Internal port the container listens on for https if it needs to be swapped from the default 3001. | +| CUSTOM_USER | HTTP Basic auth username, abc is default. | +| PASSWORD | HTTP Basic auth password, abc is default. If unset there will be no auth | +| SUBFOLDER | Subfolder for the application if running a subfolder reverse proxy, need both slashes IE `/subfolder/` | +| TITLE | The page title displayed on the web browser, default "KasmVNC Client". | +| FM_HOME | This is the home directory (landing) for the file manager, default "/config". | +| START_DOCKER | If set to false a container with privilege will not automatically start the DinD Docker setup. | +| DRINODE | If mounting in /dev/dri for [DRI3 GPU Acceleration](https://www.kasmweb.com/kasmvnc/docs/master/gpu_acceleration.html) allows you to specify the device to use IE `/dev/dri/renderD128` | + +#### Optional run configurations + +| Variable | Description | +| --- | --- | +| `--privileged` | Will start a Docker in Docker (DinD) setup inside the container to use docker in an isolated environment. For increased performance mount the Docker directory inside the container to the host IE `-v /home/user/docker-data:/var/lib/docker`. | +| `-v /var/run/docker.sock:/var/run/docker.sock` | Mount in the host level Docker socket to either interact with it via CLI or use Docker enabled applications. | +| `--device /dev/dri:/dev/dri` | Mount a GPU into the container, this can be used in conjunction with the `DRINODE` environment variable to leverage a host video card for GPU accelerated appplications. Only **Open Source** drivers are supported IE (Intel,AMDGPU,Radeon,ATI,Nouveau) | + +### Lossless mode + +This container is capable of delivering a true lossless image at a high framerate to your web browser by changing the Stream Quality preset to "Lossless", more information [here](https://www.kasmweb.com/docs/latest/how_to/lossless.html#technical-background). In order to use this mode from a non localhost endpoint the HTTPS port on 3001 needs to be used. If using a reverse proxy to port 3000 specific headers will need to be set as outlined [here](https://github.com/linuxserver/docker-baseimage-kasmvnc#lossless). + +## Usage + +Here are some example snippets to help you get started creating a container. + +### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose)) + +``` +--- +version: "2.1" +services: + libreoffice: + image: lscr.io/linuxserver/libreoffice:latest + container_name: libreoffice + security_opt: + - seccomp:unconfined #optional + environment: + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC + volumes: + - /path/to/config:/config + ports: + - 3000:3000 + - 3001:3001 + restart: unless-stopped +``` + +### docker cli ([click here for more info](https://docs.docker.com/engine/reference/commandline/cli/)) + +``` +docker run -d \ + --name=libreoffice \ + --security-opt seccomp=unconfined `#optional` \ + -e PUID=1000 \ + -e PGID=1000 \ + -e TZ=Etc/UTC \ + -p 3000:3000 \ + -p 3001:3001 \ + -v /path/to/config:/config \ + --restart unless-stopped \ + lscr.io/linuxserver/libreoffice:latest +``` + +## Parameters + +Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `:` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container. + +| Parameter | Function | +| --- | --- | +| `-p 3000` | LibreOffice desktop gui. | +| `-p 3001` | LibreOffice desktop gui HTTPS. | +| `-e PUID=1000` | for UserID - see below for explanation | +| `-e PGID=1000` | for GroupID - see below for explanation | +| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | +| `-v /config` | Users home directory in the container, stores program settings and documents | +| `--security-opt seccomp=unconfined` | For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. | + +## Environment variables from files (Docker secrets) + +You can set any environment variable from a file by using a special prepend `FILE__`. + +As an example: + +``` +-e FILE__PASSWORD=/run/secrets/mysecretpassword +``` + +Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file. + +## Umask for running applications + +For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional `-e UMASK=022` setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up [here](https://en.wikipedia.org/wiki/Umask) before asking for support. + +## User / Group Identifiers + +When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`. + +Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. + +In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below: + +``` + $ id username + uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) +``` + +## Docker Mods + +We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. + +## Support Info + +- Shell access whilst the container is running: `docker exec -it libreoffice /bin/bash` +- To monitor the logs of the container in realtime: `docker logs -f libreoffice` +- container version number + - `docker inspect -f '{{ index .Config.Labels "build_version" }}' libreoffice` +- image version number + - `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/libreoffice:latest` + +## Updating Info + +Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image. + +Below are the instructions for updating containers: + +### Via Docker Compose + +- Update all images: `docker-compose pull` + - or update a single image: `docker-compose pull libreoffice` +- Let compose update all containers as necessary: `docker-compose up -d` + - or update a single container: `docker-compose up -d libreoffice` +- You can also remove the old dangling images: `docker image prune` + +### Via Docker Run + +- Update the image: `docker pull lscr.io/linuxserver/libreoffice:latest` +- Stop the running container: `docker stop libreoffice` +- Delete the container: `docker rm libreoffice` +- Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved) +- You can also remove the old dangling images: `docker image prune` + +### Via Watchtower auto-updater (only use if you don't remember the original parameters) + +- Pull the latest image at its tag and replace it with the same env variables in one run: + + ``` + docker run --rm \ + -v /var/run/docker.sock:/var/run/docker.sock \ + containrrr/watchtower \ + --run-once libreoffice + ``` + +- You can also remove the old dangling images: `docker image prune` + + +**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose). + +### Image Update Notifications - Diun (Docker Image Update Notifier) + +- We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. + +## Building locally + +If you want to make local modifications to these images for development purposes or just to customize the logic: + +``` +git clone https://github.com/linuxserver/docker-libreoffice.git +cd docker-libreoffice +docker build \ + --no-cache \ + --pull \ + -t lscr.io/linuxserver/libreoffice:latest . +``` + +The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` + +``` +docker run --rm --privileged multiarch/qemu-user-static:register --reset +``` + +Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. + +## Versions + +- **13.05.23:** \- Rebase to Alpine 3.18. +- **18.03.23:** \- Rebase to KasmVNC base image. +- **21.10.22:** \- Rebase to Alpine 3.16, migrate to s6v3. +- **23.12.21:** \- Rebase to Alpine 3.15. +- **26.09.21:** \- Rebase to Alpine 3.14. +- **05.04.21:** \- Initial release. \ No newline at end of file diff --git a/apps/lsky-pro/README.md b/apps/lsky-pro/README.md index 601ccabb2..bc3e0e4f7 100644 --- a/apps/lsky-pro/README.md +++ b/apps/lsky-pro/README.md @@ -1,98 +1,87 @@ -Lsky Pro Logo +![Lsky Pro Logo](https://avatars.githubusercontent.com/u/100565733?s=200) -

Lsky Pro

+# [Lsky Pro](https://www.lsky.pro) -☁ Your photo album on the cloud. +☁ 你的照片云相册 -[![PHP](https://img.shields.io/badge/PHP->=8.0-orange.svg)](http://php.net) -[![Release](https://img.shields.io/github/v/release/lsky-org/lsky-pro)](https://github.com/lsky-org/lsky-pro/releases) -[![Issues](https://img.shields.io/github/issues/lsky-org/lsky-pro)](https://github.com/lsky-org/lsky-pro/issues) -[![Code size](https://img.shields.io/github/languages/code-size/lsky-org/lsky-pro?color=blueviolet)](https://github.com/lsky-org/lsky-pro) -[![Repo size](https://img.shields.io/github/repo-size/lsky-org/lsky-pro?color=eb56fd)](https://github.com/lsky-org/lsky-pro) -[![Last commit](https://img.shields.io/github/last-commit/lsky-org/lsky-pro/dev)](https://github.com/lsky-org/lsky-pro/commits/dev) -[![License](https://img.shields.io/badge/license-GPL_V3.0-yellowgreen.svg)](https://github.com/lsky-org/lsky-pro/blob/master/LICENSE) +[![PHP](https://img.shields.io/badge/PHP-%3E=8.0-orange.svg)](http://php.net) [![Release](https://img.shields.io/github/v/release/lsky-org/lsky-pro)](https://github.com/lsky-org/lsky-pro/releases) [![Issues](https://img.shields.io/github/issues/lsky-org/lsky-pro)](https://github.com/lsky-org/lsky-pro/issues) [![Code size](https://img.shields.io/github/languages/code-size/lsky-org/lsky-pro?color=blueviolet)](https://github.com/lsky-org/lsky-pro) [![Repo size](https://img.shields.io/github/repo-size/lsky-org/lsky-pro?color=eb56fd)](https://github.com/lsky-org/lsky-pro) [![Last commit](https://img.shields.io/github/last-commit/lsky-org/lsky-pro/dev)](https://github.com/lsky-org/lsky-pro/commits/dev) [![License](https://img.shields.io/badge/license-GPL_V3.0-yellowgreen.svg)](https://github.com/lsky-org/lsky-pro/blob/master/LICENSE) -[官网](https://www.lsky.pro) · -[文档](https://docs.lsky.pro) · -[社区](https://github.com/lsky-org/lsky-pro/discussions) · -[演示](https://pic.vv1234.cn) · -[Telegram 群组](https://t.me/lsky_pro) +[官网](https://www.lsky.pro) · [文档](https://docs.lsky.pro) · [社区](https://github.com/lsky-org/lsky-pro/discussions) · [演示](https://pic.vv1234.cn) · [Telegram 群组](https://t.me/lsky_pro) -> master 分支为未安装三方拓展的版本,通常包含了最新未发布版本的一些实验性新特性和修复补丁,正式版本请点击 [这里](https://github.com/lsky-org/lsky-pro/releases) 下载。 -> 发现 bug 请提交 [issues](https://github.com/lsky-org/lsky-pro/issues) (提问前建议阅读[提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md)) +> master 分支为未安装三方拓展的版本,通常包含了最新未发布版本的一些实验性新特性和修复补丁,正式版本请点击 [这里](https://github.com/lsky-org/lsky-pro/releases) 下载。 +> 发现 bug 请提交 [issues](https://github.com/lsky-org/lsky-pro/issues) (提问前建议阅读[提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md)) > 有任何想法、建议、或分享,请移步 [社区](https://github.com/lsky-org/lsky-pro/discussions) -![看不见图片请使用科学上网](https://user-images.githubusercontent.com/22728201/157242302-bfbd04a0-fb30-4241-800e-cc2b1dad9b19.png) -![看不见图片请使用科学上网](https://user-images.githubusercontent.com/22728201/157242314-5716d578-fee5-4083-8d91-0d98cb2545d9.png) +![看不见图片请使用科学上网](https://user-images.githubusercontent.com/22728201/157242302-bfbd04a0-fb30-4241-800e-cc2b1dad9b19.png) ![看不见图片请使用科学上网](https://user-images.githubusercontent.com/22728201/157242314-5716d578-fee5-4083-8d91-0d98cb2545d9.png) -### 📌 TODO -* [x] 支持`本地`等多种第三方云储存 `AWS S3`、`阿里云 OSS`、`腾讯云 COS`、`七牛云`、`又拍云`、`SFTP`、`FTP`、`WebDav`、`Minio` -* [x] 多种数据库驱动支持,`MySQL 5.7+`、`PostgreSQL 9.6+`、`SQLite 3.8.8+`、`SQL Server 2017+` -* [x] 支持配置使用多种缓存驱动,`Memcached`、`Redis`、`DynamoDB`、等其他关系型数据库,默认以文件的方式缓存 -* [x] 多图上传、拖拽上传、粘贴上传、动态设置策略上传、复制、一键复制链接 -* [x] 强大的图片管理功能,瀑布流展示,支持鼠标右键、单选多选、重命名等操作 -* [x] 自由度极高的角色组配置,可以为每个组配置多个储存策略,同时储存策略可以配置多个角色组 -* [x] 可针对角色组设置上传文件、文件夹路径命名规则、上传频率限制、图片审核等功能 -* [x] 支持图片水印、文字水印、水印平铺、设置水印位置、X/y 轴偏移量设置、旋转角度等 -* [x] 支持通过接口上传、管理图片、管理相册 -* [x] 支持在线增量更新、跨版本更新 -* [x] 图片广场 +### 📌 待办事项 + +- [x] 支持本地等多种第三方云储存 AWS S3、阿里云 OSS、腾讯云 COS、七牛云、又拍云、SFTP、FTP、WebDav、Minio +- [x] 多种数据库驱动支持,MySQL 5.7+、PostgreSQL 9.6+、SQLite 3.8.8+、SQL Server 2017+ +- [x] 支持配置使用多种缓存驱动,Memcached、Redis、DynamoDB、等其他关系型数据库,默认以文件的方式缓存 +- [x] 多图上传、拖拽上传、粘贴上传、动态设置策略上传、复制、一键复制链接 +- [x] 强大的图片管理功能,瀑布流展示,支持鼠标右键、单选多选、重命名等操作 +- [x] 自由度极高的角色组配置,可以为每个组配置多个储存策略,同时储存策略可以配置多个角色组 +- [x] 可针对角色组设置上传文件、文件夹路径命名规则、上传频率限制、图片审核等功能 +- [x] 支持图片水印、文字水印、水印平铺、设置水印位置、X/y 轴偏移量设置、旋转角度等 +- [x] 支持通过接口上传、管理图片、管理相册 +- [x] 支持在线增量更新、跨版本更新 +- [x] 图片广场 ### 🛠 安装要求 -- PHP >= 8.0.2 -- BCMath PHP 扩展 -- Ctype PHP 扩展 -- DOM PHP 拓展 -- Fileinfo PHP 扩展 -- JSON PHP 扩展 -- Mbstring PHP 扩展 -- OpenSSL PHP 扩展 -- PDO PHP 扩展 -- Tokenizer PHP 扩展 -- XML PHP 扩展 -- Imagick 拓展 -- exec、shell_exec 函数 -- readlink、symlink 函数 -- putenv、getenv 函数 -- chmod、chown、fileperms 函数 + +* PHP >= 8.0.2 +* BCMath PHP 扩展 +* Ctype PHP 扩展 +* DOM PHP 拓展 +* Fileinfo PHP 扩展 +* JSON PHP 扩展 +* Mbstring PHP 扩展 +* OpenSSL PHP 扩展 +* PDO PHP 扩展 +* Tokenizer PHP 扩展 +* XML PHP 扩展 +* Imagick 拓展 +* exec、shell\_exec 函数 +* readlink、symlink 函数 +* putenv、getenv 函数 +* chmod、chown、fileperms 函数 ### 😋 鸣谢 -- [Laravel](https://laravel.com) -- [Tailwindcss](https://tailwindcss.com) -- [Fontawesome](https://fontawesome.com) -- [Echarts](https://echarts.apache.org) -- [Intervention/image](https://github.com/Intervention/image) -- [league/flysystem](https://flysystem.thephpleague.com) -- [overtrue](https://github.com/overtrue) -- [Jquery](https://jquery.com) -- [jQuery-File-Upload](https://github.com/blueimp/jQuery-File-Upload) -- [Alpinejs](https://alpinejs.dev/) -- [Viewer.js](https://github.com/fengyuanchen/viewerjs) -- [DragSelect](https://github.com/ThibaultJanBeyer/DragSelect) -- [Justified-Gallery](https://github.com/miromannino/Justified-Gallery) -- [Clipboard.js](https://github.com/zenorocha/clipboard.js) + +* [Laravel](https://laravel.com) +* [Tailwindcss](https://tailwindcss.com) +* [Fontawesome](https://fontawesome.com) +* [Echarts](https://echarts.apache.org) +* [Intervention/image](https://github.com/Intervention/image) +* [league/flysystem](https://flysystem.thephpleague.com) +* [overtrue](https://github.com/overtrue) +* [Jquery](https://jquery.com) +* [jQuery-File-Upload](https://github.com/blueimp/jQuery-File-Upload) +* [Alpinejs](https://alpinejs.dev/) +* [Viewer.js](https://github.com/fengyuanchen/viewerjs) +* [DragSelect](https://github.com/ThibaultJanBeyer/DragSelect) +* [Justified-Gallery](https://github.com/miromannino/Justified-Gallery) +* [Clipboard.js](https://github.com/zenorocha/clipboard.js) ### 💰 捐赠 -Lsky Pro 的开发和更新等,都是作者在业余时间独立开发,并免费开源使用,如果您认可我的作品,并且觉得对你有所帮助我愿意接受来自各方面的捐赠😃。 - - - - - - - - - -
支付宝微信
看不见图片请使用科学上网看不见图片请使用科学上网
-### 🤩 Stargazers over time +Lsky Pro 的开发和更新等,都是作者在业余时间独立开发,并免费开源使用,如果您认可我的作品,并且觉得对你有所帮助我愿意接受来自各方面的捐赠😃。 + +| 支付宝 | 微信 | +| --- | --- | +| | | + +### 🤩 不同时代的观星者 + [![Stargazers over time](https://starchart.cc/lsky-org/lsky-pro.svg)](https://starchart.cc/lsky-org/lsky-pro) ### 📧 联系我 -- Email: i@wispx.cn + +* 邮箱: [i@wispx.cn](mailto:i@wispx.cn) ### 📃 开源许可 + [GPL 3.0](https://opensource.org/licenses/GPL-3.0) -Copyright (c) 2018-present Lsky Pro. - +版权所有 (c) 2018-present Lsky Pro. \ No newline at end of file diff --git a/apps/lsky-pro/README_en.md b/apps/lsky-pro/README_en.md new file mode 100644 index 000000000..601ccabb2 --- /dev/null +++ b/apps/lsky-pro/README_en.md @@ -0,0 +1,98 @@ +Lsky Pro Logo + +

Lsky Pro

+ +☁ Your photo album on the cloud. + +[![PHP](https://img.shields.io/badge/PHP->=8.0-orange.svg)](http://php.net) +[![Release](https://img.shields.io/github/v/release/lsky-org/lsky-pro)](https://github.com/lsky-org/lsky-pro/releases) +[![Issues](https://img.shields.io/github/issues/lsky-org/lsky-pro)](https://github.com/lsky-org/lsky-pro/issues) +[![Code size](https://img.shields.io/github/languages/code-size/lsky-org/lsky-pro?color=blueviolet)](https://github.com/lsky-org/lsky-pro) +[![Repo size](https://img.shields.io/github/repo-size/lsky-org/lsky-pro?color=eb56fd)](https://github.com/lsky-org/lsky-pro) +[![Last commit](https://img.shields.io/github/last-commit/lsky-org/lsky-pro/dev)](https://github.com/lsky-org/lsky-pro/commits/dev) +[![License](https://img.shields.io/badge/license-GPL_V3.0-yellowgreen.svg)](https://github.com/lsky-org/lsky-pro/blob/master/LICENSE) + +[官网](https://www.lsky.pro) · +[文档](https://docs.lsky.pro) · +[社区](https://github.com/lsky-org/lsky-pro/discussions) · +[演示](https://pic.vv1234.cn) · +[Telegram 群组](https://t.me/lsky_pro) + +> master 分支为未安装三方拓展的版本,通常包含了最新未发布版本的一些实验性新特性和修复补丁,正式版本请点击 [这里](https://github.com/lsky-org/lsky-pro/releases) 下载。 +> 发现 bug 请提交 [issues](https://github.com/lsky-org/lsky-pro/issues) (提问前建议阅读[提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md)) +> 有任何想法、建议、或分享,请移步 [社区](https://github.com/lsky-org/lsky-pro/discussions) + +![看不见图片请使用科学上网](https://user-images.githubusercontent.com/22728201/157242302-bfbd04a0-fb30-4241-800e-cc2b1dad9b19.png) +![看不见图片请使用科学上网](https://user-images.githubusercontent.com/22728201/157242314-5716d578-fee5-4083-8d91-0d98cb2545d9.png) + +### 📌 TODO +* [x] 支持`本地`等多种第三方云储存 `AWS S3`、`阿里云 OSS`、`腾讯云 COS`、`七牛云`、`又拍云`、`SFTP`、`FTP`、`WebDav`、`Minio` +* [x] 多种数据库驱动支持,`MySQL 5.7+`、`PostgreSQL 9.6+`、`SQLite 3.8.8+`、`SQL Server 2017+` +* [x] 支持配置使用多种缓存驱动,`Memcached`、`Redis`、`DynamoDB`、等其他关系型数据库,默认以文件的方式缓存 +* [x] 多图上传、拖拽上传、粘贴上传、动态设置策略上传、复制、一键复制链接 +* [x] 强大的图片管理功能,瀑布流展示,支持鼠标右键、单选多选、重命名等操作 +* [x] 自由度极高的角色组配置,可以为每个组配置多个储存策略,同时储存策略可以配置多个角色组 +* [x] 可针对角色组设置上传文件、文件夹路径命名规则、上传频率限制、图片审核等功能 +* [x] 支持图片水印、文字水印、水印平铺、设置水印位置、X/y 轴偏移量设置、旋转角度等 +* [x] 支持通过接口上传、管理图片、管理相册 +* [x] 支持在线增量更新、跨版本更新 +* [x] 图片广场 + +### 🛠 安装要求 +- PHP >= 8.0.2 +- BCMath PHP 扩展 +- Ctype PHP 扩展 +- DOM PHP 拓展 +- Fileinfo PHP 扩展 +- JSON PHP 扩展 +- Mbstring PHP 扩展 +- OpenSSL PHP 扩展 +- PDO PHP 扩展 +- Tokenizer PHP 扩展 +- XML PHP 扩展 +- Imagick 拓展 +- exec、shell_exec 函数 +- readlink、symlink 函数 +- putenv、getenv 函数 +- chmod、chown、fileperms 函数 + +### 😋 鸣谢 +- [Laravel](https://laravel.com) +- [Tailwindcss](https://tailwindcss.com) +- [Fontawesome](https://fontawesome.com) +- [Echarts](https://echarts.apache.org) +- [Intervention/image](https://github.com/Intervention/image) +- [league/flysystem](https://flysystem.thephpleague.com) +- [overtrue](https://github.com/overtrue) +- [Jquery](https://jquery.com) +- [jQuery-File-Upload](https://github.com/blueimp/jQuery-File-Upload) +- [Alpinejs](https://alpinejs.dev/) +- [Viewer.js](https://github.com/fengyuanchen/viewerjs) +- [DragSelect](https://github.com/ThibaultJanBeyer/DragSelect) +- [Justified-Gallery](https://github.com/miromannino/Justified-Gallery) +- [Clipboard.js](https://github.com/zenorocha/clipboard.js) + +### 💰 捐赠 +Lsky Pro 的开发和更新等,都是作者在业余时间独立开发,并免费开源使用,如果您认可我的作品,并且觉得对你有所帮助我愿意接受来自各方面的捐赠😃。 + + + + + + + + + +
支付宝微信
看不见图片请使用科学上网看不见图片请使用科学上网
+ +### 🤩 Stargazers over time +[![Stargazers over time](https://starchart.cc/lsky-org/lsky-pro.svg)](https://starchart.cc/lsky-org/lsky-pro) + +### 📧 联系我 +- Email: i@wispx.cn + +### 📃 开源许可 +[GPL 3.0](https://opensource.org/licenses/GPL-3.0) + +Copyright (c) 2018-present Lsky Pro. + diff --git a/apps/matomo/README.md b/apps/matomo/README.md index 2e6f100ee..3636f1e9a 100644 --- a/apps/matomo/README.md +++ b/apps/matomo/README.md @@ -12,128 +12,121 @@ # 原始相关 -# Matomo (formerly Piwik) - matomo.org +# Matomo(原名 Piwik)- matomo.org -[![Latest Stable Version](https://poser.pugx.org/matomo/matomo/v/stable)](https://matomo.org/download/) -[![Latest Unstable Version](https://poser.pugx.org/matomo/matomo/v/unstable)](https://builds.matomo.org/) -[![License](https://poser.pugx.org/piwik/piwik/license)](https://matomo.org/free-software/) +[![Latest Stable Version](https://poser.pugx.org/matomo/matomo/v/stable)](https://matomo.org/download/) [![Latest Unstable Version](https://poser.pugx.org/matomo/matomo/v/unstable)](https://builds.matomo.org/) [![License](https://poser.pugx.org/piwik/piwik/license)](https://matomo.org/free-software/) -## Code Status +## 代码状态 -[![Matomo Tests](https://github.com/matomo-org/matomo/actions/workflows/matomo-tests.yml/badge.svg)](https://github.com/matomo-org/matomo/actions/workflows/matomo-tests.yml) -[![Percentage of issues still open](http://isitmaintained.com/badge/open/matomo-org/matomo.svg)](http://isitmaintained.com/project/matomo-org/matomo "Percentage of issues still open") +[![Matomo Tests](https://github.com/matomo-org/matomo/actions/workflows/matomo-tests.yml/badge.svg)](https://github.com/matomo-org/matomo/actions/workflows/matomo-tests.yml) [![Percentage of issues still open](http://isitmaintained.com/badge/open/matomo-org/matomo.svg)](http://isitmaintained.com/project/matomo-org/matomo "Percentage of issues still open") -## Description +## 描述 -Matomo is the leading Free/Libre open analytics platform. +Matomo 是领先的免费/开源分析平台。 -Matomo is a full-featured PHP MySQL software program that you download and install on your own webserver. -At the end of the five-minute installation process, you will be given a JavaScript code. -Simply copy and paste this tag on websites you wish to track and access your analytics reports in real-time. +Matomo 是一个功能齐全的 PHP MySQL 软件程序,你可以下载并安装在自己的服务器上。在五分钟安装过程结束后,你会得到一段 JavaScript 代码。只需将这段代码复制并粘贴到你希望跟踪的网站上,并实时访问你的分析报告。 -Matomo aims to be a Free software alternative to Google Analytics and is already used on more than 1,400,000 websites. Privacy is built-in! +Matomo 是 Google Analytics 的免费软件替代品,已经在超过 1,400,000 个网站上使用。内置隐私保护! -## Mission Statement +## 使命宣言 -> « To create, as a community, the leading international open source digital analytics platform, that gives every user full control of their data. » +> “作为社区,创建一个国际领先的开源数字分析平台,让用户完全控制自己的数据。” -Or in short: -> « Liberate Web Analytics » +或者简单来说: -## License +> « 解放网络分析 » -Matomo is released under the GPL v3 (or later) license, see [LICENSE](https://github.com/matomo-org/matomo/blob/5.x-dev/LICENSE). +## 许可证 -## Requirements +Matomo 采用 GPL v3(或更新版本)许可证,详见 [LICENSE](https://github.com/matomo-org/matomo/blob/5.x-dev/LICENSE)。 - * PHP 7.2.5 or greater - * MySQL version 5.5 or greater, or MariaDB - * PHP extension pdo and pdo_mysql, or the MySQLi extension - * Matomo is OS / server independent +## 需求 -See https://matomo.org/docs/requirements/. +* PHP 7.2.5 或更高版本 +* MySQL 5.5 或更高版本,或 MariaDB +* PHP 扩展 pdo 和 pdo\_mysql,或 MySQLi 扩展 +* Matomo 与操作系统 / 服务器无关 -## Install Matomo +访问 [https://matomo.org/docs/要求/](https://matomo.org/docs/requirements/)。 - * [Download Matomo](https://matomo.org/download/) - * Upload matomo to your webserver - * Point your browser to the directory - * Follow the steps - * Add the given javascript code to your pages - * (You may also generate fake data to experiment, by enabling the plugin VisitorGenerator) +## 安装 Matomo -See https://matomo.org/docs/installation/. +* [下载 Matomo](https://matomo.org/download/) +* 将 Matomo 上传到您的 Web 服务器 +* 将浏览器指向目录 +* 按照步骤操作 +* 将给定的 javascript 代码添加到页面中 +* (您也可以通过启用插件 VisitorGenerator 生成假数据来进行实验) -(When using Matomo for development you need to [install Matomo from the Git repository](https://matomo.org/faq/how-to-install/faq_18271/)). +访问 [https://matomo.org/docs/installation/](https://matomo.org/docs/installation/)。 -## Free trial +(当使用 Matomo 进行开发时,您需要从 Git 仓库 [安装 Matomo](https://matomo.org/faq/how-to-install/faq_18271/))。 -If you do not have a server or don't want to host yourself you can use our Matomo Cloud partner service (21 day free trial): https://matomo.org/start-free-analytics-trial/ +## 免费试用 -## Online Demo +如果您没有服务器或不想自行托管,可以使用我们的 Matomo 云合作伙伴服务(21 天免费试用):[https://matomo.org/start-free-analytics-trial/](https://matomo.org/start-free-analytics-trial/) -Check out the online demo for Matomo at [demo.matomo.cloud](https://demo.matomo.cloud/). +## 在线演示 -## Changelog +访问 Matomo 的在线演示,请访问 [demo.matomo.cloud](https://demo.matomo.cloud/)。 -For the list of all tickets closed in the current and past releases, see [matomo.org/changelog/](https://matomo.org/changelog/). For the list of technical changes in the Matomo platform, see [developer.matomo.org/changelog](https://developer.matomo.org/changelog). +## 更新日志 -## Get involved! +要查看当前及过去版本中关闭的所有工单列表,请访问 [matomo.org/changelog/](https://matomo.org/changelog/)。要查看 Matomo 平台的技术更改列表,请访问 [developer.matomo.org/changelog](https://developer.matomo.org/changelog)。 -We believe in liberating Web Analytics, providing a free platform for simple and advanced analytics. Matomo was built by dozens of people like you, -and we need your help to make Matomo better… Why not participate in a useful project today? [Learn how you can contribute to Matomo](https://matomo.org/get-involved). +## 参与进来! -## Translations +我们致力于解放网络分析,提供一个免费的平台,用于简单的和高级的分析。Matomo 是由像你这样的几十个人共同构建的,我们需要你的帮助来使 Matomo 更好……为什么不在今天参与一个有意义的项目呢?\[了解如何为 Matomo 做贡献\] -Our translations are managed on [Weblate](https://hosted.weblate.org/engage/matomo/). +## 翻译 + +我们的翻译由 [Weblate](https://hosted.weblate.org/engage/matomo/) 管理。 [![Translation Status](https://hosted.weblate.org/widgets/matomo/-/horizontal-auto.svg)](https://hosted.weblate.org/engage/matomo/) -## Quality Assurance +## 质量保证 -The Matomo project uses an ever-expanding comprehensive set of thousands of unit tests and hundreds of automated integration tests, system tests, JavaScript tests, and screenshot UI tests, running on a continuous integration server as part of its software quality assurance. [Learn more](https://developer.matomo.org/guides/tests). +Matomo 项目使用了数千个单元测试和数百个自动集成测试、系统测试、JavaScript 测试和屏幕截图 UI 测试,这些测试在持续集成服务器上运行,作为其软件质量保证的一部分。 [了解更多](https://developer.matomo.org/guides/tests) 。 -We use [BrowserStack.com](https://www.browserstack.com/) testing tool to help check the Matomo user interface is compatible with many browsers. +我们使用 [BrowserStack.com](https://www.browserstack.com/) 测试工具来帮助检查 Matomo 用户界面是否与多种浏览器兼容。 -## Security +## 安全 -Security is a top priority at Matomo. As potential issues are discovered, we validate, patch and release fixes as quickly as we can. We have a security bug bounty program in place that rewards researchers for finding security issues and disclosing them to us. +Matomo 将安全视为首要任务。一旦发现潜在问题,我们会尽快验证、打补丁并发布修复。我们有一个漏洞赏金计划,鼓励研究人员发现并报告安全问题,并为此提供奖励。 -[Learn more](https://matomo.org/security/) or check out our [HackerOne program](https://hackerone.com/matomo). +\[了解更多\] 或访问我们的 \[HackerOne 平台\]。 -## Support for Matomo +## Matomo 的支持 -For **Free support**, post a message in our community forums: [forum.matomo.org](https://forum.matomo.org/) +对于 \[免费支持\],请在我们的社区论坛发帖:\[forum.matomo.org\] -For **Professional paid support**, purchase a Matomo On-Premises Support Plan: [matomo.org/support-plans](https://matomo.org/support-plans/) +对于**专业付费支持** ,请购买 Matomo On-Premises 支持计划:\[matomo.org/support-plans\](matomo.org/support-plans) -## Contact +## 联系 -Website: [matomo.org](https://matomo.org) +网站:\[matomo.org\](matomo.org) -About us: [matomo.org/team/](https://matomo.org/team/) +关于我们:\[matomo.org/team/\](matomo.org/team/) -Contact us: [matomo.org/contact/](https://matomo.org/contact/) +联系我们: [matomo.org/contact/](https://matomo.org/contact/) +## 更多信息 -## More information +Matomo 与竞争对手有何不同之处: -What makes Matomo unique from the competition: +* 您拥有自己的网站分析数据: 由于 Matomo 安装在您的服务器上,数据存储在您自己的数据库中,您可以使用强大的 Matomo 分析 API 获取所有统计数据。 + +* Matomo 是一款自由软件,可以轻松配置以尊重访客的隐私。 + +* 现代、易于使用的用户界面:您可以完全自定义仪表板,拖放小部件等。 + +* Matomo 的功能是内置在插件中的:您可以添加新功能并移除不需要的功能。您可以自己构建网络分析插件,或者聘请顾问将自定义功能集成到 Matomo 中。 + +* 活跃的国际开源社区,拥有超过 200,000 名活跃用户(跟踪更多网站!) + +* 高级网络分析功能,如电子商务跟踪、目标跟踪、活动跟踪、自定义变量、电子邮件报告、自定义细分编辑器、地理位置、实时访问和地图, [以及其他更多功能!](https://matomo.org/feature-overview/) + - * You own your web analytics data: since Matomo is installed on your server, the data is stored in your own database and you can get all the statistics using the powerful Matomo Analytics API. +更多文档和信息请参见 [https://matomo.org](https://matomo.org)。 - * Matomo is a Free Software which can easily be configured to respect your visitors' privacy. - - * Modern, easy to use User Interface: you can fully customize your dashboard, drag and drop widgets and more. - - * Matomo features are built inside plugins: you can add new features and remove the ones you don’t need. - You can build your own web analytics plugins or hire a consultant to have your custom feature built-in Matomo. - - * A vibrant international Open community of more than 200,000 active users (tracking even more websites!) - - * Advanced Web Analytics capabilities such as E-commerce Tracking, Goal tracking, Campaign tracking, - Custom Variables, Email Reports, Custom Segment Editor, Geo Location, Real-time visits and maps, [and a lot more!](https://matomo.org/feature-overview/) - -Documentation and more info on https://matomo.org. - -We are together creating the best open analytics platform in the world! +我们共同打造世界上最优秀的开源分析平台! \ No newline at end of file diff --git a/apps/meowfacts/README.md b/apps/meowfacts/README.md index bb3bbf31b..10641268c 100644 --- a/apps/meowfacts/README.md +++ b/apps/meowfacts/README.md @@ -1,7 +1,8 @@ # 使用说明 + 当第一次部署时,假如出现异常问题,如容器未找到等,解决方式如下: -点击`已安装应用` > 找到应用 > 点`参数` > 点`编辑 `> 点`高级设置 `> 点击右下角`确认`。 +点击`已安装应用` > 找到应用 > 点`参数` > 点`编辑` \> 点`高级设置` \> 点击右下角`确认`。 采用的从源码编译镜像的方式,国内机子的话,假如因为各种网络原因,连接不上`github`, @@ -16,18 +17,17 @@ meowfacts ![Known Vulnerabilities](https://snyk.io/test/github/wh-iterabb-it/meowfacts/badge.svg) [![codecov](https://codecov.io/gh/wh-iterabb-it/meowfacts/branch/main/graph/badge.svg)](https://codecov.io/gh/wh-iterabb-it/meowfacts) +## 描述: -## Description: +一个简单的 API,通过 GET 请求返回关于猫的随机事实 -A simple api that returns a random fact about cats on a GET request +### 示例用法 -### Example Usage - -``` +``` curl https://meowfacts.herokuapp.com/ ``` -Response +响应 ```json { @@ -37,16 +37,15 @@ Response } ``` +### 高级用法 -### Advanced Usage - -You can request more than one fact at a time by using the GET param `count` +您可以通过使用 GET 参数 `count` 一次请求多个事实 ```bash curl https://meowfacts.herokuapp.com/?count=3 ``` -Response +响应 ```json { @@ -58,13 +57,13 @@ Response } ``` -You can request a specific fact if you know the ID / order it is buy passing the GET param `id` +您可以请求一个特定的信息,如果您知道其 ID/顺序,可以通过传递 GET 参数 `id` 来获取 ```bash curl https://meowfacts.herokuapp.com/?id=3 ``` -Response +响应 ```json { @@ -74,15 +73,15 @@ Response } ``` -### Language Support +### 语言支持 -You can request the response in different languages by using the GET param `lang` +您可以通过使用 GET 参数 `lang` 来请求不同语言的响应 ```bash curl https://meowfacts.herokuapp.com/?lang=ukr ``` -Response +响应 ```json { @@ -92,86 +91,85 @@ Response } ``` -#### Supported Languages +#### 支持的语言 -The supported languages are listed below, you can use any of the `lang Values` in the first column as a `lang` param. +支持的语言列表如下,您可以使用第一列中的任何 `lang Values` 作为 `lang` 参数。 -"?lang=esp" and "?lang=esp-mx" will both return spanish for your response, and simply using the `ISO-639-1` code will default to esp-mx for simplicity. +"?lang=esp"和"?lang=esp-mx"都将返回西班牙语作为您的响应,并且仅使用 `ISO-639-1` 代码将默认为 esp-mx,以便简化。 -| LANG Variable | [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) | Language Name | Localization (country) | -| :---: | :---: | :---: | :---: | -| `eng-us` | `eng` | English | USA | -| `ces-cz` or `cze-cz` | `cze` (B) `ces` (T) | Czech | CZ | -| `ger-de` | `ger` | German | DE | -| `esp-es` | `esp` | Spanish | ES | -| `esp-mx` | `esp` | Spanish (default) | MX | -| `rus-ru` | `rus` | Russian | RUS | -| `por-br` | `por` | Portuguese | BR | -| `tl-fil` | `fil` | Filipino | PH | -| `ukr-ua` | `ukr` | Ukrainian | UA | -| `urd-ur` | `urd` | Urdu | UR | -| `ita-it` | `ita` | Italian | IT | -| `zho-tw` | `zho` | Chinese | TW (Taiwan) | +| LANG 变量 | ISO 639-1 | 语言名称 | 本地化(国家) | +| --- | --- | --- | --- | +| eng-us | eng | 英文 | USA | +| ces-cz 或 cze-cz | cze (B) ces (T) | 捷克语 | CZ | +| ger-de | ger | 德语 | DE | +| esp-es | esp | 西班牙语 | ES | +| esp-mx | esp | 西班牙语(默认) | MX | +| rus-ru | rus | 俄语 | RUS | +| por-br | por | 葡萄牙语 | BR | +| tl-fil | fil | 菲律宾语 | PH | +| ukr-ua | ukr | 乌克兰语 | UA | +| urd-ur | urd | 乌尔都语 | UR | +| ita-it | ita | 意大利语 | IT | +| zho-tw | zho | 中文 | TW(台湾) | +帮助我们扩展和改进此 API 的国际化(点击展开) -
- Help us expand and improve Internationalization on this API (Click to expand) -

Help us expand and improve Internationalization on this API

- -

Note: We are trying to follow the browser's language tags, which are formally defined in RFC 5646, which rely on the ISO 639 standard (quite often the 639-1 code list) for language codes to be used.

+### 帮助我们扩展和改进此 API 的国际化 -

We would love it if you helped this project by taking a look at our Call for Contributors to see if you can make a contribution that helps us be more inclusive and support more languages.

-
+注意:我们正在尝试遵循浏览器的语言标签,这些标签在 RFC 5646 中正式定义,它们依赖于 ISO 639 标准(通常是 639-1 代码列表)来使用语言代码。 +我们非常希望您能通过查看我们的《贡献者招募》来帮助我们,看看您是否能够做出贡献,让我们更加包容并支持更多语言。 -### Documentation +### 文档 -
-

- - - -

-

- - - -

-

- - - -

-
+[![](https://raw.githubusercontent.com/swagger-api/swagger.io/wordpress/images/assets/SW-logo-clr.png)](https://app.swaggerhub.com/apis-docs/wh-iterabb-it/meowfacts/1.0.0) +[![](https://rapidapi.com/static-assets/default/dark-logo-78e48dc1-ca3f-4d67-a6f5-74032f439c8b.svg)](https://rapidapi.com/wh-iterabb-it-wh-iterabb-it-default/api/meowfacts/) -## Local Development +[![](https://img.shields.io/badge/Community_Documentation-FFFFFF.svg?logo=bookstack&logoColor=blue&style=for-the-badge)](https://meow-facts.netlify.app/) -### Installation +## 本地开发 + +### 安装 ``` npm install ``` -Basic usage +基本用法 ``` npm run start ``` -### Dedication && Funding +### 奉献与资助 +这个 API 专门为开心果而设;在困难时期,她给我带来了极大的安慰。言语无法表达我对她的感激之情。 +![My cat, Sleeping on her back on a table, she did this everywhere because the fan would cool her belly.](https://i.imgur.com/2EGh2Bp.jpg) +如果您喜欢这个 API,或者只是喜欢猫,请向以下地址捐款: -
-

This api is dedicated to pistachio; she brought me great comfort in dire times. Words can't describe the debt I owe to her.

- My cat, Sleeping on her back on a table, she did this everywhere because the fan would cool her belly. -

If you enjoy this api, or just love cats, please donate to:

-

NYC Animal Project Website

-

NYC Animal Project Paypal Link

- -

NYC Animal Project is a struggling `no kill` cat shelter in the heart of new york that relies entirely on fosters and help from small donations. I can say personally having volunteered for them, even a few cents donation would make a difference for the very small organization. I fostered many kittens from them, and Pistachio was the runt that went un-adopted. She was shy, but very outgoing when she got settled. I highly recommend to foster and adopt if you can.

+[纽约动物项目网站](https://www.animalprojectnyc.org/) + +[纽约动物项目 Paypal 链接](https://www.paypal.me/animalproject) + +《NYC 动物项目》是一家位于纽约市中心的努力实现“零安乐”的猫收容所,完全依赖寄养者和小额捐赠。我可以亲自告诉您,作为他们的志愿者,即使是几分钱的捐赠也会对这个非常小的组织产生差异。我从他们那里寄养了许多小猫,Pistachio 是那个未被领养的小不点。她很害羞,但当她安定下来后,就非常外向。我强烈推荐如果您能的话,去寄养和领养。them, and Pistachio was the runt that went un-adopted. She was shy, but very outgoing when she got settled. I highly recommend to foster and adopt if you can.

+ +
+ + +them, and Pistachio was the runt that went un-adopted. She was shy, but very outgoing when she got settled. I highly recommend to foster and adopt if you can.

+ + + + +them, and Pistachio was the runt that went un-adopted. She was shy, but very outgoing when she got settled. I highly recommend to foster and adopt if you can.

+ + + + +them, and Pistachio was the runt that went un-adopted. She was shy, but very outgoing when she got settled. I highly recommend to foster and adopt if you can.

diff --git a/apps/minipaint/README.md b/apps/minipaint/README.md index f159ed9b9..216436dce 100644 --- a/apps/minipaint/README.md +++ b/apps/minipaint/README.md @@ -1,63 +1,61 @@ # miniPaint -Online image editor lets you create, edit images using HTML5 technologies. -No need to buy, download, install or have obsolete flash. No ads. -Key features: layers, filters, HTML5, open source, Photoshop alternative. +在线图片编辑器,使用 HTML5 技术创建和编辑图片。无需购买、下载或安装,也无需使用过时的 Flash。无广告。主要功能:图层、滤镜、HTML5、开源、Photoshop 替代品。 -miniPaint operates directly in the browser. You can create images, paste from the clipboard (ctrl+v) -or upload from the computer (using menu or drag & drop). Nothing will be sent to any server. Everything stays in your -browser. +miniPaint 直接在浏览器中运行。您可以创建图片、从剪贴板粘贴(Ctrl+V)或从电脑上传(使用菜单或拖放)。任何内容都不会发送到任何服务器,一切都在您的浏览器中保存。 ## URL: -**https://viliusle.github.io/miniPaint/** -## Preview: -![miniPaint](https://raw.githubusercontent.com/viliusle/miniPaint/master/images/preview.gif) -(generated using miniPaint) +**[https://viliusle.github.io/miniPaint/](https://viliusle.github.io/miniPaint/)** -**Change log:** [/miniPaint/releases](https://github.com/viliusle/miniPaint/releases) +## 预览: -## Browser Support -- Chrome -- Firefox -- Opera -- Edge -- Safari +![miniPaint](https://raw.githubusercontent.com/viliusle/miniPaint/master/images/preview.gif)(使用 miniPaint 生成) -## Features +**变更日志:**[/miniPaint/releases](https://github.com/viliusle/miniPaint/releases) -- **Files**: open images, directories, URL, data URL, drag and drop, save (PNG, JPG, BMP, WEBP, animated GIF, TIFF, JSON -(layers data), print. -- **Edit**: Undo, cut, copy, paste, selection, paste from clipboard. -- **Image**: information, EXIF, trim, zoom, resize (Hermite resample, default resize), rotate, flip, -color corrections (brightness, contrast, hue, saturation, luminance), auto adjust colors, grid, histogram, negative. -- **Layers**: multiple layers system, differences, merge, flatten, Transparency support. -- **Effects**: Black and White, Blur (box, Gaussian, stack, zoom), Bulge/Pinch, Denoise, Desaturate, Dither, Dot Screen, -Edge, Emboss, Enrich, Gamma, Grains, GrayScale, Heatmap, JPG Compression, Mosaic, Oil, Sepia, Sharpen, Solarize, -Tilt Shift, Vignette, Vibrance, Vintage, Blueprint, Night Vision, Pencil, also Instagram Filters: 1977, Aden, Clarendon, -Gingham, Inkwell, Lo-fi, Toaster, Valencia, X-Pro II. -- **Tools**: pencil, brush, magic wand, erase, fill, color picker, letters, crop, blur, sharpen, desaturate, clone, - borders, sprites, key-points, color zoom, replace color, restore alpha, content fill. -- **Help**: keyboard shortcuts, translations. +## 浏览器支持 -## Embed -To embed this app in the other page, use this HTML code: +* Chrome +* Firefox +* Opera +* Edge +* Safari - +## 功能 -## Build instructions -See [Wiki > Build instructions](https://github.com/viliusle/miniPaint/wiki/Build-instructions) +* **Files**: 打开图像、目录、URL、数据 URL、拖放、保存(PNG、JPG、BMP、WEBP、动画 GIF、TIFF、JSON(图层数据)、打印。 +* **Edit**: 撤销、剪切、复制、粘贴、选择、从剪贴板粘贴。 +* **Image**: 信息、EXIF、裁剪、缩放(使用 Hermite 重采样,默认缩放)、旋转、翻转、色彩校正(亮度、对比度、色相、饱和度、亮度)、自动调整色彩、网格、直方图、负片。 +* **层次** : 多层系统,差异,合并,扁平化,透明度支持。 +* **效果** : 黑白,模糊(方框、高斯、堆叠、缩放),凸起/挤压,去噪,去饱和,抖动,网点,边缘,浮雕,丰富,伽马,颗粒,灰度,热图,JPG 压缩,马赛克,油画,铜版画,强化,太阳能化,倾斜移位,渐隐,饱和度,复古,蓝本,夜视,铅笔,以及 Instagram 滤镜:1977,腺,克拉伦顿,格丁根,墨水黑,低-fi,烤箱,瓦伦西亚,X-Pro II。 +* **工具** : 铅笔,画笔,魔术棒,橡皮擦,填充,颜色拾取器,文字,裁剪,模糊,锐化,去饱和,克隆,边框,精灵,关键点,颜色放大,替换颜色,恢复透明度,内容填充。 +* **帮助** : 键盘快捷键,翻译。 -## Wiki -See [Wiki](https://github.com/viliusle/miniPaint/wiki) +## 嵌入 -## Contributors - - - +要在其他页面中嵌入此应用,请使用以下 HTML 代码: + +``` + +``` + +## 构建说明 + +详见 [Wiki > 构建说明](https://github.com/viliusle/miniPaint/wiki/Build-instructions) + +## 维基 + +See [维基](https://github.com/viliusle/miniPaint/wiki) + +## 贡献者 + +[![](https://contrib.rocks/image?repo=viliusle/miniPaint)](https://github.com/viliusle/miniPaint/graphs/contributors) + +## 许可证 -## License MIT License -## Support -Please use the GitHub issues for support, features, issues or use mail www.viliusl@gmail.com for contacts. +## 支持 + +请使用 GitHub 问题跟踪器进行支持、功能请求、问题反馈,或通过邮件 [www.viliusl@gmail.com](mailto:www.viliusl@gmail.com) 联系我们。 \ No newline at end of file diff --git a/apps/minipaint/README_en.md b/apps/minipaint/README_en.md new file mode 100644 index 000000000..f159ed9b9 --- /dev/null +++ b/apps/minipaint/README_en.md @@ -0,0 +1,63 @@ +# miniPaint + +Online image editor lets you create, edit images using HTML5 technologies. +No need to buy, download, install or have obsolete flash. No ads. +Key features: layers, filters, HTML5, open source, Photoshop alternative. + +miniPaint operates directly in the browser. You can create images, paste from the clipboard (ctrl+v) +or upload from the computer (using menu or drag & drop). Nothing will be sent to any server. Everything stays in your +browser. + +## URL: +**https://viliusle.github.io/miniPaint/** + +## Preview: +![miniPaint](https://raw.githubusercontent.com/viliusle/miniPaint/master/images/preview.gif) +(generated using miniPaint) + +**Change log:** [/miniPaint/releases](https://github.com/viliusle/miniPaint/releases) + +## Browser Support +- Chrome +- Firefox +- Opera +- Edge +- Safari + +## Features + +- **Files**: open images, directories, URL, data URL, drag and drop, save (PNG, JPG, BMP, WEBP, animated GIF, TIFF, JSON +(layers data), print. +- **Edit**: Undo, cut, copy, paste, selection, paste from clipboard. +- **Image**: information, EXIF, trim, zoom, resize (Hermite resample, default resize), rotate, flip, +color corrections (brightness, contrast, hue, saturation, luminance), auto adjust colors, grid, histogram, negative. +- **Layers**: multiple layers system, differences, merge, flatten, Transparency support. +- **Effects**: Black and White, Blur (box, Gaussian, stack, zoom), Bulge/Pinch, Denoise, Desaturate, Dither, Dot Screen, +Edge, Emboss, Enrich, Gamma, Grains, GrayScale, Heatmap, JPG Compression, Mosaic, Oil, Sepia, Sharpen, Solarize, +Tilt Shift, Vignette, Vibrance, Vintage, Blueprint, Night Vision, Pencil, also Instagram Filters: 1977, Aden, Clarendon, +Gingham, Inkwell, Lo-fi, Toaster, Valencia, X-Pro II. +- **Tools**: pencil, brush, magic wand, erase, fill, color picker, letters, crop, blur, sharpen, desaturate, clone, + borders, sprites, key-points, color zoom, replace color, restore alpha, content fill. +- **Help**: keyboard shortcuts, translations. + +## Embed +To embed this app in the other page, use this HTML code: + + + +## Build instructions +See [Wiki > Build instructions](https://github.com/viliusle/miniPaint/wiki/Build-instructions) + +## Wiki +See [Wiki](https://github.com/viliusle/miniPaint/wiki) + +## Contributors + + + + +## License +MIT License + +## Support +Please use the GitHub issues for support, features, issues or use mail www.viliusl@gmail.com for contacts. diff --git a/apps/moments/2.0/.env.sample b/apps/moments-drizzle2001/2.0/.env.sample similarity index 100% rename from apps/moments/2.0/.env.sample rename to apps/moments-drizzle2001/2.0/.env.sample diff --git a/apps/moments/2.0/data.yml b/apps/moments-drizzle2001/2.0/data.yml similarity index 100% rename from apps/moments/2.0/data.yml rename to apps/moments-drizzle2001/2.0/data.yml diff --git a/apps/moments/2.0/docker-compose.yml b/apps/moments-drizzle2001/2.0/docker-compose.yml similarity index 100% rename from apps/moments/2.0/docker-compose.yml rename to apps/moments-drizzle2001/2.0/docker-compose.yml diff --git a/apps/moments/README.md b/apps/moments-drizzle2001/README.md similarity index 100% rename from apps/moments/README.md rename to apps/moments-drizzle2001/README.md diff --git a/apps/moments/data.yml b/apps/moments-drizzle2001/data.yml similarity index 100% rename from apps/moments/data.yml rename to apps/moments-drizzle2001/data.yml diff --git a/apps/moments/latest/.env.sample b/apps/moments-drizzle2001/latest/.env.sample similarity index 100% rename from apps/moments/latest/.env.sample rename to apps/moments-drizzle2001/latest/.env.sample diff --git a/apps/moments/latest/data.yml b/apps/moments-drizzle2001/latest/data.yml similarity index 100% rename from apps/moments/latest/data.yml rename to apps/moments-drizzle2001/latest/data.yml diff --git a/apps/moments/latest/docker-compose.yml b/apps/moments-drizzle2001/latest/docker-compose.yml similarity index 100% rename from apps/moments/latest/docker-compose.yml rename to apps/moments-drizzle2001/latest/docker-compose.yml diff --git a/apps/moments/logo.png b/apps/moments-drizzle2001/logo.png similarity index 100% rename from apps/moments/logo.png rename to apps/moments-drizzle2001/logo.png diff --git a/apps/moments1/1.0.7/.env.sample b/apps/moments-kingwrcy/0.2.11/.env.sample similarity index 100% rename from apps/moments1/1.0.7/.env.sample rename to apps/moments-kingwrcy/0.2.11/.env.sample diff --git a/apps/moments1/1.0.7/data.yml b/apps/moments-kingwrcy/0.2.11/data.yml similarity index 100% rename from apps/moments1/1.0.7/data.yml rename to apps/moments-kingwrcy/0.2.11/data.yml diff --git a/apps/moments1/1.0.7/docker-compose.yml b/apps/moments-kingwrcy/0.2.11/docker-compose.yml similarity index 91% rename from apps/moments1/1.0.7/docker-compose.yml rename to apps/moments-kingwrcy/0.2.11/docker-compose.yml index 07b1fabc7..81d3d7212 100644 --- a/apps/moments1/1.0.7/docker-compose.yml +++ b/apps/moments-kingwrcy/0.2.11/docker-compose.yml @@ -10,7 +10,7 @@ services: - "${DATA_PATH}:/app/data" - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - image: kingwrcy/moments:1.0.7 + image: kingwrcy/moments:0.2.11 labels: createdBy: "Apps" diff --git a/apps/moments1/README.md b/apps/moments-kingwrcy/README.md similarity index 100% rename from apps/moments1/README.md rename to apps/moments-kingwrcy/README.md diff --git a/apps/moments1/data.yml b/apps/moments-kingwrcy/data.yml similarity index 100% rename from apps/moments1/data.yml rename to apps/moments-kingwrcy/data.yml diff --git a/apps/moments1/latest/.env.sample b/apps/moments-kingwrcy/latest/.env.sample similarity index 100% rename from apps/moments1/latest/.env.sample rename to apps/moments-kingwrcy/latest/.env.sample diff --git a/apps/moments1/latest/data.yml b/apps/moments-kingwrcy/latest/data.yml similarity index 100% rename from apps/moments1/latest/data.yml rename to apps/moments-kingwrcy/latest/data.yml diff --git a/apps/moments1/latest/docker-compose.yml b/apps/moments-kingwrcy/latest/docker-compose.yml similarity index 100% rename from apps/moments1/latest/docker-compose.yml rename to apps/moments-kingwrcy/latest/docker-compose.yml diff --git a/apps/moments1/logo.png b/apps/moments-kingwrcy/logo.png similarity index 100% rename from apps/moments1/logo.png rename to apps/moments-kingwrcy/logo.png diff --git a/apps/navidrome/README.md b/apps/navidrome/README.md index 43b2ff0d1..1dffb2eae 100644 --- a/apps/navidrome/README.md +++ b/apps/navidrome/README.md @@ -6,88 +6,66 @@ 不用在意,执行以下命令,将文件夹改成普通用户身份,再重建应用即可。 -- 路径注意按需修改 +* 路径注意按需修改 + ``` chown -R 1000:1000 /opt/1panel/apps/local/navidrome/navidrome/data ``` # 原始相关 -Navidrome logo +[![Navidrome logo](https://github.com/navidrome/navidrome/raw/master/resources/logo-192x192.png "navidrome")](https://www.navidrome.org) -# Navidrome Music Server  [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Tired%20of%20paying%20for%20music%20subscriptions%2C%20and%20not%20finding%20what%20you%20really%20like%3F%20Roll%20your%20own%20streaming%20service%21&url=https://navidrome.org&via=navidrome) +# Navidrome 音乐服务器[![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Tired%20of%20paying%20for%20music%20subscriptions%2C%20and%20not%20finding%20what%20you%20really%20like%3F%20Roll%20your%20own%20streaming%20service%21&url=https://navidrome.org&via=navidrome) -[![Last Release](https://img.shields.io/github/v/release/navidrome/navidrome?logo=github&label=latest&style=flat-square)](https://github.com/navidrome/navidrome/releases) -[![Build](https://img.shields.io/github/actions/workflow/status/navidrome/navidrome/pipeline.yml?branch=master&logo=github&style=flat-square)](https://nightly.link/navidrome/navidrome/workflows/pipeline/master) -[![Downloads](https://img.shields.io/github/downloads/navidrome/navidrome/total?logo=github&style=flat-square)](https://github.com/navidrome/navidrome/releases/latest) -[![Docker Pulls](https://img.shields.io/docker/pulls/deluan/navidrome?logo=docker&label=pulls&style=flat-square)](https://hub.docker.com/r/deluan/navidrome) -[![Dev Chat](https://img.shields.io/discord/671335427726114836?logo=discord&label=discord&style=flat-square)](https://discord.gg/xh7j7yF) -[![Subreddit](https://img.shields.io/reddit/subreddit-subscribers/navidrome?logo=reddit&label=/r/navidrome&style=flat-square)](https://www.reddit.com/r/navidrome/) -[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0-ff69b4.svg?style=flat-square)](CODE_OF_CONDUCT.md) +[![Last Release](https://img.shields.io/github/v/release/navidrome/navidrome?logo=github&label=latest&style=flat-square)](https://github.com/navidrome/navidrome/releases) [![Build](https://img.shields.io/github/actions/workflow/status/navidrome/navidrome/pipeline.yml?branch=master&logo=github&style=flat-square)](https://nightly.link/navidrome/navidrome/workflows/pipeline/master) [![Downloads](https://img.shields.io/github/downloads/navidrome/navidrome/total?logo=github&style=flat-square)](https://github.com/navidrome/navidrome/releases/latest) [![Docker Pulls](https://img.shields.io/docker/pulls/deluan/navidrome?logo=docker&label=pulls&style=flat-square)](https://hub.docker.com/r/deluan/navidrome) [![Dev Chat](https://img.shields.io/discord/671335427726114836?logo=discord&label=discord&style=flat-square)](https://discord.gg/xh7j7yF) [![Subreddit](https://img.shields.io/reddit/subreddit-subscribers/navidrome?logo=reddit&label=/r/navidrome&style=flat-square)](https://www.reddit.com/r/navidrome/) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0-ff69b4.svg?style=flat-square)](CODE_OF_CONDUCT.md) -Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your -music collection from any browser or mobile device. It's like your personal Spotify! +Navidrome 是一个开源的基于网络的音乐收藏服务器和流媒体播放器。它让你能够从任何浏览器或移动设备上自由地聆听你的音乐收藏。它就像你自己的 Spotify! +**注意** :开发过程中,`master` 分支可能处于不稳定甚至无法使用的状态。为了获得稳定的二进制文件,请使用 [发布版本](https://github.com/navidrome/navidrome/releases) 而不是 `master` 分支。 -**Note**: The `master` branch may be in an unstable or even broken state during development. -Please use [releases](https://github.com/navidrome/navidrome/releases) instead of -the `master` branch in order to get a stable set of binaries. +## [查看我们的实时演示!](https://www.navidrome.org/demo/) -## [Check out our Live Demo!](https://www.navidrome.org/demo/) +**任何反馈都欢迎!** 如果你需要/想要新功能,发现 bug 或者有任何改进 Navidrome 的想法,请在 [GitHub 问题](https://github.com/navidrome/navidrome/issues) 中提交问题,或者加入我们在 [Reddit](https://www.reddit.com/r/navidrome/) 的讨论。如果你希望通过其他方式为项目做贡献( [前端/后端开发](https://www.navidrome.org/docs/developers/) , [翻译](https://www.navidrome.org/docs/developers/translations/) , [主题设计](https://www.navidrome.org/docs/developers/creating-themes) ),请加入我们在 [Discord 服务器](https://discord.gg/xh7j7yF) 。 -__Any feedback is welcome!__ If you need/want a new feature, find a bug or think of any way to improve Navidrome, -please file a [GitHub issue](https://github.com/navidrome/navidrome/issues) or join the discussion in our -[Subreddit](https://www.reddit.com/r/navidrome/). If you want to contribute to the project in any other way -([ui/backend dev](https://www.navidrome.org/docs/developers/), -[translations](https://www.navidrome.org/docs/developers/translations/), -[themes](https://www.navidrome.org/docs/developers/creating-themes)), please join the chat in our -[Discord server](https://discord.gg/xh7j7yF). +## 安装 -## Installation +请参阅项目网站上的[说明](https://www.navidrome.org/docs/installation/) -See instructions on the [project's website](https://www.navidrome.org/docs/installation/) +## 云托管 -## Cloud Hosting - -[PikaPods](https://www.pikapods.com) has partnered with us to offer you an -[officially supported, cloud-hosted solution](https://www.navidrome.org/docs/installation/managed/#pikapods). -A share of the revenue helps fund the development of Navidrome at no additional cost for you. +[PikaPods](https://www.pikapods.com) 已与我们合作,为您提供 [官方支持的云托管解决方案](https://www.navidrome.org/docs/installation/managed/#pikapods) 。部分收入将用于资助 Navidrome 的开发,不会额外增加您的成本。 [![PikaPods](https://www.pikapods.com/static/run-button.svg)](https://www.pikapods.com/pods?run=navidrome) -## Features - - - Handles very **large music collections** - - Streams virtually **any audio format** available - - Reads and uses all your beautifully curated **metadata** - - Great support for **compilations** (Various Artists albums) and **box sets** (multi-disc albums) - - **Multi-user**, each user has their own play counts, playlists, favourites, etc... - - Very **low resource usage** - - **Multi-platform**, runs on macOS, Linux and Windows. **Docker** images are also provided - - Ready to use binaries for all major platforms, including **Raspberry Pi** - - Automatically **monitors your library** for changes, importing new files and reloading new metadata - - **Themeable**, modern and responsive **Web interface** based on [Material UI](https://material-ui.com) - - **Compatible** with all Subsonic/Madsonic/Airsonic [clients](https://www.navidrome.org/docs/overview/#apps) - - **Transcoding** on the fly. Can be set per user/player. **Opus encoding is supported** - - Translated to **various languages** +## 功能 -## Documentation -All documentation can be found in the project's website: https://www.navidrome.org/docs. -Here are some useful direct links: +* 处理非常 **庞大的音乐库** +* 几乎可以 **流式传输任何音频格式** +* 读取并使用你所有精心整理的**元数据** +* 支持**合辑** (各种艺术家专辑)和**盒装集** (多碟专辑) +* **多用户** ,每个用户有自己的播放次数、播放列表、收藏等... +* 资源占用非常**低** +* 多平台,运行在 macOS、Linux 和 Windows 上。还提供了 Docker 镜像 +* 适用于所有主要平台的可直接使用的二进制文件,包括 Raspberry Pi +* 自动监控您的库文件夹,检测更改后导入新文件并重新加载新元数据 +* 可自定义主题,现代且响应式的 Web 界面,基于 Material UI +* 兼容所有 Subsonic/Madsonic/Airsonic [客户端](https://www.navidrome.org/docs/overview/#apps) +* 实时转码。可以按用户/播放器设置。 **支持 Opus 编码** +* 已翻译成多种语言 -- [Overview](https://www.navidrome.org/docs/overview/) -- [Installation](https://www.navidrome.org/docs/installation/) - - [Docker](https://www.navidrome.org/docs/installation/docker/) - - [Binaries](https://www.navidrome.org/docs/installation/pre-built-binaries/) - - [Build from source](https://www.navidrome.org/docs/installation/build-from-source/) -- [Development](https://www.navidrome.org/docs/developers/) -- [Subsonic API Compatibility](https://www.navidrome.org/docs/developers/subsonic-api/) +## 文档 -## Screenshots +所有文档可以在项目网站上找到:[https://www.navidrome.org/docs](https://www.navidrome.org/docs)。以下是些有用的直接链接: -

- - - - -

+* [概览](https://www.navidrome.org/docs/overview/) +* [安装](https://www.navidrome.org/docs/installation/) + * [Docker](https://www.navidrome.org/docs/installation/docker/) + * [二进制文件](https://www.navidrome.org/docs/installation/pre-built-binaries/) + * [源码构建](https://www.navidrome.org/docs/installation/build-from-source/) +* [开发](https://www.navidrome.org/docs/developers/) +* [Subsonic API 兼容性](https://www.navidrome.org/docs/developers/subsonic-api/) + +## 截图 + +![](https://raw.githubusercontent.com/navidrome/navidrome/master/.github/screenshots/ss-mobile-login.png) ![](https://raw.githubusercontent.com/navidrome/navidrome/master/.github/screenshots/ss-mobile-player.png) ![](https://raw.githubusercontent.com/navidrome/navidrome/master/.github/screenshots/ss-mobile-album-view.png) ![](https://raw.githubusercontent.com/navidrome/navidrome/master/.github/screenshots/ss-desktop-player.png) \ No newline at end of file diff --git a/apps/navidrome/README_en.md b/apps/navidrome/README_en.md new file mode 100644 index 000000000..43b2ff0d1 --- /dev/null +++ b/apps/navidrome/README_en.md @@ -0,0 +1,93 @@ +# 使用说明 + +容器以普通用户身份运行的, + +但是默认面板创建应用时,可能会将所需的数据文件夹设定身份为`root`,导致首次运行异常。 + +不用在意,执行以下命令,将文件夹改成普通用户身份,再重建应用即可。 + +- 路径注意按需修改 +``` +chown -R 1000:1000 /opt/1panel/apps/local/navidrome/navidrome/data +``` + +# 原始相关 + +Navidrome logo + +# Navidrome Music Server  [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Tired%20of%20paying%20for%20music%20subscriptions%2C%20and%20not%20finding%20what%20you%20really%20like%3F%20Roll%20your%20own%20streaming%20service%21&url=https://navidrome.org&via=navidrome) + +[![Last Release](https://img.shields.io/github/v/release/navidrome/navidrome?logo=github&label=latest&style=flat-square)](https://github.com/navidrome/navidrome/releases) +[![Build](https://img.shields.io/github/actions/workflow/status/navidrome/navidrome/pipeline.yml?branch=master&logo=github&style=flat-square)](https://nightly.link/navidrome/navidrome/workflows/pipeline/master) +[![Downloads](https://img.shields.io/github/downloads/navidrome/navidrome/total?logo=github&style=flat-square)](https://github.com/navidrome/navidrome/releases/latest) +[![Docker Pulls](https://img.shields.io/docker/pulls/deluan/navidrome?logo=docker&label=pulls&style=flat-square)](https://hub.docker.com/r/deluan/navidrome) +[![Dev Chat](https://img.shields.io/discord/671335427726114836?logo=discord&label=discord&style=flat-square)](https://discord.gg/xh7j7yF) +[![Subreddit](https://img.shields.io/reddit/subreddit-subscribers/navidrome?logo=reddit&label=/r/navidrome&style=flat-square)](https://www.reddit.com/r/navidrome/) +[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0-ff69b4.svg?style=flat-square)](CODE_OF_CONDUCT.md) + +Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your +music collection from any browser or mobile device. It's like your personal Spotify! + + +**Note**: The `master` branch may be in an unstable or even broken state during development. +Please use [releases](https://github.com/navidrome/navidrome/releases) instead of +the `master` branch in order to get a stable set of binaries. + +## [Check out our Live Demo!](https://www.navidrome.org/demo/) + +__Any feedback is welcome!__ If you need/want a new feature, find a bug or think of any way to improve Navidrome, +please file a [GitHub issue](https://github.com/navidrome/navidrome/issues) or join the discussion in our +[Subreddit](https://www.reddit.com/r/navidrome/). If you want to contribute to the project in any other way +([ui/backend dev](https://www.navidrome.org/docs/developers/), +[translations](https://www.navidrome.org/docs/developers/translations/), +[themes](https://www.navidrome.org/docs/developers/creating-themes)), please join the chat in our +[Discord server](https://discord.gg/xh7j7yF). + +## Installation + +See instructions on the [project's website](https://www.navidrome.org/docs/installation/) + +## Cloud Hosting + +[PikaPods](https://www.pikapods.com) has partnered with us to offer you an +[officially supported, cloud-hosted solution](https://www.navidrome.org/docs/installation/managed/#pikapods). +A share of the revenue helps fund the development of Navidrome at no additional cost for you. + +[![PikaPods](https://www.pikapods.com/static/run-button.svg)](https://www.pikapods.com/pods?run=navidrome) + +## Features + + - Handles very **large music collections** + - Streams virtually **any audio format** available + - Reads and uses all your beautifully curated **metadata** + - Great support for **compilations** (Various Artists albums) and **box sets** (multi-disc albums) + - **Multi-user**, each user has their own play counts, playlists, favourites, etc... + - Very **low resource usage** + - **Multi-platform**, runs on macOS, Linux and Windows. **Docker** images are also provided + - Ready to use binaries for all major platforms, including **Raspberry Pi** + - Automatically **monitors your library** for changes, importing new files and reloading new metadata + - **Themeable**, modern and responsive **Web interface** based on [Material UI](https://material-ui.com) + - **Compatible** with all Subsonic/Madsonic/Airsonic [clients](https://www.navidrome.org/docs/overview/#apps) + - **Transcoding** on the fly. Can be set per user/player. **Opus encoding is supported** + - Translated to **various languages** + +## Documentation +All documentation can be found in the project's website: https://www.navidrome.org/docs. +Here are some useful direct links: + +- [Overview](https://www.navidrome.org/docs/overview/) +- [Installation](https://www.navidrome.org/docs/installation/) + - [Docker](https://www.navidrome.org/docs/installation/docker/) + - [Binaries](https://www.navidrome.org/docs/installation/pre-built-binaries/) + - [Build from source](https://www.navidrome.org/docs/installation/build-from-source/) +- [Development](https://www.navidrome.org/docs/developers/) +- [Subsonic API Compatibility](https://www.navidrome.org/docs/developers/subsonic-api/) + +## Screenshots + +

+ + + + +

diff --git a/apps/nextcloud/README.md b/apps/nextcloud/README.md index 5ef94047d..ab43b097c 100644 --- a/apps/nextcloud/README.md +++ b/apps/nextcloud/README.md @@ -1,67 +1,63 @@ -# Nextcloud Server ☁ -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/server/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/server/?branch=master) -[![codecov](https://codecov.io/gh/nextcloud/server/branch/master/graph/badge.svg)](https://codecov.io/gh/nextcloud/server) -[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/209/badge)](https://bestpractices.coreinfrastructure.org/projects/209) -[![Design](https://contribute.design/api/shield/nextcloud/server)](https://contribute.design/nextcloud/server) +# Nextcloud 服务器 ☁ -**A safe home for all your data.** +[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/server/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/server/?branch=master) [![codecov](https://codecov.io/gh/nextcloud/server/branch/master/graph/badge.svg)](https://codecov.io/gh/nextcloud/server) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/209/badge)](https://bestpractices.coreinfrastructure.org/projects/209) [![Design](https://contribute.design/api/shield/nextcloud/server)](https://contribute.design/nextcloud/server) + +**一个安全的数据家园。** ![](https://raw.githubusercontent.com/nextcloud/screenshots/master/nextcloud-hub-files-25-preview.png) -## Why is this so awesome? 🤩 +## 为什么这么棒?🤩 -* 📁 **Access your Data** You can store your files, contacts, calendars, and more on a server of your choosing. -* 🔄 **Sync your Data** You keep your files, contacts, calendars, and more synchronized amongst your devices. -* 🙌 **Share your Data** …by giving others access to the stuff you want them to see or to collaborate with. -* 🚀 **Expandable with hundreds of Apps** ...like [Calendar](https://github.com/nextcloud/calendar), [Contacts](https://github.com/nextcloud/contacts), [Mail](https://github.com/nextcloud/mail), [Video Chat](https://github.com/nextcloud/spreed) and all those you can discover in our [App Store](https://apps.nextcloud.com) -* 🔒 **Security** with our encryption mechanisms, [HackerOne bounty program](https://hackerone.com/nextcloud) and two-factor authentication. +* 📁 **访问您的数据** 您可以将文件、联系人、日历等存储在您选择的服务器上。 +* 🔄 **同步您的数据** 您可以在各种设备之间同步文件、联系人、日历以及其他内容。 +* 🙌 **分享您的数据** …通过给予他人访问您希望他们查看的内容或进行协作的权限。 +* 🚀 **支持数百款应用程序** …例如 [日历](https://github.com/nextcloud/calendar) 、 [联系人](https://github.com/nextcloud/contacts) 、 [邮件](https://github.com/nextcloud/mail) 、 [视频聊天](https://github.com/nextcloud/spreed) 以及您在我们的 [应用商店](https://apps.nextcloud.com) 中可以发现的所有其他应用 +* 🔒 **安全性** 通过我们的加密机制、[HackerOne 奖励计划](https://hackerone.com/nextcloud) 和双因素认证。 -Do you want to learn more about how you can use Nextcloud to access, share and protect your files, calendars, contacts, communication & more at home and in your organization? [**Learn about all our Features**](https://nextcloud.com/athome/). +您想了解更多关于如何使用 Nextcloud 在家和组织中访问、共享和保护文件、日历、联系人、通信及其他内容的方法吗?\[了解更多所有功能\] -## Get your Nextcloud 🚚 +## 获取您的 Nextcloud 🚚 -- ☑️ [**Simply sign up**](https://nextcloud.com/signup/) at one of our providers either through our website or through the apps directly. -- 🖥 [**Install** a server by yourself](https://nextcloud.com/install/#instructions-server) on your hardware or by using one of our ready to use **appliances** -- 📦 Buy one of the [awesome **devices** coming with a preinstalled Nextcloud](https://nextcloud.com/devices/) -- 🏢 Find a [service **provider**](https://nextcloud.com/providers/) who hosts Nextcloud for you or your company +* ☑️ \[通过我们的网站或应用程序直接在我们的提供商中注册\] +* 🖥 \[自行在您的硬件上安装服务器\] 或使用我们的即用型 \[设备\] 安装 +* 📦 购买一款预装了 Nextcloud 的 [awesome **device**](https://nextcloud.com/devices/) +* 🏢 找一家为你或你的公司提供 Nextcloud 服务的 [service **provider**](https://nextcloud.com/providers/) -Enterprise? Public Sector or Education user? You may want to have a look into [**Nextcloud Enterprise**](https://nextcloud.com/enterprise/) provided by Nextcloud GmbH. +企业用户?公共部门用户或教育用户?你可能想了解一下由 Nextcloud GmbH 提供的 [**Nextcloud Enterprise**](https://nextcloud.com/enterprise/)。 ## Get in touch 💬 -* [📋 Forum](https://help.nextcloud.com) -* [👥 Facebook](https://www.facebook.com/nextclouders) -* [🐣 Twitter](https://twitter.com/Nextclouders) -* [🐘 Mastodon](https://mastodon.xyz/@nextcloud) +* [论坛](https://help.nextcloud.com) +* [Facebook](https://www.facebook.com/nextclouders) +* [Twitter](https://twitter.com/Nextclouders) +* [Mastodon](https://mastodon.xyz/@nextcloud) -You can also [get support for Nextcloud](https://nextcloud.com/support)! +你也可以[获得 Nextcloud 的支持](https://nextcloud.com/support) ! +## 加入我们的团队 👪 -## Join the team 👪 +有很多方式可以贡献,开发只是其中一种!了解更多[如何参与](https://nextcloud.com/contribute/) ,包括作为译者、设计师、测试员,帮助他人,以及其他更多内容!😍 -There are many ways to contribute, of which development is only one! Find out [how to get involved](https://nextcloud.com/contribute/), including as a translator, designer, tester, helping others, and much more! 😍 +### 开发环境设置 👩‍💻 +1. 🚀 [设置本地开发环境](https://docs.nextcloud.com/server/latest/developer_manual/getting_started/devenv.html) +2. 🐛 [选择一个合适的初学者问题](https://github.com/nextcloud/server/labels/good%20first%20issue) +3. 👩‍🔧 创建一个分支并进行修改。记得在提交时使用 @0 进行签名 +4. ⬆ 创建一个 [合并请求](https://opensource.guide/how-to-contribute/#opening-a-pull-request) ,并 `@mention` 提及问题中的审核人员 +5. 👍 在审查过程中解决出现的问题 +6. 🎉 等待合并! -### Development setup 👩‍💻 +第三方组件作为 git 子模块处理,因此需要先初始化。除了常规的 git 检出操作外,还需要执行 \``git submodule update --init`\` 或类似命令,详情请参见 Git 文档。 -1. 🚀 [Set up your local development environment](https://docs.nextcloud.com/server/latest/developer_manual/getting_started/devenv.html) -2. 🐛 [Pick a good first issue](https://github.com/nextcloud/server/labels/good%20first%20issue) -3. 👩‍🔧 Create a branch and make your changes. Remember to sign off your commits using `git commit -sm "Your commit message"` -4. ⬆ Create a [pull request](https://opensource.guide/how-to-contribute/#opening-a-pull-request) and `@mention` the people from the issue to review -5. 👍 Fix things that come up during a review -6. 🎉 Wait for it to get merged! +默认包含在常规发布版本中的多个应用程序,如 首次运行向导 或 Activity,在 `master` 中缺失,需要手动安装,通过克隆它们到 `apps` 子文件夹中。 -Third-party components are handled as git submodules which have to be initialized first. So aside from the regular git checkout invoking `git submodule update --init` or a similar command is needed, for details see Git documentation. +否则,git 检出可以像处理发布存档一样,通过使用 `stable*` 分支来处理。注意它们永远不应该在生产系统上使用。 -Several apps that are included by default in regular releases such as [First run wizard](https://github.com/nextcloud/firstrunwizard) or [Activity](https://github.com/nextcloud/activity) are missing in `master` and have to be installed manually by cloning them into the `apps` subfolder. +### 前端代码开发 🏗 -Otherwise, git checkouts can be handled the same as release archives, by using the `stable*` branches. Note they should never be used on production systems. +#### 构建 Vue 组件和脚本 -### Working with front-end code 🏗 - -#### Building Vue components and scripts - -We are moving more and more toward using Vue.js in the front-end, starting with Settings. For building the code on changes, use these terminal commands in the root folder: +我们越来越多地在前端使用 Vue.js,从设置模块开始。要在代码更改时构建代码,请在根文件夹中使用以下终端命令: ```bash # install dependencies @@ -77,9 +73,9 @@ make watch-js make build-js-production ``` -#### Building styles +#### 构建样式 -Styles are written in SCSS and compiled to css. +样式用 SCSS 编写,并编译成 css。 ```bash # install dependencies @@ -92,72 +88,74 @@ npm run sass npm run sass:watch ``` -#### Committing changes +#### 提交更改 -**When making changes, also commit the compiled files!** +**在进行更改时,也要提交编译后的文件!** -We still use Handlebars templates in some places in Files and Settings. We will replace these step-by-step with Vue.js, but in the meantime, you need to compile them separately. +我们在 Files 和 Settings 中的一些地方仍然使用 Handlebars 模板。我们将逐步用 Vue.js 替换这些模板,但在那之前,你需要单独编译它们。 + +如果你还没有安装 Handlebars,可以使用这个终端命令进行安装: -If you don’t have Handlebars installed yet, you can do it with this terminal command: ```bash sudo npm install -g handlebars ``` -Then inside the root folder of your local Nextcloud development installation, run this command in the terminal every time you changed a `.handlebars` file to compile it: +然后在本地 Nextcloud 开发安装的根文件夹中,每次修改了 `.handlebars` 文件后,都需要在终端中运行以下命令进行编译: + ```bash ./build/compile-handlebars-templates.sh ``` -Before checking in JS changes, make sure to also build for production: +在提交 JS 变更之前,请确保也要进行生产构建: + ```bash make build-js-production ``` -Then add the compiled files for committing. -To save some time, to only rebuild for a specific app, use the following and replace the module with the app name: +然后添加编译文件进行提交。 + +为了节省时间,仅重新构建特定的应用程序,请使用以下命令并用应用程序名称替换模块名称: + ```bash MODULE=user_status make build-js-production ``` -Please note that if you used `make build-js` or `make watch-js` before, you'll notice that a lot of files were marked as changed, so might need to clear the workspace first. +请注意,如果您之前使用了 \`make build-js\` 或 \`make watch-js\`,会发现很多文件被标记为已更改,因此可能需要先清理工作区。 -### Working with back-end code 🏗 +### 处理后端代码 🏗 -When changing back-end PHP code, in general, no additional steps are needed before checking in. +在更改后端 PHP 代码时,通常在提交之前不需要额外的步骤。 + +然而,如果创建了新文件,您需要运行以下命令以更新自动加载器文件: -However, if new files were created, you will need to run the following command to update the autoloader files: ```bash build/autoloaderchecker.sh ``` -After that, please also include the autoloader file changes in your commits. +之后,请确保将自动加载器文件的更改也包含在您的提交中。 -### Tools we use 🛠 +### 我们使用的工具 🛠 -- [👀 BrowserStack](https://browserstack.com) for cross-browser testing -- [🌊 WAVE](https://wave.webaim.org/extension/) for accessibility testing -- [🚨 Lighthouse](https://developers.google.com/web/tools/lighthouse/) for testing performance, accessibility, and more +* [👀 BrowserStack](https://browserstack.com) 用于跨浏览器测试 +* [🌊 WAVE](https://wave.webaim.org/extension/) 用于无障碍测试 +* [🚨 Lighthouse](https://developers.google.com/web/tools/lighthouse/) 用于测试性能、无障碍及其他更多内容 -#### Helpful bots at github :robot: +#### GitHub 上的帮助机器人 :robot: -- Comment on a pull request with `/update-3rdparty` to update the 3rd party submodule. It will update to the last commit of the 3rd party branch named like the PR target. +* 在拉取请求中评论 `/update-3rdparty` 以更新第三方子模块。它将更新为与拉取请求目标同名的第三方分支的最新提交。 -## Contribution guidelines 📜 +## 贡献指南 📜 -All contributions to this repository from June 16, 2016, and onward are considered to be -licensed under the AGPLv3 or any later version. +从 2016 年 6 月 16 日起,此仓库的所有贡献均视为根据 AGPLv3 或任何后续版本进行许可。 -Nextcloud doesn't require a CLA (Contributor License Agreement). -The copyright belongs to all the individual contributors. Therefore we recommend -that every contributor adds the following line to the header of a file if they -changed it substantially: +Nextcloud 不需要 Contributor License Agreement (CLA)。版权归属于所有个体贡献者。因此,我们建议如果某文件被大幅修改,每个贡献者在文件头部添加以下行: ``` @copyright Copyright (c) , () ``` -Please read the [Code of Conduct](https://nextcloud.com/community/code-of-conduct/). This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other. +请阅读[行为准则](https://nextcloud.com/community/code-of-conduct/) 。该文件为 Nextcloud 参与者提供了一些指导,以确保大家能在积极和鼓舞人心的氛围中有效合作,并解释了我们如何共同努力相互支持和加强。 -Please review the [guidelines for contributing](.github/CONTRIBUTING.md) to this repository. +请审阅[贡献指南](.github/CONTRIBUTING.md) 。 -More information how to contribute: [https://nextcloud.com/contribute/](https://nextcloud.com/contribute/) +更多关于如何贡献的信息:[https://nextcloud.com/contribute/](https://nextcloud.com/contribute/) \ No newline at end of file diff --git a/apps/nextcloud/README_en.md b/apps/nextcloud/README_en.md new file mode 100644 index 000000000..5ef94047d --- /dev/null +++ b/apps/nextcloud/README_en.md @@ -0,0 +1,163 @@ +# Nextcloud Server ☁ +[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/server/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/server/?branch=master) +[![codecov](https://codecov.io/gh/nextcloud/server/branch/master/graph/badge.svg)](https://codecov.io/gh/nextcloud/server) +[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/209/badge)](https://bestpractices.coreinfrastructure.org/projects/209) +[![Design](https://contribute.design/api/shield/nextcloud/server)](https://contribute.design/nextcloud/server) + +**A safe home for all your data.** + +![](https://raw.githubusercontent.com/nextcloud/screenshots/master/nextcloud-hub-files-25-preview.png) + +## Why is this so awesome? 🤩 + +* 📁 **Access your Data** You can store your files, contacts, calendars, and more on a server of your choosing. +* 🔄 **Sync your Data** You keep your files, contacts, calendars, and more synchronized amongst your devices. +* 🙌 **Share your Data** …by giving others access to the stuff you want them to see or to collaborate with. +* 🚀 **Expandable with hundreds of Apps** ...like [Calendar](https://github.com/nextcloud/calendar), [Contacts](https://github.com/nextcloud/contacts), [Mail](https://github.com/nextcloud/mail), [Video Chat](https://github.com/nextcloud/spreed) and all those you can discover in our [App Store](https://apps.nextcloud.com) +* 🔒 **Security** with our encryption mechanisms, [HackerOne bounty program](https://hackerone.com/nextcloud) and two-factor authentication. + +Do you want to learn more about how you can use Nextcloud to access, share and protect your files, calendars, contacts, communication & more at home and in your organization? [**Learn about all our Features**](https://nextcloud.com/athome/). + +## Get your Nextcloud 🚚 + +- ☑️ [**Simply sign up**](https://nextcloud.com/signup/) at one of our providers either through our website or through the apps directly. +- 🖥 [**Install** a server by yourself](https://nextcloud.com/install/#instructions-server) on your hardware or by using one of our ready to use **appliances** +- 📦 Buy one of the [awesome **devices** coming with a preinstalled Nextcloud](https://nextcloud.com/devices/) +- 🏢 Find a [service **provider**](https://nextcloud.com/providers/) who hosts Nextcloud for you or your company + +Enterprise? Public Sector or Education user? You may want to have a look into [**Nextcloud Enterprise**](https://nextcloud.com/enterprise/) provided by Nextcloud GmbH. + +## Get in touch 💬 + +* [📋 Forum](https://help.nextcloud.com) +* [👥 Facebook](https://www.facebook.com/nextclouders) +* [🐣 Twitter](https://twitter.com/Nextclouders) +* [🐘 Mastodon](https://mastodon.xyz/@nextcloud) + +You can also [get support for Nextcloud](https://nextcloud.com/support)! + + +## Join the team 👪 + +There are many ways to contribute, of which development is only one! Find out [how to get involved](https://nextcloud.com/contribute/), including as a translator, designer, tester, helping others, and much more! 😍 + + +### Development setup 👩‍💻 + +1. 🚀 [Set up your local development environment](https://docs.nextcloud.com/server/latest/developer_manual/getting_started/devenv.html) +2. 🐛 [Pick a good first issue](https://github.com/nextcloud/server/labels/good%20first%20issue) +3. 👩‍🔧 Create a branch and make your changes. Remember to sign off your commits using `git commit -sm "Your commit message"` +4. ⬆ Create a [pull request](https://opensource.guide/how-to-contribute/#opening-a-pull-request) and `@mention` the people from the issue to review +5. 👍 Fix things that come up during a review +6. 🎉 Wait for it to get merged! + +Third-party components are handled as git submodules which have to be initialized first. So aside from the regular git checkout invoking `git submodule update --init` or a similar command is needed, for details see Git documentation. + +Several apps that are included by default in regular releases such as [First run wizard](https://github.com/nextcloud/firstrunwizard) or [Activity](https://github.com/nextcloud/activity) are missing in `master` and have to be installed manually by cloning them into the `apps` subfolder. + +Otherwise, git checkouts can be handled the same as release archives, by using the `stable*` branches. Note they should never be used on production systems. + +### Working with front-end code 🏗 + +#### Building Vue components and scripts + +We are moving more and more toward using Vue.js in the front-end, starting with Settings. For building the code on changes, use these terminal commands in the root folder: + +```bash +# install dependencies +make dev-setup + +# build for development +make build-js + +# build for development and watch edits +make watch-js + +# build for production with minification +make build-js-production +``` + +#### Building styles + +Styles are written in SCSS and compiled to css. + +```bash +# install dependencies +make dev-setup + +# compile style sheets +npm run sass + +# compile style sheets and watch edits +npm run sass:watch +``` + +#### Committing changes + +**When making changes, also commit the compiled files!** + +We still use Handlebars templates in some places in Files and Settings. We will replace these step-by-step with Vue.js, but in the meantime, you need to compile them separately. + +If you don’t have Handlebars installed yet, you can do it with this terminal command: +```bash +sudo npm install -g handlebars +``` + +Then inside the root folder of your local Nextcloud development installation, run this command in the terminal every time you changed a `.handlebars` file to compile it: +```bash +./build/compile-handlebars-templates.sh +``` + +Before checking in JS changes, make sure to also build for production: +```bash +make build-js-production +``` +Then add the compiled files for committing. + +To save some time, to only rebuild for a specific app, use the following and replace the module with the app name: +```bash +MODULE=user_status make build-js-production +``` + +Please note that if you used `make build-js` or `make watch-js` before, you'll notice that a lot of files were marked as changed, so might need to clear the workspace first. + +### Working with back-end code 🏗 + +When changing back-end PHP code, in general, no additional steps are needed before checking in. + +However, if new files were created, you will need to run the following command to update the autoloader files: +```bash +build/autoloaderchecker.sh +``` + +After that, please also include the autoloader file changes in your commits. + +### Tools we use 🛠 + +- [👀 BrowserStack](https://browserstack.com) for cross-browser testing +- [🌊 WAVE](https://wave.webaim.org/extension/) for accessibility testing +- [🚨 Lighthouse](https://developers.google.com/web/tools/lighthouse/) for testing performance, accessibility, and more + +#### Helpful bots at github :robot: + +- Comment on a pull request with `/update-3rdparty` to update the 3rd party submodule. It will update to the last commit of the 3rd party branch named like the PR target. + +## Contribution guidelines 📜 + +All contributions to this repository from June 16, 2016, and onward are considered to be +licensed under the AGPLv3 or any later version. + +Nextcloud doesn't require a CLA (Contributor License Agreement). +The copyright belongs to all the individual contributors. Therefore we recommend +that every contributor adds the following line to the header of a file if they +changed it substantially: + +``` +@copyright Copyright (c) , () +``` + +Please read the [Code of Conduct](https://nextcloud.com/community/code-of-conduct/). This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other. + +Please review the [guidelines for contributing](.github/CONTRIBUTING.md) to this repository. + +More information how to contribute: [https://nextcloud.com/contribute/](https://nextcloud.com/contribute/) diff --git a/apps/nginx-proxy-manager/README.md b/apps/nginx-proxy-manager/README.md index 20a6c792d..5edf05f55 100644 --- a/apps/nginx-proxy-manager/README.md +++ b/apps/nginx-proxy-manager/README.md @@ -1,70 +1,55 @@ # 使用说明 控制台默认账户密码 + ``` Email: admin@example.com Password: changeme ``` - # 原始相关 -

- -

- - - - - - - -

+![](https://nginxproxymanager.com/github.png) +![](https://img.shields.io/badge/version-2.10.3-green.svg?style=for-the-badge) [![](https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge) ](https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager)[![](https://img.shields.io/docker/pulls/jc21/nginx-proxy-manager.svg?style=for-the-badge)](https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager) -This project comes as a pre-built docker image that enables you to easily forward to your websites -running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt. +这个项目提供了一个预构建的 Docker 镜像,使你可以轻松地将流量转发到家中的网站或其他网站,包括免费的 SSL,无需深入了解 Nginx 或 Let's Encrypt。 -- [Quick Setup](#quick-setup) -- [Full Setup](https://nginxproxymanager.com/setup/) -- [Screenshots](https://nginxproxymanager.com/screenshots/) +* [快速设置](#quick-setup) +* [完整设置](https://nginxproxymanager.com/setup/) +* [截图](https://nginxproxymanager.com/screenshots/) -## Project Goal +## 项目目标 -I created this project to fill a personal need to provide users with a easy way to accomplish reverse -proxying hosts with SSL termination and it had to be so easy that a monkey could do it. This goal hasn't changed. -While there might be advanced options they are optional and the project should be as simple as possible -so that the barrier for entry here is low. +我创建这个项目是为了满足个人需求,为用户提供一种简单的方式来实现带有 SSL 终止的反向代理,并且必须简单到连猴子都能操作。这个目标没有改变。虽然可能有高级选项,但它们是可选的,项目应该尽可能简单,以便降低入门门槛。 -Buy Me A Coffee +[![Buy Me A Coffee](http://public.jc21.com/github/by-me-a-coffee.png)](https://www.buymeacoffee.com/jc21) +## 功能 -## Features +* 基于 [Tabler](https://tabler.github.io/) 的美观且安全的管理界面 +* 无需了解 Nginx,即可轻松创建转发域名、重定向、流媒体和 404 主机 +* 免费使用 Let's Encrypt 生成 SSL 证书或提供您自己的自定义 SSL 证书 +* 为您的主机提供访问列表和基本的 HTTP 认证 +* 高级 Nginx 配置可供超级用户使用 +* 用户管理、权限设置和审计日志 -- Beautiful and Secure Admin Interface based on [Tabler](https://tabler.github.io/) -- Easily create forwarding domains, redirections, streams and 404 hosts without knowing anything about Nginx -- Free SSL using Let's Encrypt or provide your own custom SSL certificates -- Access Lists and basic HTTP Authentication for your hosts -- Advanced Nginx configuration available for super users -- User management, permissions and audit log +## 托管家庭网络 +这里不会详细介绍,但这是初学者需要了解的基本知识。 -## Hosting your home network +1. 你的家庭路由器的某个地方会有端口转发设置。登录进去找到它。 +2. 为托管此项目的服务器添加端口转发,端口号为80和443。 +3. 配置你的域名详细信息,使其指向你的服务器,既可以使用静态 IP,也可以使用类似 DuckDNS 或 Amazon Route53 的服务 +4. 使用 Nginx Proxy Manager 作为你的网关,将请求转发到你的其他基于 Web 的服务 -I won't go in to too much detail here but here are the basics for someone new to this self-hosted world. +## 快速设置 -1. Your home router will have a Port Forwarding section somewhere. Log in and find it -2. Add port forwarding for port 80 and 443 to the server hosting this project -3. Configure your domain name details to point to your home, either with a static ip or a service like DuckDNS or [Amazon Route53](https://github.com/jc21/route53-ddns) -4. Use the Nginx Proxy Manager as your gateway to forward to your other web based services +1. 安装 Docker 和 Docker-Compose -## Quick Setup +* [Docker 安装文档](https://docs.docker.com/install/) +* [Docker-Compose 安装文档](https://docs.docker.com/compose/install/) -1. Install Docker and Docker-Compose - -- [Docker Install documentation](https://docs.docker.com/install/) -- [Docker-Compose Install documentation](https://docs.docker.com/compose/install/) - -2. Create a docker-compose.yml file similar to this: +2. 创建一个类似于以下内容的 docker-compose.yml 文件: ```yml version: '3.8' @@ -81,9 +66,9 @@ services: - ./letsencrypt:/etc/letsencrypt ``` -This is the bare minimum configuration required. See the [documentation](https://nginxproxymanager.com/setup/) for more. +这是所需的最小配置。更多信息请参见 [文档](https://nginxproxymanager.com/setup/) 。 -3. Bring up your stack by running +3. 运行以下命令提升你的堆栈: ```bash docker-compose up -d @@ -93,30 +78,28 @@ docker compose up -d ``` -4. Log in to the Admin UI +4. 登录 Admin UI -When your docker container is running, connect to it on port `81` for the admin interface. -Sometimes this can take a little bit because of the entropy of keys. +当你的 docker 容器运行时,在端口 `81` 连接到管理界面。有时这可能需要一点时间,因为密钥的随机性可能会有所不同。 [http://127.0.0.1:81](http://127.0.0.1:81) -Default Admin User: +默认管理员用户: + ``` Email: admin@example.com Password: changeme ``` -Immediately after logging in with this default user you will be asked to modify your details and change your password. +登录此默认用户后,系统会立即要求你修改个人信息并更改密码。 +## 贡献者 -## Contributors +特别感谢 [所有贡献者](https://github.com/NginxProxyManager/nginx-proxy-manager/graphs/contributors) 。 -Special thanks to [all of our contributors](https://github.com/NginxProxyManager/nginx-proxy-manager/graphs/contributors). +## 获取支持 - -## Getting Support - -1. [Found a bug?](https://github.com/NginxProxyManager/nginx-proxy-manager/issues) -2. [Discussions](https://github.com/NginxProxyManager/nginx-proxy-manager/discussions) -3. [Development Gitter](https://gitter.im/nginx-proxy-manager/community) -4. [Reddit](https://reddit.com/r/nginxproxymanager) +1. [发现 bug 了?](https://github.com/NginxProxyManager/nginx-proxy-manager/issues) +2. [讨论](https://github.com/NginxProxyManager/nginx-proxy-manager/discussions) +3. [开发 Gitter](https://gitter.im/nginx-proxy-manager/community) +4. [Reddit](https://reddit.com/r/nginxproxymanager) \ No newline at end of file diff --git a/apps/nginx-proxy-manager/README_en.md b/apps/nginx-proxy-manager/README_en.md new file mode 100644 index 000000000..20a6c792d --- /dev/null +++ b/apps/nginx-proxy-manager/README_en.md @@ -0,0 +1,122 @@ +# 使用说明 + +控制台默认账户密码 +``` +Email: admin@example.com +Password: changeme +``` + + +# 原始相关 + +

+ +

+ + + + + + + +

+ +This project comes as a pre-built docker image that enables you to easily forward to your websites +running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt. + +- [Quick Setup](#quick-setup) +- [Full Setup](https://nginxproxymanager.com/setup/) +- [Screenshots](https://nginxproxymanager.com/screenshots/) + +## Project Goal + +I created this project to fill a personal need to provide users with a easy way to accomplish reverse +proxying hosts with SSL termination and it had to be so easy that a monkey could do it. This goal hasn't changed. +While there might be advanced options they are optional and the project should be as simple as possible +so that the barrier for entry here is low. + +Buy Me A Coffee + + +## Features + +- Beautiful and Secure Admin Interface based on [Tabler](https://tabler.github.io/) +- Easily create forwarding domains, redirections, streams and 404 hosts without knowing anything about Nginx +- Free SSL using Let's Encrypt or provide your own custom SSL certificates +- Access Lists and basic HTTP Authentication for your hosts +- Advanced Nginx configuration available for super users +- User management, permissions and audit log + + +## Hosting your home network + +I won't go in to too much detail here but here are the basics for someone new to this self-hosted world. + +1. Your home router will have a Port Forwarding section somewhere. Log in and find it +2. Add port forwarding for port 80 and 443 to the server hosting this project +3. Configure your domain name details to point to your home, either with a static ip or a service like DuckDNS or [Amazon Route53](https://github.com/jc21/route53-ddns) +4. Use the Nginx Proxy Manager as your gateway to forward to your other web based services + +## Quick Setup + +1. Install Docker and Docker-Compose + +- [Docker Install documentation](https://docs.docker.com/install/) +- [Docker-Compose Install documentation](https://docs.docker.com/compose/install/) + +2. Create a docker-compose.yml file similar to this: + +```yml +version: '3.8' +services: + app: + image: 'jc21/nginx-proxy-manager:latest' + restart: unless-stopped + ports: + - '80:80' + - '81:81' + - '443:443' + volumes: + - ./data:/data + - ./letsencrypt:/etc/letsencrypt +``` + +This is the bare minimum configuration required. See the [documentation](https://nginxproxymanager.com/setup/) for more. + +3. Bring up your stack by running + +```bash +docker-compose up -d + +# If using docker-compose-plugin +docker compose up -d + +``` + +4. Log in to the Admin UI + +When your docker container is running, connect to it on port `81` for the admin interface. +Sometimes this can take a little bit because of the entropy of keys. + +[http://127.0.0.1:81](http://127.0.0.1:81) + +Default Admin User: +``` +Email: admin@example.com +Password: changeme +``` + +Immediately after logging in with this default user you will be asked to modify your details and change your password. + + +## Contributors + +Special thanks to [all of our contributors](https://github.com/NginxProxyManager/nginx-proxy-manager/graphs/contributors). + + +## Getting Support + +1. [Found a bug?](https://github.com/NginxProxyManager/nginx-proxy-manager/issues) +2. [Discussions](https://github.com/NginxProxyManager/nginx-proxy-manager/discussions) +3. [Development Gitter](https://gitter.im/nginx-proxy-manager/community) +4. [Reddit](https://reddit.com/r/nginxproxymanager) diff --git a/apps/nitter/README.md b/apps/nitter/README.md index ad1ed7e19..d7042704e 100644 --- a/apps/nitter/README.md +++ b/apps/nitter/README.md @@ -1,20 +1,16 @@ # Nitter -[![Test Matrix](https://github.com/zedeus/nitter/workflows/Tests/badge.svg)](https://github.com/zedeus/nitter/actions/workflows/run-tests.yml) -[![Test Matrix](https://github.com/zedeus/nitter/workflows/Docker/badge.svg)](https://github.com/zedeus/nitter/actions/workflows/build-docker.yml) -[![License](https://img.shields.io/github/license/zedeus/nitter?style=flat)](#license) +[![Test Matrix](https://github.com/zedeus/nitter/workflows/Tests/badge.svg)](https://github.com/zedeus/nitter/actions/workflows/run-tests.yml) [![Test Matrix](https://github.com/zedeus/nitter/workflows/Docker/badge.svg)](https://github.com/zedeus/nitter/actions/workflows/build-docker.yml) [![License](https://img.shields.io/github/license/zedeus/nitter?style=flat)](#license) -A free and open source alternative Twitter front-end focused on privacy and -performance. \ -Inspired by the [Invidious](https://github.com/iv-org/invidious) -project. +一个免费且开源的 Twitter 前端替代方案,专注于隐私和性能。 +受 Invidious 项目启发。 -- No JavaScript or ads -- All requests go through the backend, client never talks to Twitter -- Prevents Twitter from tracking your IP or JavaScript fingerprint -- Uses Twitter's unofficial API (no rate limits or developer account required) -- Lightweight (for [@nim_lang](https://nitter.net/nim_lang), 60KB vs 784KB from twitter.com) -- RSS feeds -- Themes -- Mobile support (responsive design) -- AGPLv3 licensed, no proprietary instances permitted \ No newline at end of file +* 无 JavaScript 或广告 +* 所有请求都通过后端进行,客户端从不直接与 Twitter 交流 +* 防止 Twitter 追踪您的 IP 或 JavaScript 指纹 +* 使用 Twitter 的非官方 API(无需速率限制或开发者账户) +* 轻量级(对于[@nim_lang](https://nitter.net/nim_lang),60KB 比 twitter.com 的 784KB 少) +* RSS 源 +* 主题 +* 移动支持(响应式设计) +* AGPLv3 授权,不允许有专有实例 \ No newline at end of file diff --git a/apps/nitter/README_en.md b/apps/nitter/README_en.md new file mode 100644 index 000000000..ad1ed7e19 --- /dev/null +++ b/apps/nitter/README_en.md @@ -0,0 +1,20 @@ +# Nitter + +[![Test Matrix](https://github.com/zedeus/nitter/workflows/Tests/badge.svg)](https://github.com/zedeus/nitter/actions/workflows/run-tests.yml) +[![Test Matrix](https://github.com/zedeus/nitter/workflows/Docker/badge.svg)](https://github.com/zedeus/nitter/actions/workflows/build-docker.yml) +[![License](https://img.shields.io/github/license/zedeus/nitter?style=flat)](#license) + +A free and open source alternative Twitter front-end focused on privacy and +performance. \ +Inspired by the [Invidious](https://github.com/iv-org/invidious) +project. + +- No JavaScript or ads +- All requests go through the backend, client never talks to Twitter +- Prevents Twitter from tracking your IP or JavaScript fingerprint +- Uses Twitter's unofficial API (no rate limits or developer account required) +- Lightweight (for [@nim_lang](https://nitter.net/nim_lang), 60KB vs 784KB from twitter.com) +- RSS feeds +- Themes +- Mobile support (responsive design) +- AGPLv3 licensed, no proprietary instances permitted \ No newline at end of file diff --git a/apps/obsidian/README.md b/apps/obsidian/README.md index 4a68bb199..767fe6e88 100644 --- a/apps/obsidian/README.md +++ b/apps/obsidian/README.md @@ -1,31 +1,31 @@ # obsidian-remote -This docker image allows you to run [obsidian](https://obsidian.md/) in docker as a container and access it via your web browser. +这个 Docker 镜像允许你在 Docker 中以容器形式运行 [obsidian](https://obsidian.md/),并通过你的 web 浏览器访问它。 -Use `http://localhost:8080/` to access it locally, do not expose this to the web unless you secure it and know what you are doing!! +请使用 `http://localhost:8080/` 在本地访问它,除非你已对其进行安全设置并清楚自己在做什么,否则不要将其暴露在网络上! -- [Using the Container](#using-the-container) - - [Ports](#ports) - - [Mapped Volumes](#mapped-volumes) - - [Environment Variables](#environment-variables) -- [Using Docker Compose](#using-docker-compose) -- [Enabling GIT for the obsidian-git plugin](#enabling-git-for-the-obsidian-git-plugin) - - [Docker CLI example](#docker-cli-example) -- [Reloading Obsidan in the Browser](#reloading-obsidan-in-the-browser) -- [Setting PUID and PGID](#setting-puid-and-pgid) -- [Adding missing fonts](#adding-missing-fonts) - - [Map font file using Docker CLI](#map-font-file-using-docker-cli) - - [Map font file using Docker Compose](#map-font-file-using-docker-compose) -- [Hosting behind a reverse proxy](#hosting-behind-a-reverse-proxy) - - [Example nginx configuration](#example-nginx-configuration) -- [Hosting behind Nginx Proxy Manager (NPM)](#hosting-behind-nginx-proxy-manager-npm) -- [Updating Obsidian](#updating-obsidian) -- [Building locally](#building-locally) -- [Copy/Paste From External Source](#copypaste-from-external-source) +* [使用容器](#using-the-container) + * [端口](#ports) + * [映射卷](#mapped-volumes) + * [环境变量](#environment-variables) +* [使用 Docker Compose](#using-docker-compose) +* [启用 obsidian-git 插件的 GIT](#enabling-git-for-the-obsidian-git-plugin) + * [Docker CLI 示例](#docker-cli-example) +* [在浏览器中重新加载 Obsidan](#reloading-obsidan-in-the-browser) +* [设置 PUID 和 PGID](#setting-puid-and-pgid) +* [添加缺失的字体](#adding-missing-fonts) + * [使用 Docker CLI 映射字体文件](#map-font-file-using-docker-cli) + * [使用 Docker Compose 映射字体文件](#map-font-file-using-docker-compose) +* [通过反向代理托管](#hosting-behind-a-reverse-proxy) + * [Nginx 配置示例](#example-nginx-configuration) +* [通过 Nginx Proxy Manager (NPM) 托管](#hosting-behind-nginx-proxy-manager-npm) +* [更新 Obsidian](#updating-obsidian) +* [本地构建](#building-locally) +* [从外部源复制/粘贴](#copypaste-from-external-source) -## Using the Container +## 使用容器 -To run a interactive version to test it out. This is using windows based path, update for the OS you are running on. +运行一个交互版本来测试它。这里使用的是基于 Windows 的路径,请根据您运行的操作系统进行更新。 ```PowerShell docker run --rm -it ` @@ -35,7 +35,7 @@ docker run --rm -it ` ghcr.io/sytone/obsidian-remote:latest ``` -To run it as a daemon in the background. +在后台以守护进程方式运行它。 ```PowerShell docker run -d ` @@ -45,7 +45,7 @@ docker run -d ` ghcr.io/sytone/obsidian-remote:latest ``` -The ARM container is now avaliable, will look to make this simpler in the future. The ARM imange is on the docker hub and not the github container registry. +ARM 容器现在可用,未来会使其更简单。ARM 镜像在 Docker Hub 而不在 GitHub 容器注册表中。 ```PowerShell docker run -d ` @@ -55,38 +55,38 @@ docker run -d ` sytone/obsidian-remote:latest ``` -### Ports +### 端口 -| Port | Description | -| ----- | --------------------------------------- | -| 8080 | HTTP Obsidian Web Interface | -| 8443 | HTTPS Obsidian Web Interface | +| 端口 | 描述 | +| --- | --- | +| 8080 | HTTP Obsidian Web 界面 | +| 8443 | HTTPS Obsidian Web 界面 | -### Mapped Volumes +### 映射的卷 -| Path | Description | -| --------- | ------------------------------------------------------------------------- | -| `/vaults` | The location on the host for your Obsidian Vaults | -| `/config` | The location to store Obsidan configuration and ssh data for obsidian-git | +| 路径 | 描述 | +| --- | --- | +| /vaults | 主机上 Obsidian 钥匙库的位置 | +| /config | 用于存储 Obsidian 配置和 ssh 数据的位置(obsidian-git) | -### Environment Variables +### 环境变量 -| Environment Variable | Description | -| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| PUID | Set the user ID for the container user. `911` by default. | -| PGID | Set the group ID for the continer user. `911` by default. | -| TZ | Set the Time Zone for the container, should match your TZ. `Etc/UTC` by default. See [List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for valid options. | -| DOCKER_MODS | Use to add mods to the container like git. E.g. `DOCKER_MODS=linuxserver/mods:universal-git` See [Docker Mods](https://github.com/linuxserver/docker-mods) for details. | -| KEYBOARD | Used to se the keyboard being used for input. E.g. `KEYBOARD=en-us-qwerty` or `KEYBOARD=de-de-qwertz` a list of other possible values (not tested) can be found at | -| CUSTOM_PORT | Internal port the container listens on for http if it needs to be swapped from the default 3000. | -| CUSTOM_HTTPS_PORT | Internal port the container listens on for https if it needs to be swapped from the default 3001. | -| CUSTOM_USER | HTTP Basic auth username, abc is default. | -| PASSWORD | HTTP Basic auth password, abc is default. If unset there will be no auth | -| SUBFOLDER | Subfolder for the application if running a subfolder reverse proxy, need both slashes IE `/subfolder/` | -| TITLE | The page title displayed on the web browser, default "KasmVNC Client". | -| FM_HOME | This is the home directory (landing) for the file manager, default "/config". | +| 环境变量 | 描述 | +| --- | --- | +| PUID | 为容器用户设置用户 ID。默认值:911。 | +| PGID | 为容器用户设置组 ID。默认值:911。 | +| TZ | 为容器设置时区,应与您的时区匹配。默认值:Etc/UTC。请参阅 tz 数据库时区列表以获取有效选项。 | +| DOCKER\_MODS | 用于向容器添加类似 git 的模组。例如: DOCKER\_MODS=linuxserver/mods:universal-git 。请参阅 Docker Mods 以获取详细信息。 | +| KEYBOARD | 用于设置用于输入的键盘。例如:KEYBOARD=en-us-qwerty 或 KEYBOARD=de-de-qwertz,其他可能的值(未测试)可以在 https://github.com/linuxserver/docker-digikam#keyboard-layouts 找到。 | +| CUSTOM\_PORT | 容器监听的内部端口,用于 http,如果需要从默认的 3000 端口更改。 | +| CUSTOM\_HTTPS\_PORT | 容器监听的内部端口,用于 https,如果需要从默认的 3001 端口更改。 | +| CUSTOM\_USER | HTTP 基本认证用户名,默认为 abc。 | +| PASSWORD | HTTP 基本认证密码,默认为 abc。如果未设置,则无需认证。 | +| SUBFOLDER | 如果运行子文件夹反向代理,则需要在应用中创建一个子文件夹,例如 \`/subfolder/\`。 | +| TITLE | 网页浏览器中显示的页面标题,默认为“KasmVNC 客户端”。 | +| FM\_HOME | 这是文件管理器的主目录(起始目录),默认为 \`/config\`。 | -## Using Docker Compose +## 使用 Docker Compose ```YAML services: @@ -112,11 +112,11 @@ services: - SUBFOLDER="" ``` -## Enabling GIT for the obsidian-git plugin +## 为 obsidian-git 插件启用 GIT -This container uses the base images from linuxserver.io. This means you can the linuxserver.io mods. To add support for git add the `DOCKER_MODS` environment variable like so `DOCKER_MODS=linuxserver/mods:universal-git`. +此容器使用来自 linuxserver.io 的基础镜像。这意味着您可以使用 linuxserver.io 的修改。要添加对 git 的支持,请像这样添加 `DOCKER_MODS` 环境变量: `DOCKER_MODS=linuxserver/mods:universal-git` 。 -### Docker CLI example +### Docker CLI 示例 ```PowerShell docker run -d ` @@ -127,15 +127,15 @@ docker run -d ` ghcr.io/sytone/obsidian-remote:latest ``` -## Reloading Obsidan in the Browser +## 在浏览器中重新加载 Obsidan -If you make changes to plugins or do updates that need to have obsidian restarted, instead of having to stop and start the docker container you can just close the Obsidian UI and right click to show the menus and reopen it. Here is a short clip showing how to do it. +如果您对插件进行了更改或需要重新启动 Obsidan,则无需停止并重新启动 Docker 容器,只需关闭 Obsidan UI,右键点击以显示菜单并重新打开即可。这里有一个简短的视频演示了如何操作。 ![Reloading Obsidian in the Browser](./assets/ReloadExample.gif) -## Setting PUID and PGID +## 设置 PUID 和 PGID -To set PUID and PGID use the follow environment variables on the command line, by default the IDs are 911/911 +要设置 PUID 和 PGID,请在命令行中使用以下环境变量,默认值为 911/911 ```PowerShell docker run --rm -it ` @@ -147,7 +147,7 @@ docker run --rm -it ` ghcr.io/sytone/obsidian-remote:latest ``` -Or, if you use docker-compose, add them to the environment: section: +或者,如果你使用 docker-compose,请将它们添加到 environment 部分中: ```yaml environment: @@ -155,38 +155,38 @@ environment: - PGID=1000 ``` -It is most likely that you will use the id of yourself, which can be obtained by running the command below. The two values you will be interested in are the uid and gid. +你最有可能使用自己的用户 ID,可以通过运行以下命令获取。你需要关注的两个值是 uid 和 gid。 ```powershell id $user ``` -## Adding missing fonts +## 添加缺失的字体 -Thanks to @aaron-jang for this example. +感谢 @aaron-jang 提供了这个示例。 -Download the font of the language that you want to use in Obsidian and add it to the volume as shown below. +在 Obsidian 中使用所需语言的字体,请下载该字体并按如下方式添加到磁盘: -### Map font file using Docker CLI +### 使用 Docker CLI 映射字体文件 ```PowerShell -v {downloaded font directory}:/usr/share/fonts/truetype/{font name} ``` -### Map font file using Docker Compose +### 使用 Docker Compose 映射字体文件 ```PowerShell volumes: - {downloaded font directory}:/usr/share/fonts/truetype/{font name} ``` -## Hosting behind a reverse proxy +## 通过反向代理托管 -If you wish to do that **please make sure you are securing it in some way!**. You also need to ensure **websocket** support is enabled. +如果您要这样做,请确保以某种方式对其进行保护!您还需要确保启用了 websocket 支持。 -### Example nginx configuration +### Nginx 配置示例 -This is an example, I recommend a SSL based proxy and some sort of authentication. +这是一个示例,我建议使用基于 SSL 的代理和某种形式的身份验证。 ``` server { @@ -217,11 +217,11 @@ server { } ``` -## Hosting behind Nginx Proxy Manager (NPM) +## 通过 Nginx Proxy Manager (NPM) 托管 -Thanks to @fahrenhe1t for this example. +感谢 @fahrenhe1t 提供这个示例。 -If you install obsidian-remote in Docker, you can proxy it through [Nginx Proxy Manager](https://nginxproxymanager.com/) (NPM - running on the same Docker instance), and use an access list to provide user authentication. The obsidian-remote container would have to be on the same network as Nginx Proxy Manager. If you don't expose the IP external to the container, authentication would be forced through NPM: +如果你在 Docker 中安装 obsidian-remote,可以通过 [Nginx Proxy Manager](https://nginxproxymanager.com/)(NPM - 运行在同一 Docker 实例上)代理它,并使用访问列表提供用户身份验证。obsidian-remote 容器必须与 Nginx Proxy Manager 在同一网络中。如果你不将 IP 地址暴露给容器外部,身份验证将通过 NPM 进行: ```yaml services: @@ -245,15 +245,15 @@ networks: external: true ``` -Create a proxy host in NPM pointing to the "obsidian-remote:8080" container, choose your domain name, use a LetsEncrypt SSL certificate, enable WebSockets. This video talks about it: [Nginx Proxy Manager - ACCESS LIST protection for internal services](https://www.youtube.com/watch?v=G9voYZejH48) +在 NPM 中创建一个代理主机,指向 "obsidian-remote:8080" 容器,选择你的域名,使用 Let's Encrypt SSL 证书,启用 WebSocket。这个视频对此进行了说明:[Nginx Proxy Manager - ACCESS LIST 保护内部服务](https://www.youtube.com/watch?v=G9voYZejH48) -## Updating Obsidian +## 更新 Obsidian -By default obsidian will update itself in the container. If you recreate the container you will have to do the update again. This repo will be updated periodically to keep up with the latest version of Obsidian. +obsidian 默认会在容器内更新自身。如果你重新创建容器,就需要再次进行更新。该仓库会定期更新,以保持与最新版本的 obsidian 同步。 -## Building locally +## 本地构建 -To build and use it locally run the following commands: +要本地构建和使用它,请运行以下命令: ```PowerShell docker build --pull --rm ` @@ -262,7 +262,7 @@ docker build --pull --rm ` "." ``` -To run the localy build image: +要运行本地构建的镜像,请运行以下命令: ```PowerShell docker run --rm -it ` @@ -272,12 +272,8 @@ docker run --rm -it ` obsidian-remote:latest bash ``` +## 从外部源复制/粘贴 -## Copy/Paste From External Source - -Click on the circle to the left side of your browser window. In there you will find a textbox for updating the remote clipboard or copying from it. - -![image](https://user-images.githubusercontent.com/1399443/202805847-a87e2c7c-a5c6-4dea-bbae-4b25b4b5866a.png) - - +点击浏览器窗口左侧的圆圈。在那里,您可以找到用于更新远程剪贴板或从中复制的内容的文本框。 +![image](https://user-images.githubusercontent.com/1399443/202805847-a87e2c7c-a5c6-4dea-bbae-4b25b4b5866a.png) \ No newline at end of file diff --git a/apps/obsidian/README_en.md b/apps/obsidian/README_en.md new file mode 100644 index 000000000..4a68bb199 --- /dev/null +++ b/apps/obsidian/README_en.md @@ -0,0 +1,283 @@ +# obsidian-remote + +This docker image allows you to run [obsidian](https://obsidian.md/) in docker as a container and access it via your web browser. + +Use `http://localhost:8080/` to access it locally, do not expose this to the web unless you secure it and know what you are doing!! + +- [Using the Container](#using-the-container) + - [Ports](#ports) + - [Mapped Volumes](#mapped-volumes) + - [Environment Variables](#environment-variables) +- [Using Docker Compose](#using-docker-compose) +- [Enabling GIT for the obsidian-git plugin](#enabling-git-for-the-obsidian-git-plugin) + - [Docker CLI example](#docker-cli-example) +- [Reloading Obsidan in the Browser](#reloading-obsidan-in-the-browser) +- [Setting PUID and PGID](#setting-puid-and-pgid) +- [Adding missing fonts](#adding-missing-fonts) + - [Map font file using Docker CLI](#map-font-file-using-docker-cli) + - [Map font file using Docker Compose](#map-font-file-using-docker-compose) +- [Hosting behind a reverse proxy](#hosting-behind-a-reverse-proxy) + - [Example nginx configuration](#example-nginx-configuration) +- [Hosting behind Nginx Proxy Manager (NPM)](#hosting-behind-nginx-proxy-manager-npm) +- [Updating Obsidian](#updating-obsidian) +- [Building locally](#building-locally) +- [Copy/Paste From External Source](#copypaste-from-external-source) + +## Using the Container + +To run a interactive version to test it out. This is using windows based path, update for the OS you are running on. + +```PowerShell +docker run --rm -it ` + -v D:/ob/vaults:/vaults ` + -v D:/ob/config:/config ` + -p 8080:8080 ` + ghcr.io/sytone/obsidian-remote:latest +``` + +To run it as a daemon in the background. + +```PowerShell +docker run -d ` + -v D:/ob/vaults:/vaults ` + -v D:/ob/config:/config ` + -p 8080:8080 ` + ghcr.io/sytone/obsidian-remote:latest +``` + +The ARM container is now avaliable, will look to make this simpler in the future. The ARM imange is on the docker hub and not the github container registry. + +```PowerShell +docker run -d ` + -v D:/ob/vaults:/vaults ` + -v D:/ob/config:/config ` + -p 8080:8080 ` + sytone/obsidian-remote:latest +``` + +### Ports + +| Port | Description | +| ----- | --------------------------------------- | +| 8080 | HTTP Obsidian Web Interface | +| 8443 | HTTPS Obsidian Web Interface | + +### Mapped Volumes + +| Path | Description | +| --------- | ------------------------------------------------------------------------- | +| `/vaults` | The location on the host for your Obsidian Vaults | +| `/config` | The location to store Obsidan configuration and ssh data for obsidian-git | + +### Environment Variables + +| Environment Variable | Description | +| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| PUID | Set the user ID for the container user. `911` by default. | +| PGID | Set the group ID for the continer user. `911` by default. | +| TZ | Set the Time Zone for the container, should match your TZ. `Etc/UTC` by default. See [List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for valid options. | +| DOCKER_MODS | Use to add mods to the container like git. E.g. `DOCKER_MODS=linuxserver/mods:universal-git` See [Docker Mods](https://github.com/linuxserver/docker-mods) for details. | +| KEYBOARD | Used to se the keyboard being used for input. E.g. `KEYBOARD=en-us-qwerty` or `KEYBOARD=de-de-qwertz` a list of other possible values (not tested) can be found at | +| CUSTOM_PORT | Internal port the container listens on for http if it needs to be swapped from the default 3000. | +| CUSTOM_HTTPS_PORT | Internal port the container listens on for https if it needs to be swapped from the default 3001. | +| CUSTOM_USER | HTTP Basic auth username, abc is default. | +| PASSWORD | HTTP Basic auth password, abc is default. If unset there will be no auth | +| SUBFOLDER | Subfolder for the application if running a subfolder reverse proxy, need both slashes IE `/subfolder/` | +| TITLE | The page title displayed on the web browser, default "KasmVNC Client". | +| FM_HOME | This is the home directory (landing) for the file manager, default "/config". | + +## Using Docker Compose + +```YAML +services: + obsidian: + image: 'ghcr.io/sytone/obsidian-remote:latest' + container_name: obsidian-remote + restart: unless-stopped + ports: + - 8080:8080 + - 8443:8443 + volumes: + - /home/obsidian/vaults:/vaults + - /home/obsidian/config:/config + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/Los_Angeles + - DOCKER_MODS=linuxserver/mods:universal-git + - CUSTOM_PORT="8080" + - CUSTOM_HTTPS_PORT="8443" + - CUSTOM_USER="" + - PASSWORD="" + - SUBFOLDER="" +``` + +## Enabling GIT for the obsidian-git plugin + +This container uses the base images from linuxserver.io. This means you can the linuxserver.io mods. To add support for git add the `DOCKER_MODS` environment variable like so `DOCKER_MODS=linuxserver/mods:universal-git`. + +### Docker CLI example + +```PowerShell +docker run -d ` + -v D:/ob/vaults:/vaults ` + -v D:/ob/config:/config ` + -p 8080:8080 ` + -e DOCKER_MODS=linuxserver/mods:universal-git ` + ghcr.io/sytone/obsidian-remote:latest +``` + +## Reloading Obsidan in the Browser + +If you make changes to plugins or do updates that need to have obsidian restarted, instead of having to stop and start the docker container you can just close the Obsidian UI and right click to show the menus and reopen it. Here is a short clip showing how to do it. + +![Reloading Obsidian in the Browser](./assets/ReloadExample.gif) + +## Setting PUID and PGID + +To set PUID and PGID use the follow environment variables on the command line, by default the IDs are 911/911 + +```PowerShell +docker run --rm -it ` + -v D:/ob/vaults:/vaults ` + -v D:/ob/config:/config ` + -e PUID=1000 ` + -e PGID=1000 ` + -p 8080:8080 ` + ghcr.io/sytone/obsidian-remote:latest +``` + +Or, if you use docker-compose, add them to the environment: section: + +```yaml +environment: + - PUID=1000 + - PGID=1000 +``` + +It is most likely that you will use the id of yourself, which can be obtained by running the command below. The two values you will be interested in are the uid and gid. + +```powershell +id $user +``` + +## Adding missing fonts + +Thanks to @aaron-jang for this example. + +Download the font of the language that you want to use in Obsidian and add it to the volume as shown below. + +### Map font file using Docker CLI + +```PowerShell + -v {downloaded font directory}:/usr/share/fonts/truetype/{font name} +``` + +### Map font file using Docker Compose + +```PowerShell + volumes: + - {downloaded font directory}:/usr/share/fonts/truetype/{font name} +``` + +## Hosting behind a reverse proxy + +If you wish to do that **please make sure you are securing it in some way!**. You also need to ensure **websocket** support is enabled. + +### Example nginx configuration + +This is an example, I recommend a SSL based proxy and some sort of authentication. + +``` +server { + set $forward_scheme http; + set $server "10.10.10.10"; + set $port 8080; + + listen 80; + server_name ob.mycooldomain.com; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $http_connection; + proxy_http_version 1.1; + access_log /data/logs/ob_access.log proxy; + error_log /data/logs/ob_error.log warn; + location / { + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $http_connection; + proxy_http_version 1.1; + # Proxy! + add_header X-Served-By $host; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Scheme $scheme; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_pass $forward_scheme://$server:$port$request_uri; + } +} +``` + +## Hosting behind Nginx Proxy Manager (NPM) + +Thanks to @fahrenhe1t for this example. + +If you install obsidian-remote in Docker, you can proxy it through [Nginx Proxy Manager](https://nginxproxymanager.com/) (NPM - running on the same Docker instance), and use an access list to provide user authentication. The obsidian-remote container would have to be on the same network as Nginx Proxy Manager. If you don't expose the IP external to the container, authentication would be forced through NPM: + +```yaml +services: + obsidian: + image: 'ghcr.io/sytone/obsidian-remote:latest' + container_name: obsidian-remote + restart: unless-stopped + ports: + - 8080 #only exposes port internally to the container + volumes: + - /home/obsidian/vaults:/vaults + - /home/obsidian/config:/config + environment: + - PUID=1000 + - PGID=1000 + - TZ=America/Los_Angeles + - DOCKER_MODS=linuxserver/mods:universal-git +networks: + default: + name: + external: true +``` + +Create a proxy host in NPM pointing to the "obsidian-remote:8080" container, choose your domain name, use a LetsEncrypt SSL certificate, enable WebSockets. This video talks about it: [Nginx Proxy Manager - ACCESS LIST protection for internal services](https://www.youtube.com/watch?v=G9voYZejH48) + +## Updating Obsidian + +By default obsidian will update itself in the container. If you recreate the container you will have to do the update again. This repo will be updated periodically to keep up with the latest version of Obsidian. + +## Building locally + +To build and use it locally run the following commands: + +```PowerShell +docker build --pull --rm ` + -f "Dockerfile" ` + -t obsidian-remote:latest ` + "." +``` + +To run the localy build image: + +```PowerShell +docker run --rm -it ` + -v D:/ob/vaults:/vaults ` + -v D:/ob/config:/config ` + -p 8080:8080 ` + obsidian-remote:latest bash +``` + + +## Copy/Paste From External Source + +Click on the circle to the left side of your browser window. In there you will find a textbox for updating the remote clipboard or copying from it. + +![image](https://user-images.githubusercontent.com/1399443/202805847-a87e2c7c-a5c6-4dea-bbae-4b25b4b5866a.png) + + + diff --git a/apps/onedev/README.md b/apps/onedev/README.md index b74c10d15..c56e27371 100644 --- a/apps/onedev/README.md +++ b/apps/onedev/README.md @@ -1,83 +1,72 @@ -
+> **注意** +> +> 1. 请勿担心上述安全公告。发现并发布后会立即修复并通知用户 +> 2. 我们在中国开发者内测网站 [code.onedev.io](https://code.onedev.io/onedev/server) 上开发 OneDev,所有问题和拉取请求都应提交到该网站 -> **Note** -> 1. Do not worry about security advisories above. They are fixed as soon as discovered and published to notify users -> 2. We develop OneDev at code.onedev.io for sake of dogfooding. All issues and pull requests should be submitted there +# 自托管 Git 服务器,附带看板和 CI/CD -
+## [快速入门](https://docs.onedev.io) | [安装指南](https://docs.onedev.io/category/installation-guide) | [全部文档](https://docs.onedev.io) -
-

Self-hosted Git Server with Kanban and CI/CD

+## 开箱即用的符号搜索和导航 -

-Quickstart -| Installation Guide -| All Documentation -

+当然,IDE 在这方面做得很好,但很多时候我们需要在旧提交中搜索(调查发布版本的问题等),而在 IDE 中切换提交可能会很麻烦且速度慢。 -

-

+它通过使用 ANTLR 分析源代码,增量提取符号进行存储,速度快且空间效率高。现在支持 Java、JavaScript、C、C++、CSharp、Go、PHP、Python、CSS、SCSS、LESS 和 R。GitHub 几年前就添加了这一功能,但似乎只适用于主分支,而 GitLab 需要配置 CI 任务生成并上传 LSIF,这很麻烦且如果为每个提交都这样做会占用大量空间。 -## Out-of-box Symbol Search and Navigation - -Of course IDE is good at doing this, but often we need to search in old commits (investigate issues in release versions etc), and switching commits in IDE can be troublesome and slow.  - -It works by analyzing source code with ANTLR, extracting symbols for storage incrementally, fast and space efficient. Now supports Java, JavaScript, C, C++, CSharp, Go, PHP, Python, CSS, SCSS, LESS and R. GitHub adds this feature several years ago, but seems that it only works for main branch, and GitLab has to configure CI job to generate and upload LSIF which is troublesome and can occupy considerable space if you do it for each commit. - -You can also jump to symbol definition in diff while reviewing commits or pull requests. +在审查提交或拉取请求时,你也可以跳转到符号定义。 ![searchsymbol](https://github.com/theonedev/onedev/raw/main/doc/images/search-symbol.gif) ![jumpsymbol](https://github.com/theonedev/onedev/raw/main/doc/images/symbol.gif) -## Code Search with Regular Expression +## 使用正则表达式搜索代码 -You may switch to any commit, and search code with regular expression. OneDev under the hood indexes the code with Lucene incrementally. At search time, literal tri-grams in the regular expression are extracted for a coarse search, followed by exact match in the result. This makes the regex search blazing fast, even for large repositories like Linux. +您可以切换到任何提交,并使用正则表达式搜索代码。OneDev 在后台会使用 Lucene 增量地索引代码。在搜索时,正则表达式中的字面三元组会被提取出来进行粗略搜索,然后在结果中进行精确匹配。这使得正则表达式搜索非常快速,即使对于像 Linux 这样的大型仓库也是如此。 ![regex](https://github.com/theonedev/onedev/raw/main/doc/images/regex-search.gif) -## Annotate Source/Diff with Static Analysis Result to Facilitate Code Review +## 使用静态分析结果注释源代码/差异以方便代码审查 -Of course this can be done by many third party applications at GitHub, however they display the result on their own applications, and this makes review activities such as adding comment over analysis result difficult. Not to mention that you need to pay for these services. +当然,GitHub 上有许多第三方应用程序可以做到这一点,但是它们会在自己的应用程序中显示结果,这使得在分析结果上添加评论等审查活动变得困难。更不用说你需要为此付费。 ![annotation](https://github.com/theonedev/onedev/raw/main/doc/images/annotation.png) -## Customizable Issue State and Field, with Deep CI/CD Integration +## 自定义问题状态和字段,并深度集成 CI/CD -The simple open/close state of GitHub/GitLab issues does not work well for many workflows. Considering issues submitted by customers: +GitHub/GitLab 问题的简单开启/关闭状态并不适用于许多工作流。考虑到客户提交的问题: -1. If developer closes issue upon committing the code, customer will be notified and may ask for the release fixing the issue. -2. If developer closes the issue at release time, QA might be confused at what issues to test as they all remain open at test time.  +1. 如果开发人员在提交代码时关闭问题,客户将收到通知并可能要求发布修复该问题的版本。 +2. 如果开发人员在发布时关闭问题,测试人员在测试时可能会对需要测试哪些问题感到困惑,因为所有问题在测试时都处于开启状态。 -With customizable issue states, we may address the issue with four states: open, committed, test ready and released: +自定义问题状态后,我们可以使用四种状态来处理问题:打开、已承诺、待测试和已发布: -1. When code is committed, issue transits to committed state automatically -2. When a test build is created and deployed, the issue transits to test ready state automatically. QA will be notified and can check issue detail to know which environment the test build is deployed into. -3. When test passes, and a release build is created, customers submitting the issue will be notified and they can check issue detail to see which release contains the fix. +1. 当代码被提交时,问题会自动转到已承诺状态。 +2. 当创建并部署测试构建时,问题会自动转到待测试状态。QA 将会被通知,并可以查看问题详情以了解测试构建部署到了哪个环境。 +3. 当测试通过并创建发布构建时,提交问题的客户将会被通知,并可以查看问题详情以了解包含修复的发布版本是哪个。 ![boards](https://github.com/theonedev/onedev/raw/main/doc/images/boards.png) ![fixing-build](https://github.com/theonedev/onedev/raw/main/doc/images/fixing-build.png) -## Service Desk to Create/Discuss Issues via Email +## 通过电子邮件创建/讨论问题的服务台 -Service desk allows your users to submit tickets via email without the need to have a OneDev account. These tickets can then be created in desired projects, and assigned to appropriate members in your team. All further discussions over the tickets can take place completely in email, with discussion contents posted to ticket as comments. User will also get notifications when there are any ticket activities, for instance, when a relevant release is created or deployed +服务台允许用户无需拥有 OneDev 账户即可通过电子邮件提交工单。这些工单可以在您希望的项目中创建,并指派给团队中的合适成员。所有进一步的讨论都可以完全通过电子邮件进行,讨论内容将作为评论发布到工单中。用户还将收到任何工单活动的通知,例如当创建或部署了相关版本时 ![service-desk.png](https://github.com/theonedev/onedev/raw/main/doc/images/service-desk.png) -## A powerful and Intuitive Query Language +## 强大的直观查询语言 -Thanks to ANTLR again, OneDev ships sophisticated query languages for projects, commits, issues, builds, and pull requests, with intuitive auto-completions and hints. For instance, it enables our customers finding fixed issues between their running release and latest release, and enables us to find all commits submitted by someone touching specified modules, etc.  +得益于 ANTLR,OneDev 配备了针对项目、提交、问题、构建和拉取请求的复杂查询语言,具有直观的自动补全和提示功能。例如,它使我们的客户能够找到他们当前运行版本和最新版本之间的已修复问题,并使我们能够找到所有涉及特定模块的提交,等等。 -Queries can be saved and subscribed, so that you won't miss anything interested. +查询可以保存和订阅,这样你就不会错过任何感兴趣的内容。 ![query](https://github.com/theonedev/onedev/raw/main/doc/images/query.gif) -## A Full-fledge CI/CD Engine without Writing Yaml +## 无需编写 YAML 的完整 CI/CD 引擎 -OneDev ships with GUI to generate CI/CD Yaml. No need to google around for Yaml grammars. A one-liner docker command to start OneDev server and you have a local CI/CD runner automatically. Concerns about server capability to run massive jobs? Another one-liner to connect self-updating agent from any machine. Want auto-scale CI/CD farm? A helm one-liner to deploy OneDev into k8s cluster.  +OneDev 随附图形界面生成 CI/CD YAML。无需搜索 YAML 语法。一条简单的 Docker 命令即可启动 OneDev 服务器,并自动获得一个本地 CI/CD 执行器。担心服务器能力无法运行大量任务?再一条简单的命令即可连接来自任何机器的自我更新代理。想要自动扩展的 CI/CD 农场?一条 Helm 命令即可将 OneDev 部署到 k8s 集群。 -Build pipeline, matrix jobs, typed parameters, parameter chaining, step templates, build promotions… too many neat features to elaborate… +构建管道、矩阵任务、类型参数、参数链、步骤模板、构建推广……太多精妙的功能无法一一详述…… ![job-def](https://github.com/theonedev/onedev/raw/main/doc/images/job-command.gif) @@ -85,56 +74,54 @@ Build pipeline, matrix jobs, typed parameters, parameter chaining, step template ![pipeline.gif](https://github.com/theonedev/onedev/raw/main/doc/images/pipeline.gif) -## Flexible Pull Request Review Policy and Reviewer Suggestion +## 灵活的拉取请求审查政策和审查者建议 -Specify pull request review policy based on author, branch, and changed files. OneDev can leverage git change history to suggest most appropriate reviewers for pull requests touching certain files. +根据提交者、分支和修改文件指定拉取请求审查政策。OneDev 可以利用 Git 的变更历史来为涉及某些文件的拉取请求建议最合适的审查者。 ![review-policy](https://github.com/theonedev/onedev/raw/main/doc/images/review-policy.gif) -## Lightweight Review without Pull Request +## 轻量级审查无需拉取请求 -Comment on any part of code or diff to start a lightweight review without opening pull request. Review comments live through code modification and even file rename to serve as documentation.  +在任何代码部分或差异上添加评论以开始轻量级审查,而无需打开拉取请求。审查评论会随着代码修改甚至文件重命名而保留,作为文档使用。 -Each discussion is threaded so that you can easily know discussions with new comments/updates. +每条讨论都按线程组织,这样您可以轻松了解带有新评论/更新的讨论。 ![file-comment](https://github.com/theonedev/onedev/raw/main/doc/images/file-comment.gif) ![thread-comments](https://github.com/theonedev/onedev/raw/main/doc/images/threaded-comments.png) -## Command Palette to Access Features Quickly +## 快速访问功能面板 -Press cmd/ctrl-k to bring up command palette from anywhere. Search projects, files, issues, pull requests, builds, and various settings and jump to them without leaving your keyboard +按 cmd/ctrl-k 可从任何地方弹出功能面板。搜索项目、文件、问题、拉取请求、构建以及各种设置,并在不离开键盘的情况下跳转到它们 ![command-palette.gif](https://github.com/theonedev/onedev/raw/main/doc/images/command-palette.gif) -## Write Markdown Pleasantly With a Smart Editor +## 智能编辑器让您愉快地编写 Markdown -When embedding an image in a markdown file in GitHub/GitLab, you need to upload the image in a separate page, and then figure out the relative path to reference that image. With OneDev, you simply upload the image to desired folder in same editor, and the link will be generated automatically.  +在 GitHub/GitLab 的 markdown 文件中嵌入图片时,你需要在单独的页面上传图片,然后找出相对路径来引用该图片。而在 OneDev 中,你只需在同一个编辑器中将图片上传到目标文件夹,链接将自动生成。 -OneDev tracks your cursor in edit window and scrolls the preview window as necessary so that you can always preview what you are typing. +OneDev 在编辑窗口中跟踪你的光标,并根据需要滚动预览窗口,这样你就可以始终预览你正在输入的内容。 ![markdown](https://github.com/theonedev/onedev/raw/main/doc/images/markdown.gif) -## SLOC Trend By Language +## 按语言的代码行趋势 -OneDev inspects git history of main branch to calculate trend of source lines of code by language efficiently. +OneDev 通过检查主分支的 git 历史记录,高效地计算按语言的源代码行趋势。 ![stats](https://github.com/theonedev/onedev/raw/main/doc/images/stats.png) -## Project Hierarchy to Facilitate Setting Inheritance +## 便于设置继承的项目层次结构 -Organization is ideal for public service. However for self-hosted internal use, we feel that a hierarchical structure is more practical to organize projects. Child projects can inherit settings from parent project and can selectively override some of them if necessary. This reduces a lot of overhead to manage a lot of projects in the company. +组织结构最适合公共服务。然而,对于内部自托管使用,我们认为层次结构更实用,便于组织项目。子项目可以从父项目继承设置,并在必要时可以选择性地覆盖某些设置。这大大减少了管理公司中众多项目的开销。 -## Fast and Reliable with Moderate Resource Usage +## 快速可靠且资源使用适中 -OneDev is carefully designed with performance in mind. With a 2 core 2GB box, you will get all features above for medium sized projects. -It has been intensively used for more than 5 years, with battle-proven reliability. Fixing bugs is our highest priority, and there is -normally few to no known bugs in the wild. +OneDev 在性能方面经过精心设计。在配备 2 核 2GB 内存的机器上,您将能够为中型项目获得所有上述功能。它已经连续使用了 5 年以上,具有经过实战验证的可靠性。修复 bug 是我们的最高优先级,通常在野外几乎不存在已知的 bug。 ----- +* * * -# Special Thanks +# 特别感谢 -![yourkit](https://www.yourkit.com/images/yklogo.png) +![yourkit](https://www.yourkit.com/images/yklogo.png) -[YourKit](https://yourkit.com) supports this project by providing a free open source license of their excellent Java profiler \ No newline at end of file +[YourKit](https://yourkit.com) 通过提供他们出色的 Java Profiler 的免费开源许可支持这个项目 \ No newline at end of file diff --git a/apps/onedev/README_en.md b/apps/onedev/README_en.md new file mode 100644 index 000000000..b74c10d15 --- /dev/null +++ b/apps/onedev/README_en.md @@ -0,0 +1,140 @@ +
+ +> **Note** +> 1. Do not worry about security advisories above. They are fixed as soon as discovered and published to notify users +> 2. We develop OneDev at code.onedev.io for sake of dogfooding. All issues and pull requests should be submitted there + +
+ +
+

Self-hosted Git Server with Kanban and CI/CD

+ +

+Quickstart +| Installation Guide +| All Documentation +

+ +

+

+ +## Out-of-box Symbol Search and Navigation + +Of course IDE is good at doing this, but often we need to search in old commits (investigate issues in release versions etc), and switching commits in IDE can be troublesome and slow.  + +It works by analyzing source code with ANTLR, extracting symbols for storage incrementally, fast and space efficient. Now supports Java, JavaScript, C, C++, CSharp, Go, PHP, Python, CSS, SCSS, LESS and R. GitHub adds this feature several years ago, but seems that it only works for main branch, and GitLab has to configure CI job to generate and upload LSIF which is troublesome and can occupy considerable space if you do it for each commit. + +You can also jump to symbol definition in diff while reviewing commits or pull requests. + +![searchsymbol](https://github.com/theonedev/onedev/raw/main/doc/images/search-symbol.gif) + +![jumpsymbol](https://github.com/theonedev/onedev/raw/main/doc/images/symbol.gif) + +## Code Search with Regular Expression + +You may switch to any commit, and search code with regular expression. OneDev under the hood indexes the code with Lucene incrementally. At search time, literal tri-grams in the regular expression are extracted for a coarse search, followed by exact match in the result. This makes the regex search blazing fast, even for large repositories like Linux. + +![regex](https://github.com/theonedev/onedev/raw/main/doc/images/regex-search.gif) + +## Annotate Source/Diff with Static Analysis Result to Facilitate Code Review + +Of course this can be done by many third party applications at GitHub, however they display the result on their own applications, and this makes review activities such as adding comment over analysis result difficult. Not to mention that you need to pay for these services. + +![annotation](https://github.com/theonedev/onedev/raw/main/doc/images/annotation.png) + +## Customizable Issue State and Field, with Deep CI/CD Integration + +The simple open/close state of GitHub/GitLab issues does not work well for many workflows. Considering issues submitted by customers: + +1. If developer closes issue upon committing the code, customer will be notified and may ask for the release fixing the issue. +2. If developer closes the issue at release time, QA might be confused at what issues to test as they all remain open at test time.  + +With customizable issue states, we may address the issue with four states: open, committed, test ready and released: + +1. When code is committed, issue transits to committed state automatically +2. When a test build is created and deployed, the issue transits to test ready state automatically. QA will be notified and can check issue detail to know which environment the test build is deployed into. +3. When test passes, and a release build is created, customers submitting the issue will be notified and they can check issue detail to see which release contains the fix. + +![boards](https://github.com/theonedev/onedev/raw/main/doc/images/boards.png) + +![fixing-build](https://github.com/theonedev/onedev/raw/main/doc/images/fixing-build.png) + +## Service Desk to Create/Discuss Issues via Email + +Service desk allows your users to submit tickets via email without the need to have a OneDev account. These tickets can then be created in desired projects, and assigned to appropriate members in your team. All further discussions over the tickets can take place completely in email, with discussion contents posted to ticket as comments. User will also get notifications when there are any ticket activities, for instance, when a relevant release is created or deployed + +![service-desk.png](https://github.com/theonedev/onedev/raw/main/doc/images/service-desk.png) + +## A powerful and Intuitive Query Language + +Thanks to ANTLR again, OneDev ships sophisticated query languages for projects, commits, issues, builds, and pull requests, with intuitive auto-completions and hints. For instance, it enables our customers finding fixed issues between their running release and latest release, and enables us to find all commits submitted by someone touching specified modules, etc.  + +Queries can be saved and subscribed, so that you won't miss anything interested. + +![query](https://github.com/theonedev/onedev/raw/main/doc/images/query.gif) + +## A Full-fledge CI/CD Engine without Writing Yaml + +OneDev ships with GUI to generate CI/CD Yaml. No need to google around for Yaml grammars. A one-liner docker command to start OneDev server and you have a local CI/CD runner automatically. Concerns about server capability to run massive jobs? Another one-liner to connect self-updating agent from any machine. Want auto-scale CI/CD farm? A helm one-liner to deploy OneDev into k8s cluster.  + +Build pipeline, matrix jobs, typed parameters, parameter chaining, step templates, build promotions… too many neat features to elaborate… + +![job-def](https://github.com/theonedev/onedev/raw/main/doc/images/job-command.gif) + +![run-job](https://github.com/theonedev/onedev/raw/main/doc/images/build-option.gif) + +![pipeline.gif](https://github.com/theonedev/onedev/raw/main/doc/images/pipeline.gif) + +## Flexible Pull Request Review Policy and Reviewer Suggestion + +Specify pull request review policy based on author, branch, and changed files. OneDev can leverage git change history to suggest most appropriate reviewers for pull requests touching certain files. + +![review-policy](https://github.com/theonedev/onedev/raw/main/doc/images/review-policy.gif) + +## Lightweight Review without Pull Request + +Comment on any part of code or diff to start a lightweight review without opening pull request. Review comments live through code modification and even file rename to serve as documentation.  + +Each discussion is threaded so that you can easily know discussions with new comments/updates. + +![file-comment](https://github.com/theonedev/onedev/raw/main/doc/images/file-comment.gif) + +![thread-comments](https://github.com/theonedev/onedev/raw/main/doc/images/threaded-comments.png) + +## Command Palette to Access Features Quickly + +Press cmd/ctrl-k to bring up command palette from anywhere. Search projects, files, issues, pull requests, builds, and various settings and jump to them without leaving your keyboard + +![command-palette.gif](https://github.com/theonedev/onedev/raw/main/doc/images/command-palette.gif) + +## Write Markdown Pleasantly With a Smart Editor + +When embedding an image in a markdown file in GitHub/GitLab, you need to upload the image in a separate page, and then figure out the relative path to reference that image. With OneDev, you simply upload the image to desired folder in same editor, and the link will be generated automatically.  + +OneDev tracks your cursor in edit window and scrolls the preview window as necessary so that you can always preview what you are typing. + +![markdown](https://github.com/theonedev/onedev/raw/main/doc/images/markdown.gif) + +## SLOC Trend By Language + +OneDev inspects git history of main branch to calculate trend of source lines of code by language efficiently. + +![stats](https://github.com/theonedev/onedev/raw/main/doc/images/stats.png) + +## Project Hierarchy to Facilitate Setting Inheritance + +Organization is ideal for public service. However for self-hosted internal use, we feel that a hierarchical structure is more practical to organize projects. Child projects can inherit settings from parent project and can selectively override some of them if necessary. This reduces a lot of overhead to manage a lot of projects in the company. + +## Fast and Reliable with Moderate Resource Usage + +OneDev is carefully designed with performance in mind. With a 2 core 2GB box, you will get all features above for medium sized projects. +It has been intensively used for more than 5 years, with battle-proven reliability. Fixing bugs is our highest priority, and there is +normally few to no known bugs in the wild. + +---- + +# Special Thanks + +![yourkit](https://www.yourkit.com/images/yklogo.png) + +[YourKit](https://yourkit.com) supports this project by providing a free open source license of their excellent Java profiler \ No newline at end of file diff --git a/apps/onlyoffice/README.md b/apps/onlyoffice/README.md index 666ff1e2a..f6e1dae10 100644 --- a/apps/onlyoffice/README.md +++ b/apps/onlyoffice/README.md @@ -3,147 +3,149 @@ 部署完成后按照页面提示,在终端执行命令,开启服务。 # 原始相关 -*** + +* * * + [![License](https://img.shields.io/badge/License-GNU%20AGPL%20V3-green.svg?style=flat)](https://www.gnu.org/licenses/agpl-3.0.en.html) ![Release](https://img.shields.io/badge/Release-v7.4.0-blue.svg?style=flat) -## Overview +## 概述 -[ONLYOFFICE Docs](https://www.onlyoffice.com/office-suite.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS)* is a free collaborative online office suite comprising viewers and editors for texts, spreadsheets and presentations, forms and PDF, fully compatible with Office Open XML formats: .docx, .xlsx, .pptx and enabling collaborative editing in real time. +[ONLYOFFICE Docs](https://www.onlyoffice.com/office-suite.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS)\* 是一个免费的协作在线办公套件,包含文本、电子表格和演示文稿的查看器和编辑器,以及表单和 PDF,完全兼容 Office Open XML 格式:.docx、.xlsx、.pptx,并支持实时协作编辑。 -ONLYOFFICE Docs can be used as a part of [ONLYOFFICE Workspace](https://www.onlyoffice.com/workspace.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubCS) or with [third-party sync&share solutions](https://www.onlyoffice.com/all-connectors.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS) (e.g. Nextcloud, ownCloud, Seafile) to enable collaborative editing within their interface. +ONLYOFFICE Docs 可以作为 [ONLYOFFICE Workspace](https://www.onlyoffice.com/workspace.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubCS) 的一部分使用,或者与 [第三方同步与分享解决方案](https://www.onlyoffice.com/all-connectors.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS) (例如 Nextcloud、ownCloud、Seafile)结合使用,以在其界面中实现协作编辑。 -It has three editions - [Community, Enterprise, and Developer](#onlyoffice-docs-editions). +它有三个版本 - [社区版、企业版和开发者版](#onlyoffice-docs-editions) 。 -\* Starting from version 6.0, Document Server is distributed under a new name - ONLYOFFICE Docs. +\* 自从 6.0 版本起,Document Server 以新的名称 ONLYOFFICE Docs 进行分发。 -## Components +## 组件 -ONLYOFFICE Docs contains the following components: +ONLYOFFICE Docs 包含以下组件: -* [server](https://github.com/ONLYOFFICE/server) - the backend server software layer which is the base for all other components of ONLYOFFICE Docs. -* [core](https://github.com/ONLYOFFICE/core) - server core components of ONLYOFFICE Docs which enable the conversion between the most popular office document formats (DOC, DOCX, ODT, RTF, TXT, PDF, HTML, EPUB, XPS, DjVu, XLS, XLSX, ODS, CSV, PPT, PPTX, ODP). -* [sdkjs](https://github.com/ONLYOFFICE/sdkjs) - JavaScript SDK for the ONLYOFFICE Docs which contains API for all the included components client-side interaction. -* [web-apps](https://github.com/ONLYOFFICE/web-apps) - the frontend for ONLYOFFICE Docs which builds the program interface and allows the user create, edit, save and export text, spreadsheet and presentation documents using the common interface of a document editor. -* [dictionaries](https://github.com/ONLYOFFICE/dictionaries) - the dictionaries of various languages used for spellchecking in ONLYOFFICE Docs. +* [服务器](https://github.com/ONLYOFFICE/server) \- 作为 ONLYOFFICE Docs 所有其他组件基础的后端服务器软件层。 +* [core](https://github.com/ONLYOFFICE/core) - ONLYOFFICE Docs 的核心服务器组件,支持将最流行的办公文档格式(DOC, DOCX, ODT, RTF, TXT, PDF, HTML, EPUB, XPS, DjVu, XLS, XLSX, ODS, CSV, PPT, PPTX, ODP)相互转换。 +* [sdkjs](https://github.com/ONLYOFFICE/sdkjs) - ONLYOFFICE Docs 的 JavaScript SDK,包含所有内置组件的客户端交互 API。 +* [web-apps](https://github.com/ONLYOFFICE/web-apps) - ONLYOFFICE Docs 的前端,构建程序界面,允许用户使用文档编辑器的通用界面创建、编辑、保存和导出文本、电子表格和演示文稿文档。 +* [dictionaries](https://github.com/ONLYOFFICE/dictionaries) - 用于 ONLYOFFICE Docs 拼写检查的各种语言词典。 -## Plugins +## 插件 -ONLYOFFICE Docs offer support for plugins allowing developers to add specific features to the editors that are not directly related to the OOXML format. For more information see [our API](https://api.onlyoffice.com/plugin/basic) or visit github [plugins repo](https://github.com/ONLYOFFICE/onlyoffice.github.io). +ONLYOFFICE Docs 提供插件支持,允许开发者向编辑器添加与 OOXML 格式不直接相关的特定功能。更多信息请参见 [我们的 API](https://api.onlyoffice.com/plugin/basic) 或访问 github [插件仓库](https://github.com/ONLYOFFICE/onlyoffice.github.io) 。 -## Functionality +## 功能 -ONLYOFFICE Docs includes the following editors: +ONLYOFFICE Docs 包含以下编辑器: -* [ONLYOFFICE Document Editor](https://www.onlyoffice.com/document-editor.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) -* [ONLYOFFICE Spreadsheet Editor](https://www.onlyoffice.com/spreadsheet-editor.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) -* [ONLYOFFICE Presentation Editor](https://www.onlyoffice.com/presentation-editor.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) -* [ONLYOFFICE Form Creator](https://www.onlyoffice.com/form-creator.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) -* [ONLYOFFICE PDF reader and converter](https://www.onlyoffice.com/pdf-reader.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) +* [ONLYOFFICE 文档编辑器](https://www.onlyoffice.com/document-editor.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) +* [ONLYOFFICE 表格编辑器](https://www.onlyoffice.com/spreadsheet-editor.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) +* [ONLYOFFICE 演示文稿编辑器](https://www.onlyoffice.com/presentation-editor.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) +* [ONLYOFFICE 表单创建器](https://www.onlyoffice.com/form-creator.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) +* [ONLYOFFICE PDF 阅读器和转换器](https://www.onlyoffice.com/pdf-reader.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) -The editors allow you to create, edit, save and export text, spreadsheet and presentation documents and additionally have the features: +编辑器允许您创建、编辑、保存和导出文本、电子表格和演示文稿文档,并且还具有以下功能: -* Collaborative editing -* Hieroglyph support -* Reviewing -* Spell-checking +* 协作编辑 +* 象形文字支持 +* 审阅 +* 拼写检查 -## ONLYOFFICE Docs editions +## ONLYOFFICE Docs 版本 -ONLYOFFICE offers different versions of its online document editors that can be deployed on your own servers. +ONLYOFFICE 提供不同版本的在线文档编辑器,您可以将其部署到自己的服务器上。 -ONLYOFFICE Docs (packaged as Document Server): +ONLYOFFICE Docs(打包为 Document Server): -* Community Edition (`onlyoffice-documentserver` package) -* Enterprise Edition (`onlyoffice-documentserver-ee` package) -* Developer Edition (`onlyoffice-documentserver-de` package) +* 社区版(`onlyoffice-documentserver` 包) +* 企业版(`onlyoffice-documentserver-ee` 包) +* 开发者版(`onlyoffice-documentserver-de` 包) -The table below will help you to make the right choice. +以下表格将帮助您做出正确的选择。 -| Pricing and licensing | Community Edition | Enterprise Edition | Developer Edition | -| ------------- | ------------- | ------------- | ------------- | -| | [Get it now](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS#docs-community) | [Start Free Trial](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS#docs-enterprise) | [Start Free Trial](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS#docs-developer) | -| Cost | FREE | [Go to the pricing page](https://www.onlyoffice.com/docs-enterprise-prices.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS) | [Go to the pricing page](https://www.onlyoffice.com/developer-edition-prices.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS) | -| Simultaneous connections | up to 20 maximum | As in chosen pricing plan | As in chosen pricing plan | -| Number of users | up to 20 recommended | As in chosen pricing plan | As in chosen pricing plan | -| Clusterization | - | + | + | -| License | GNU AGPL v.3 | Proprietary | Proprietary | -| **Support** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | -| Documentation | [Help Center](https://helpcenter.onlyoffice.com/installation/docs-community-index.aspx) | [Help Center](https://helpcenter.onlyoffice.com/installation/docs-enterprise-index.aspx) | [Help Center](https://helpcenter.onlyoffice.com/installation/docs-developer-index.aspx) | -| Standard support | [GitHub](https://github.com/ONLYOFFICE/DocumentServer/issues) or paid | One year support included | One year support included | -| Premium support | [Contact Us](mailto:sales@onlyoffice.com) | [Contact Us](mailto:sales@onlyoffice.com) | [Contact Us](mailto:sales@onlyoffice.com) | -| **Services** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | -| Conversion Service | + | + | + | -| Document Builder Service | + | + | + | -| **Interface** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | -| Tabbed interface | + | + | + | -| Dark theme | + | + | + | -| 125%, 150%, 175%, 200% scaling | + | + | + | -| White label | - | - | + | -| Integrated test example (node.js) | + | + | + | -| Mobile web editors | - | +** | +** | -| **Plugins & Macros** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | -| Plugins | + | + | + | -| Macros | + | + | + | -| **Collaborative capabilities** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | -| Two co-editing modes | + | + | + | -| Comments | + | + | + | -| Built-in chat | + | + | + | -| Review and tracking changes | + | + | + | -| Display modes of tracking changes | + | + | + | -| Version history | + | + | + | -| **Document Editor features** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | -| Font and paragraph formatting | + | + | + | -| Object insertion | + | + | + | -| Adding Content control | + | + | + | -| Editing Content control | + | + | + | -| Layout tools | + | + | + | -| Table of contents | + | + | + | -| Navigation panel | + | + | + | -| Mail Merge | + | + | + | -| Comparing Documents | + | + | + | -| **Spreadsheet Editor features** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | -| Font and paragraph formatting | + | + | + | -| Object insertion | + | + | + | -| Functions, formulas, equations | + | + | + | -| Table templates | + | + | + | -| Pivot tables | + | + | + | -| Data validation | + | + | + | -| Conditional formatting | + | + | + | -| Sparklines | + | + | + | -| Sheet Views | + | + | + | -| **Presentation Editor features** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | -| Font and paragraph formatting | + | + | + | -| Object insertion | + | + | + | -| Transitions | + | + | + | -| Presenter mode | + | + | + | -| Notes | + | + | + | -| **Form creator features** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | -| Adding form fields | + | + | + | -| Form preview | + | + | + | -| Saving as PDF | + | + | + | -| **Security features** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | -| End-to-end encryption via Private Rooms*** | + | + | - | -| | [Get it now](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS#docs-community) | [Start Free Trial](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS#docs-enterprise) | [Start Free Trial](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS#docs-developer) | +| 定价与许可 | 社区版 | 企业版 | 开发者版 | +| --- | --- | --- | --- | +| | 立即获取 | 免费试用 | 免费试用 | +| 费用 | FREE | 前往定价页面 | 前往定价页面 | +| 同时连接数 | 最多 20 人 | 如所选定价计划 | 如所选定价计划 | +| 用户数量 | 最多 20 项推荐 | 如所选定价计划所示 | 如所选定价计划所示 | +| 聚类 | \- | + | + | +| 许可证 | GNU AGPL v.3 | 专有 | 专有 | +| 支持 | 社区版 | 企业版 | 开发者版 | +| 文档 | 帮助中心 | 帮助中心 | 帮助中心 | +| 标准支持 | GitHub 或付费 | 包含一年支持 | 包含一年支持 | +| 高级支持 | 联系我们 | 联系我们 | 联系我们 | +| 服务 | 社区版 | 企业版 | 开发者版 | +| 转换服务 | + | + | + | +| 文档构建服务 | + | + | + | +| 接口 | 社区版 | 企业版 | 开发者版 | +| 标签页界面 | + | + | + | +| 暗主题 | + | + | + | +| 125%, 150%, 175%, 200% 放大比例 | + | + | + | +| 白标 | \- | \- | + | +| 集成测试示例(node.js) | + | + | + | +| 移动网页编辑器 | \- | +\*\* | +\*\* | +| 插件与宏 | 社区版 | 企业版 | 开发者版 | +| 插件 | + | + | + | +| 宏 | + | + | + | +| 协作功能 | 社区版 | 企业版 | 开发者版 | +| 双人编辑模式 | + | + | + | +| 评论 | + | + | + | +| 内置聊天 | + | + | + | +| 审阅和跟踪更改 | + | + | + | +| 显示跟踪更改模式 | + | + | + | +| 版本历史 | + | + | + | +| 文档编辑器功能 | 社区版 | 企业版 | 开发者版 | +| 字体和段落格式化 | + | + | + | +| 对象插入 | + | + | + | +| 添加内容控件 | + | + | + | +| 编辑内容控件 | + | + | + | +| 布局工具 | + | + | + | +| 目录 | + | + | + | +| 导航栏 | + | + | + | +| 邮件合并 | + | + | + | +| 比较文档 | + | + | + | +| 电子表格编辑器功能 | 社区版 | 企业版 | 开发者版 | +| 字体和段落格式 | + | + | + | +| 对象插入 | + | + | + | +| 函数、公式、方程 | + | + | + | +| 表格模板 | + | + | + | +| 透视表 | + | + | + | +| 数据验证 | + | + | + | +| 条件格式 | + | + | + | +| 火花图 | + | + | + | +| 工作表视图 | + | + | + | +| 沉浸式翻译功能 | 社区版 | 企业版 | 开发者版 | +| 字体和段落格式化 | + | + | + | +| 插入对象 | + | + | + | +| 过渡效果 | + | + | + | +| 演示者模式 | + | + | + | +| 注释 | + | + | + | +| 表单创建者功能 | 社区版 | 企业版 | 开发者版 | +| 添加表单字段 | + | + | + | +| 表单预览 | + | + | + | +| 保存为 PDF | + | + | + | +| 安全功能 | 社区版 | 企业版 | 开发者版 | +| 端到端加密的私密房间\*\*\* | + | + | \- | +| | 立即获取 | 免费试用 | 免费试用 | -\** If supported by DMS -\*** End-to-end encryption via Private Rooms requires ONLYOFFICE Workspace +\*\* 如果 DMS 支持 +\*\*\* 通过私人房间进行端到端加密需要 ONLYOFFICE Workspace -## How to Install on a local server +## 如何在本地服务器上安装 -The easiest way to install ONLYOFFICE Docs is to use **the Docker image** ([the official source code](https://github.com/ONLYOFFICE/Docker-DocumentServer)) +安装 ONLYOFFICE Docs 最简单的方法是使用 **官方 Docker 镜像** ( [官方源代码](https://github.com/ONLYOFFICE/Docker-DocumentServer) ) -* [Installing ONLYOFFICE Docs Docker](https://helpcenter.onlyoffice.com/installation/docs-community-install-docker.aspx) -* [Installing ONLYOFFICE Docs for Linux](https://helpcenter.onlyoffice.com/installation/docs-community-install-ubuntu.aspx) -* [Installing ONLYOFFICE Docs for Windows](https://helpcenter.onlyoffice.com/installation/docs-community-install-windows.aspx) +* [安装 ONLYOFFICE Docs Docker](https://helpcenter.onlyoffice.com/installation/docs-community-install-docker.aspx) +* [安装 ONLYOFFICE Docs for Linux](https://helpcenter.onlyoffice.com/installation/docs-community-install-ubuntu.aspx) +* [安装 ONLYOFFICE Docs for Windows](https://helpcenter.onlyoffice.com/installation/docs-community-install-windows.aspx) -## How to Build +## 如何构建 -Instructions for building ONLYOFFICE Docs for a local server from source code are in [our helpcenter](https://helpcenter.onlyoffice.com/installation/docs-community-compile.aspx). +从源代码构建 ONLYOFFICE Docs 以供本地服务器使用的方法请参阅 [我们的帮助中心](https://helpcenter.onlyoffice.com/installation/docs-community-compile.aspx) 。 -## License +## 许可证 -ONLYOFFICE Docs is licensed under the GNU Affero Public License, version 3.0. See [LICENSE](https://onlyo.co/38YZGJh) for more information. +ONLYOFFICE Docs 采用 GNU Affero 公开许可证,版本 3.0。更多详情请参见 [LICENSE](https://onlyo.co/38YZGJh)。 -## User Feedback and Support +## 用户反馈与支持 -If you have any problems with or questions about ONLYOFFICE Docs, please visit our official forum to find answers to your questions: [forum.onlyoffice.com](https://forum.onlyoffice.com) or you can ask and answer ONLYOFFICE development questions on [Stack Overflow](https://stackoverflow.com/questions/tagged/onlyoffice). +如果您在使用 ONLYOFFICE Docs 时遇到任何问题或有任何疑问,请访问我们的官方论坛以获取答案:[forum.onlyoffice.com](https://forum.onlyoffice.com),或者您可以在 [Stack Overflow](https://stackoverflow.com/questions/tagged/onlyoffice) 上提问和回答 ONLYOFFICE 开发相关的问题。 \ No newline at end of file diff --git a/apps/onlyoffice/README_en.md b/apps/onlyoffice/README_en.md new file mode 100644 index 000000000..666ff1e2a --- /dev/null +++ b/apps/onlyoffice/README_en.md @@ -0,0 +1,149 @@ +# 使用说明 + +部署完成后按照页面提示,在终端执行命令,开启服务。 + +# 原始相关 +*** +[![License](https://img.shields.io/badge/License-GNU%20AGPL%20V3-green.svg?style=flat)](https://www.gnu.org/licenses/agpl-3.0.en.html) ![Release](https://img.shields.io/badge/Release-v7.4.0-blue.svg?style=flat) + +## Overview + +[ONLYOFFICE Docs](https://www.onlyoffice.com/office-suite.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS)* is a free collaborative online office suite comprising viewers and editors for texts, spreadsheets and presentations, forms and PDF, fully compatible with Office Open XML formats: .docx, .xlsx, .pptx and enabling collaborative editing in real time. + +ONLYOFFICE Docs can be used as a part of [ONLYOFFICE Workspace](https://www.onlyoffice.com/workspace.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubCS) or with [third-party sync&share solutions](https://www.onlyoffice.com/all-connectors.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS) (e.g. Nextcloud, ownCloud, Seafile) to enable collaborative editing within their interface. + +It has three editions - [Community, Enterprise, and Developer](#onlyoffice-docs-editions). + +\* Starting from version 6.0, Document Server is distributed under a new name - ONLYOFFICE Docs. + +## Components + +ONLYOFFICE Docs contains the following components: + +* [server](https://github.com/ONLYOFFICE/server) - the backend server software layer which is the base for all other components of ONLYOFFICE Docs. +* [core](https://github.com/ONLYOFFICE/core) - server core components of ONLYOFFICE Docs which enable the conversion between the most popular office document formats (DOC, DOCX, ODT, RTF, TXT, PDF, HTML, EPUB, XPS, DjVu, XLS, XLSX, ODS, CSV, PPT, PPTX, ODP). +* [sdkjs](https://github.com/ONLYOFFICE/sdkjs) - JavaScript SDK for the ONLYOFFICE Docs which contains API for all the included components client-side interaction. +* [web-apps](https://github.com/ONLYOFFICE/web-apps) - the frontend for ONLYOFFICE Docs which builds the program interface and allows the user create, edit, save and export text, spreadsheet and presentation documents using the common interface of a document editor. +* [dictionaries](https://github.com/ONLYOFFICE/dictionaries) - the dictionaries of various languages used for spellchecking in ONLYOFFICE Docs. + +## Plugins + +ONLYOFFICE Docs offer support for plugins allowing developers to add specific features to the editors that are not directly related to the OOXML format. For more information see [our API](https://api.onlyoffice.com/plugin/basic) or visit github [plugins repo](https://github.com/ONLYOFFICE/onlyoffice.github.io). + +## Functionality + +ONLYOFFICE Docs includes the following editors: + +* [ONLYOFFICE Document Editor](https://www.onlyoffice.com/document-editor.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) +* [ONLYOFFICE Spreadsheet Editor](https://www.onlyoffice.com/spreadsheet-editor.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) +* [ONLYOFFICE Presentation Editor](https://www.onlyoffice.com/presentation-editor.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) +* [ONLYOFFICE Form Creator](https://www.onlyoffice.com/form-creator.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) +* [ONLYOFFICE PDF reader and converter](https://www.onlyoffice.com/pdf-reader.aspx?utm_source=GitHub&utm_medium=social&utm_campaign=GitHubDesktop) + +The editors allow you to create, edit, save and export text, spreadsheet and presentation documents and additionally have the features: + +* Collaborative editing +* Hieroglyph support +* Reviewing +* Spell-checking + +## ONLYOFFICE Docs editions + +ONLYOFFICE offers different versions of its online document editors that can be deployed on your own servers. + +ONLYOFFICE Docs (packaged as Document Server): + +* Community Edition (`onlyoffice-documentserver` package) +* Enterprise Edition (`onlyoffice-documentserver-ee` package) +* Developer Edition (`onlyoffice-documentserver-de` package) + +The table below will help you to make the right choice. + +| Pricing and licensing | Community Edition | Enterprise Edition | Developer Edition | +| ------------- | ------------- | ------------- | ------------- | +| | [Get it now](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS#docs-community) | [Start Free Trial](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS#docs-enterprise) | [Start Free Trial](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS#docs-developer) | +| Cost | FREE | [Go to the pricing page](https://www.onlyoffice.com/docs-enterprise-prices.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS) | [Go to the pricing page](https://www.onlyoffice.com/developer-edition-prices.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS) | +| Simultaneous connections | up to 20 maximum | As in chosen pricing plan | As in chosen pricing plan | +| Number of users | up to 20 recommended | As in chosen pricing plan | As in chosen pricing plan | +| Clusterization | - | + | + | +| License | GNU AGPL v.3 | Proprietary | Proprietary | +| **Support** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | +| Documentation | [Help Center](https://helpcenter.onlyoffice.com/installation/docs-community-index.aspx) | [Help Center](https://helpcenter.onlyoffice.com/installation/docs-enterprise-index.aspx) | [Help Center](https://helpcenter.onlyoffice.com/installation/docs-developer-index.aspx) | +| Standard support | [GitHub](https://github.com/ONLYOFFICE/DocumentServer/issues) or paid | One year support included | One year support included | +| Premium support | [Contact Us](mailto:sales@onlyoffice.com) | [Contact Us](mailto:sales@onlyoffice.com) | [Contact Us](mailto:sales@onlyoffice.com) | +| **Services** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | +| Conversion Service | + | + | + | +| Document Builder Service | + | + | + | +| **Interface** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | +| Tabbed interface | + | + | + | +| Dark theme | + | + | + | +| 125%, 150%, 175%, 200% scaling | + | + | + | +| White label | - | - | + | +| Integrated test example (node.js) | + | + | + | +| Mobile web editors | - | +** | +** | +| **Plugins & Macros** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | +| Plugins | + | + | + | +| Macros | + | + | + | +| **Collaborative capabilities** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | +| Two co-editing modes | + | + | + | +| Comments | + | + | + | +| Built-in chat | + | + | + | +| Review and tracking changes | + | + | + | +| Display modes of tracking changes | + | + | + | +| Version history | + | + | + | +| **Document Editor features** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | +| Font and paragraph formatting | + | + | + | +| Object insertion | + | + | + | +| Adding Content control | + | + | + | +| Editing Content control | + | + | + | +| Layout tools | + | + | + | +| Table of contents | + | + | + | +| Navigation panel | + | + | + | +| Mail Merge | + | + | + | +| Comparing Documents | + | + | + | +| **Spreadsheet Editor features** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | +| Font and paragraph formatting | + | + | + | +| Object insertion | + | + | + | +| Functions, formulas, equations | + | + | + | +| Table templates | + | + | + | +| Pivot tables | + | + | + | +| Data validation | + | + | + | +| Conditional formatting | + | + | + | +| Sparklines | + | + | + | +| Sheet Views | + | + | + | +| **Presentation Editor features** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | +| Font and paragraph formatting | + | + | + | +| Object insertion | + | + | + | +| Transitions | + | + | + | +| Presenter mode | + | + | + | +| Notes | + | + | + | +| **Form creator features** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | +| Adding form fields | + | + | + | +| Form preview | + | + | + | +| Saving as PDF | + | + | + | +| **Security features** | **Community Edition** | **Enterprise Edition** | **Developer Edition** | +| End-to-end encryption via Private Rooms*** | + | + | - | +| | [Get it now](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS#docs-community) | [Start Free Trial](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS#docs-enterprise) | [Start Free Trial](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDS#docs-developer) | + +\** If supported by DMS +\*** End-to-end encryption via Private Rooms requires ONLYOFFICE Workspace + +## How to Install on a local server + +The easiest way to install ONLYOFFICE Docs is to use **the Docker image** ([the official source code](https://github.com/ONLYOFFICE/Docker-DocumentServer)) + +* [Installing ONLYOFFICE Docs Docker](https://helpcenter.onlyoffice.com/installation/docs-community-install-docker.aspx) +* [Installing ONLYOFFICE Docs for Linux](https://helpcenter.onlyoffice.com/installation/docs-community-install-ubuntu.aspx) +* [Installing ONLYOFFICE Docs for Windows](https://helpcenter.onlyoffice.com/installation/docs-community-install-windows.aspx) + +## How to Build + +Instructions for building ONLYOFFICE Docs for a local server from source code are in [our helpcenter](https://helpcenter.onlyoffice.com/installation/docs-community-compile.aspx). + +## License + +ONLYOFFICE Docs is licensed under the GNU Affero Public License, version 3.0. See [LICENSE](https://onlyo.co/38YZGJh) for more information. + +## User Feedback and Support + +If you have any problems with or questions about ONLYOFFICE Docs, please visit our official forum to find answers to your questions: [forum.onlyoffice.com](https://forum.onlyoffice.com) or you can ask and answer ONLYOFFICE development questions on [Stack Overflow](https://stackoverflow.com/questions/tagged/onlyoffice). diff --git a/apps/open-webui/README.md b/apps/open-webui/README.md index 70932c997..422111ed3 100644 --- a/apps/open-webui/README.md +++ b/apps/open-webui/README.md @@ -54,4 +54,4 @@ networks: [![Discord](https://img.shields.io/badge/Discord-Open_WebUI-blue?logo=discord&logoColor=white)](https://discord.gg/5rJgQTnV4s) [![](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/tjbck) -Open WebUI is an extensible, feature-rich, and user-friendly self-hosted WebUI designed to operate entirely offline. It supports various LLM runners, including Ollama and OpenAI-compatible APIs. For more information, be sure to check out our [Open WebUI Documentation](https://docs.openwebui.com/). \ No newline at end of file +Open WebUI 是一个可扩展、功能丰富且用户友好的独立部署 WebUI,设计用于完全离线运行。它支持多种 LLM 运行器,包括 Ollama 和 OpenAI 兼容的 API。如需更多信息,请务必查看我们的 [Open WebUI 文档](https://docs.openwebui.com/) 。 \ No newline at end of file diff --git a/apps/openlitespeed/README.md b/apps/openlitespeed/README.md index 53c7ffab0..87819ab7d 100644 --- a/apps/openlitespeed/README.md +++ b/apps/openlitespeed/README.md @@ -8,36 +8,26 @@ # 原始相关 -OpenLiteSpeed Web Server -======== +# OpenLiteSpeed Web 服务器 -Description --------- +## 描述 -OpenLiteSpeed is a high-performance, lightweight, open source HTTP server developed and copyrighted by -LiteSpeed Technologies. Users are free to download, use, distribute, and modify OpenLiteSpeed and its -source code in accordance with the precepts of the GPLv3 license. +OpenLiteSpeed 是由 LiteSpeed Technologies 开发和版权持有的高性能、轻量级开源 HTTP 服务器。用户可以根据 GPLv3 许可证的条款自由下载、使用、分发和修改 OpenLiteSpeed 及其源代码。 -This is the official repository for OpenLiteSpeed's source code. It is maintained by LiteSpeed -Technologies. +这是 OpenLiteSpeed 源代码的官方仓库,由 LiteSpeed Technologies 维护。 -Documentation --------- +## 文档 -Users can find all OpenLiteSpeed documentation on the [OpenLiteSpeed site](https://openlitespeed.org), -but here are some quick links to important parts of the site: +用户可以在 [OpenLiteSpeed 网站](https://openlitespeed.org) 上找到所有 OpenLiteSpeed 的文档,但这里有一些链接到网站上重要部分的快速链接: -[Installation](https://openlitespeed.org/kb/category/installation/) +[安装](https://openlitespeed.org/kb/category/installation/) -[Configuration](https://openlitespeed.org/kb/category/configuration/) +[配置](https://openlitespeed.org/kb/category/configuration/) -[Road map](https://openlitespeed.org/mediawiki/index.php/Road_Map) +[路线图](https://openlitespeed.org/mediawiki/index.php/Road_Map) -[Release log](https://openlitespeed.org/release-log/) +[发布日志](https://openlitespeed.org/release-log/) -Get in Touch --------- +## 联系我们 -OpenLiteSpeed has a [Google Group](https://groups.google.com/forum/#!forum/openlitespeed-development). If -you find a bug, want to request new features, or just want to talk about OpenLiteSpeed, this is the place -to do it. +OpenLiteSpeed 有一个 [Google 组](https://groups.google.com/forum/#!forum/openlitespeed-development) 。如果您发现了一个 bug,想要请求新功能,或者只是想讨论 OpenLiteSpeed,这里就是您应该去的地方。 \ No newline at end of file diff --git a/apps/openlitespeed/README_en.md b/apps/openlitespeed/README_en.md new file mode 100644 index 000000000..53c7ffab0 --- /dev/null +++ b/apps/openlitespeed/README_en.md @@ -0,0 +1,43 @@ +# 使用说明 + +安装完成后,在容器功能界面,连接容器终端,执行以下命令创建管理员账户密码 + +``` +/usr/local/lsws/admin/misc/admpass.sh +``` + +# 原始相关 + +OpenLiteSpeed Web Server +======== + +Description +-------- + +OpenLiteSpeed is a high-performance, lightweight, open source HTTP server developed and copyrighted by +LiteSpeed Technologies. Users are free to download, use, distribute, and modify OpenLiteSpeed and its +source code in accordance with the precepts of the GPLv3 license. + +This is the official repository for OpenLiteSpeed's source code. It is maintained by LiteSpeed +Technologies. + +Documentation +-------- + +Users can find all OpenLiteSpeed documentation on the [OpenLiteSpeed site](https://openlitespeed.org), +but here are some quick links to important parts of the site: + +[Installation](https://openlitespeed.org/kb/category/installation/) + +[Configuration](https://openlitespeed.org/kb/category/configuration/) + +[Road map](https://openlitespeed.org/mediawiki/index.php/Road_Map) + +[Release log](https://openlitespeed.org/release-log/) + +Get in Touch +-------- + +OpenLiteSpeed has a [Google Group](https://groups.google.com/forum/#!forum/openlitespeed-development). If +you find a bug, want to request new features, or just want to talk about OpenLiteSpeed, this is the place +to do it. diff --git a/apps/openresume/README.md b/apps/openresume/README.md index e628e45a2..3ea6566d0 100644 --- a/apps/openresume/README.md +++ b/apps/openresume/README.md @@ -1,71 +1,72 @@ # OpenResume -OpenResume is a powerful open-source resume builder and resume parser. +OpenResume 是一个强大的开源简历制作工具和简历解析器。 -The goal of OpenResume is to provide everyone with free access to a modern professional resume design and enable anyone to apply for jobs with confidence. +OpenResume 的目标是为每个人提供免费的现代专业简历设计,并使任何人都能自信地申请工作。 -Official site: [https://open-resume.com](https://open-resume.com) +官方网站: [https://open-resume.com](https://open-resume.com) -## ⚒️ Resume Builder +## 🛠️ 简历生成器 -OpenResume's resume builder allows user to create a modern professional resume easily. +OpenResume 的简历生成器可以让用户轻松创建现代专业的简历。 ![Resume Builder Demo](https://i.ibb.co/jzcrrt8/resume-builder-demo-optimize.gif) -It has 5 Core Features: -|
**Feature**
| **Description** | -|---|---| -| **1. Real Time UI Update** | The resume PDF is updated in real time as you enter your resume information, so you can easily see the final output. | -| **2. Modern Professional Resume Design** | The resume PDF is a modern professional design that adheres to U.S. best practices and is ATS friendly to top ATS platforms such as Greenhouse and Lever. It automatically formats fonts, sizes, margins, bullet points to ensure consistency and avoid human errors. | -| **3. Privacy Focus** | The app only runs locally on your browser, meaning no sign up is required and no data ever leaves your browser, so it gives you peace of mind on your personal data. (Fun fact: Running only locally means the app still works even if you disconnect the internet.) | -| **4. Import From Existing Resume PDF** | If you already have an existing resume PDF, you have the option to import it directly, so you can update your resume design to a modern professional design in literally a few seconds. | -| **5. Successful Track Record** | OpenResume users have landed interviews and offers from top companies, such as Dropbox, Google, Meta to name a few. It has been proven to work and liken by recruiters and hiring managers. | +它有5大核心功能: -## 🔍 Resume Parser +| 功能 | 描述 | +| --- | --- | +| **1. 实时界面更新** | 你的简历 PDF 会实时更新,当你输入简历信息时,你可以轻松看到最终输出效果。 | +| **2. 现代专业简历设计** | 简历 PDF 采用了符合美国最佳实践的现代专业设计,并且对 Greenhouse 和 Lever 等顶级 ATS 平台友好。它会自动格式化字体、字号、边距和项目符号,以确保一致性并避免人为错误。 | +| **3. 注重隐私** | 该应用仅在您的浏览器中本地运行,这意味着无需注册,也不会有任何数据离开您的浏览器,因此它能让您对自己的个人数据感到安心。(有趣的是:仅在本地运行意味着即使您断开网络连接,应用仍然可以正常工作。) | +| **4. 从现有简历 PDF 导入** | 如果您已有现有的简历 PDF,可以选择直接导入,这样您可以在几秒钟内将简历设计更新为现代专业的设计。 | +| **5. 成功的跟踪记录** | OpenResume 用户已经从 Dropbox、Google、Meta 等顶级公司获得面试和录用通知。这已经被证明有效,并受到招聘人员和招聘经理的青睐。 | -OpenResume’s second component is the resume parser. For those who have an existing resume, the resume parser can help test and confirm its ATS readability. +## 🔍 简历解析器 + +OpenResume 的第二个组件是简历解析器。对于已有简历的用户,简历解析器可以帮助测试和确认其在 ATS(申请跟踪系统)中的可读性。 ![Resume Parser Demo](https://i.ibb.co/JvSVwNk/resume-parser-demo-optimize.gif) -You can learn more about the resume parser algorithm in the ["Resume Parser Algorithm Deep Dive" section](https://open-resume.com/resume-parser). +您可以在“ [简历解析器算法深度解析](https://open-resume.com/resume-parser) ”部分了解更多关于简历解析器算法的内容。 -## 📚 Tech Stack +## 技术栈 -|
**Category**
|
**Choice**
| **Descriptions** | -|---|---|---| -| **Language** | [TypeScript](https://github.com/microsoft/TypeScript) | TypeScript is JavaScript with static type checking and helps catch many silly bugs at code time. | -| **UI Library** | [React](https://github.com/facebook/react) | React’s declarative syntax and component-based architecture make it simple to develop reactive reusable components. | -| **State Management** | [Redux Toolkit](https://github.com/reduxjs/redux-toolkit) | Redux toolkit reduces the boilerplate to set up and update a central redux store, which is used in managing the complex resume state. | -| **CSS Framework** | [Tailwind CSS](https://github.com/tailwindlabs/tailwindcss) | Tailwind speeds up development by providing helpful css utilities and removing the need to context switch between tsx and css files. | -| **Web Framework** | [NextJS 13](https://github.com/vercel/next.js) | Next.js supports static site generation and helps build efficient React webpages that support SEO. | -| **PDF Reader** | [PDF.js](https://github.com/mozilla/pdf.js) | PDF.js reads content from PDF files and is used by the resume parser at its first step to read a resume PDF’s content. | -| **PDF Renderer** | [React-pdf](https://github.com/diegomura/react-pdf) | React-pdf creates PDF files and is used by the resume builder to create a downloadable PDF file. | +| 类别 | 选择 | 描述 | +| --- | --- | --- | +| 语言 | TypeScript | TypeScript 是带有静态类型检查的 JavaScript,有助于在代码编写时捕获许多愚蠢的错误。 | +| UI 库 | React | React 的声明式语法和基于组件的架构使其简单易用地开发出响应式的可重用组件。 | +| 状态管理 | Redux Toolkit | Redux toolkit 减少了设置和更新中央 Redux 店面的样板代码,从而在管理复杂的简历状态时更加高效。 | +| CSS Framework | Tailwind CSS | Tailwind 通过提供有用的 CSS 工具类加快了开发速度,并消除了在 tsx 和 css 文件之间切换的需要。 | +| Web 框架 | NextJS 13 | Next.js 支持静态网站生成,并帮助构建支持 SEO 的高效 React 网页。 | +| PDF 读者 | PDF.js | PDF.js 从 PDF 文件中读取内容,并在简历解析的第一步中用于读取简历 PDF 的内容。 | +| PDF 渲染器 | React-pdf | React-pdf 创建 PDF 文件,并且被简历生成器用于创建可下载的 PDF 文件。 | -## 📁 Project Structure +## 📁 项目结构 -OpenResume is created with the NextJS web framework and follows its project structure. The source code can be found in `src/app`. There are a total of 4 page routes as shown in the table below. (Code path is relative to `src/app`) +OpenResume 使用 NextJS Web 框架并遵循其项目结构。源代码位于 `src/app`。总共有 4 个页面路由,如下表所示。(代码路径相对于 `src/app`) -|
**Page Route**
| **Code Path** | **Description** | -|---|---|---| -| / | /page.tsx | Home page that contains hero, auto typing resume, steps, testimonials, logo cloud, etc | -| /resume-import | /resume-import/page.tsx | Resume import page, where you can choose to import data from an existing resume PDF. The main component used is `ResumeDropzone` (`/components/ResumeDropzone.tsx`) | -| /resume-builder | /resume-builder/page.tsx | Resume builder page to build and download a resume PDF. The main components used are `ResumeForm` (`/components/ResumeForm`) and `Resume` (`/components/Resume`) | -| /resume-parser | /resume-parser/page.tsx | Resume parser page to test a resume’s AST readability. The main library util used is `parseResumeFromPdf` (`/lib/parse-resume-from-pdf`) | +| 页面路由 | 代码路径 | 描述 | +| --- | --- | --- | +| / | /page.tsx | 首页包含英雄横幅、自动输入简历、步骤、客户评价、logo 云等内容 | +| /resume-import | /resume-import/page.tsx | 用于导入简历的页面,可以从中选择从现有简历 PDF 导入数据。主要使用的组件是 ResumeDropzone( /components/ResumeDropzone.tsx ) | +| /resume-builder | /resume-builder/page.tsx | 简历构建页面,用于构建和下载简历 PDF。主要使用的组件是 ResumeForm(/components/ResumeForm)和 Resume(/components/Resume) | +| /resume-parser | /resume-parser/page.tsx | 简历解析页面,用于测试简历的 AST 可读性。主要使用的库是 parseResumeFromPdf (/lib/parse-resume-from-pdf) | -## 💻 Local Development +## 💻 本地开发 -### Method 1: npm +### 方法 1: npm -1. Download the repo `git clone https://github.com/xitanggg/open-resume.git` -2. Change the directory `cd open-resume` -3. Install the dependency `npm install` -4. Start a development server `npm run dev` -5. Open your browser and visit [http://localhost:3000](http://localhost:3000) to see OpenResume live +1. 下载仓库 `git clone https://github.com/xitanggg/open-resume.git` +2. 更改目录 `cd open-resume` +3. 安装依赖 `npm install` +4. 启动开发服务器 `npm run dev` +5. 打开浏览器并访问 [http://localhost:3000](http://localhost:3000) 查看 OpenResume 在线版本 -### Method 2: Docker +### 方法 2: Docker -1. Download the repo `git clone https://github.com/xitanggg/open-resume.git` -2. Change the directory `cd open-resume` -3. Build the container `docker build -t open-resume .` -4. Start the container `docker run -p 3000:3000 open-resume` -5. Open your browser and visit [http://localhost:3000](http://localhost:3000) to see OpenResume live \ No newline at end of file +1. 下载仓库 `git clone https://github.com/xitanggg/open-resume.git` +2. 切换目录 `cd open-resume` +3. 构建容器 `docker build -t open-resume .` +4. 启动容器 `docker run -p 3000:3000 open-resume` +5. 打开浏览器并访问 [http://localhost:3000](http://localhost:3000) 查看 OpenResume 在线版本 \ No newline at end of file diff --git a/apps/openresume/README_en.md b/apps/openresume/README_en.md new file mode 100644 index 000000000..e628e45a2 --- /dev/null +++ b/apps/openresume/README_en.md @@ -0,0 +1,71 @@ +# OpenResume + +OpenResume is a powerful open-source resume builder and resume parser. + +The goal of OpenResume is to provide everyone with free access to a modern professional resume design and enable anyone to apply for jobs with confidence. + +Official site: [https://open-resume.com](https://open-resume.com) + +## ⚒️ Resume Builder + +OpenResume's resume builder allows user to create a modern professional resume easily. + +![Resume Builder Demo](https://i.ibb.co/jzcrrt8/resume-builder-demo-optimize.gif) + +It has 5 Core Features: +|
**Feature**
| **Description** | +|---|---| +| **1. Real Time UI Update** | The resume PDF is updated in real time as you enter your resume information, so you can easily see the final output. | +| **2. Modern Professional Resume Design** | The resume PDF is a modern professional design that adheres to U.S. best practices and is ATS friendly to top ATS platforms such as Greenhouse and Lever. It automatically formats fonts, sizes, margins, bullet points to ensure consistency and avoid human errors. | +| **3. Privacy Focus** | The app only runs locally on your browser, meaning no sign up is required and no data ever leaves your browser, so it gives you peace of mind on your personal data. (Fun fact: Running only locally means the app still works even if you disconnect the internet.) | +| **4. Import From Existing Resume PDF** | If you already have an existing resume PDF, you have the option to import it directly, so you can update your resume design to a modern professional design in literally a few seconds. | +| **5. Successful Track Record** | OpenResume users have landed interviews and offers from top companies, such as Dropbox, Google, Meta to name a few. It has been proven to work and liken by recruiters and hiring managers. | + +## 🔍 Resume Parser + +OpenResume’s second component is the resume parser. For those who have an existing resume, the resume parser can help test and confirm its ATS readability. + +![Resume Parser Demo](https://i.ibb.co/JvSVwNk/resume-parser-demo-optimize.gif) + +You can learn more about the resume parser algorithm in the ["Resume Parser Algorithm Deep Dive" section](https://open-resume.com/resume-parser). + +## 📚 Tech Stack + +|
**Category**
|
**Choice**
| **Descriptions** | +|---|---|---| +| **Language** | [TypeScript](https://github.com/microsoft/TypeScript) | TypeScript is JavaScript with static type checking and helps catch many silly bugs at code time. | +| **UI Library** | [React](https://github.com/facebook/react) | React’s declarative syntax and component-based architecture make it simple to develop reactive reusable components. | +| **State Management** | [Redux Toolkit](https://github.com/reduxjs/redux-toolkit) | Redux toolkit reduces the boilerplate to set up and update a central redux store, which is used in managing the complex resume state. | +| **CSS Framework** | [Tailwind CSS](https://github.com/tailwindlabs/tailwindcss) | Tailwind speeds up development by providing helpful css utilities and removing the need to context switch between tsx and css files. | +| **Web Framework** | [NextJS 13](https://github.com/vercel/next.js) | Next.js supports static site generation and helps build efficient React webpages that support SEO. | +| **PDF Reader** | [PDF.js](https://github.com/mozilla/pdf.js) | PDF.js reads content from PDF files and is used by the resume parser at its first step to read a resume PDF’s content. | +| **PDF Renderer** | [React-pdf](https://github.com/diegomura/react-pdf) | React-pdf creates PDF files and is used by the resume builder to create a downloadable PDF file. | + +## 📁 Project Structure + +OpenResume is created with the NextJS web framework and follows its project structure. The source code can be found in `src/app`. There are a total of 4 page routes as shown in the table below. (Code path is relative to `src/app`) + +|
**Page Route**
| **Code Path** | **Description** | +|---|---|---| +| / | /page.tsx | Home page that contains hero, auto typing resume, steps, testimonials, logo cloud, etc | +| /resume-import | /resume-import/page.tsx | Resume import page, where you can choose to import data from an existing resume PDF. The main component used is `ResumeDropzone` (`/components/ResumeDropzone.tsx`) | +| /resume-builder | /resume-builder/page.tsx | Resume builder page to build and download a resume PDF. The main components used are `ResumeForm` (`/components/ResumeForm`) and `Resume` (`/components/Resume`) | +| /resume-parser | /resume-parser/page.tsx | Resume parser page to test a resume’s AST readability. The main library util used is `parseResumeFromPdf` (`/lib/parse-resume-from-pdf`) | + +## 💻 Local Development + +### Method 1: npm + +1. Download the repo `git clone https://github.com/xitanggg/open-resume.git` +2. Change the directory `cd open-resume` +3. Install the dependency `npm install` +4. Start a development server `npm run dev` +5. Open your browser and visit [http://localhost:3000](http://localhost:3000) to see OpenResume live + +### Method 2: Docker + +1. Download the repo `git clone https://github.com/xitanggg/open-resume.git` +2. Change the directory `cd open-resume` +3. Build the container `docker build -t open-resume .` +4. Start the container `docker run -p 3000:3000 open-resume` +5. Open your browser and visit [http://localhost:3000](http://localhost:3000) to see OpenResume live \ No newline at end of file diff --git a/apps/openvpn-as/README.md b/apps/openvpn-as/README.md index 85e21642e..577329c20 100644 --- a/apps/openvpn-as/README.md +++ b/apps/openvpn-as/README.md @@ -1,17 +1,21 @@ # 使用说明 管理界面位于 `https://IP:控制台端口/admin`,默认用户为 `openvpn` ,密码可以在 docker 日志中找到(在第一次初始运行时) -- 类似: + +* 类似: + ``` Auto-generated pass = "Cj0YsADgHA6n". Setting in db... ``` -*** + +* * * ![openvpn-as](https://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/OpenVPN_logo.svg/2560px-OpenVPN_logo.svg.png) -# OpenVPN Access Server -[Openvpn-as](https://openvpn.net/access-server/) OpenVPN Access Server, our self-hosted solution, simplifies the rapid deployment of a secure remote access and site-to-site solution with a web-based administration interface and built-in OpenVPN Connect app distribution with bundled connection profiles. +# OpenVPN 访问服务器 -We built OpenVPN Access Server using the OpenVPN open source core and additional open source software like OpenSSL. This provides full transparency of the critical security and protocol functionality. The community edition creates secure VPN connections using a custom security protocol that utilizes SSL/TLS. With over 60 million downloads to date, the community edition is a community-supported OSS (open-source software) project. +[openvpn-as](https://openvpn.net/access-server/) OpenVPN 访问服务器,我们的自助托管解决方案,通过基于网络的管理界面和内置的 OpenVPN Connect 应用分发功能(附带捆绑的连接配置文件),简化了安全远程访问和站点到站点解决方案的快速部署。 -OpenVPN Access Server maintains compatibility with the open source project, making the deployed VPN immediately usable with OpenVPN protocol-compatible software on various routers and operating systems, as well as Linux. The official OpenVPN Inc.- developed client, OpenVPN Connect, is available for Windows, macOS, Linux, and mobile OS (Android and iOS) environments. +我们使用 OpenVPN 开源核心和 OpenSSL 等开源软件构建了 OpenVPN 访问服务器。这提供了对关键安全和协议功能的完全透明性。社区版使用自定义安全协议创建安全的 VPN 连接,该协议利用了 SSL/TLS。截至目前,社区版已有超过 6000 万次下载,是一个由社区支持的开源软件(OSS)项目。 + +OpenVPN 访问服务器保持与开源项目的兼容性,使部署的 VPN 立即可以在各种路由器和操作系统(包括 Linux)上与 OpenVPN 协议兼容的软件使用。官方的 OpenVPN Inc. 开发的客户端 OpenVPN Connect 可用于 Windows、macOS、Linux 和移动操作系统(Android 和 iOS)环境。 \ No newline at end of file diff --git a/apps/openvpn-as/README_en.md b/apps/openvpn-as/README_en.md new file mode 100644 index 000000000..85e21642e --- /dev/null +++ b/apps/openvpn-as/README_en.md @@ -0,0 +1,17 @@ +# 使用说明 + +管理界面位于 `https://IP:控制台端口/admin`,默认用户为 `openvpn` ,密码可以在 docker 日志中找到(在第一次初始运行时) +- 类似: +``` + Auto-generated pass = "Cj0YsADgHA6n". Setting in db... +``` +*** + +![openvpn-as](https://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/OpenVPN_logo.svg/2560px-OpenVPN_logo.svg.png) +# OpenVPN Access Server + +[Openvpn-as](https://openvpn.net/access-server/) OpenVPN Access Server, our self-hosted solution, simplifies the rapid deployment of a secure remote access and site-to-site solution with a web-based administration interface and built-in OpenVPN Connect app distribution with bundled connection profiles. + +We built OpenVPN Access Server using the OpenVPN open source core and additional open source software like OpenSSL. This provides full transparency of the critical security and protocol functionality. The community edition creates secure VPN connections using a custom security protocol that utilizes SSL/TLS. With over 60 million downloads to date, the community edition is a community-supported OSS (open-source software) project. + +OpenVPN Access Server maintains compatibility with the open source project, making the deployed VPN immediately usable with OpenVPN protocol-compatible software on various routers and operating systems, as well as Linux. The official OpenVPN Inc.- developed client, OpenVPN Connect, is available for Windows, macOS, Linux, and mobile OS (Android and iOS) environments. diff --git a/apps/passwordpusher/README.md b/apps/passwordpusher/README.md index 80c037fea..d91b08a50 100644 --- a/apps/passwordpusher/README.md +++ b/apps/passwordpusher/README.md @@ -1,45 +1,35 @@ -
- [![Password Pusher Front Page](https://pwpush.fra1.cdn.digitaloceanspaces.com/branding/logos/horizontal-logo-small.png)](https://pwpush.com/) -__Simple & Secure Password Sharing with Auto-Expiration of Shared Items__ +**简单安全的密码共享,共享项目自动过期** -[![](https://badgen.net/twitter/follow/pwpush)](https://twitter.com/pwpush) -![](https://badgen.net/github/stars/pglombardo/PasswordPusher) -[![](https://badgen.net/uptime-robot/month/m789048867-17b5770ccd78208645662f1f)](https://stats.uptimerobot.com/6xJjNtPr93) -[![](https://badgen.net/docker/pulls/pglombardo/pwpush-ephemeral)](https://hub.docker.com/repositories) +[![](https://badgen.net/twitter/follow/pwpush)](https://twitter.com/pwpush) ![](https://badgen.net/github/stars/pglombardo/PasswordPusher) [![](https://badgen.net/uptime-robot/month/m789048867-17b5770ccd78208645662f1f)](https://stats.uptimerobot.com/6xJjNtPr93) [![](https://badgen.net/docker/pulls/pglombardo/pwpush-ephemeral)](https://hub.docker.com/repositories) -[![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/pglombardo/PasswordPusher/ruby-tests.yml)](https://github.com/pglombardo/PasswordPusher/actions/workflows/ruby-tests.yml) -[![Dependencies Status](https://img.shields.io/badge/dependencies-up%20to%20date-brightgreen.svg)](https://github.com/pglombardo/pwpush-cli/pulls?utf8=%E2%9C%93&q=is%3Apr%20author%3Aapp%2Fdependabot) -[![Semantic Versions](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--versions-e10079.svg)](https://github.com/pglombardo/pwpush-cli/releases) -[![License](https://img.shields.io/github/license/pglombardo/PasswordPusher)](https://github.com/pglombardo/pwpush/blob/master/LICENSE) +[![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/pglombardo/PasswordPusher/ruby-tests.yml)](https://github.com/pglombardo/PasswordPusher/actions/workflows/ruby-tests.yml) [![Dependencies Status](https://img.shields.io/badge/dependencies-up%20to%20date-brightgreen.svg)](https://github.com/pglombardo/pwpush-cli/pulls?utf8=%E2%9C%93&q=is%3Apr%20author%3Aapp%2Fdependabot) [![Semantic Versions](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--versions-e10079.svg)](https://github.com/pglombardo/pwpush-cli/releases) [![License](https://img.shields.io/github/license/pglombardo/PasswordPusher)](https://github.com/pglombardo/pwpush/blob/master/LICENSE) -
+* * * ------- +为您的用户提供默认安全工具。 -Give your users the tools to be secure by default. +密码推送是一个开源应用程序,用于通过互联网传递密码。密码链接在经过一定次数的查看和/或经过一定时间后会过期。 -Password Pusher is an opensource application to communicate passwords over the web. Links to passwords expire after a certain number of views and/or time has passed. +托管在 [pwpush.com](https://pwpush.com),但您也可以通过几个简单的步骤轻松运行自己的私有实例。 -Hosted at [pwpush.com](https://pwpush.com) but you can also easily run your own private instance with just a few steps. - -* __Easy-to-install:__ Host your own via Docker, a cloud service or just use [pwpush.com](https://pwpush.com) -* __Opensource:__ No blackbox code. Only trusted, tested and reviewed opensource code. -* __Versatile:__ Push passwords, text, files or URLs that autoexpire and self delete. -* __Audit logging:__ Track and control what you've shared and see who has viewed it. -* __Encrypted storage:__ All sensitive data is stored encrypted and deleted entirely once expired. -* __Host your own:__ Database backed or ephemeral, easily run your own instance isolated from the world. -* __JSON API:__ Raw JSON API available for 3rd party tools or command line via `curl` or `wget`. -* __Command line interface:__ Automate your password distribution with CLI tools or custom scripts. -* __Logins__: Invite your colleagues and track what is pushed and who retrieved it. -* __Internationalized:__ 28 language translations are bundled in. Easily selectable via UI or URL -* __Themes:__ [26 themes](https://github.com/pglombardo/PasswordPusher/blob/master/Themes.md) bundled in courtesy of Bootswatch. Select with a simple environment variable. -* __Unbranded delivery page:__ No logos, superfluous text or unrelated links to confuse end users. -* __Customizable:__ Change text and default options via environment variables. -* __Light & dark themes:__ Via CSS @media integration, the default site theme follows your local preferences. -* __Rebrandable:__ Customize the site name, tagline and logo to fit your environment. -* __Custom CSS:__ Bundle in your own custom CSS to add your own design. -* __10 Years Old:__ Password Pusher has securely delivered millions and millions of passwords in its 10 year history. -* __Actively Maintained:__ I happily work for the good karma of the great IT/Security community. -* __Honest Software:__ Opensource written and maintained by [me](https://github.com/pglombardo) with the help of some great contributors. No organizations, corporations or evil agendas. +* **易于安装:** 通过 Docker、云服务托管,或直接使用 [pwpush.com](https://pwpush.com) +* **开源:** 无黑盒代码。仅使用经过信任、测试和审查的开源代码。 +* **多功能:** 推送密码、文本、文件或自动过期并自我删除的 URL。 +* **审计日志:** 跟踪和控制您共享的内容,并查看谁已查看。 +* **加密存储:** 所有敏感数据都加密存储,一旦过期将完全删除。 +* **自行托管:** 数据库支持或短暂存储,轻松运行自己的实例,与世界隔离。 +* **JSON API:** 提供原始 JSON API,可通过 `curl` 或 `wget` 进行第三方工具或命令行访问。 +* **命令行界面:** 使用 CLI 工具或自定义脚本自动化密码分发。 +* **登录** :邀请您的同事并跟踪推送的内容以及谁取回了它。 +* **国际化:** 包含 28 种语言的翻译。可通过 UI 或 URL 轻松选择。 +* **主题:**[26 种主题](https://github.com/pglombardo/PasswordPusher/blob/master/Themes.md)由 Bootswatch 提供。通过简单的环境变量选择。 +* **无品牌交付页面:** 无 logo、多余的文本或无关链接,以免混淆最终用户。 +* **可定制:** 通过环境变量更改文本和默认选项。 +* **浅色与深色主题:** 通过 CSS @media 集成,默认网站主题遵循您的本地偏好。 +* **可重新品牌化:** 自定义网站名称、标语和标志以适应您的环境。 +* **自定义 CSS:** 捆绑您自己的自定义 CSS 以添加您的设计。 +* **10 年历史:** 密码推送器在其 10 年的历史中安全地交付了数以百万计的密码。 +* **积极维护:** 我为伟大的 IT/安全社区的好运气而高兴地工作。 +* **诚信软件:** 由 [我](https://github.com/pglombardo)编写和维护的开源软件,得到了一些杰出贡献者的帮助。没有组织、公司或邪恶议程。 \ No newline at end of file diff --git a/apps/passwordpusher/README_en.md b/apps/passwordpusher/README_en.md new file mode 100644 index 000000000..80c037fea --- /dev/null +++ b/apps/passwordpusher/README_en.md @@ -0,0 +1,45 @@ +
+ +[![Password Pusher Front Page](https://pwpush.fra1.cdn.digitaloceanspaces.com/branding/logos/horizontal-logo-small.png)](https://pwpush.com/) + +__Simple & Secure Password Sharing with Auto-Expiration of Shared Items__ + +[![](https://badgen.net/twitter/follow/pwpush)](https://twitter.com/pwpush) +![](https://badgen.net/github/stars/pglombardo/PasswordPusher) +[![](https://badgen.net/uptime-robot/month/m789048867-17b5770ccd78208645662f1f)](https://stats.uptimerobot.com/6xJjNtPr93) +[![](https://badgen.net/docker/pulls/pglombardo/pwpush-ephemeral)](https://hub.docker.com/repositories) + +[![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/pglombardo/PasswordPusher/ruby-tests.yml)](https://github.com/pglombardo/PasswordPusher/actions/workflows/ruby-tests.yml) +[![Dependencies Status](https://img.shields.io/badge/dependencies-up%20to%20date-brightgreen.svg)](https://github.com/pglombardo/pwpush-cli/pulls?utf8=%E2%9C%93&q=is%3Apr%20author%3Aapp%2Fdependabot) +[![Semantic Versions](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--versions-e10079.svg)](https://github.com/pglombardo/pwpush-cli/releases) +[![License](https://img.shields.io/github/license/pglombardo/PasswordPusher)](https://github.com/pglombardo/pwpush/blob/master/LICENSE) + +
+ +------ + +Give your users the tools to be secure by default. + +Password Pusher is an opensource application to communicate passwords over the web. Links to passwords expire after a certain number of views and/or time has passed. + +Hosted at [pwpush.com](https://pwpush.com) but you can also easily run your own private instance with just a few steps. + +* __Easy-to-install:__ Host your own via Docker, a cloud service or just use [pwpush.com](https://pwpush.com) +* __Opensource:__ No blackbox code. Only trusted, tested and reviewed opensource code. +* __Versatile:__ Push passwords, text, files or URLs that autoexpire and self delete. +* __Audit logging:__ Track and control what you've shared and see who has viewed it. +* __Encrypted storage:__ All sensitive data is stored encrypted and deleted entirely once expired. +* __Host your own:__ Database backed or ephemeral, easily run your own instance isolated from the world. +* __JSON API:__ Raw JSON API available for 3rd party tools or command line via `curl` or `wget`. +* __Command line interface:__ Automate your password distribution with CLI tools or custom scripts. +* __Logins__: Invite your colleagues and track what is pushed and who retrieved it. +* __Internationalized:__ 28 language translations are bundled in. Easily selectable via UI or URL +* __Themes:__ [26 themes](https://github.com/pglombardo/PasswordPusher/blob/master/Themes.md) bundled in courtesy of Bootswatch. Select with a simple environment variable. +* __Unbranded delivery page:__ No logos, superfluous text or unrelated links to confuse end users. +* __Customizable:__ Change text and default options via environment variables. +* __Light & dark themes:__ Via CSS @media integration, the default site theme follows your local preferences. +* __Rebrandable:__ Customize the site name, tagline and logo to fit your environment. +* __Custom CSS:__ Bundle in your own custom CSS to add your own design. +* __10 Years Old:__ Password Pusher has securely delivered millions and millions of passwords in its 10 year history. +* __Actively Maintained:__ I happily work for the good karma of the great IT/Security community. +* __Honest Software:__ Opensource written and maintained by [me](https://github.com/pglombardo) with the help of some great contributors. No organizations, corporations or evil agendas. diff --git a/apps/pgadmin4/README.md b/apps/pgadmin4/README.md index d2c503884..f23fc7ef0 100644 --- a/apps/pgadmin4/README.md +++ b/apps/pgadmin4/README.md @@ -1,119 +1,94 @@ -# pgAdmin 4 +# pgAdmin 4 -pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the -PostgreSQL (http://www.postgresql.org) database. +pgAdmin 4 是 PostgreSQL([http://www.postgresql.org](http://www.postgresql.org))数据库的流行管理工具 pgAdmin3 的重写版本。 -In the following documentation and examples, *$PGADMIN4_SRC/* is used to denote -the top-level directory of a copy of the pgAdmin source tree, either from a -tarball or a git checkout. +在以下文档和示例中,*$PGADMIN4\_SRC/* 用于表示 pgAdmin 源代码树的顶级目录,可以是从 tarball 或 git 检出得到的。 -## Architecture +## 架构 -pgAdmin 4 is written as a web application in Python, using jQuery and Bootstrap -for the client side processing and UI. On the server side, Flask is being -utilised. +pgAdmin 4 是用 Python 编写的网络应用程序,使用 jQuery 和 Bootstrap 进行客户端处理和 UI。在服务器端,使用了 Flask。 -Although developed using web technologies, pgAdmin 4 can be deployed either on -a web server using a browser, or standalone on a workstation. The runtime/ -subdirectory contains an NWjs based runtime application intended to allow this, -which will execute the Python server and display the UI. +尽管是使用网络技术开发的,pgAdmin 4 可以部署在使用浏览器的 web 服务器上,也可以独立部署在工作站上。runtime/ 子目录包含一个基于 NWjs 的运行时应用程序,旨在允许这种部署,该应用程序将执行 Python 服务器并显示 UI。 -## Building the Runtime +## 构建运行时 -To build the runtime, the following packages must be installed: +要构建运行时,必须安装以下包: -* NodeJS 12+ -* Yarn +* NodeJS 12+ +* Yarn -Change into the runtime directory, and run *yarn install*. This will install the -dependencies required. +进入运行时目录,并运行 \`*yarn install*\`。这将安装所需的依赖项。 -In order to use the runtime in a development environment, you'll need to copy -*dev_config.json.in* file to *dev_config.json*, and edit the paths to the Python -executable and *pgAdmin.py* file, otherwise the runtime will use the default -paths it would expect to find in the standard package for your platform. +为了在开发环境中使用运行时,你需要将 *dev\_config.json.in* 文件复制为 *dev\_config.json*,并编辑 Python 可执行文件和 *pgAdmin.py* 文件的路径,否则运行时将使用默认路径,这些路径是它期望在标准包中找到的路径。 -You can then execute the runtime by running something like: +然后你可以通过运行类似以下命令来执行运行时: ```bash node_modules/nw/nwjs/nw . ``` -or on macOS: +或者在 macOS 上运行: ```bash node_modules/nw/nwjs/nwjs.app/Contents/MacOS/nwjs . ``` -# Configuring the Python Environment +# 配置 Python 环境 -In order to run the Python code, a suitable runtime environment is required. -Python version 3.7 and later are currently supported. It is recommended that a -Python Virtual Environment is setup for this purpose, rather than using the -system Python environment. On Linux and Mac systems, the process is fairly -simple - adapt as required for your distribution: +为了运行 Python 代码,需要一个合适的运行时环境。目前支持 Python 3.7 及以上版本。建议为此目的设置一个 Python 虚拟环境,而不是使用系统 Python 环境。在 Linux 和 Mac 系统上,过程相当简单——根据你的发行版进行相应的调整: -1. Create a virtual environment in an appropriate directory. The last argument is - the name of the environment; that can be changed as desired: - - ```bash - $ python3 -m venv venv - ``` - -2. Now activate the virtual environment: - - ```bash - $ source venv/bin/activate - ``` - -3. Some of the components used by pgAdmin require a very recent version of *pip*, - so update that to the latest: - - ```bash - $ pip install --upgrade pip - ``` - -4. Ensure that a PostgreSQL installation's bin/ directory is in the path (so - pg_config can be found for building psycopg3), and install the required - packages: - - ```bash - (venv) $ PATH=$PATH:/usr/local/pgsql/bin pip install -r $PGADMIN4_SRC/requirements.txt - ``` - - If you are planning to run the regression tests, you also need to install - additional requirements from web/regression/requirements.txt: - - ```bash - (venv) $ pip install -r $PGADMIN4_SRC/web/regression/requirements.txt - ``` - -5. Create a local configuration file for pgAdmin. Edit - $PGADMIN4_SRC/web/config_local.py and add any desired configuration options - (use the config.py file as a reference - any settings duplicated in - config_local.py will override those in config.py). A typical development - configuration may look like: - +1. 在合适的目录下创建一个虚拟环境。最后一个参数是环境的名称;可以根据需要更改: + + ```bash + $ python3 -m venv venv + ``` + +2. 现在激活虚拟环境: + + ```bash + $ source venv/bin/activate + ``` + +3. pgAdmin 使用的一些组件需要非常新的版本的 *pip*,因此请将其更新到最新版本: + + ```bash + $ pip install --upgrade pip + ``` + +4. 确保 PostgreSQL 安装的 bin/目录在路径中(以便在构建 psycopg3 时可以找到 pg\_config),并安装所需的包: + + ```bash + (venv) $ PATH=$PATH:/usr/local/pgsql/bin pip install -r $PGADMIN4_SRC/requirements.txt + ``` + + 如果你计划运行回归测试,还需要安装 web/regression/requirements.txt 中的额外要求: + + ```bash + (venv) $ pip install -r $PGADMIN4_SRC/web/regression/requirements.txt + ``` + +5. 为 pgAdmin 创建一个本地配置文件。编辑$PGADMIN4\_SRC/web/config\_local.py,并添加任何所需的配置选项(以 config.py 文件为参考 - config\_local.py 中任何重复的设置将覆盖 config.py 中的设置)。典型的开发配置可能如下: + ```python from config import * - + # Debug mode DEBUG = True - + # App mode SERVER_MODE = True - + # Enable the test module MODULE_BLACKLIST.remove('test') - + # Log CONSOLE_LOG_LEVEL = DEBUG FILE_LOG_LEVEL = DEBUG - + DEFAULT_SERVER = '127.0.0.1' - + UPGRADE_CHECK_ENABLED = True - + # Use a different config DB for each server mode. if SERVER_MODE == False: SQLITE_PATH = os.path.join( @@ -125,47 +100,34 @@ simple - adapt as required for your distribution: DATA_DIR, 'pgadmin4-server.db' ) - ``` - - This configuration allows easy switching between server and desktop modes - for testing. + ``` + + 此配置允许在测试时轻松切换服务器模式和桌面模式。 + +6. 在服务器模式下,配置数据库的初始设置是交互式的,而在桌面模式下是非交互式的。你可以通过运行以下命令来运行它: + + ```bash + (venv) $ python3 $PGADMIN4_SRC/web/setup.py + ``` + + 或者启动 pgAdmin 4: + + ```bash + (venv) $ python3 $PGADMIN4_SRC/web/pgAdmin4.py + ``` + + 虽然可以在桌面模式下通过运行运行时自动运行设置,但在服务器模式下这将不起作用,因为运行时不允许与设置程序进行命令行交互。 + -6. The initial setup of the configuration database is interactive in server - mode, and non-interactive in desktop mode. You can run it either by - running: +此时,你可以在命令行中以服务器或桌面模式运行 pgAdmin 4,并通过终端中显示的 URL 从 web 浏览器访问它。 - ```bash - (venv) $ python3 $PGADMIN4_SRC/web/setup.py - ``` - - or by starting pgAdmin 4: +在 Windows 上设置环境稍微复杂一些,详情请参见 *pkg/win32/README.txt*。 - ```bash - (venv) $ python3 $PGADMIN4_SRC/web/pgAdmin4.py - ``` - - Whilst it is possible to automatically run setup in desktop mode by running - the runtime, that will not work in server mode as the runtime doesn't allow - command line interaction with the setup program. +# 构建 Web 资产 -At this point you will be able to run pgAdmin 4 from the command line in either -server or desktop mode, and access it from a web browser using the URL shown in -the terminal once pgAdmin has started up. +pgAdmin 依赖于多个第三方 Javascript 库。这些库连同它自己的 Javascript 代码、SCSS/CSS 代码和图片需要被打包成一个“bundle”,然后传输到浏览器执行和渲染。这种方式比每次客户端需要时单独请求每个资源要高效得多。 -Setup of an environment on Windows is somewhat more complicated unfortunately, -please see *pkg/win32/README.txt* for complete details. - -# Building the Web Assets - -pgAdmin is dependent on a number of third party Javascript libraries. These, -along with it's own Javascript code, SCSS/CSS code and images must be -compiled into a "bundle" which is transferred to the browser for execution -and rendering. This is far more efficient than simply requesting each -asset as it's needed by the client. - -To create the bundle, you will need the 'yarn' package management tool to be -installed. Then, you can run the following commands on a *nix system to -download the required packages and build the bundle: +要创建这个 bundle,你需要安装 'yarn' 包管理工具。然后,你可以在类 Unix 系统上运行以下命令来下载所需的包并构建 bundle: ```bash (venv) $ cd $PGADMIN4_SRC @@ -173,8 +135,7 @@ download the required packages and build the bundle: (venv) $ make bundle ``` -On Windows systems (where "make" is not available), the following commands -can be used: +在 Windows 系统(其中“make”不可用)上,可以使用以下命令: ``` C:\> cd $PGADMIN4_SRC\web @@ -182,26 +143,15 @@ C:\$PGADMIN4_SRC\web> yarn install C:\$PGADMIN4_SRC\web> yarn run bundle ``` -# Creating pgAdmin themes +# 创建 pgAdmin 主题 -To create a pgAdmin theme, you need to create a directory under -*web/pgadmin/static/scss/resources*. -Copy the sample file *_theme.variables.scss.sample* to the new directory and -rename it to *_theme.variables.scss*. Change the desired hexadecimal values of -the colors and bundle pgAdmin. You can also add a preview image in the theme -directory with the name as *\_preview.png*. It is recommended that the -preview image should not be larger in size as it may take time to load on slow -networks. Run the *yarn run bundle* and you're good to go. No other changes are -required, pgAdmin bundle will read the directory and create other required -entries to make them available in preferences. +要创建一个 pgAdmin 主题,您需要在 *web/pgadmin/static/scss/resources* 下创建一个目录。复制示例文件 *\_theme.variables.scss.sample* 到新目录并重命名为 *\_theme.variables.scss*。更改所需的颜色十六进制值并打包 pgAdmin。您还可以在主题目录中添加一个预览图片,文件名为 *\_preview.png*。建议预览图片不要过大,以免在慢速网络上加载时间过长。运行 *yarn run bundle* 即可。无需其他更改,pgAdmin 打包程序会读取该目录并创建其他所需条目以供偏好设置使用。 -The name of the theme is derived from the directory name. Underscores (_) and -hyphens (-) will be replaced with spaces and the result will be camel cased. +主题的名称来源于目录名称。下划线 (\_) 和破折号 (-) 将被替换为空格,并且结果将被转换为驼峰命名法。 -# Building the documentation +# 编写文档 -In order to build the docs, an additional Python package is required in the -virtual environment. This can be installed with the pip package manager: +为了构建文档,虚拟环境中还需要安装一个额外的 Python 包。这可以通过 pip 包管理器安装: ```bash $ source venv/bin/activate @@ -209,78 +159,70 @@ $ source venv/bin/activate (venv) $ pip install sphinxcontrib-youtube ``` -The docs can then be built using the Makefile in *$PGADMIN4_SRC*, e.g. +文档可以使用位于 *$PGADMIN4\_SRC* 的 Makefile 构建,例如: ```bash (venv) $ make docs ``` -The output can be found in *$PGADMIN4_SRC/docs/en_US/_build/html/index.html* +构建后的输出可以在 *$PGADMIN4\_SRC/docs/en\_US/\_build/html/index.html* 找到 -# Building packages +# 构建包 -Most packages can be built using the Makefile in $PGADMIN4_SRC, provided all -the setup and configuration above has been completed. +大多数包可以使用位于 $PGADMIN4\_SRC 的 Makefile 构建,前提是已经完成了上述的所有设置和配置。 -To build a source tarball: +要构建源代码 tarball: ```bash (venv) $ make src ``` -To build a PIP Wheel, activate either a Python 3 virtual environment, configured -with all the required packages, and then run: +要构建一个 PIP 轮子,激活一个配置了所有所需包的 Python 3 虚拟环境,然后运行: ```bash (venv) $ make pip ``` -To build the macOS AppBundle, please see *pkg/mac/README*. +要构建 macOS 应用包,请参阅 *pkg/mac/README*。 -To build the Windows installer, please see *pkg/win32/README.txt*. -# Create Database Migrations +要构建 Windows 安装程序,请参阅 *pkg/win32/README.txt*。 -In order to make changes to the SQLite DB, navigate to the 'web' directory: +# 创建数据库迁移 + +为了对 SQLite 数据库进行更改,请导航到 'web' 目录: ```bash (venv) $ cd $PGADMIN4_SRC/web ``` -Create a migration file with the following command: +使用以下命令创建一个迁移文件: ```bash (venv) $ FLASK_APP=pgAdmin4.py flask db revision ``` -This will create a file in: $PGADMIN4_SRC/web/migrations/versions/ . -Add any changes to the 'upgrade' function. -Increment the SCHEMA_VERSION in $PGADMIN4_SRC/web/pgadmin/model/__init__.py file. +这将在 $PGADMIN4_SRC/web/migrations/versions/ . Add any changes to the 'upgrade' function. Increment the SCHEMA_VERSION in $ PGADMIN4\_SRC/web/pgadmin/model/**init**.py 文件中创建一个文件。 -There is no need to increment the SETTINGS_SCHEMA_VERSION. +无需增加 SETTINGS\_SCHEMA\_VERSION。 -# Support +# 支持 -See https://www.pgadmin.org/support/ for support options. +如需支持选项,请参见 [https://www.pgadmin.org/support/](https://www.pgadmin.org/support/)。 -# Security Issues +# 安全问题 -If you would like to report a security issue with pgAdmin, please email -**security (at) pgadmin (dot) org**. - -Note that this address should only be used for reporting security issues -that you believe you've found in the design or code of pgAdmin, pgAgent, -and the pgAdmin website. It should not be used to ask security questions. +如果您想报告 pgAdmin 的安全问题,请发送邮件至 **security (at) pgadmin (dot) org**。 -# Project info +请注意,此地址仅用于报告您认为在 pgAdmin、pgAgent 和 pgAdmin 网站的设计或代码中发现的安全问题。不应用于提问安全相关的问题。 -A GitHub project for pgAdmin 4 can be found at the address below: +# 项目信息 -https://github.com/pgadmin-org/pgadmin4 +pgAdmin 4 的 GitHub 项目可以在以下地址找到: -Please submit any changes as Pull Requests against the *master* branch of the -*pgadmin-org/pgadmin4* repository. +[https://github.com/pgadmin-org/pgadmin4](https://github.com/pgadmin-org/pgadmin4) -If you wish to discuss pgAdmin 4, or contribute to the project, please use the -pgAdmin Hackers mailing list: +请将任何更改提交为针对 *master* 分支的 Pull Requests。 请在 *pgadmin-org/pgadmin4* 仓库中提交更改。 -pgadmin-hackers@postgresql.org +如果您想讨论 pgAdmin 4,或为该项目做贡献,请使用 pgAdmin Hackers 邮件列表: + +[pgadmin-hackers@postgresql.org](mailto:pgadmin-hackers@postgresql.org) \ No newline at end of file diff --git a/apps/pgadmin4/README_en.md b/apps/pgadmin4/README_en.md new file mode 100644 index 000000000..d2c503884 --- /dev/null +++ b/apps/pgadmin4/README_en.md @@ -0,0 +1,286 @@ +# pgAdmin 4 + +pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the +PostgreSQL (http://www.postgresql.org) database. + +In the following documentation and examples, *$PGADMIN4_SRC/* is used to denote +the top-level directory of a copy of the pgAdmin source tree, either from a +tarball or a git checkout. + +## Architecture + +pgAdmin 4 is written as a web application in Python, using jQuery and Bootstrap +for the client side processing and UI. On the server side, Flask is being +utilised. + +Although developed using web technologies, pgAdmin 4 can be deployed either on +a web server using a browser, or standalone on a workstation. The runtime/ +subdirectory contains an NWjs based runtime application intended to allow this, +which will execute the Python server and display the UI. + +## Building the Runtime + +To build the runtime, the following packages must be installed: + +* NodeJS 12+ +* Yarn + +Change into the runtime directory, and run *yarn install*. This will install the +dependencies required. + +In order to use the runtime in a development environment, you'll need to copy +*dev_config.json.in* file to *dev_config.json*, and edit the paths to the Python +executable and *pgAdmin.py* file, otherwise the runtime will use the default +paths it would expect to find in the standard package for your platform. + +You can then execute the runtime by running something like: + +```bash +node_modules/nw/nwjs/nw . +``` + +or on macOS: + +```bash +node_modules/nw/nwjs/nwjs.app/Contents/MacOS/nwjs . +``` + +# Configuring the Python Environment + +In order to run the Python code, a suitable runtime environment is required. +Python version 3.7 and later are currently supported. It is recommended that a +Python Virtual Environment is setup for this purpose, rather than using the +system Python environment. On Linux and Mac systems, the process is fairly +simple - adapt as required for your distribution: + +1. Create a virtual environment in an appropriate directory. The last argument is + the name of the environment; that can be changed as desired: + + ```bash + $ python3 -m venv venv + ``` + +2. Now activate the virtual environment: + + ```bash + $ source venv/bin/activate + ``` + +3. Some of the components used by pgAdmin require a very recent version of *pip*, + so update that to the latest: + + ```bash + $ pip install --upgrade pip + ``` + +4. Ensure that a PostgreSQL installation's bin/ directory is in the path (so + pg_config can be found for building psycopg3), and install the required + packages: + + ```bash + (venv) $ PATH=$PATH:/usr/local/pgsql/bin pip install -r $PGADMIN4_SRC/requirements.txt + ``` + + If you are planning to run the regression tests, you also need to install + additional requirements from web/regression/requirements.txt: + + ```bash + (venv) $ pip install -r $PGADMIN4_SRC/web/regression/requirements.txt + ``` + +5. Create a local configuration file for pgAdmin. Edit + $PGADMIN4_SRC/web/config_local.py and add any desired configuration options + (use the config.py file as a reference - any settings duplicated in + config_local.py will override those in config.py). A typical development + configuration may look like: + + ```python + from config import * + + # Debug mode + DEBUG = True + + # App mode + SERVER_MODE = True + + # Enable the test module + MODULE_BLACKLIST.remove('test') + + # Log + CONSOLE_LOG_LEVEL = DEBUG + FILE_LOG_LEVEL = DEBUG + + DEFAULT_SERVER = '127.0.0.1' + + UPGRADE_CHECK_ENABLED = True + + # Use a different config DB for each server mode. + if SERVER_MODE == False: + SQLITE_PATH = os.path.join( + DATA_DIR, + 'pgadmin4-desktop.db' + ) + else: + SQLITE_PATH = os.path.join( + DATA_DIR, + 'pgadmin4-server.db' + ) + ``` + + This configuration allows easy switching between server and desktop modes + for testing. + +6. The initial setup of the configuration database is interactive in server + mode, and non-interactive in desktop mode. You can run it either by + running: + + ```bash + (venv) $ python3 $PGADMIN4_SRC/web/setup.py + ``` + + or by starting pgAdmin 4: + + ```bash + (venv) $ python3 $PGADMIN4_SRC/web/pgAdmin4.py + ``` + + Whilst it is possible to automatically run setup in desktop mode by running + the runtime, that will not work in server mode as the runtime doesn't allow + command line interaction with the setup program. + +At this point you will be able to run pgAdmin 4 from the command line in either +server or desktop mode, and access it from a web browser using the URL shown in +the terminal once pgAdmin has started up. + +Setup of an environment on Windows is somewhat more complicated unfortunately, +please see *pkg/win32/README.txt* for complete details. + +# Building the Web Assets + +pgAdmin is dependent on a number of third party Javascript libraries. These, +along with it's own Javascript code, SCSS/CSS code and images must be +compiled into a "bundle" which is transferred to the browser for execution +and rendering. This is far more efficient than simply requesting each +asset as it's needed by the client. + +To create the bundle, you will need the 'yarn' package management tool to be +installed. Then, you can run the following commands on a *nix system to +download the required packages and build the bundle: + +```bash +(venv) $ cd $PGADMIN4_SRC +(venv) $ make install-node +(venv) $ make bundle +``` + +On Windows systems (where "make" is not available), the following commands +can be used: + +``` +C:\> cd $PGADMIN4_SRC\web +C:\$PGADMIN4_SRC\web> yarn install +C:\$PGADMIN4_SRC\web> yarn run bundle +``` + +# Creating pgAdmin themes + +To create a pgAdmin theme, you need to create a directory under +*web/pgadmin/static/scss/resources*. +Copy the sample file *_theme.variables.scss.sample* to the new directory and +rename it to *_theme.variables.scss*. Change the desired hexadecimal values of +the colors and bundle pgAdmin. You can also add a preview image in the theme +directory with the name as *\_preview.png*. It is recommended that the +preview image should not be larger in size as it may take time to load on slow +networks. Run the *yarn run bundle* and you're good to go. No other changes are +required, pgAdmin bundle will read the directory and create other required +entries to make them available in preferences. + +The name of the theme is derived from the directory name. Underscores (_) and +hyphens (-) will be replaced with spaces and the result will be camel cased. + +# Building the documentation + +In order to build the docs, an additional Python package is required in the +virtual environment. This can be installed with the pip package manager: + +```bash +$ source venv/bin/activate +(venv) $ pip install Sphinx +(venv) $ pip install sphinxcontrib-youtube +``` + +The docs can then be built using the Makefile in *$PGADMIN4_SRC*, e.g. + +```bash +(venv) $ make docs +``` + +The output can be found in *$PGADMIN4_SRC/docs/en_US/_build/html/index.html* + +# Building packages + +Most packages can be built using the Makefile in $PGADMIN4_SRC, provided all +the setup and configuration above has been completed. + +To build a source tarball: + +```bash +(venv) $ make src +``` + +To build a PIP Wheel, activate either a Python 3 virtual environment, configured +with all the required packages, and then run: + +```bash +(venv) $ make pip +``` + +To build the macOS AppBundle, please see *pkg/mac/README*. + +To build the Windows installer, please see *pkg/win32/README.txt*. +# Create Database Migrations + +In order to make changes to the SQLite DB, navigate to the 'web' directory: + +```bash +(venv) $ cd $PGADMIN4_SRC/web +``` + +Create a migration file with the following command: + +```bash +(venv) $ FLASK_APP=pgAdmin4.py flask db revision +``` + +This will create a file in: $PGADMIN4_SRC/web/migrations/versions/ . +Add any changes to the 'upgrade' function. +Increment the SCHEMA_VERSION in $PGADMIN4_SRC/web/pgadmin/model/__init__.py file. + +There is no need to increment the SETTINGS_SCHEMA_VERSION. + +# Support + +See https://www.pgadmin.org/support/ for support options. + +# Security Issues + +If you would like to report a security issue with pgAdmin, please email +**security (at) pgadmin (dot) org**. + +Note that this address should only be used for reporting security issues +that you believe you've found in the design or code of pgAdmin, pgAgent, +and the pgAdmin website. It should not be used to ask security questions. + +# Project info + +A GitHub project for pgAdmin 4 can be found at the address below: + +https://github.com/pgadmin-org/pgadmin4 + +Please submit any changes as Pull Requests against the *master* branch of the +*pgadmin-org/pgadmin4* repository. + +If you wish to discuss pgAdmin 4, or contribute to the project, please use the +pgAdmin Hackers mailing list: + +pgadmin-hackers@postgresql.org diff --git a/apps/photoprism/README.md b/apps/photoprism/README.md index 4406ef0da..a2287f3b7 100644 --- a/apps/photoprism/README.md +++ b/apps/photoprism/README.md @@ -1,119 +1,99 @@ -PhotoPrism: Browse Your Life in Pictures -======================================== +# PhotoPrism:用图片浏览你的生活 -[![License: AGPL](https://img.shields.io/badge/license-AGPL-blue.svg)](https://docs.photoprism.app/license/agpl/) -[![GitHub contributors](https://img.shields.io/github/contributors/photoprism/photoprism.svg)](https://www.photoprism.app/about/team) -[![Documentation](https://img.shields.io/badge/read-the%20docs-4aa087.svg)](https://docs.photoprism.app/) -[![Community Chat](https://img.shields.io/badge/chat-on%20gitter-4aa087.svg)](https://link.photoprism.app/chat) -[![GitHub Discussions](https://img.shields.io/badge/ask-%20on%20github-4d6a91.svg)](https://link.photoprism.app/discussions) -[![Mastodon](https://dl.photoprism.app/img/badges/badge-mastodon.svg)](https://floss.social/@photoprism) -[![Twitter](https://dl.photoprism.app/img/badges/badge-twitter.svg)](https://link.photoprism.app/twitter) +[![License: AGPL](https://img.shields.io/badge/license-AGPL-blue.svg)](https://docs.photoprism.app/license/agpl/) [![GitHub contributors](https://img.shields.io/github/contributors/photoprism/photoprism.svg)](https://www.photoprism.app/about/team) [![Documentation](https://img.shields.io/badge/read-the%20docs-4aa087.svg)](https://docs.photoprism.app/) [![Community Chat](https://img.shields.io/badge/chat-on%20gitter-4aa087.svg)](https://link.photoprism.app/chat) [![GitHub Discussions](https://img.shields.io/badge/ask-%20on%20github-4d6a91.svg)](https://link.photoprism.app/discussions) [![Mastodon](https://dl.photoprism.app/img/badges/badge-mastodon.svg)](https://floss.social/@photoprism) [![Twitter](https://dl.photoprism.app/img/badges/badge-twitter.svg)](https://link.photoprism.app/twitter) -PhotoPrism® is an AI-Powered Photos App for the [Decentralized Web](https://en.wikipedia.org/wiki/Decentralized_web). -It makes use of the latest technologies to tag and find pictures automatically without getting in your way. -You can run it at home, on a private server, or in the cloud. +PhotoPrism® 是一个基于去中心化网络的 AI 助力照片应用。它利用最新技术自动标记和查找图片,不会打扰到你。你可以在家、私有服务器或云端运行它。 ![](https://dl.photoprism.app/img/ui/desktop-1000px.jpg) -To get a first impression, you are welcome to play with our [public demo](https://try.photoprism.app/). Be careful not to upload any private pictures. +为了给你一个初步的印象,你可以尝试我们的 [公共演示](https://try.photoprism.app/) 。请注意不要上传任何私人图片。 -## Feature Overview ## +## 功能概览 -**Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible.** That's why PhotoPrism was built from the ground up to run wherever you need it, without compromising freedom, privacy, or functionality: +**我们的使命是提供最用户友好且注重隐私的解决方案,帮助您整理和访问照片。** 这就是为什么 PhotoPrism 从头开始构建,以便在您需要的任何地方运行,同时不牺牲自由、隐私或功能: -* Browse [all your photos](https://docs.photoprism.app/user-guide/organize/browse/) and [videos](https://try.photoprism.app/library/videos) without worrying about [RAW conversion, duplicates or video formats](https://docs.photoprism.app/user-guide/settings/library/) -* Easily find specific pictures using [powerful search filters](https://try.photoprism.app/library/browse?view=cards&q=flower%20color%3Ared) -* Recognizes [the faces of your family and friends](https://try.photoprism.app/library/people) -* [Automatic classification](https://try.photoprism.app/library/labels) of pictures based on their content and location -* [Play Live Photos](https://try.photoprism.app/library/live) by hovering over them in [albums](https://try.photoprism.app/library/albums) and [search results](https://try.photoprism.app/library/browse?view=cards&q=type%3Alive) -* Since the [User Interface](https://try.photoprism.app/) is a [Progressive Web App](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps), - it provides a native app-like experience, and you can conveniently install it on the home screen of all major operating systems and mobile devices -* Includes four high-resolution [World Maps](https://try.photoprism.app/library/places) to bring back the memories of your favorite trips -* Metadata is extracted and merged from Exif, XMP, and other sources such as Google Photos -* Many more image properties like [Colors](https://try.photoprism.app/library/browse?view=cards&q=color:red), [Chroma](https://try.photoprism.app/library/browse?view=cards&q=mono%3Atrue), and [Quality](https://try.photoprism.app/library/review) can be searched as well -* Use [PhotoSync](https://link.photoprism.app/photosync) to securely backup iOS and Android phones in the background -* WebDAV clients such as Microsoft's Windows Explorer and Apple's Finder [can connect directly](https://docs.photoprism.app/user-guide/sync/webdav/) to PhotoPrism, allowing you to open, edit, and delete files from your computer as if they were local +* 浏览[所有照片](https://docs.photoprism.app/user-guide/organize/browse/)和[视频](https://try.photoprism.app/library/videos) ,无需担心 [RAW 转换、重复文件或视频格式](https://docs.photoprism.app/user-guide/settings/library/) +* 使用[强大的搜索过滤器](https://try.photoprism.app/library/browse?view=cards&q=flower%20color%3Ared)轻松找到特定的照片 +* 识别[家人和朋友的脸](https://try.photoprism.app/library/people) +* 基于图片内容和位置的自动分类 +* 通过在相册和搜索结果中悬停来播放 +* 由于用户界面是一个渐进式网络应用(Progressive Web App),它提供了类似原生应用的体验,您可以在所有主要操作系统的主屏幕上方便地安装它 +* 包含四张高分辨率的世界地图,帮助您回忆起最喜爱的旅行 +* 元数据从 Exif、XMP 以及其他来源如 Google Photos 中提取并合并 +* 还可以搜索更多的图像属性,如[颜色](https://try.photoprism.app/library/browse?view=cards&q=color:red) 、 [色度](https://try.photoprism.app/library/browse?view=cards&q=mono%3Atrue)和[质量](https://try.photoprism.app/library/review) +* 使用 [PhotoSync](https://link.photoprism.app/photosync) 可以在后台安全备份 iOS 和 Android 手机 +* 像 Microsoft 的 Windows 资源管理器和 Apple 的 Finder 这样的 WebDAV 客户端可以直接[连接到 PhotoPrism](https://docs.photoprism.app/user-guide/sync/webdav/),允许您像操作本地文件一样从计算机中打开、编辑和删除文件 -Being completely [**self-funded and independent**](https://link.photoprism.app/membership), we can promise you that we will [never sell your data](https://www.photoprism.app/privacy) and that we will [always be transparent](https://www.photoprism.app/terms) about our software and services. Your data will never be shared with Google, Amazon, Microsoft or Apple unless you intentionally upload files to one of their services. 🔒 +完全自筹资金且独立运作,我们承诺不会出售您的数据,并且会始终对我们的软件和服务保持透明。除非您有意将文件上传到他们的服务,否则您的数据绝不会与 Google、Amazon、Microsoft 或 Apple 共享。 🔒 -## Getting Started ## - +## 快速入门 -Step-by-step installation instructions for our self-hosted [community edition](https://www.photoprism.app/get) can be found -on [docs.photoprism.app](https://docs.photoprism.app/getting-started/) - -all you need is a Web browser and [Docker](https://docs.docker.com/get-docker/) to run the server. -It is available for Mac, Linux, and Windows. +![](https://www.photoprism.app/user/pages/01.home/03._screenshots/iphone-maps-hybrid-540px.png) -The [stable version](https://docs.photoprism.app/release-notes/) and development -preview have been built into a single [multi-arch image](https://link.photoprism.app/docker-hub) for 64-bit AMD, Intel, -and ARM processors. That means, [Raspberry Pi](https://docs.photoprism.app/getting-started/raspberry-pi/) 3 / 4 owners can pull -from the same repository, enjoy the exact same functionality, and can follow the regular -[installation instructions](https://docs.photoprism.app/getting-started/docker-compose/) -after going through a short list of [requirements](https://docs.photoprism.app/getting-started/raspberry-pi/). +您可以访问 [docs.photoprism.app](https://www.photoprism.app/get) 获取我们自托管的 [社区版](https://www.photoprism.app/get) 的逐步安装说明 - 您只需要一个 Web 浏览器和 [Docker](https://docs.docker.com/get-docker/) 即可运行服务器。该软件适用于 Mac、Linux 和 Windows。 -Existing users are advised to update their `docker-compose.yml` config based on our examples -available at [dl.photoprism.app/docker](https://dl.photoprism.app/docker/). +稳定版本和开发预览已经整合成一个针对 64 位 AMD、Intel 和 ARM 处理器的 [多架构镜像](https://link.photoprism.app/docker-hub) 。这意味着,Raspberry Pi 3 / 4 的用户可以从同一个仓库拉取 相同的镜像,享受完全相同的功能,并且可以遵循常规的 安装说明[在浏览完一份简短的先决条件列表](https://docs.photoprism.app/getting-started/docker-compose/)[后](https://docs.photoprism.app/getting-started/raspberry-pi/) 。 -## Support Our Mission 💎 ## +现有用户建议根据我们提供的示例更新您的 `docker-compose.yml` 配置,这些示例可在[下载](https://dl.photoprism.app/docker/) 。 -**PhotoPrism is 100% self-funded and independent.** Your [continued support](https://link.photoprism.app/membership) helps us [provide more features to the public](https://www.photoprism.app/oss/faq#what-functionality-is-generally-available), release [regular updates](https://docs.photoprism.app/release-notes/), and remain independent! +## 支持我们的使命 💎 -Our members [enjoy additional features](https://www.photoprism.app/kb/personal), including access to [interactive world maps](https://try.photoprism.app/library/places), and can join our private chat room to [connect with our team](https://www.photoprism.app/about/team). We currently have the following membership options: +**PhotoPrism 完全由自身运营并保持独立。** 您的[持续支持](https://link.photoprism.app/membership)帮助我们向公众提供更多的功能,发布[定期更新](https://www.photoprism.app/oss/faq#what-functionality-is-generally-available) ,并保持独立! -- You can [sign up directly on our website](https://link.photoprism.app/membership) and pay with credit card or SEPA through Stripe, so you don't need to [link an external account](https://www.photoprism.app/kb/activation) and can easily upgrade or downgrade at any time -- Alternatively, [Patreon](https://link.photoprism.app/patreon) also supports PayPal, additional currencies, and lets you choose between monthly and annual billing for all tiers +我们的会员享有额外功能,包括访问[互动世界地图](https://www.photoprism.app/kb/personal) ,并且可以加入我们的私人聊天室与[我们的团队联系](https://www.photoprism.app/about/team) 。我们目前有以下会员选项: -If you currently support us through [GitHub Sponsors](https://link.photoprism.app/sponsor), you can also [register on our website](https://my.photoprism.app/register) and use the *Activate GitHub Sponsors Membership* button to link your account. For details on this and how to [link your Patreon account](https://www.patreon.com/pledges), see our [Activation Guide](https://www.photoprism.app/kb/activation). +* 您可以在我们的网站[直接注册](https://link.photoprism.app/membership) ,并通过 Stripe 使用信用卡或 SEPA 支付,因此无需[链接外部账户](https://www.photoprism.app/kb/activation) ,并且可以随时轻松升级或降级 +* 或者,您还可以通过 [Patreon](https://link.photoprism.app/patreon) 使用 PayPal,以及其他货币,并可以选择按月或按年付费 -You are [welcome to contact us](https://www.photoprism.app/contact) for change requests, membership questions, and business partnerships. +如果您目前通过 [GitHub Sponsors](https://link.photoprism.app/sponsor) 支持我们,您也可以在我们的网站[注册](https://my.photoprism.app/register) ,并使用*激活 GitHub Sponsors 会员按钮链接您的账户。有关此功能以及如何[链接您的 Patreon 账户](https://www.patreon.com/pledges)的详细信息,请参阅我们的[激活指南](https://www.photoprism.app/kb/activation) 。* -[View Membership FAQ ›](https://www.photoprism.app/kb/membership) [Sign Up ›](https://link.photoprism.app/membership) +您可以联系我们提出更改请求、会员问题或商业合作。 -### Why Your Support Matters ### +查看会员常见问题 › 注册 › -- Your continued support helps us provide regular updates and remain independent, so we can fulfill our mission and protect your privacy -- Sustained funding is key to quickly releasing new features requested by you and other community members -- Being self-funded and independent, we can personally promise you that we will never sell your data and that we will always be transparent about our software and services +### 为什么您的支持很重要 -Please also leave [a star](https://github.com/photoprism/photoprism/stargazers) on GitHub if you like this project. It provides additional motivation to keep going. +* 您的持续支持有助于我们提供定期更新并保持独立,从而实现我们的使命并保护您的隐私 +* 持续的资金支持对于快速推出您和其他社区成员所请求的新功能至关重要 +* 作为自筹资金且独立的项目,我们可以向您保证,我们绝不会出售您的数据,并且我们将始终对我们的软件和服务保持透明 -**A big thank you to all current and past sponsors, whose generous support has been and continues to be essential to the success of the project!** +如果您喜欢这个项目,请也给它点个[星](https://github.com/photoprism/photoprism/stargazers)在 GitHub 上。这将为您提供额外的动力,继续前进。 -[View Sponsors ›](https://github.com/photoprism/photoprism/blob/develop/SPONSORS.md) [View Credits ›](https://docs.photoprism.app/credits/) +**向所有当前和过去的赞助者表示衷心的感谢,他们的慷慨支持对于项目的成功至关重要!** -## Getting Support ## +[查看赞助商 ›](https://github.com/photoprism/photoprism/blob/develop/SPONSORS.md) [查看致谢 ›](https://docs.photoprism.app/credits/) -Visit [docs.photoprism.app/user-guide](https://docs.photoprism.app/user-guide/) to learn how to [sync](https://docs.photoprism.app/user-guide/sync/webdav/), [organize](https://docs.photoprism.app/user-guide/library/), and [share](https://docs.photoprism.app/user-guide/share/) your pictures. If you need help installing our software at home, you are welcome to post your question in [GitHub Discussions](https://link.photoprism.app/discussions) or ask in our [Community Chat](https://link.photoprism.app/chat). -Common problems can be quickly diagnosed and solved using our [Troubleshooting Checklists](https://docs.photoprism.app/getting-started/troubleshooting/). Eligible [members](https://link.photoprism.app/membership) are also welcome to email us for technical support and advice. +## 获取支持 -## Upcoming Features and Enhancements ## +访问 [docs.photoprism.app/user-guide](https://docs.photoprism.app/user-guide/) 以了解如何 [同步](https://docs.photoprism.app/user-guide/sync/webdav/) 、 [组织](https://docs.photoprism.app/user-guide/library/)和 [分享](https://docs.photoprism.app/user-guide/share/)您的照片。如果您需要帮助在家中安装我们的软件,欢迎您在 [GitHub 讨论区](https://link.photoprism.app/discussions) 发布问题,或在我们的 [社区聊天](https://link.photoprism.app/chat) 中提问。我们提供的 [故障排除清单](https://docs.photoprism.app/getting-started/troubleshooting/) 可以快速诊断并解决常见问题。符合条件的 [会员](https://link.photoprism.app/membership) 也可以通过电子邮件向我们寻求技术支持和建议。 -Our [Project Roadmap](https://link.photoprism.app/roadmap) shows what tasks are in progress and what features will be implemented next. You are invited to give ideas you like a thumbs-up, so we know what's most popular. +## 即将推出的功能和增强 -Be aware that we have a zero-bug policy and do our best to help users when they need support or have other questions. This comes at a price though, as we can't give exact release dates for new features. Our team receives many more requests than can be implemented, so we want to emphasize that we are in no way obligated to implement the features, enhancements, or other changes you request. We do, however, appreciate your feedback and carefully consider all requests. +我们的 [项目路线图](https://link.photoprism.app/roadmap) 展示了正在进行中的任务以及即将实现的功能。欢迎您为喜欢的想法点赞,这样我们就能知道哪些功能最受欢迎。 -**Because sustained funding is key to quickly releasing new features, we encourage you to support our mission by [signing up as a sponsor](https://link.photoprism.app/sponsor) or purchasing a [commercial license](https://www.photoprism.app/teams). Ultimately, that's what's best for the product and the community.** +请注意,我们实行零错误政策,并尽力在用户需要支持或有其他问题时帮助他们。然而,这需要付出代价,因为我们无法为新功能提供确切的发布日期。我们的团队收到的请求比能实现的多得多,因此我们想强调的是,我们并没有义务实现您所请求的功能、增强或任何其他更改。不过,我们非常重视您的反馈,并会仔细考虑所有请求。 -## GitHub Issues ⚠️ ## +**由于持续的资金支持是快速发布新功能的关键,我们鼓励您通过[成为赞助者](https://link.photoprism.app/sponsor)或购买[商业许可](https://www.photoprism.app/teams)来支持我们的使命。最终,这对产品和社区是最好的。** -We kindly ask you not to report bugs via GitHub Issues **unless you are certain to have found a fully reproducible and previously unreported issue** that must be fixed directly in the app. Thank you for your careful consideration! +## GitHub Issues ⚠️ -- When reporting a problem, always include the software versions you are using and other information about your environment such as [browser, browser plugins](https://docs.photoprism.app/getting-started/troubleshooting/browsers/), operating system, [storage type](https://docs.photoprism.app/getting-started/troubleshooting/performance/#storage), [memory size](https://docs.photoprism.app/getting-started/troubleshooting/performance/#memory), and [processor](https://docs.photoprism.app/getting-started/troubleshooting/performance/#server-cpu) -- Note that all issue **subscribers receive an email notification** from GitHub whenever a new comment is added, so these should only be used for sharing important information and not for discussions, questions or expressing personal opinions -- [Contact us](https://www.photoprism.app/contact) or [a community member](https://link.photoprism.app/discussions) if you need help, it could be a local configuration problem, or a misunderstanding in how the software works -- This gives our team the opportunity to [improve the docs](https://docs.photoprism.app/getting-started/troubleshooting/) and provide best-in-class support to you, instead of handling unclear/duplicate bug reports or triggering a flood of notifications by responding to comments +我们诚恳地请求您不要通过 GitHub Issues 报告错误,除非您确定找到了一个完全可复现且之前未报告的问题,必须直接在应用中修复。感谢您的慎重考虑! -## Connect with the Community ## +* 在报告问题时,请务必包含您使用的软件版本以及其他有关环境的信息,如[浏览器、浏览器插件](https://docs.photoprism.app/getting-started/troubleshooting/browsers/) 、操作系统、 [存储类型](https://docs.photoprism.app/getting-started/troubleshooting/performance/#storage) 、 [内存大小](https://docs.photoprism.app/getting-started/troubleshooting/performance/#memory)和[处理器](https://docs.photoprism.app/getting-started/troubleshooting/performance/#server-cpu) 。 +* 请注意,所有问题订阅者都会在 GitHub 上收到新评论的通知邮件,因此这些信息仅用于分享重要信息,而不应用于讨论、提问或表达个人意见。 +* 如果您需要帮助,请联系[我们](https://www.photoprism.app/contact)或[社区成员](https://link.photoprism.app/discussions) ,可能是本地配置问题,或者是对软件使用方法的理解有误。 +* 这将使我们的团队有机会改进文档并为您提供最佳支持,而不是处理模糊的或重复的错误报告,或因回复评论而触发大量通知 -Follow us on [Twitter](https://link.photoprism.app/twitter) and join the [Community Chat](https://link.photoprism.app/chat) -to get regular updates, connect with other users, and discuss your ideas. Our [Code of Conduct](https://www.photoprism.app/code-of-conduct) explains the "dos and don’ts" when interacting with other community members. +## 加入社区 -Feel free to contact us at [hello@photoprism.app](mailto:hello@photoprism.app) with anything that is on your mind. We appreciate your feedback! Due to the high volume of emails we receive, our team may be unable to get back to you immediately. We do our best to respond within five business days or less. +关注我们在 [Twitter](https://link.photoprism.app/twitter) 上的动态,并加入[社区聊天](https://link.photoprism.app/chat) ,以获取最新更新,与其他用户交流,并讨论您的想法。我们的[行为准则](https://www.photoprism.app/code-of-conduct)解释了与社区成员互动时的“可为与不可为”。 -## Every Contribution Makes a Difference ## +如果您有任何想法或问题,随时可以联系我们,邮箱为 [hello@photoprism.app](mailto:hello@photoprism.app)。我们非常感谢您的反馈!由于收到的邮件量较大,我们的团队可能无法立即回复您。我们会尽最大努力在五个工作日内或更短时间内回复您。 -We welcome [contributions](https://github.com/photoprism/photoprism/blob/develop/CONTRIBUTING.md) of any kind, including blog posts, tutorials, testing, writing documentation, and pull requests. Our [Developer Guide](https://docs.photoprism.app/developer-guide/) contains all the information necessary for you to get started. +## 每一份贡献都意义重大 ----- +我们欢迎任何形式的贡献,包括博客文章、教程、测试、编写文档和提交拉取请求。我们的《开发者指南》包含了你开始所需的所有信息。 -*PhotoPrism® is a [registered trademark](https://www.photoprism.app/trademark). By using the software and services we provide, you agree to our [Terms of Service](https://www.photoprism.app/terms), [Privacy Policy](https://www.photoprism.app/privacy), and [Code of Conduct](https://www.photoprism.app/code-of-conduct). Docs are [available](https://link.photoprism.app/github-docs) under the [CC BY-NC-SA 4.0 License](https://creativecommons.org/licenses/by-nc-sa/4.0/); [additional terms](https://github.com/photoprism/photoprism/blob/develop/assets/README.md) may apply.* +* * * + +*PhotoPrism® 是一个注册商标。使用我们提供的软件和服务,你同意遵守我们的《服务条款》、《隐私政策》和《行为准则》。文档在《知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议》下可用;可能还适用其他条款。* \ No newline at end of file diff --git a/apps/photoprism/README_en.md b/apps/photoprism/README_en.md new file mode 100644 index 000000000..4406ef0da --- /dev/null +++ b/apps/photoprism/README_en.md @@ -0,0 +1,119 @@ +PhotoPrism: Browse Your Life in Pictures +======================================== + +[![License: AGPL](https://img.shields.io/badge/license-AGPL-blue.svg)](https://docs.photoprism.app/license/agpl/) +[![GitHub contributors](https://img.shields.io/github/contributors/photoprism/photoprism.svg)](https://www.photoprism.app/about/team) +[![Documentation](https://img.shields.io/badge/read-the%20docs-4aa087.svg)](https://docs.photoprism.app/) +[![Community Chat](https://img.shields.io/badge/chat-on%20gitter-4aa087.svg)](https://link.photoprism.app/chat) +[![GitHub Discussions](https://img.shields.io/badge/ask-%20on%20github-4d6a91.svg)](https://link.photoprism.app/discussions) +[![Mastodon](https://dl.photoprism.app/img/badges/badge-mastodon.svg)](https://floss.social/@photoprism) +[![Twitter](https://dl.photoprism.app/img/badges/badge-twitter.svg)](https://link.photoprism.app/twitter) + +PhotoPrism® is an AI-Powered Photos App for the [Decentralized Web](https://en.wikipedia.org/wiki/Decentralized_web). +It makes use of the latest technologies to tag and find pictures automatically without getting in your way. +You can run it at home, on a private server, or in the cloud. + +![](https://dl.photoprism.app/img/ui/desktop-1000px.jpg) + +To get a first impression, you are welcome to play with our [public demo](https://try.photoprism.app/). Be careful not to upload any private pictures. + +## Feature Overview ## + +**Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible.** That's why PhotoPrism was built from the ground up to run wherever you need it, without compromising freedom, privacy, or functionality: + +* Browse [all your photos](https://docs.photoprism.app/user-guide/organize/browse/) and [videos](https://try.photoprism.app/library/videos) without worrying about [RAW conversion, duplicates or video formats](https://docs.photoprism.app/user-guide/settings/library/) +* Easily find specific pictures using [powerful search filters](https://try.photoprism.app/library/browse?view=cards&q=flower%20color%3Ared) +* Recognizes [the faces of your family and friends](https://try.photoprism.app/library/people) +* [Automatic classification](https://try.photoprism.app/library/labels) of pictures based on their content and location +* [Play Live Photos](https://try.photoprism.app/library/live) by hovering over them in [albums](https://try.photoprism.app/library/albums) and [search results](https://try.photoprism.app/library/browse?view=cards&q=type%3Alive) +* Since the [User Interface](https://try.photoprism.app/) is a [Progressive Web App](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps), + it provides a native app-like experience, and you can conveniently install it on the home screen of all major operating systems and mobile devices +* Includes four high-resolution [World Maps](https://try.photoprism.app/library/places) to bring back the memories of your favorite trips +* Metadata is extracted and merged from Exif, XMP, and other sources such as Google Photos +* Many more image properties like [Colors](https://try.photoprism.app/library/browse?view=cards&q=color:red), [Chroma](https://try.photoprism.app/library/browse?view=cards&q=mono%3Atrue), and [Quality](https://try.photoprism.app/library/review) can be searched as well +* Use [PhotoSync](https://link.photoprism.app/photosync) to securely backup iOS and Android phones in the background +* WebDAV clients such as Microsoft's Windows Explorer and Apple's Finder [can connect directly](https://docs.photoprism.app/user-guide/sync/webdav/) to PhotoPrism, allowing you to open, edit, and delete files from your computer as if they were local + +Being completely [**self-funded and independent**](https://link.photoprism.app/membership), we can promise you that we will [never sell your data](https://www.photoprism.app/privacy) and that we will [always be transparent](https://www.photoprism.app/terms) about our software and services. Your data will never be shared with Google, Amazon, Microsoft or Apple unless you intentionally upload files to one of their services. 🔒 + +## Getting Started ## + + +Step-by-step installation instructions for our self-hosted [community edition](https://www.photoprism.app/get) can be found +on [docs.photoprism.app](https://docs.photoprism.app/getting-started/) - +all you need is a Web browser and [Docker](https://docs.docker.com/get-docker/) to run the server. +It is available for Mac, Linux, and Windows. + +The [stable version](https://docs.photoprism.app/release-notes/) and development +preview have been built into a single [multi-arch image](https://link.photoprism.app/docker-hub) for 64-bit AMD, Intel, +and ARM processors. That means, [Raspberry Pi](https://docs.photoprism.app/getting-started/raspberry-pi/) 3 / 4 owners can pull +from the same repository, enjoy the exact same functionality, and can follow the regular +[installation instructions](https://docs.photoprism.app/getting-started/docker-compose/) +after going through a short list of [requirements](https://docs.photoprism.app/getting-started/raspberry-pi/). + +Existing users are advised to update their `docker-compose.yml` config based on our examples +available at [dl.photoprism.app/docker](https://dl.photoprism.app/docker/). + +## Support Our Mission 💎 ## + +**PhotoPrism is 100% self-funded and independent.** Your [continued support](https://link.photoprism.app/membership) helps us [provide more features to the public](https://www.photoprism.app/oss/faq#what-functionality-is-generally-available), release [regular updates](https://docs.photoprism.app/release-notes/), and remain independent! + +Our members [enjoy additional features](https://www.photoprism.app/kb/personal), including access to [interactive world maps](https://try.photoprism.app/library/places), and can join our private chat room to [connect with our team](https://www.photoprism.app/about/team). We currently have the following membership options: + +- You can [sign up directly on our website](https://link.photoprism.app/membership) and pay with credit card or SEPA through Stripe, so you don't need to [link an external account](https://www.photoprism.app/kb/activation) and can easily upgrade or downgrade at any time +- Alternatively, [Patreon](https://link.photoprism.app/patreon) also supports PayPal, additional currencies, and lets you choose between monthly and annual billing for all tiers + +If you currently support us through [GitHub Sponsors](https://link.photoprism.app/sponsor), you can also [register on our website](https://my.photoprism.app/register) and use the *Activate GitHub Sponsors Membership* button to link your account. For details on this and how to [link your Patreon account](https://www.patreon.com/pledges), see our [Activation Guide](https://www.photoprism.app/kb/activation). + +You are [welcome to contact us](https://www.photoprism.app/contact) for change requests, membership questions, and business partnerships. + +[View Membership FAQ ›](https://www.photoprism.app/kb/membership) [Sign Up ›](https://link.photoprism.app/membership) + +### Why Your Support Matters ### + +- Your continued support helps us provide regular updates and remain independent, so we can fulfill our mission and protect your privacy +- Sustained funding is key to quickly releasing new features requested by you and other community members +- Being self-funded and independent, we can personally promise you that we will never sell your data and that we will always be transparent about our software and services + +Please also leave [a star](https://github.com/photoprism/photoprism/stargazers) on GitHub if you like this project. It provides additional motivation to keep going. + +**A big thank you to all current and past sponsors, whose generous support has been and continues to be essential to the success of the project!** + +[View Sponsors ›](https://github.com/photoprism/photoprism/blob/develop/SPONSORS.md) [View Credits ›](https://docs.photoprism.app/credits/) + +## Getting Support ## + +Visit [docs.photoprism.app/user-guide](https://docs.photoprism.app/user-guide/) to learn how to [sync](https://docs.photoprism.app/user-guide/sync/webdav/), [organize](https://docs.photoprism.app/user-guide/library/), and [share](https://docs.photoprism.app/user-guide/share/) your pictures. If you need help installing our software at home, you are welcome to post your question in [GitHub Discussions](https://link.photoprism.app/discussions) or ask in our [Community Chat](https://link.photoprism.app/chat). +Common problems can be quickly diagnosed and solved using our [Troubleshooting Checklists](https://docs.photoprism.app/getting-started/troubleshooting/). Eligible [members](https://link.photoprism.app/membership) are also welcome to email us for technical support and advice. + +## Upcoming Features and Enhancements ## + +Our [Project Roadmap](https://link.photoprism.app/roadmap) shows what tasks are in progress and what features will be implemented next. You are invited to give ideas you like a thumbs-up, so we know what's most popular. + +Be aware that we have a zero-bug policy and do our best to help users when they need support or have other questions. This comes at a price though, as we can't give exact release dates for new features. Our team receives many more requests than can be implemented, so we want to emphasize that we are in no way obligated to implement the features, enhancements, or other changes you request. We do, however, appreciate your feedback and carefully consider all requests. + +**Because sustained funding is key to quickly releasing new features, we encourage you to support our mission by [signing up as a sponsor](https://link.photoprism.app/sponsor) or purchasing a [commercial license](https://www.photoprism.app/teams). Ultimately, that's what's best for the product and the community.** + +## GitHub Issues ⚠️ ## + +We kindly ask you not to report bugs via GitHub Issues **unless you are certain to have found a fully reproducible and previously unreported issue** that must be fixed directly in the app. Thank you for your careful consideration! + +- When reporting a problem, always include the software versions you are using and other information about your environment such as [browser, browser plugins](https://docs.photoprism.app/getting-started/troubleshooting/browsers/), operating system, [storage type](https://docs.photoprism.app/getting-started/troubleshooting/performance/#storage), [memory size](https://docs.photoprism.app/getting-started/troubleshooting/performance/#memory), and [processor](https://docs.photoprism.app/getting-started/troubleshooting/performance/#server-cpu) +- Note that all issue **subscribers receive an email notification** from GitHub whenever a new comment is added, so these should only be used for sharing important information and not for discussions, questions or expressing personal opinions +- [Contact us](https://www.photoprism.app/contact) or [a community member](https://link.photoprism.app/discussions) if you need help, it could be a local configuration problem, or a misunderstanding in how the software works +- This gives our team the opportunity to [improve the docs](https://docs.photoprism.app/getting-started/troubleshooting/) and provide best-in-class support to you, instead of handling unclear/duplicate bug reports or triggering a flood of notifications by responding to comments + +## Connect with the Community ## + +Follow us on [Twitter](https://link.photoprism.app/twitter) and join the [Community Chat](https://link.photoprism.app/chat) +to get regular updates, connect with other users, and discuss your ideas. Our [Code of Conduct](https://www.photoprism.app/code-of-conduct) explains the "dos and don’ts" when interacting with other community members. + +Feel free to contact us at [hello@photoprism.app](mailto:hello@photoprism.app) with anything that is on your mind. We appreciate your feedback! Due to the high volume of emails we receive, our team may be unable to get back to you immediately. We do our best to respond within five business days or less. + +## Every Contribution Makes a Difference ## + +We welcome [contributions](https://github.com/photoprism/photoprism/blob/develop/CONTRIBUTING.md) of any kind, including blog posts, tutorials, testing, writing documentation, and pull requests. Our [Developer Guide](https://docs.photoprism.app/developer-guide/) contains all the information necessary for you to get started. + +---- + +*PhotoPrism® is a [registered trademark](https://www.photoprism.app/trademark). By using the software and services we provide, you agree to our [Terms of Service](https://www.photoprism.app/terms), [Privacy Policy](https://www.photoprism.app/privacy), and [Code of Conduct](https://www.photoprism.app/code-of-conduct). Docs are [available](https://link.photoprism.app/github-docs) under the [CC BY-NC-SA 4.0 License](https://creativecommons.org/licenses/by-nc-sa/4.0/); [additional terms](https://github.com/photoprism/photoprism/blob/develop/assets/README.md) may apply.* diff --git a/apps/photoview/README.md b/apps/photoview/README.md index 9ceacd61b..9b26936f5 100644 --- a/apps/photoview/README.md +++ b/apps/photoview/README.md @@ -1,135 +1,122 @@ -photoview logo +![photoview logo](https://github.com/photoview/photoview/raw/master/screenshots/photoview-logo.svg) -[![License](https://img.shields.io/github/license/viktorstrate/photoview)](./LICENSE.md) -[![GitHub contributors](https://img.shields.io/github/contributors/viktorstrate/photoview)](https://github.com/viktorstrate/photoview/graphs/contributors) -[![Docker Pulls](https://img.shields.io/docker/pulls/viktorstrate/photoview)](https://hub.docker.com/r/viktorstrate/photoview) -[![Docker builds](https://github.com/photoview/photoview/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/photoview/photoview/actions/workflows/build.yml) -[![codecov](https://codecov.io/gh/photoview/photoview/branch/master/graph/badge.svg?token=AATZKC93F7)](https://codecov.io/gh/photoview/photoview) +[![License](https://img.shields.io/github/license/viktorstrate/photoview)](./LICENSE.md) [![GitHub contributors](https://img.shields.io/github/contributors/viktorstrate/photoview)](https://github.com/viktorstrate/photoview/graphs/contributors) [![Docker Pulls](https://img.shields.io/docker/pulls/viktorstrate/photoview)](https://hub.docker.com/r/viktorstrate/photoview) [![Docker builds](https://github.com/photoview/photoview/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/photoview/photoview/actions/workflows/build.yml) [![codecov](https://codecov.io/gh/photoview/photoview/branch/master/graph/badge.svg?token=AATZKC93F7)](https://codecov.io/gh/photoview/photoview) ![screenshot](https://github.com/photoview/photoview/raw/master/screenshots/timeline.png) -Photoview is a simple and user-friendly photo gallery that's made for photographers and aims to provide an easy and fast way to navigate directories, with thousands of high-resolution photos. +Photoview 是一款简单易用的照片画廊,专为摄影师设计,旨在提供一种快速简便的目录导航方式,支持数千张高分辨率照片。 -You configure Photoview to look for photos and videos within a directory on your file system. The scanner automatically picks up your media and start to generate thumbnail images to make browsing super fast. +您可以在文件系统中的某个目录中配置 Photoview 来查找照片和视频。扫描器会自动检测您的媒体,并生成缩略图以使浏览速度极快。 -When your media has been scanned they show up on the website, organised in the same way as on the filesystem. +当您的媒体被扫描后,它们会在网站上显示出来,组织方式与文件系统中的相同。 -> If you have questions regarding setup or development, -feel free to join the Discord server https://discord.gg/jQ392948u9 +> 如果您有关于安装或开发的问题,欢迎加入 Discord 服务器 [https://discord.gg/jQ392948u9](https://discord.gg/jQ392948u9) -## Demo site +## 演示站点 -Visit https://photos.qpqp.dk/ +访问 [https://photos.qpqp.dk/](https://photos.qpqp.dk/) -Username: **demo** -Password: **demo** +用户名: **demo** 密码: **demo** -## Contents +## 内容 -- [Demo site](#demo-site) -- [Contents](#contents) -- [Main features](#main-features) -- [Supported platforms](#supported-platforms) -- [Why yet another self-hosted photo gallery](#why-yet-another-self-hosted-photo-gallery) -- [Getting started - Setup with Docker](#getting-started---setup-with-docker) - - [Initial Setup](#initial-setup) -- [Set up development environment](#set-up-development-environment) - - [Local setup](#local-setup) - - [Start API server](#start-api-server) - - [Start UI server](#start-ui-server) -- [Sponsors](#sponsors) +* [演示站点](#demo-site) +* [内容](#contents) +* [主要功能](#main-features) +* [支持的平台](#supported-platforms) +* [为什么又一个自托管的照片画廊](#why-yet-another-self-hosted-photo-gallery) +* [快速入门 - 使用 Docker 部署](#getting-started---setup-with-docker) + * [初始设置](#initial-setup) +* [设置开发环境](#set-up-development-environment) + * [本地设置](#local-setup) + * [启动 API 服务器](#start-api-server) + * [启动 UI 服务器](#start-ui-server) +* [赞助商](#sponsors) -## Main features +## 主要功能 -- **Closely tied to the file system**. The website presents the images found on the local filesystem of the server, directories are mapped to albums. -- **User management**. Each user is created along with a path on the local filesystem, photos within that path can be accessed by that user. -- **Sharing**. Albums, as well as individual media, can easily be shared with a public link, the link can optionally be password protected. -- **Made for photography**. Photoview is built with photographers in mind, and thus supports **RAW** file formats, and **EXIF** parsing. -- **Video support**. Many common video formats are supported. Videos will automatically be optimized for web. -- **Face recognition**. Faces will automatically be detected in photos, and photos of the same person will be grouped together. -- **Performant**. Thumbnails are automatically generated and photos first load when they are visible on the screen. In full screen, thumbnails are displayed until the high resolution image has been fully loaded. -- **Secure**. All media resources are protected with a cookie-token, all passwords are properly hashed, and the API uses a strict [CORS policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). +* **紧密关联文件系统** 。网站展示服务器本地文件系统中的图片,目录映射为相册。 +* **用户管理** 。每个用户在本地文件系统中创建一个路径,该路径内的照片可以被该用户访问。 +* **分享** 。相册以及单个媒体内容可以轻松通过公共链接分享,链接可以选配密码保护。 +* **专为摄影设计** 。Photoview 是为摄影师打造的,因此支持 **RAW** 文件格式和 **EXIF** 解析。 +* **视频支持** 。支持许多常见的视频格式。视频会自动优化以适应网络播放。 +* **人脸识别** 。照片中会自动检测人脸,相同人物的照片会被归类在一起。 +* **性能出色** 。会自动生成缩略图,照片在屏幕上可见时才会加载。在全屏模式下,会先显示缩略图,直到高分辨率图片完全加载完毕。 +* **安全** 。所有媒体资源都使用了 cookie-token 保护,所有密码都进行了妥善哈希处理,API 使用了严格的 [CORS 策略](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) 。 -## Supported platforms +## 支持的平台 -- [Docker](https://hub.docker.com/r/viktorstrate/photoview/) -- [Arch Linux Aur](https://aur.archlinux.org/packages/photoview) -- [Unraid](https://forums.unraid.net/topic/103028-support-photoview-corneliousjd-repo/) -- EmbassyOS: [announcement](https://start9labs.medium.com/new-service-photoview-72ee681b2ff0), [repo](https://github.com/Start9Labs/embassyos-photoview-wrapper) -- [YunoHost](https://github.com/YunoHost-Apps/photoview_ynh) +* [Docker](https://hub.docker.com/r/viktorstrate/photoview/) +* [Arch Linux Aur](https://aur.archlinux.org/packages/photoview) +* [Unraid](https://forums.unraid.net/topic/103028-support-photoview-corneliousjd-repo/) +* EmbassyOS: [公告](https://start9labs.medium.com/new-service-photoview-72ee681b2ff0) , [仓库](https://github.com/Start9Labs/embassyos-photoview-wrapper) +* [YunoHost](https://github.com/YunoHost-Apps/photoview_ynh) -## Why yet another self-hosted photo gallery +## 为何再添一个自托管照片画廊 -There exists a lot of open-source self-hosted photo galleries already. Here are some, just to mention a few. +已经存在很多开源的自托管照片画廊了。这里列举几个,仅作参考。 -- [Piwigo](https://github.com/Piwigo/Piwigo) -- [LibrePhotos](https://github.com/LibrePhotos/librephotos) -- [Photoprism](https://github.com/photoprism/photoprism) -- [Lychee](https://github.com/LycheeOrg/Lychee) +* [Piwigo](https://github.com/Piwigo/Piwigo) +* [LibrePhotos](https://github.com/LibrePhotos/librephotos) +* [Photoprism](https://github.com/photoprism/photoprism) +* [Lychee](https://github.com/LycheeOrg/Lychee) -So why another one? -I love taking photos, and I store all of them on my local fileserver. -This is great because I can organize my photos directly on the filesystem so it's easy to move them or take backups. I want to be able to control where and how the photos are stored. +那么为什么还要再做一个呢?我喜欢拍照,并且把所有的照片都存储在我的本地文件服务器上。这样很好,因为我可以直接在文件系统上组织我的照片,方便移动或备份。 -The problem is however that RAW images are extremely tedious to navigate from a fileserver, even over the local network. +然而,问题是 RAW 格式的照片从文件服务器上导航起来非常麻烦,即使是局域网内也是如此。 -My server holds a lot of old family pictures, that I would like my family to have access to as well. -And some of the pictures I would like to easily be able to share with other people without the hassle of them having to make an account first. +我的服务器上有很多旧的家庭照片,我也希望我的家人能够访问这些照片。还有一些照片,我希望可以直接分享给其他人,而不需要他们先注册账号。 -Thus I need a solution that can do the following: +因此,我需要一个解决方案,能够做到以下几点: -- A scan based approach that automatically organises my photos -- Support RAW and EXIF parsing -- Have support for multiple users and ways to share albums and photos also publicly -- Be simple and fast to use +* 基于扫描的自动整理照片的方法 +* 支持 RAW 和 EXIF 解析 +* 支持多个用户,并且可以分享相册和照片,也可以公开分享 +* 简单快速易用 -All of the photo galleries can do a lot of what I need, but no single one can do it all. +所有的照片画廊都能做到我需要的很多事情,但没有一个能全部做到。 -## Getting started - Setup with Docker +## 开始使用 - 使用 Docker 部署 -> This section describes how to get Photoview up and running on your server with Docker. -> Make sure you have Docker and docker-compose installed and running on your server +> 本节描述了如何在服务器上使用 Docker 部署 Photoview。请确保您的服务器上已安装并运行了 Docker 和 docker-compose。 -1. Make a new `docker-compose.yml` file on your computer, and copy the content of [docker-compose.example.yml](/docker-compose.example.yml) to the new file. -2. Edit `docker-compose.yml`, find the comments starting with `Change This:`, and change the values, to properly match your setup. If you are just testing locally, you don't have to change anything. -3. Start the server by running the following command +1. 在您的计算机上创建一个新的 `docker-compose.yml` 文件,并将 [docker-compose.example.yml](/docker-compose.example.yml) 文件的内容复制到新文件中。 +2. 编辑 `docker-compose.yml`,找到以 `Change This:` 开头的注释,并更改相应的值,以正确匹配您的设置。如果您只是本地测试,无需进行任何更改。 +3. 通过运行以下命令启动服务器 ```bash $ docker-compose up -d ``` -If the endpoint or the port hasn't been changed in the `docker-compose.yml` file, Photoview can now be accessed at http://localhost:8000 +如果 `docker-compose.yml` 文件中未更改端点或端口,则 Photoview 现在可以通过 [http://localhost:8000](http://localhost:8000) 访问 -### Initial Setup +### 初始设置 -If everything is setup correctly, you should be presented with an initial setup wizard, when accessing the website the first time. +如果一切设置正确,在首次访问网站时,你应该会被呈现一个初始设置向导。 ![Initial setup](https://github.com/photoview/photoview/raw/master/screenshots/initial-setup.png) -Enter a new username and password. +请输入一个新的用户名和密码。 -For the photo path, enter the path in the docker container where your photos are located. -This can be set from the `docker-compose.yml` file under `api` -> `volumes`. -The default location is `/photos` +对于照片路径,请输入 Docker 容器中存放照片的路径。这个路径可以在 \`docker-compose.yml\` 文件下的 \`api\` -> \`volumes\` 中设置。默认位置是 \`/photos\`。 -A new admin user will be created, with access to the photos located at the path provided under the initial setup. +将会创建一个新的管理员用户,该用户可以访问初始设置中提供的路径下的照片。 -The photos will have to be scanned before they show up, you can start a scan manually, by navigating to `Settings` and clicking on `Scan All` +照片在显示之前需要进行扫描,你可以通过导航到`设置`并点击`扫描所有`来手动开始扫描 -## Set up development environment +## 设置开发环境 -### Local setup +### 本地设置 -1. Install a local mysql server, and make a new database -2. Rename `/api/example.env` to `.env` and update the `MYSQL_URL` field -3. Rename `/ui/example.env` to `.env` +1. 安装本地 MySQL 服务器,并创建一个新的数据库 +2. 将 `/api/example.env` 重命名为 `.env`,并更新 `MYSQL_URL` 字段 +3. 将 `/ui/example.env` 重命名为 `.env` -### Start API server +### 启动 API 服务器 -Make sure [golang](https://golang.org/) is installed. +确保安装了 [golang](https://golang.org/) -Some C libraries are needed to compile the API, see [go-face requirements](https://github.com/Kagami/go-face#requirements) for more details. -They can be installed as shown below: +一些 C 库需要编译 API,请参阅 [go-face 要求](https://github.com/Kagami/go-face#requirements) 以获取更多详细信息。这些库可以按照以下方式安装: ```sh # Ubuntu @@ -144,7 +131,7 @@ brew install dlib libheif ``` -Then run the following commands: +然后运行以下命令: ```bash cd ./api @@ -152,10 +139,9 @@ go install go run server.go ``` -### Start UI server +### 启动 UI 服务器 -Make sure [node](https://nodejs.org/en/) is installed. -In a new terminal window run the following commands: +请确保 [node](https://nodejs.org/en/) 已安装。在新的终端窗口中运行以下命令: ```bash cd ./ui @@ -163,47 +149,8 @@ npm install npm start ``` -The site can now be accessed at [localhost:1234](http://localhost:1234). -And the graphql playground at [localhost:4001](http://localhost:4001) +现在可以访问站点:[localhost:1234](http://localhost:1234)。GraphQL Playground 可以在:[localhost:4001](http://localhost:4001) -## Sponsors +## 赞助商 - - - - - - - - -
- -
- @ericerkz -
-
- -
- @robin-moser -
-
- -
- @Revorge -
-
- -
- @deexno -
-
- -
- @FKrauss -
-
- -
- @jupblb -
-
+
@ericerkz@robin-moser@Revorge@deexno@FKrauss@jupblb
\ No newline at end of file diff --git a/apps/photoview/README_en.md b/apps/photoview/README_en.md new file mode 100644 index 000000000..9ceacd61b --- /dev/null +++ b/apps/photoview/README_en.md @@ -0,0 +1,209 @@ +photoview logo + +[![License](https://img.shields.io/github/license/viktorstrate/photoview)](./LICENSE.md) +[![GitHub contributors](https://img.shields.io/github/contributors/viktorstrate/photoview)](https://github.com/viktorstrate/photoview/graphs/contributors) +[![Docker Pulls](https://img.shields.io/docker/pulls/viktorstrate/photoview)](https://hub.docker.com/r/viktorstrate/photoview) +[![Docker builds](https://github.com/photoview/photoview/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/photoview/photoview/actions/workflows/build.yml) +[![codecov](https://codecov.io/gh/photoview/photoview/branch/master/graph/badge.svg?token=AATZKC93F7)](https://codecov.io/gh/photoview/photoview) + +![screenshot](https://github.com/photoview/photoview/raw/master/screenshots/timeline.png) + +Photoview is a simple and user-friendly photo gallery that's made for photographers and aims to provide an easy and fast way to navigate directories, with thousands of high-resolution photos. + +You configure Photoview to look for photos and videos within a directory on your file system. The scanner automatically picks up your media and start to generate thumbnail images to make browsing super fast. + +When your media has been scanned they show up on the website, organised in the same way as on the filesystem. + +> If you have questions regarding setup or development, +feel free to join the Discord server https://discord.gg/jQ392948u9 + +## Demo site + +Visit https://photos.qpqp.dk/ + +Username: **demo** +Password: **demo** + +## Contents + +- [Demo site](#demo-site) +- [Contents](#contents) +- [Main features](#main-features) +- [Supported platforms](#supported-platforms) +- [Why yet another self-hosted photo gallery](#why-yet-another-self-hosted-photo-gallery) +- [Getting started - Setup with Docker](#getting-started---setup-with-docker) + - [Initial Setup](#initial-setup) +- [Set up development environment](#set-up-development-environment) + - [Local setup](#local-setup) + - [Start API server](#start-api-server) + - [Start UI server](#start-ui-server) +- [Sponsors](#sponsors) + +## Main features + +- **Closely tied to the file system**. The website presents the images found on the local filesystem of the server, directories are mapped to albums. +- **User management**. Each user is created along with a path on the local filesystem, photos within that path can be accessed by that user. +- **Sharing**. Albums, as well as individual media, can easily be shared with a public link, the link can optionally be password protected. +- **Made for photography**. Photoview is built with photographers in mind, and thus supports **RAW** file formats, and **EXIF** parsing. +- **Video support**. Many common video formats are supported. Videos will automatically be optimized for web. +- **Face recognition**. Faces will automatically be detected in photos, and photos of the same person will be grouped together. +- **Performant**. Thumbnails are automatically generated and photos first load when they are visible on the screen. In full screen, thumbnails are displayed until the high resolution image has been fully loaded. +- **Secure**. All media resources are protected with a cookie-token, all passwords are properly hashed, and the API uses a strict [CORS policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). + +## Supported platforms + +- [Docker](https://hub.docker.com/r/viktorstrate/photoview/) +- [Arch Linux Aur](https://aur.archlinux.org/packages/photoview) +- [Unraid](https://forums.unraid.net/topic/103028-support-photoview-corneliousjd-repo/) +- EmbassyOS: [announcement](https://start9labs.medium.com/new-service-photoview-72ee681b2ff0), [repo](https://github.com/Start9Labs/embassyos-photoview-wrapper) +- [YunoHost](https://github.com/YunoHost-Apps/photoview_ynh) + +## Why yet another self-hosted photo gallery + +There exists a lot of open-source self-hosted photo galleries already. Here are some, just to mention a few. + +- [Piwigo](https://github.com/Piwigo/Piwigo) +- [LibrePhotos](https://github.com/LibrePhotos/librephotos) +- [Photoprism](https://github.com/photoprism/photoprism) +- [Lychee](https://github.com/LycheeOrg/Lychee) + +So why another one? +I love taking photos, and I store all of them on my local fileserver. +This is great because I can organize my photos directly on the filesystem so it's easy to move them or take backups. I want to be able to control where and how the photos are stored. + +The problem is however that RAW images are extremely tedious to navigate from a fileserver, even over the local network. + +My server holds a lot of old family pictures, that I would like my family to have access to as well. +And some of the pictures I would like to easily be able to share with other people without the hassle of them having to make an account first. + +Thus I need a solution that can do the following: + +- A scan based approach that automatically organises my photos +- Support RAW and EXIF parsing +- Have support for multiple users and ways to share albums and photos also publicly +- Be simple and fast to use + +All of the photo galleries can do a lot of what I need, but no single one can do it all. + +## Getting started - Setup with Docker + +> This section describes how to get Photoview up and running on your server with Docker. +> Make sure you have Docker and docker-compose installed and running on your server + +1. Make a new `docker-compose.yml` file on your computer, and copy the content of [docker-compose.example.yml](/docker-compose.example.yml) to the new file. +2. Edit `docker-compose.yml`, find the comments starting with `Change This:`, and change the values, to properly match your setup. If you are just testing locally, you don't have to change anything. +3. Start the server by running the following command + +```bash +$ docker-compose up -d +``` + +If the endpoint or the port hasn't been changed in the `docker-compose.yml` file, Photoview can now be accessed at http://localhost:8000 + +### Initial Setup + +If everything is setup correctly, you should be presented with an initial setup wizard, when accessing the website the first time. + +![Initial setup](https://github.com/photoview/photoview/raw/master/screenshots/initial-setup.png) + +Enter a new username and password. + +For the photo path, enter the path in the docker container where your photos are located. +This can be set from the `docker-compose.yml` file under `api` -> `volumes`. +The default location is `/photos` + +A new admin user will be created, with access to the photos located at the path provided under the initial setup. + +The photos will have to be scanned before they show up, you can start a scan manually, by navigating to `Settings` and clicking on `Scan All` + +## Set up development environment + +### Local setup + +1. Install a local mysql server, and make a new database +2. Rename `/api/example.env` to `.env` and update the `MYSQL_URL` field +3. Rename `/ui/example.env` to `.env` + +### Start API server + +Make sure [golang](https://golang.org/) is installed. + +Some C libraries are needed to compile the API, see [go-face requirements](https://github.com/Kagami/go-face#requirements) for more details. +They can be installed as shown below: + +```sh +# Ubuntu +sudo add-apt-repository ppa:strukturag/libheif +sudo add-apt-repository ppa:strukturag/libde265 +sudo apt-get update +sudo apt-get install libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg-turbo8-dev libheif-dev +# Debian +sudo apt-get install libdlib-dev libblas-dev libatlas-base-dev liblapack-dev libjpeg62-turbo-dev libheif-dev +# macOS +brew install dlib libheif + +``` + +Then run the following commands: + +```bash +cd ./api +go install +go run server.go +``` + +### Start UI server + +Make sure [node](https://nodejs.org/en/) is installed. +In a new terminal window run the following commands: + +```bash +cd ./ui +npm install +npm start +``` + +The site can now be accessed at [localhost:1234](http://localhost:1234). +And the graphql playground at [localhost:4001](http://localhost:4001) + +## Sponsors + + + + + + + + + +
+ +
+ @ericerkz +
+
+ +
+ @robin-moser +
+
+ +
+ @Revorge +
+
+ +
+ @deexno +
+
+ +
+ @FKrauss +
+
+ +
+ @jupblb +
+
diff --git a/apps/pic-smaller/README.md b/apps/pic-smaller/README.md index 489e145c5..3c04dd913 100644 --- a/apps/pic-smaller/README.md +++ b/apps/pic-smaller/README.md @@ -1,3 +1,3 @@ -# Pic Smaller (图小小) +# 图小小 (Pic Smaller) -**Pic Smaller** is a super easy-to-use online image compression tool. Its UI is intuitive and supports compression configuration. At the same time, because it is purely local compression without any server-side logic, it is completely safe. \ No newline at end of file +**图小小 (Pic Smaller)** 是一个极其易用的在线图片压缩工具。其用户界面直观,并支持压缩配置。同时,由于它是纯粹的本地压缩,没有任何服务器端逻辑,因此完全安全。 \ No newline at end of file diff --git a/apps/prometheus/README.md b/apps/prometheus/README.md index 6df07785a..8e3d43cce 100644 --- a/apps/prometheus/README.md +++ b/apps/prometheus/README.md @@ -2,141 +2,107 @@ 需要按需配置应用目录下`data`文件夹里的`prometheus.yml`,以自定义更多功能。 - # 原始相关 -

- Prometheus
Prometheus -

+# [![Prometheus](https://raw.githubusercontent.com/prometheus/prometheus/main/documentation/images/prometheus-logo.svg)](//prometheus.io) +普罗米修斯 -

Visit prometheus.io for the full documentation, -examples and guides.

+访问 [prometheus.io](//prometheus.io) 获取完整的文档、示例和指南。 -
+[![CI](https://github.com/prometheus/prometheus/actions/workflows/ci.yml/badge.svg)](https://github.com/prometheus/prometheus/actions/workflows/ci.yml) [![Docker Repository on Quay](https://quay.io/repository/prometheus/prometheus/status)](https://quay.io/repository/prometheus/prometheus) [![Docker Pulls](https://img.shields.io/docker/pulls/prom/prometheus.svg?maxAge=604800)](https://hub.docker.com/r/prom/prometheus/) [![Go Report Card](https://goreportcard.com/badge/github.com/prometheus/prometheus)](https://goreportcard.com/report/github.com/prometheus/prometheus) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/486/badge)](https://bestpractices.coreinfrastructure.org/projects/486) [![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/prometheus/prometheus) [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/prometheus.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:prometheus) -[![CI](https://github.com/prometheus/prometheus/actions/workflows/ci.yml/badge.svg)](https://github.com/prometheus/prometheus/actions/workflows/ci.yml) -[![Docker Repository on Quay](https://quay.io/repository/prometheus/prometheus/status)][quay] -[![Docker Pulls](https://img.shields.io/docker/pulls/prom/prometheus.svg?maxAge=604800)][hub] -[![Go Report Card](https://goreportcard.com/badge/github.com/prometheus/prometheus)](https://goreportcard.com/report/github.com/prometheus/prometheus) -[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/486/badge)](https://bestpractices.coreinfrastructure.org/projects/486) -[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/prometheus/prometheus) -[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/prometheus.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:prometheus) +Prometheus 是一个[云原生计算基金会](https://cncf.io/)项目,是一个系统和服务监控系统。它以给定的时间间隔从配置的目标收集指标,评估规则表达式,显示结果,并可以在观察到指定条件时触发警报。 -
+Prometheus 与其他指标和监控系统的区别在于: -Prometheus, a [Cloud Native Computing Foundation](https://cncf.io/) project, is a systems and service monitoring system. It collects metrics -from configured targets at given intervals, evaluates rule expressions, -displays the results, and can trigger alerts when specified conditions are observed. +* **多维**数据模型(由度量名称和键/值维度集定义的时间序列) +* PromQL 是一种**强大而灵活的查询语言** ,可以利用这种维度 +* 不依赖分布式存储; **单个服务器节点是自治的** +* 一种用于时间序列采集的 HTTP**Pull 模型** +* 对于批处理作业,通过中间网关支持**推送时间序列** +* 通过**服务发现**或**静态配置**发现目标 +* 支持多种**图形和仪表板模式** +* 支持分层和水平**联合** -The features that distinguish Prometheus from other metrics and monitoring systems are: - -* A **multi-dimensional** data model (time series defined by metric name and set of key/value dimensions) -* PromQL, a **powerful and flexible query language** to leverage this dimensionality -* No dependency on distributed storage; **single server nodes are autonomous** -* An HTTP **pull model** for time series collection -* **Pushing time series** is supported via an intermediary gateway for batch jobs -* Targets are discovered via **service discovery** or **static configuration** -* Multiple modes of **graphing and dashboarding support** -* Support for hierarchical and horizontal **federation** - -## Architecture overview +## 体系结构概述 ![Architecture overview](https://raw.githubusercontent.com/prometheus/prometheus/main/documentation/images/architecture.svg) -## Install +## 安装 -There are various ways of installing Prometheus. +安装 Prometheus 的方法有很多种。 -### Precompiled binaries +### 预编译二进制文件 -Precompiled binaries for released versions are available in the -[*download* section](https://prometheus.io/download/) -on [prometheus.io](https://prometheus.io). Using the latest production release binary -is the recommended way of installing Prometheus. -See the [Installing](https://prometheus.io/docs/introduction/install/) -chapter in the documentation for all the details. +已发布版本的预编译二进制文件可在 在 [prometheus.io](https://prometheus.io) 上[*下载*部分](https://prometheus.io/download/) 。安装 Prometheus 的推荐方法是使用最新的生产版本二进制文件。有关所有详细信息,请参阅文档中的[安装](https://prometheus.io/docs/introduction/install/)章节。 -### Docker images +### Docker 镜像 -Docker images are available on [Quay.io](https://quay.io/repository/prometheus/prometheus) or [Docker Hub](https://hub.docker.com/r/prom/prometheus/). +Docker 镜像可以在 [Quay.io](https://quay.io/repository/prometheus/prometheus) 或 [Docker Hub](https://hub.docker.com/r/prom/prometheus/) 上找到。 -You can launch a Prometheus container for trying it out with +你可以启动一个 Prometheus 容器, ```bash docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus ``` -Prometheus will now be reachable at . +Prometheus 现在可以通过 [http://localhost:9090/](http://localhost:9090/) 访问。 -### Building from source +### 从源代码构建 -To build Prometheus from source code, You need: +要从源代码构建 Prometheus,您需要: -* Go [version 1.17 or greater](https://golang.org/doc/install). -* NodeJS [version 16 or greater](https://nodejs.org/). -* npm [version 7 or greater](https://www.npmjs.com/). +* Go[1.17 或更高版本](https://golang.org/doc/install) 。 +* NodeJS [版本 16 或更高](https://nodejs.org/) 。 +* NPM [版本 7 或更高](https://www.npmjs.com/)版本。 -Start by cloning the repository: +首先克隆存储库: ```bash git clone https://github.com/prometheus/prometheus.git cd prometheus ``` -You can use the `go` tool to build and install the `prometheus` -and `promtool` binaries into your `GOPATH`: +您可以使用 `go` 工具构建 `prometheus` 和 `promtool` 二进制文件并将其安装到 `GOPATH` 中: ```bash GO111MODULE=on go install github.com/prometheus/prometheus/cmd/... prometheus --config.file=your_config.yml ``` -*However*, when using `go install` to build Prometheus, Prometheus will expect to be able to -read its web assets from local filesystem directories under `web/ui/static` and -`web/ui/templates`. In order for these assets to be found, you will have to run Prometheus -from the root of the cloned repository. Note also that these directories do not include the -React UI unless it has been built explicitly using `make assets` or `make build`. +*然而* ,当使用 `go install` 构建 Prometheus 时,Prometheus 将期望能够从 `web/ui/static` 下的本地文件系统目录读取其 web 资产, `web/ui/templates`.为了找到这些资产,您必须从克隆存储库的根目录运行 Prometheus。还要注意的是,这些目录不包括 React UI,除非它是使用 `make assets` 或 `make build` 显式构建的。 -An example of the above configuration file can be found [here.](https://github.com/prometheus/prometheus/blob/main/documentation/examples/prometheus.yml) +可以在这里找到上述配置文件的示例 [。](https://github.com/prometheus/prometheus/blob/main/documentation/examples/prometheus.yml) -You can also build using `make build`, which will compile in the web assets so that -Prometheus can be run from anywhere: +您也可以使用 `make build 进行`构建,它将在 Web 资产中编译,以便 Prometheus 可以从任何地方运行: ```bash make build ./prometheus --config.file=your_config.yml ``` -The Makefile provides several targets: +Makefile 提供了几个目标: -* *build*: build the `prometheus` and `promtool` binaries (includes building and compiling in web assets) -* *test*: run the tests -* *test-short*: run the short tests -* *format*: format the source code -* *vet*: check the source code for common errors -* *assets*: build the React UI +* *build*:构建 `prometheus` 和 `promtool` 二进制文件(包括在 web 资产中的构建和编译) +* *test*:运行测试 +* *test-short*:运行短测试 +* *format*:格式化源代码 +* *vet*:检查源代码中的常见错误 +* *assets*:构建 React UI -### Service discovery plugins +### 服务发现插件 -Prometheus is bundled with many service discovery plugins. -When building Prometheus from source, you can edit the [plugins.yml](./plugins.yml) -file to disable some service discoveries. The file is a yaml-formated list of go -import path that will be built into the Prometheus binary. +Prometheus 捆绑了许多服务发现插件。当从源代码构建 Prometheus 时,您可以编辑 [plugins.yml](./plugins.yml) 文件来禁用某些服务发现。该文件是一个 yaml 格式的 go 导入路径列表,将内置到 Prometheus 二进制文件中。 -After you have changed the file, you -need to run `make build` again. +更改文件后,需要再次运行 `make build`。 -If you are using another method to compile Prometheus, `make plugins` will -generate the plugins file accordingly. +如果您使用其他方法编译 Prometheus,`make plugins` 将相应地生成插件文件。 -If you add out-of-tree plugins, which we do not endorse at the moment, -additional steps might be needed to adjust the `go.mod` and `go.sum` files. As -always, be extra careful when loading third party code. +如果您添加树外插件(我们目前不支持),则可能需要额外的步骤来调整 `go.mod` 和 `go.sum` 文件。与往常一样,在加载第三方代码时要格外小心。 -### Building the Docker image +### 构建 Docker 镜像 -The `make docker` target is designed for use in our CI system. -You can build a docker image locally with the following commands: +`make docker` 目标是为我们的 CI 系统设计的。您可以使用以下命令在本地构建 Docker 镜像: ```bash make promu @@ -145,53 +111,45 @@ make npm_licenses make common-docker-amd64 ``` -## Using Prometheus as a Go Library +## 使用 Prometheus 作为 Go 库 -### Remote Write +### 远程写入 -We are publishing our Remote Write protobuf independently at -[buf.build](https://buf.build/prometheus/prometheus/assets). +我们正在独立发布我们的远程写入 protobuf, [buf.build](https://buf.build/prometheus/prometheus/assets) 网站。 -You can use that as a library: +您可以将其用作库: ```shell go get go.buf.build/protocolbuffers/go/prometheus/prometheus ``` -This is experimental. +这是实验性的 -### Prometheus code base +### 普罗米修斯代码库 -In order to comply with [go mod](https://go.dev/ref/mod#versions) rules, -Prometheus release number do not exactly match Go module releases. For the -Prometheus v2.y.z releases, we are publishing equivalent v0.y.z tags. +为了遵守 [Go mod](https://go.dev/ref/mod#versions) 规则,Prometheus 版本号与 Go 模块版本不完全匹配。对于 Prometheus v2.y.z 版本,我们发布了等效的 v0.y.z 标签。 -Therefore, a user that would want to use Prometheus v2.35.0 as a library could do: +因此,想要使用 Prometheus v2.35.0 作为库的用户可以这样做: ```shell go get github.com/prometheus/prometheus@v0.35.0 ``` -This solution makes it clear that we might break our internal Go APIs between -minor user-facing releases, as [breaking changes are allowed in major version -zero](https://semver.org/#spec-item-4). +这个解决方案清楚地表明,我们可能会在面向用户的次要版本之间破坏我们的内部 Go API,因为[在主要版本零中允许破坏性更改](https://semver.org/#spec-item-4) 。 -## React UI Development +## React UI 开发 -For more information on building, running, and developing on the React-based UI, see the React app's [README.md](web/ui/README.md). +有关在基于 React 的 UI 上构建、运行和开发的更多信息,请参阅 React 应用程序的 [README.md](web/ui/README.md)。 -## More information +## 更多信息 -* Godoc documentation is available via [pkg.go.dev](https://pkg.go.dev/github.com/prometheus/prometheus). Due to peculiarities of Go Modules, v2.x.y will be displayed as v0.x.y. -* See the [Community page](https://prometheus.io/community) for how to reach the Prometheus developers and users on various communication channels. +* Godoc 文档可通过 [pkg.go.dev](https://pkg.go.dev/github.com/prometheus/prometheus) 获得。由于 Go 模块的特殊性,v2.x.y 将显示为 v0.x.y。 +* 请参阅[社区页面](https://prometheus.io/community)了解如何通过各种沟通渠道与 Prometheus 开发人员和用户联系。 -## Contributing +## 贡献 -Refer to [CONTRIBUTING.md](https://github.com/prometheus/prometheus/blob/main/CONTRIBUTING.md) +请参阅 [CONTRIBUTING.md](https://github.com/prometheus/prometheus/blob/main/CONTRIBUTING.md) -## License +## 许可证 -Apache License 2.0, see [LICENSE](https://github.com/prometheus/prometheus/blob/main/LICENSE). - -[hub]: https://hub.docker.com/r/prom/prometheus/ -[quay]: https://quay.io/repository/prometheus/prometheus +Apache 许可证 2.0,参见[许可证](https://github.com/prometheus/prometheus/blob/main/LICENSE) 。 \ No newline at end of file diff --git a/apps/prometheus/README_en.md b/apps/prometheus/README_en.md new file mode 100644 index 000000000..6df07785a --- /dev/null +++ b/apps/prometheus/README_en.md @@ -0,0 +1,197 @@ +# 使用说明 + +需要按需配置应用目录下`data`文件夹里的`prometheus.yml`,以自定义更多功能。 + + +# 原始相关 + +

+ Prometheus
Prometheus +

+ +

Visit prometheus.io for the full documentation, +examples and guides.

+ +
+ +[![CI](https://github.com/prometheus/prometheus/actions/workflows/ci.yml/badge.svg)](https://github.com/prometheus/prometheus/actions/workflows/ci.yml) +[![Docker Repository on Quay](https://quay.io/repository/prometheus/prometheus/status)][quay] +[![Docker Pulls](https://img.shields.io/docker/pulls/prom/prometheus.svg?maxAge=604800)][hub] +[![Go Report Card](https://goreportcard.com/badge/github.com/prometheus/prometheus)](https://goreportcard.com/report/github.com/prometheus/prometheus) +[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/486/badge)](https://bestpractices.coreinfrastructure.org/projects/486) +[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/prometheus/prometheus) +[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/prometheus.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:prometheus) + +
+ +Prometheus, a [Cloud Native Computing Foundation](https://cncf.io/) project, is a systems and service monitoring system. It collects metrics +from configured targets at given intervals, evaluates rule expressions, +displays the results, and can trigger alerts when specified conditions are observed. + +The features that distinguish Prometheus from other metrics and monitoring systems are: + +* A **multi-dimensional** data model (time series defined by metric name and set of key/value dimensions) +* PromQL, a **powerful and flexible query language** to leverage this dimensionality +* No dependency on distributed storage; **single server nodes are autonomous** +* An HTTP **pull model** for time series collection +* **Pushing time series** is supported via an intermediary gateway for batch jobs +* Targets are discovered via **service discovery** or **static configuration** +* Multiple modes of **graphing and dashboarding support** +* Support for hierarchical and horizontal **federation** + +## Architecture overview + +![Architecture overview](https://raw.githubusercontent.com/prometheus/prometheus/main/documentation/images/architecture.svg) + +## Install + +There are various ways of installing Prometheus. + +### Precompiled binaries + +Precompiled binaries for released versions are available in the +[*download* section](https://prometheus.io/download/) +on [prometheus.io](https://prometheus.io). Using the latest production release binary +is the recommended way of installing Prometheus. +See the [Installing](https://prometheus.io/docs/introduction/install/) +chapter in the documentation for all the details. + +### Docker images + +Docker images are available on [Quay.io](https://quay.io/repository/prometheus/prometheus) or [Docker Hub](https://hub.docker.com/r/prom/prometheus/). + +You can launch a Prometheus container for trying it out with + +```bash +docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus +``` + +Prometheus will now be reachable at . + +### Building from source + +To build Prometheus from source code, You need: + +* Go [version 1.17 or greater](https://golang.org/doc/install). +* NodeJS [version 16 or greater](https://nodejs.org/). +* npm [version 7 or greater](https://www.npmjs.com/). + +Start by cloning the repository: + +```bash +git clone https://github.com/prometheus/prometheus.git +cd prometheus +``` + +You can use the `go` tool to build and install the `prometheus` +and `promtool` binaries into your `GOPATH`: + +```bash +GO111MODULE=on go install github.com/prometheus/prometheus/cmd/... +prometheus --config.file=your_config.yml +``` + +*However*, when using `go install` to build Prometheus, Prometheus will expect to be able to +read its web assets from local filesystem directories under `web/ui/static` and +`web/ui/templates`. In order for these assets to be found, you will have to run Prometheus +from the root of the cloned repository. Note also that these directories do not include the +React UI unless it has been built explicitly using `make assets` or `make build`. + +An example of the above configuration file can be found [here.](https://github.com/prometheus/prometheus/blob/main/documentation/examples/prometheus.yml) + +You can also build using `make build`, which will compile in the web assets so that +Prometheus can be run from anywhere: + +```bash +make build +./prometheus --config.file=your_config.yml +``` + +The Makefile provides several targets: + +* *build*: build the `prometheus` and `promtool` binaries (includes building and compiling in web assets) +* *test*: run the tests +* *test-short*: run the short tests +* *format*: format the source code +* *vet*: check the source code for common errors +* *assets*: build the React UI + +### Service discovery plugins + +Prometheus is bundled with many service discovery plugins. +When building Prometheus from source, you can edit the [plugins.yml](./plugins.yml) +file to disable some service discoveries. The file is a yaml-formated list of go +import path that will be built into the Prometheus binary. + +After you have changed the file, you +need to run `make build` again. + +If you are using another method to compile Prometheus, `make plugins` will +generate the plugins file accordingly. + +If you add out-of-tree plugins, which we do not endorse at the moment, +additional steps might be needed to adjust the `go.mod` and `go.sum` files. As +always, be extra careful when loading third party code. + +### Building the Docker image + +The `make docker` target is designed for use in our CI system. +You can build a docker image locally with the following commands: + +```bash +make promu +promu crossbuild -p linux/amd64 +make npm_licenses +make common-docker-amd64 +``` + +## Using Prometheus as a Go Library + +### Remote Write + +We are publishing our Remote Write protobuf independently at +[buf.build](https://buf.build/prometheus/prometheus/assets). + +You can use that as a library: + +```shell +go get go.buf.build/protocolbuffers/go/prometheus/prometheus +``` + +This is experimental. + +### Prometheus code base + +In order to comply with [go mod](https://go.dev/ref/mod#versions) rules, +Prometheus release number do not exactly match Go module releases. For the +Prometheus v2.y.z releases, we are publishing equivalent v0.y.z tags. + +Therefore, a user that would want to use Prometheus v2.35.0 as a library could do: + +```shell +go get github.com/prometheus/prometheus@v0.35.0 +``` + +This solution makes it clear that we might break our internal Go APIs between +minor user-facing releases, as [breaking changes are allowed in major version +zero](https://semver.org/#spec-item-4). + +## React UI Development + +For more information on building, running, and developing on the React-based UI, see the React app's [README.md](web/ui/README.md). + +## More information + +* Godoc documentation is available via [pkg.go.dev](https://pkg.go.dev/github.com/prometheus/prometheus). Due to peculiarities of Go Modules, v2.x.y will be displayed as v0.x.y. +* See the [Community page](https://prometheus.io/community) for how to reach the Prometheus developers and users on various communication channels. + +## Contributing + +Refer to [CONTRIBUTING.md](https://github.com/prometheus/prometheus/blob/main/CONTRIBUTING.md) + +## License + +Apache License 2.0, see [LICENSE](https://github.com/prometheus/prometheus/blob/main/LICENSE). + +[hub]: https://hub.docker.com/r/prom/prometheus/ +[quay]: https://quay.io/repository/prometheus/prometheus diff --git a/apps/qbittorrent-vnc/README.md b/apps/qbittorrent-vnc/README.md index f19e7f102..f109c54d9 100644 --- a/apps/qbittorrent-vnc/README.md +++ b/apps/qbittorrent-vnc/README.md @@ -1,14 +1,16 @@ # 使用说明 -- 访问链接协议`https` +* 访问链接协议`https` + +* 默认账户密码 + -- 默认账户密码 ``` username: kasm_user password: password ``` -- 假如重启出现异常 +* 假如重启出现异常 大概率可能是文件夹权限原因,需要将应用数据文件夹`data`赋予用户权限, @@ -19,76 +21,76 @@ chown -R 1000:1000 /opt/1panel/apps/local/qbittorrent-vnc/qbittorrent-vnc/data ``` # 原始相关 -*** -**Kasm Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services.** +* * * + +**Kasm Workspaces 是一个基于 Docker 容器流式传输平台,用于提供对桌面、应用程序和 web 服务的浏览器访问。** ## Live Demo +**在新浏览器窗口中启动实时演示:**[Live Demo](https://app.kasmweb.com/#/cast/5361455650). -**Launch a real-time demo in a new browser window:** [Live Demo](https://app.kasmweb.com/#/cast/5361455650). +![](https://5856039.fs1.hubspotusercontent-na1.net/hub/5856039/hubfs/dockerhub/casting-buttons/Qbittorrent.png)\]([https://app.kasmweb.com/#/cast/5361455650](https://app.kasmweb.com/#/cast/5361455650)) -](https://app.kasmweb.com/#/cast/5361455650) +\* *注意:演示版限于 3 分钟,并且出于安全原因限制了上传和下载。* -∗*Note: Demo is limited to 3 minutes and has upload/downloads restricted for security purposes.* +## 开始使用 -## Get Started +试用我们的免费社区版: [下载](https://kasmweb.com/downloads "Download") 。 -Try out our no-cost Community Edition: [Download](https://kasmweb.com/downloads "Download"). +我们的 Kasm Workspaces 团队已开源了我们的镜像库( [详情](https://www.kasmweb.com/docs/latest/guide/custom_images.html "Image Info") & [源代码](https://github.com/kasmtech/workspaces-images "Workspaces Images") )。 -Our Kasm Workspaces team has open-sourced our library of images ([Info](https://www.kasmweb.com/docs/latest/guide/custom_images.html "Image Info") & [Source Code](https://github.com/kasmtech/workspaces-images "Workspaces Images")). +基于网络的渲染由我们的开源项目:[KasmVNC](https://github.com/kasmtech/KasmVNC "KasmVNC") 提供支持。 -The web-native rendering is powered by our open-source project: [KasmVNC](https://github.com/kasmtech/KasmVNC "KasmVNC"). +## 关于此图片 -## About This Image +此图片包含一个可通过浏览器访问的版本:[qBittorrent](https://www.qbittorrent.org/)。 -This Image contains a browser-accessible version of [qBittorrent](https://www.qbittorrent.org/). +![](https://5856039.fs1.hubspotusercontent-na1.net/hubfs/5856039/dockerhub/qbittorrent.png) - +## 环境变量 -## Environment Variables +* `APP_ARGS` - 启动应用程序时传递的额外参数。 -- `APP_ARGS` \- Additional arguments to pass to the application when launched. +## 独立部署 -## Stand-alone Deployment - -This image was designed to run natively within Kasm Workspaces, but it can also be deployed stand-alone and accessed through a web browser. +此镜像设计用于在 Kasm Workspaces 内原生运行,但也可以独立部署并通过网页浏览器访问。 ``` sudo docker run --rm -it --shm-size=512m -p 6901:6901 -e VNC_PW=password kasmweb/qbittorrent:1.13.0 ``` -The container is now accessible via a browser : [https://IP\_OF\_SERVER:6901](https://ip_of_server:6901/) +容器现在可通过浏览器访问:\[https://IP\_OF\_SERVER:6901\](https://IP\_OF\_SERVER:6901) -- User : kasm_user -- Password: password +* 用户:kasm\_user +* 密码: password -**Please note that some functionality, such as audio, uploads, downloads, and microphone pass-through, is only available when using Kasm Workspaces for orchestration.** +**请注意,部分功能,如音频、上传、下载以及麦克风直通,仅在使用 Kasm Workspaces 进行编排时可用。** -## Tags +## 标签 -- 1.13.0 +* 1.13.0 - - Images are built and tagged with the Kasm Workspaces release version. -- 1.13.0-rolling + * 图像会使用 Kasm Workspaces 发行版本进行构建和打标签。 +* 1.13.0-rolling - - Rolling tags are images that are updated and built nightly to ensure your images are running the latest version. -- develop + * 滚动标签是每天更新和构建的镜像,以确保您的镜像运行最新版本。 +* develop - - The develop tag is for testing and provides no expectation of compatibility. + * develop 标签用于测试,并不保证兼容性。 -## Additional Info +## 附加信息 -- Source Code +* 源代码 - - [KasmVNC GitHub](https://github.com/kasmtech/KasmVNC "KasmVNC"): Open-Source VNC server: web-native, secure, high-performance. - - [Images GitHub](https://github.com/kasmtech/workspaces-images "Workspaces Images"): Library of Workspaces Docker images. - - [Core Images GitHub](https://github.com/kasmtech/workspaces-core-images "Core Images"): Library of core OS baselines for custom images. -- Workspaces Documentation + * [KasmVNC GitHub](https://github.com/kasmtech/KasmVNC "KasmVNC"): 开源 VNC 服务器:基于网络原生,安全,高性能。 + * [Images GitHub](https://github.com/kasmtech/workspaces-images "Workspaces Images"): Workspace Docker 镜像库。 + * [Core Images GitHub](https://github.com/kasmtech/workspaces-core-images "Core Images"): 提供核心 OS 基线库,用于自定义镜像。 +* Workspaces 文档 - - [Developer API](https://www.kasmweb.com/docs/latest/developers/developer_api.html "Developer API"): Integrate with your applications and workflows. - - [Workspaces](https://www.kasmweb.com/docs/latest/install.html "Installation"): Instructions for installing and configuring Kasm Workspaces. - - [Custom Images](https://www.kasmweb.com/docs/latest/how_to/building_images.html "Custom Images"): Info on configuring custom images and installing software. -- Reporting Issues + * [Developer API](https://www.kasmweb.com/docs/latest/developers/developer_api.html "Developer API"): 与您的应用程序和工作流集成。 + * [Workspaces](https://www.kasmweb.com/docs/latest/install.html "Installation"): 安装和配置 Kasm Workspaces 的指南。 + * [自定义镜像](https://www.kasmweb.com/docs/latest/how_to/building_images.html "Custom Images") : 配置自定义镜像和安装软件的相关信息 +* 报告问题 - - [Issue Tracker GitHub](https://github.com/kasmtech/workspaces-issues/issues "GitHub Support"): Community issue reporting. \ No newline at end of file + * [Issue Tracker GitHub](https://github.com/kasmtech/workspaces-issues/issues "GitHub Support"): 社区问题报告 \ No newline at end of file diff --git a/apps/qbittorrent-vnc/README_en.md b/apps/qbittorrent-vnc/README_en.md new file mode 100644 index 000000000..e962b6da1 --- /dev/null +++ b/apps/qbittorrent-vnc/README_en.md @@ -0,0 +1,94 @@ +# 使用说明 + +- 访问链接协议`https` + +- 默认账户密码 +``` +username: kasm_user +password: password +``` + +- 假如重启出现异常 + +大概率可能是文件夹权限原因,需要将应用数据文件夹`data`赋予用户权限, + +终端运行以下命令,按需修改。 + +``` +chown -R 1000:1000 /opt/1panel/apps/local/qbittorrent-vnc/qbittorrent-vnc/data +``` + +# 原始相关 +*** + +**Kasm Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services.** + +## Live Demo + + +**Launch a real-time demo in a new browser window:** [Live Demo](https://app.kasmweb.com/#/cast/5361455650). + +](https://app.kasmweb.com/#/cast/5361455650) + +∗*Note: Demo is limited to 3 minutes and has upload/downloads restricted for security purposes.* + +## Get Started + +Try out our no-cost Community Edition: [Download](https://kasmweb.com/downloads "Download"). + +Our Kasm Workspaces team has open-sourced our library of images ([Info](https://www.kasmweb.com/docs/latest/guide/custom_images.html "Image Info") & [Source Code](https://github.com/kasmtech/workspaces-images "Workspaces Images")). + +The web-native rendering is powered by our open-source project: [KasmVNC](https://github.com/kasmtech/KasmVNC "KasmVNC"). + +## About This Image + +This Image contains a browser-accessible version of [qBittorrent](https://www.qbittorrent.org/). + + + +## Environment Variables + +- `APP_ARGS` \- Additional arguments to pass to the application when launched. + +## Stand-alone Deployment + +This image was designed to run natively within Kasm Workspaces, but it can also be deployed stand-alone and accessed through a web browser. + +``` +sudo docker run --rm -it --shm-size=512m -p 6901:6901 -e VNC_PW=password kasmweb/qbittorrent:1.13.0 +``` + +The container is now accessible via a browser : [https://IP\_OF\_SERVER:6901](https://ip_of_server:6901/) + +- User : kasm_user +- Password: password + +**Please note that some functionality, such as audio, uploads, downloads, and microphone pass-through, is only available when using Kasm Workspaces for orchestration.** + +## Tags + +- 1.13.0 + + - Images are built and tagged with the Kasm Workspaces release version. +- 1.13.0-rolling + + - Rolling tags are images that are updated and built nightly to ensure your images are running the latest version. +- develop + + - The develop tag is for testing and provides no expectation of compatibility. + +## Additional Info + +- Source Code + + - [KasmVNC GitHub](https://github.com/kasmtech/KasmVNC "KasmVNC"): Open-Source VNC server: web-native, secure, high-performance. + - [Images GitHub](https://github.com/kasmtech/workspaces-images "Workspaces Images"): Library of Workspaces Docker images. + - [Core Images GitHub](https://github.com/kasmtech/workspaces-core-images "Core Images"): Library of core OS baselines for custom images. +- Workspaces Documentation + + - [Developer API](https://www.kasmweb.com/docs/latest/developers/developer_api.html "Developer API"): Integrate with your applications and workflows. + - [Workspaces](https://www.kasmweb.com/docs/latest/install.html "Installation"): Instructions for installing and configuring Kasm Workspaces. + - [Custom Images](https://www.kasmweb.com/docs/latest/how_to/building_images.html "Custom Images"): Info on configuring custom images and installing software. +- Reporting Issues + + - [Issue Tracker GitHub](https://github.com/kasmtech/workspaces-issues/issues "GitHub Support"): Community issue reporting. \ No newline at end of file diff --git a/apps/remmina/README.md b/apps/remmina/README.md index f1f5e6919..de48bed96 100644 --- a/apps/remmina/README.md +++ b/apps/remmina/README.md @@ -1,54 +1,45 @@ -[![](https://img.shields.io/liberapay/receives/Remmina.svg?logo=liberapay)](https://liberapay.com/Remmina/donate) -[![](https://img.shields.io/liberapay/patrons/remmina.svg?logo=liberapay)](https://liberapay.com/Remmina/donate) -[![](https://opencollective.com/remmina/tiers/badge.svg)](https://opencollective.com/remmina) -[![Build Status](https://gitlab.com/Remmina/Remmina/badges/master/pipeline.svg)](https://gitlab.com/Remmina/Remmina/pipelines) -[![Translation status](https://hosted.weblate.org/widgets/remmina/-/remmina/svg-badge.svg)](https://hosted.weblate.org/engage/remmina/?utm_source=widget) -[![remmina](https://snapcraft.io//remmina/badge.svg)](https://snapcraft.io/remmina) +[![](https://img.shields.io/liberapay/receives/Remmina.svg?logo=liberapay)](https://liberapay.com/Remmina/donate) [![](https://img.shields.io/liberapay/patrons/remmina.svg?logo=liberapay)](https://liberapay.com/Remmina/donate) [![](https://opencollective.com/remmina/tiers/badge.svg)](https://opencollective.com/remmina) [![Build Status](https://gitlab.com/Remmina/Remmina/badges/master/pipeline.svg)](https://gitlab.com/Remmina/Remmina/pipelines) [![Translation status](https://hosted.weblate.org/widgets/remmina/-/remmina/svg-badge.svg)](https://hosted.weblate.org/engage/remmina/?utm_source=widget) [![remmina](https://snapcraft.io//remmina/badge.svg)](https://snapcraft.io/remmina) -## Remmina remote desktop client +## Remmina 远程桌面客户端 -*Use other desktops remotely, from a tiny screen or large monitors.* +*远程使用其他桌面,从小屏幕到大显示器。* +* 支持 RDP、VNC、SPICE、X2Go、SSH、WWW(HTTP 协议)和 EXEC 网络协议。 +* 使用 GTK 编写,正在进行 Qt 移植。 +* 以"remmina"(主程序)和"remmina-plugins"的形式发布。 -* RDP, VNC, SPICE, X2Go, SSH, WWW (HTTP protocol) and EXEC network protocols are supported. -* Written in GTK, with a port to Qt underway. -* Released as "remmina" (the main program) and "remmina-plugins". +### 安装 -### Installation +[如何安装 Remmina](https://remmina.org/how-to-install-remmina/),在[维基百科](https://gitlab.com/Remmina/Remmina/-/wikis/home)上可编辑。 -[How to install Remmina](https://remmina.org/how-to-install-remmina/), -editable on [the wiki](https://gitlab.com/Remmina/Remmina/-/wikis/home). +### 配置 -### Configuration +从图形界面或从$HOME/.config/remmina 设置一切。 -Set up everything from the graphical interface, or from $HOME/.config/remmina +### 贡献 -### Contributing +1. 将其分叉 +2. 创建您的功能分支( `git checkout -b my-new-feature` ) +3. 提交您的更改( `git commit -am 'Add some feature'` ) +4. 推送到分支( `git push origin my-new-feature` ) +5. 创建一个新的合并请求 -1. Fork it -2. Create your feature branch (`git checkout -b my-new-feature`) -3. Commit your changes (`git commit -am 'Add some feature'`) -4. Push to the branch (`git push origin my-new-feature`) -5. Create a new merge request +还有其他[贡献方式](https://gitlab.com/Remmina/Remmina/-/blob/master/CONTRIBUTING.md) ,在 IRC 上联系(#remmina on libera.chat),或在 [Matrix](https://riot.im/app/#/group/+remmina:matrix.org) 上。 -There are [other ways](https://gitlab.com/Remmina/Remmina/-/blob/master/CONTRIBUTING.md) to contribute too, get in contact on IRC (#remmina on libera.chat), or on [Matrix](https://riot.im/app/#/group/+remmina:matrix.org). +### 捐赠 -### Donations +这是[捐赠页面](https://remmina.org/wp/donations/)的网站。 [感谢](https://gitlab.com/Remmina/Remmina/-/blob/master/THANKS.md)是支持者列表。 -This is the website [donation page](https://remmina.org/wp/donations/). -[THANKS](https://gitlab.com/Remmina/Remmina/-/blob/master/THANKS.md) is a list of supporters. +### 作者 -### Authors +由 [Hiroyuki Tanaka](https://gitlab.com/myheroyuki)、[Antenore Gatta](https://gitlab.com/antenore)、[Giovanni Panozzo](https://gitlab.com/giox069) 和 [Allan Nordhøy](https://gitlab.com/kingu) 维护。如果您有贡献,请在 [AUTHORS](https://gitlab.com/Remmina/Remmina/-/blob/master/AUTHORS) 中添加自己。 -Maintained by [Hiroyuki Tanaka](https://gitlab.com/myheroyuki), [Antenore Gatta](https://gitlab.com/antenore), [Giovanni Panozzo](https://gitlab.com/giox069) and [Allan Nordhøy](https://gitlab.com/kingu). -Add yourself in [AUTHORS](https://gitlab.com/Remmina/Remmina/-/blob/master/AUTHORS) if you have contributed. +### 资源 -### Resources +* [网站](https://www.remmina.org/) +* 在 libera.chat 的 IRC 房间中,在#remmina 频道,您也可以使用[网页客户端](https://web.libera.chat/?nick=remminer%7C?#remmina) 。 - * [Website](https://www.remmina.org/) - * IRC room on libera.chat, in the #remmina channel, you can also use a [web client](https://web.libera.chat/?nick=remminer|?#remmina). +### 许可证 -### License - -Copylefted libre software, licensed [GPLv2+](https://gitlab.com/Remmina/Remmina/blob/master/COPYING). \ -Initially developed by [Vic Lee](https://github.com/llyzs). +版权自由软件,许可 [GPLv2+](https://gitlab.com/Remmina/Remmina/blob/master/COPYING)。 +最初由 [Vic Lee](https://github.com/llyzs) 开发。 \ No newline at end of file diff --git a/apps/remmina/README_en.md b/apps/remmina/README_en.md new file mode 100644 index 000000000..f1f5e6919 --- /dev/null +++ b/apps/remmina/README_en.md @@ -0,0 +1,54 @@ +[![](https://img.shields.io/liberapay/receives/Remmina.svg?logo=liberapay)](https://liberapay.com/Remmina/donate) +[![](https://img.shields.io/liberapay/patrons/remmina.svg?logo=liberapay)](https://liberapay.com/Remmina/donate) +[![](https://opencollective.com/remmina/tiers/badge.svg)](https://opencollective.com/remmina) +[![Build Status](https://gitlab.com/Remmina/Remmina/badges/master/pipeline.svg)](https://gitlab.com/Remmina/Remmina/pipelines) +[![Translation status](https://hosted.weblate.org/widgets/remmina/-/remmina/svg-badge.svg)](https://hosted.weblate.org/engage/remmina/?utm_source=widget) +[![remmina](https://snapcraft.io//remmina/badge.svg)](https://snapcraft.io/remmina) + +## Remmina remote desktop client + +*Use other desktops remotely, from a tiny screen or large monitors.* + + +* RDP, VNC, SPICE, X2Go, SSH, WWW (HTTP protocol) and EXEC network protocols are supported. +* Written in GTK, with a port to Qt underway. +* Released as "remmina" (the main program) and "remmina-plugins". + +### Installation + +[How to install Remmina](https://remmina.org/how-to-install-remmina/), +editable on [the wiki](https://gitlab.com/Remmina/Remmina/-/wikis/home). + +### Configuration + +Set up everything from the graphical interface, or from $HOME/.config/remmina + +### Contributing + +1. Fork it +2. Create your feature branch (`git checkout -b my-new-feature`) +3. Commit your changes (`git commit -am 'Add some feature'`) +4. Push to the branch (`git push origin my-new-feature`) +5. Create a new merge request + +There are [other ways](https://gitlab.com/Remmina/Remmina/-/blob/master/CONTRIBUTING.md) to contribute too, get in contact on IRC (#remmina on libera.chat), or on [Matrix](https://riot.im/app/#/group/+remmina:matrix.org). + +### Donations + +This is the website [donation page](https://remmina.org/wp/donations/). +[THANKS](https://gitlab.com/Remmina/Remmina/-/blob/master/THANKS.md) is a list of supporters. + +### Authors + +Maintained by [Hiroyuki Tanaka](https://gitlab.com/myheroyuki), [Antenore Gatta](https://gitlab.com/antenore), [Giovanni Panozzo](https://gitlab.com/giox069) and [Allan Nordhøy](https://gitlab.com/kingu). +Add yourself in [AUTHORS](https://gitlab.com/Remmina/Remmina/-/blob/master/AUTHORS) if you have contributed. + +### Resources + + * [Website](https://www.remmina.org/) + * IRC room on libera.chat, in the #remmina channel, you can also use a [web client](https://web.libera.chat/?nick=remminer|?#remmina). + +### License + +Copylefted libre software, licensed [GPLv2+](https://gitlab.com/Remmina/Remmina/blob/master/COPYING). \ +Initially developed by [Vic Lee](https://github.com/llyzs). diff --git a/apps/searxng/README.md b/apps/searxng/README.md index 5cc63a147..8eacb235f 100644 --- a/apps/searxng/README.md +++ b/apps/searxng/README.md @@ -1,82 +1,77 @@ ------------------------------------------------------------------------- -SearXNGlogo ------------------------------------------------------------------------- +尊重隐私、可 hack 的元搜索引擎[](https://en.wikipedia.org/wiki/Metasearch_engine) -Privacy-respecting, hackable [meta search engine](https://en.wikipedia.org/wiki/Metasearch_engine) +[searx.space](https://searx.space) 列出了可以直接使用的运行实例。 -[Searx.space](https://searx.space) lists ready-to-use running instances. - -A [user](https://docs.searxng.org/user),[admin](https://docs.searxng.org/admin) and[developer](https://docs.searxng.org/dev) handbook is available on the[homepage](https://docs.searxng.org/). +用户、管理员和开发者的手册可以在[首页](https://docs.searxng.org/user)获得。 [![SearXNG install](https://img.shields.io/badge/-install-blue)](https://docs.searxng.org/admin/installation.html) [![SearXNG -homepage](https://img.shields.io/badge/-homepage-blue)](https://docs.searxng.org/) [![SearXNGwiki](https://img.shields.io/badge/-wiki-blue)](https://github.com/searxng/searxng/wiki) [![AGPLLicense](https://img.shields.io/badge/license-AGPL-blue.svg)](https://github.com/searxng/searxng/blob/master/LICENSE) [![Issues](https://img.shields.io/github/issues/searxng/searxng?color=yellow&label=issues)](https://github.com/searxng/searxng/issues) [![commits](https://img.shields.io/github/commit-activity/y/searxng/searxng?color=yellow&label=commits)](https://github.com/searxng/searxng/commits/master) [![weblate](https://translate.codeberg.org/widgets/searxng/-/searxng/svg-badge.svg)](https://translate.codeberg.org/projects/searxng/) SearXNGlogo +homepage](https://img.shields.io/badge/-homepage-blue)](https://docs.searxng.org/) [![SearXNGwiki](https://img.shields.io/badge/-wiki-blue)](https://github.com/searxng/searxng/wiki) [![AGPLLicense](https://img.shields.io/badge/license-AGPL-blue.svg)](https://github.com/searxng/searxng/blob/master/LICENSE) [![Issues](https://img.shields.io/github/issues/searxng/searxng?color=yellow&label=issues)](https://github.com/searxng/searxng/issues) [![commits](https://img.shields.io/github/commit-activity/y/searxng/searxng?color=yellow&label=commits)](https://github.com/searxng/searxng/commits/master) [![weblate](https://translate.codeberg.org/widgets/searxng/-/searxng/svg-badge.svg)](https://translate.codeberg.org/projects/searxng/) [![SearXNGlogo](https://raw.githubusercontent.com/searxng/searxng/master/src/brand/searxng-wordmark.svg)](https://docs.searxng.org/) +* * * ------------------------------------------------------------------------- +# 联系 -# Contact - -Ask questions or just chat about SearXNG on +在 IRC 上提问或只是讨论 SearXNG: IRC - [#searxng on libera.chat](https://web.libera.chat/?channel=#searxng) which is bridged to Matrix. +[#searxng on libera.chat](https://web.libera.chat/?channel=#searxng),该频道已连接到 Matrix。 Matrix - [#searxng:matrix.org](https://matrix.to/#/#searxng:matrix.org) +[#searxng:matrix.org](https://matrix.to/#/#searxng:matrix.org) -# Differences to searx +# searx 的区别 -SearXNG is a fork of [searx](https://github.com/searx/searx), with notable changes: +SearXNG 是 searx 的分支版本,具有显著的变化: -## User experience +## 用户体验 -- Reworked (and still simple) theme: - - Usable on desktop, tablet and mobile. - - Light and dark versions (available in the preferences). - - Right-to-left language support. - - [Screenshots](https://dev.searxng.org/screenshots.html) -- The translations are up to date, you can contribute on [Weblate](https://translate.codeberg.org/projects/searxng/searxng/) -- The preferences page has been updated: - - Browse which engines are reliable or not. - - Engines are grouped inside each tab. - - Each engine has a description. -- Thanks to the anonymous metrics, it is easier to report malfunctioning engines, so they get fixed quicker - - [Turn off metrics on the server](https://docs.searxng.org/admin/engines/settings.html#general)if you don\'t want them recorded. -- Administrators can [block and/or replace the URLs in the search results](https://github.com/searxng/searxng/blob/5c1c0817c3996c5670a545d05831d234d21e6217/searx/settings.yml#L191-L199) +* 重新制作(仍然很简单)的主题: + * 适用于桌面、平板和移动设备。 + * 提供浅色和深色版本(可在设置中选择)。 + * 支持从右到左的语言。 + * [屏幕截图](https://dev.searxng.org/screenshots.html) +* 翻译已更新,您可以在 [Weblate](https://translate.codeberg.org/projects/searxng/searxng/) 中贡献 +* 偏好设置页面已更新: + * 浏览哪些引擎可靠或不可靠。 + * 每个标签页内包含一组引擎。 + * 每个引擎都有描述。 +* 由于采用了匿名指标,报告故障引擎变得更加容易,从而可以更快地修复它们 + * [在服务器上关闭指标记录](https://docs.searxng.org/admin/engines/settings.html#general) ,如果你不想记录这些数据。 +* 管理员可以 [阻止和/或替换搜索结果中的 URL](https://github.com/searxng/searxng/blob/5c1c0817c3996c5670a545d05831d234d21e6217/searx/settings.yml#L191-L199) -## Setup +## 配置 -- No need for [Morty](https://github.com/asciimoo/morty) to proxy images, even on a public instance. -- No need for [Filtron](https://github.com/searxng/filtron) to block bots, as there is now a built-in [limiter](https://docs.searxng.org/src/searx.plugins.limiter.html). -- A well maintained [Dockerimage](https://github.com/searxng/searxng-docker), now also built for ARM64 and ARM/v7 architectures. (Alternatively there are up to date installation scripts.) +* 即使在公共实例上,也不需要 [Morty](https://github.com/asciimoo/morty) 代理图片。 +* 现在内置了限制器,因此不需要 [Filtron](https://github.com/searxng/filtron) 去阻止机器人。 +* 维护良好的 [Docker 镜像](https://github.com/searxng/searxng-docker) ,现在也支持 ARM64 和 ARM/v7 架构。(或者你可以使用最新的安装脚本。) -## Contributing +## 贡献 -- Readable debug log. -- Contributing is easier, thanks to the [Development Quickstart](https://docs.searxng.org/dev/quickstart.html) guide. -- A lot of code cleanup and bugfixes. -- Up to date list dependencies. +* 可读的调试日志。 +* 贡献代码变得更加容易,多亏了 [开发快速入门](https://docs.searxng.org/dev/quickstart.html) 指南。 +* 进行了大量的代码清理和修复了诸多 bug。 +* 最新的依赖列表。 -# Translations +# 翻译 -Help translate SearXNG at [Weblate](https://translate.codeberg.org/projects/searxng/searxng/) +帮助翻译 SearXNG 至 [Weblate](https://translate.codeberg.org/projects/searxng/searxng/) ![](https://translate.codeberg.org/widgets/searxng/-/multi-auto.svg) # Codespaces -You can contribute from your browser using [GitHub Codespaces](https://docs.github.com/en/codespaces/overview): +您可以通过 [GitHub Codespaces](https://docs.github.com/en/codespaces/overview) 在浏览器中贡献: -- Fork the repository -- Click on the `<> Code` green button -- Click on the `Codespaces` tab instead of `Local` -- Click on `Create codespace on master` -- VSCode is going to start in the browser -- Wait for `git pull && make install` to appears and then to disapear -- You have [120 hours per month](https://github.com/settings/billing)(see also your [list of existing Codespaces](https://github.com/codespaces)) -- You can start SearXNG using `make run` in the terminal or by pressing `Ctrl+Shift+B`. +* fork 仓库 +* 点击 `<> Code` 绿色按钮 +* 改为点击 `Codespaces` 选项卡而不是 `Local` +* 点击 `Create codespace on master` +* VSCode 将在浏览器中启动 +* 等待 \``git pull && make install`\` 出现并消失 +* 您每个月有 [120 小时](https://github.com/settings/billing) (请参见您的 [现有 Codespaces 列表](https://github.com/codespaces) ) +* 您可以在终端中使用 \``make run`\` 启动 SearXNG,或者按下 \``Ctrl+Shift+B`\`。 \ No newline at end of file diff --git a/apps/searxng/README_en.md b/apps/searxng/README_en.md new file mode 100644 index 000000000..5cc63a147 --- /dev/null +++ b/apps/searxng/README_en.md @@ -0,0 +1,82 @@ +------------------------------------------------------------------------ + +SearXNGlogo + +------------------------------------------------------------------------ + +Privacy-respecting, hackable [meta search engine](https://en.wikipedia.org/wiki/Metasearch_engine) + +[Searx.space](https://searx.space) lists ready-to-use running instances. + +A [user](https://docs.searxng.org/user),[admin](https://docs.searxng.org/admin) and[developer](https://docs.searxng.org/dev) handbook is available on the[homepage](https://docs.searxng.org/). + +[![SearXNG +install](https://img.shields.io/badge/-install-blue)](https://docs.searxng.org/admin/installation.html) [![SearXNG +homepage](https://img.shields.io/badge/-homepage-blue)](https://docs.searxng.org/) [![SearXNGwiki](https://img.shields.io/badge/-wiki-blue)](https://github.com/searxng/searxng/wiki) [![AGPLLicense](https://img.shields.io/badge/license-AGPL-blue.svg)](https://github.com/searxng/searxng/blob/master/LICENSE) [![Issues](https://img.shields.io/github/issues/searxng/searxng?color=yellow&label=issues)](https://github.com/searxng/searxng/issues) [![commits](https://img.shields.io/github/commit-activity/y/searxng/searxng?color=yellow&label=commits)](https://github.com/searxng/searxng/commits/master) [![weblate](https://translate.codeberg.org/widgets/searxng/-/searxng/svg-badge.svg)](https://translate.codeberg.org/projects/searxng/) SearXNGlogo + + +------------------------------------------------------------------------ + +# Contact + +Ask questions or just chat about SearXNG on + +IRC + + [#searxng on libera.chat](https://web.libera.chat/?channel=#searxng) which is bridged to Matrix. + +Matrix + + [#searxng:matrix.org](https://matrix.to/#/#searxng:matrix.org) + +# Differences to searx + +SearXNG is a fork of [searx](https://github.com/searx/searx), with notable changes: + +## User experience + +- Reworked (and still simple) theme: + - Usable on desktop, tablet and mobile. + - Light and dark versions (available in the preferences). + - Right-to-left language support. + - [Screenshots](https://dev.searxng.org/screenshots.html) +- The translations are up to date, you can contribute on [Weblate](https://translate.codeberg.org/projects/searxng/searxng/) +- The preferences page has been updated: + - Browse which engines are reliable or not. + - Engines are grouped inside each tab. + - Each engine has a description. +- Thanks to the anonymous metrics, it is easier to report malfunctioning engines, so they get fixed quicker + - [Turn off metrics on the server](https://docs.searxng.org/admin/engines/settings.html#general)if you don\'t want them recorded. +- Administrators can [block and/or replace the URLs in the search results](https://github.com/searxng/searxng/blob/5c1c0817c3996c5670a545d05831d234d21e6217/searx/settings.yml#L191-L199) + +## Setup + +- No need for [Morty](https://github.com/asciimoo/morty) to proxy images, even on a public instance. +- No need for [Filtron](https://github.com/searxng/filtron) to block bots, as there is now a built-in [limiter](https://docs.searxng.org/src/searx.plugins.limiter.html). +- A well maintained [Dockerimage](https://github.com/searxng/searxng-docker), now also built for ARM64 and ARM/v7 architectures. (Alternatively there are up to date installation scripts.) + +## Contributing + +- Readable debug log. +- Contributing is easier, thanks to the [Development Quickstart](https://docs.searxng.org/dev/quickstart.html) guide. +- A lot of code cleanup and bugfixes. +- Up to date list dependencies. + +# Translations + +Help translate SearXNG at [Weblate](https://translate.codeberg.org/projects/searxng/searxng/) + +![](https://translate.codeberg.org/widgets/searxng/-/multi-auto.svg) + +# Codespaces + +You can contribute from your browser using [GitHub Codespaces](https://docs.github.com/en/codespaces/overview): + +- Fork the repository +- Click on the `<> Code` green button +- Click on the `Codespaces` tab instead of `Local` +- Click on `Create codespace on master` +- VSCode is going to start in the browser +- Wait for `git pull && make install` to appears and then to disapear +- You have [120 hours per month](https://github.com/settings/billing)(see also your [list of existing Codespaces](https://github.com/codespaces)) +- You can start SearXNG using `make run` in the terminal or by pressing `Ctrl+Shift+B`. diff --git a/apps/seatable/README.md b/apps/seatable/README.md index c992bb1a1..642f8c6a7 100644 --- a/apps/seatable/README.md +++ b/apps/seatable/README.md @@ -4,81 +4,83 @@ 容器管理功能页面,连接容器终端,执行以下命令 -- 启动 SeaTable 服务 +* 启动 SeaTable 服务 ``` /shared/seatable/scripts/seatable.sh start ``` -- # 创建一个管理员帐户 +* # 创建一个管理员帐户 + + ``` /shared/seatable/scripts/seatable.sh superuser ``` # 原始相关 -*** -## Introduction -SeaTable is a spreadsheet/database like Airtable. The initial idea is for people to manage different kinds of data in a single platform. With built-in automation rules, scripts and APIs, you can automate data processing with no code or little code. +* * * -The core features include: +## 简介 -* A spreadsheet like interface supporting collaboratively editing -* Mobile ready UI to be used on browsers in mobile system -* Unlimited rows in a single base -* Interconnect data between bases -* Automate data processing without coding -* Powerful APIs as well as SQL interface -* self-hosted, no restriction on API calls +SeaTable 是类似于 Airtable 的电子表格/数据库。最初的想法是让人们在一个平台上管理不同种类的数据。内置的自动化规则、脚本和 API,使你无需编写代码或少量代码即可自动化数据处理。 -## History +核心功能包括: -SeaTable is originally built by the Seafile team (https://github.com/haiwen/seafile). The idea was to add online collaboration table feature to Seafile. Later it involved into a separate project. The business is now moved to SeaTable GmbH. +* 支持协作编辑的电子表格界面 +* 适用于移动系统的浏览器界面 +* 单个基础中的无限行 +* 在不同基础之间互联数据 +* 无需编码自动处理数据 +* 强大的 API 接口以及 SQL 接口 +* 自托管,无 API 调用限制 -## How to install SeaTable +## 历史 -Please check our manual: https://manual.seatable.io +SeaTable 由 Seafile 团队([https://github.com/haiwen/seafile](https://github.com/haiwen/seafile))最初构建。最初的想法是为 Seafile 添加在线协作表格功能。后来发展成一个独立的项目。业务现在转移到 SeaTable GmbH。 + +## 如何安装 SeaTable + +请查阅我们的手册:[https://manual.seatable.io](https://manual.seatable.io) ## Repositories General -* [Scripts examples](https://github.com/seatable/seatable-scripts-examples): Example background scripts that you can add to extend SeaTable. -* [Plugin template](https://github.com/seatable/seatable-plugin-template): The template for writing your own UI plugin. +* [Scripts examples](https://github.com/seatable/seatable-scripts-examples):您可以添加以扩展 SeaTable 的示例背景脚本。 +* [插件模板](https://github.com/seatable/seatable-plugin-template) : 自定义 UI 插件的模板。 -Plugins +插件 -* [Timeline plugin](https://github.com/seatable/seatable-plugin-timeline): Show records in timeline. -* [Map](https://github.com/seatable/seatable-plugin-map): Show records in Google Map. -* [Deduplicate](https://github.com/seatable/seatable-plugin-deduplicate): Detect duplicated records. +* [时间轴插件](https://github.com/seatable/seatable-plugin-timeline) : 在时间轴中显示记录。 +* [地图](https://github.com/seatable/seatable-plugin-map) : 在 Google 地图中显示记录。 +* [去重](https://github.com/seatable/seatable-plugin-deduplicate) : 检测重复记录。 +## 软件组件 -## Software components +SeaTable 包含以下组件 -SeaTable consists of following components +* dtable-web:用于管理表格的网站。 +* dtable-server:存储表格并提供协作功能。 +* [dtable-events](https://github.com/seatable/dtable-events): 背景维护任务 +* [seaf-server](https://github.com/haiwen/seafile): 存储附件(文件和图片) +* [ccnet-server](https://github.com/haiwen/ccnet-server): 以后将被移除。 +* [thumbnail-server](https://github.com/seatable/seatable-thumbnail-server): 提供图片缩略图和其他静态内容 -* dtable-web: The web site for manage tables. -* dtable-server: Store the tables and provide collaborating feature. -* [dtable-events](https://github.com/seatable/dtable-events): Background maintenance tasks -* [seaf-server](https://github.com/haiwen/seafile): Store attachments (files and images) -* [ccnet-server](https://github.com/haiwen/ccnet-server): Will be removed later. -* [thumbnail-server](https://github.com/seatable/seatable-thumbnail-server): serve image thumbnail and other static contents +## 许可证 -## LICENSE +SeaTable 社区版的不同组件采用不同的许可证: -The different components of SeaTable community edition are released under different licenses: +* dtable-web: Apache License v2 +* dtable-events: Apache License v2 +* dtable-server: 专有许可 +* seaf-server: AGPLv3 +* thumbnail-server: Apache License v2 -* dtable-web: Apache License v2 -* dtable-events: Apache License v2 -* dtable-server: Proprietary License -* seaf-server: AGPLv3 -* thumbnail-server: Apache License v2 +注: -Note: +* 源代码稍后将上传到 GitHub。如果你感兴趣,它们目前包含在 Docker 镜像中。 -* The source code will be uploaded to GitHub later. They are currently included in the Docker image if you are interested. - -## Reporting issues - -Please report issues in the forum: https://forum.seatable.io/ +## 报告问题 +请在论坛中报告问题:\[https://forum.seatable.io/\](https://forum.seatable.io/) \ No newline at end of file diff --git a/apps/seatable/README_en.md b/apps/seatable/README_en.md new file mode 100644 index 000000000..c992bb1a1 --- /dev/null +++ b/apps/seatable/README_en.md @@ -0,0 +1,84 @@ +# 使用说明 + +**创建时需要手动连接容器终端执行命令启动服务,并创建管理员账户密码。** + +容器管理功能页面,连接容器终端,执行以下命令 + +- 启动 SeaTable 服务 + +``` +/shared/seatable/scripts/seatable.sh start +``` + +- # 创建一个管理员帐户 +``` +/shared/seatable/scripts/seatable.sh superuser +``` + +# 原始相关 +*** +## Introduction + +SeaTable is a spreadsheet/database like Airtable. The initial idea is for people to manage different kinds of data in a single platform. With built-in automation rules, scripts and APIs, you can automate data processing with no code or little code. + +The core features include: + +* A spreadsheet like interface supporting collaboratively editing +* Mobile ready UI to be used on browsers in mobile system +* Unlimited rows in a single base +* Interconnect data between bases +* Automate data processing without coding +* Powerful APIs as well as SQL interface +* self-hosted, no restriction on API calls + +## History + +SeaTable is originally built by the Seafile team (https://github.com/haiwen/seafile). The idea was to add online collaboration table feature to Seafile. Later it involved into a separate project. The business is now moved to SeaTable GmbH. + +## How to install SeaTable + +Please check our manual: https://manual.seatable.io + +## Repositories + +General + +* [Scripts examples](https://github.com/seatable/seatable-scripts-examples): Example background scripts that you can add to extend SeaTable. +* [Plugin template](https://github.com/seatable/seatable-plugin-template): The template for writing your own UI plugin. + +Plugins + +* [Timeline plugin](https://github.com/seatable/seatable-plugin-timeline): Show records in timeline. +* [Map](https://github.com/seatable/seatable-plugin-map): Show records in Google Map. +* [Deduplicate](https://github.com/seatable/seatable-plugin-deduplicate): Detect duplicated records. + + +## Software components + +SeaTable consists of following components + +* dtable-web: The web site for manage tables. +* dtable-server: Store the tables and provide collaborating feature. +* [dtable-events](https://github.com/seatable/dtable-events): Background maintenance tasks +* [seaf-server](https://github.com/haiwen/seafile): Store attachments (files and images) +* [ccnet-server](https://github.com/haiwen/ccnet-server): Will be removed later. +* [thumbnail-server](https://github.com/seatable/seatable-thumbnail-server): serve image thumbnail and other static contents + +## LICENSE + +The different components of SeaTable community edition are released under different licenses: + +* dtable-web: Apache License v2 +* dtable-events: Apache License v2 +* dtable-server: Proprietary License +* seaf-server: AGPLv3 +* thumbnail-server: Apache License v2 + +Note: + +* The source code will be uploaded to GitHub later. They are currently included in the Docker image if you are interested. + +## Reporting issues + +Please report issues in the forum: https://forum.seatable.io/ + diff --git a/apps/slash/README.md b/apps/slash/README.md index 6cc4dc9d0..3feacd18d 100644 --- a/apps/slash/README.md +++ b/apps/slash/README.md @@ -1,37 +1,33 @@ -# Slash +# 斜杠 -logo +![logo](./resources/logo.png) -**Slash** is an open source, self-hosted bookmarks and link sharing platform. It allows you to organize your links with tags, and share them using custom shortened URLs. Slash also supports team sharing of link libraries for easy collaboration. +**Slash** 是一个开源的、可自行托管的书签和链接分享平台。它允许你使用标签来组织链接,并通过自定义的缩短链接来分享。Slash 还支持团队共享链接库,以便于协作。 -

- Discord - Docker pull - GitHub stars -

+[![Discord](https://img.shields.io/badge/discord-chat-5865f2?logo=discord&logoColor=f5f5f5)](https://discord.gg/QZqUuUAhDV) [![Docker pull](https://img.shields.io/docker/pulls/yourselfhosted/slash.svg)](https://hub.docker.com/r/yourselfhosted/slash) [![GitHub stars](https://img.shields.io/github/stars/boojack/slash?logo=github)](https://github.com/boojack/slash/stargazers) ![demo](https://github.com/boojack/slash/raw/main/resources/demo.png) -## Features +## 功能 -- Create customizable `/s/` short links for any URL. -- Share short links privately or with teammates. -- View analytics on link traffic and sources. -- Easy access to your shortcuts with browser extension. -- Open source self-hosted solution. +* 创建可自定义的 `/s/` 短链接,适用于任何 URL。 +* 私密分享短链接或与团队成员分享。 +* 查看链接流量和来源的分析数据 +* 通过浏览器扩展轻松访问快捷方式 +* 开源的自我托管解决方案 -## Deploy with Docker in seconds +## 秒速使用 Docker 部署 ```bash docker run -d --name slash -p 5231:5231 -v ~/.slash/:/var/opt/slash yourselfhosted/slash:latest ``` -Learn more in [Self-hosting Slash with Docker](https://github.com/boojack/slash/blob/main/docs/install.md). +了解更多,请参阅 [使用 Docker 自主托管 Slash](https://github.com/boojack/slash/blob/main/docs/install.md)。 -## Browser Extension +## 浏览器扩展程序 -Slash provides a browser extension to help you use your shortcuts in the search bar to go to the corresponding URL. +Slash 提供了一个浏览器扩展程序,帮助你在搜索栏中使用快捷键跳转到相应的 URL。 ![browser-extension-example](https://github.com/boojack/slash/raw/main/resources/browser-extension-example.png) -Learn more in [The Browser Extension of Slash](https://github.com/boojack/slash/blob/main/docs/install-browser-extension.md). \ No newline at end of file +了解更多,请参阅 [Slash 浏览器扩展程序](https://github.com/boojack/slash/blob/main/docs/install-browser-extension.md) 。 \ No newline at end of file diff --git a/apps/slash/README_en.md b/apps/slash/README_en.md new file mode 100644 index 000000000..6cc4dc9d0 --- /dev/null +++ b/apps/slash/README_en.md @@ -0,0 +1,37 @@ +# Slash + +logo + +**Slash** is an open source, self-hosted bookmarks and link sharing platform. It allows you to organize your links with tags, and share them using custom shortened URLs. Slash also supports team sharing of link libraries for easy collaboration. + +

+ Discord + Docker pull + GitHub stars +

+ +![demo](https://github.com/boojack/slash/raw/main/resources/demo.png) + +## Features + +- Create customizable `/s/` short links for any URL. +- Share short links privately or with teammates. +- View analytics on link traffic and sources. +- Easy access to your shortcuts with browser extension. +- Open source self-hosted solution. + +## Deploy with Docker in seconds + +```bash +docker run -d --name slash -p 5231:5231 -v ~/.slash/:/var/opt/slash yourselfhosted/slash:latest +``` + +Learn more in [Self-hosting Slash with Docker](https://github.com/boojack/slash/blob/main/docs/install.md). + +## Browser Extension + +Slash provides a browser extension to help you use your shortcuts in the search bar to go to the corresponding URL. + +![browser-extension-example](https://github.com/boojack/slash/raw/main/resources/browser-extension-example.png) + +Learn more in [The Browser Extension of Slash](https://github.com/boojack/slash/blob/main/docs/install-browser-extension.md). \ No newline at end of file diff --git a/apps/slink/README.md b/apps/slink/README.md index 515b92708..740c0684c 100644 --- a/apps/slink/README.md +++ b/apps/slink/README.md @@ -8,40 +8,42 @@ 那么则需要执行相关命令激活此账号。 -- 1. 宿主机执行的方式 +* 1. 宿主机执行的方式 + ``` # 邮箱方式 docker exec -it slink slink user:activate --email=admin@localhost.com ``` + ``` # uuid 方式 docker exec -it slink slink user:activate --uuid= ``` -- 2. 容器管理页面连接容器终端执行的方式 +* 2. 容器管理页面连接容器终端执行的方式 + ``` # 邮箱方式 slink user:activate --email=admin@localhost.com ``` + ``` # uuid 方式 slink user:activate --uuid= ``` -- 3. 有得到终端返回信息例如以下,则表示账号激活成功,可以正常登录了。 +* 3. 有得到终端返回信息例如以下,则表示账号激活成功,可以正常登录了。 ``` User `admin@localhost.com` has been activated ✓ ``` -*** -# Slink: Image Sharing Platform +* * * -![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/andrii-kryvoviaz/slink/release.yml?logo=github) -![Docker Image Version (latest semver)](https://img.shields.io/docker/v/anirdev/slink?color=blue) -![Docker Pulls](https://img.shields.io/docker/pulls/anirdev/slink?logo=docker) -[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/andrii-kryvoviaz/slink/blob/main/LICENSE) +# Slink:图片分享平台 -**Slink** is a self-hosted image sharing platform built with [Symfony](https://symfony.com/) and [SvelteKit](https://kit.svelte.dev/)️. +![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/andrii-kryvoviaz/slink/release.yml?logo=github) ![Docker Image Version (latest semver)](https://img.shields.io/docker/v/anirdev/slink?color=blue) ![Docker Pulls](https://img.shields.io/docker/pulls/anirdev/slink?logo=docker) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/andrii-kryvoviaz/slink/blob/main/LICENSE) -Solves the problem of sharing images with friends, family, and colleagues without relying on third-party services. It also offers a platform for artists to share their work with the community. Additionally, developers may find it useful for self-hosting screenshots of personal projects, which can then be used on GitHub, portfolios, blogs, etc. +**Slink** 是一个使用 [Symfony](https://symfony.com/) 和 [SvelteKit](https://kit.svelte.dev/)️ 构建的托管图片分享平台。 + +解决了与朋友、家人和同事分享图片的问题,无需依赖第三方服务。它还为艺术家提供了一个与社区分享作品的平台。此外,开发者可能发现它对托管个人项目的截图很有用,这些截图可以用于 GitHub、作品集、博客等。 \ No newline at end of file diff --git a/apps/slink/README_en.md b/apps/slink/README_en.md new file mode 100644 index 000000000..515b92708 --- /dev/null +++ b/apps/slink/README_en.md @@ -0,0 +1,47 @@ +# 使用说明 + +必须要开启`https`的情况下才能正常注册登录账号。 + +按照要求创建账号,例如邮箱`admin@localhost.com`, + +如果创建账号正常,则会提示除了邮箱外还可以复制对应`uuid`, + +那么则需要执行相关命令激活此账号。 + +- 1. 宿主机执行的方式 +``` +# 邮箱方式 +docker exec -it slink slink user:activate --email=admin@localhost.com +``` +``` +# uuid 方式 +docker exec -it slink slink user:activate --uuid= +``` + +- 2. 容器管理页面连接容器终端执行的方式 +``` +# 邮箱方式 +slink user:activate --email=admin@localhost.com +``` +``` +# uuid 方式 +slink user:activate --uuid= +``` + +- 3. 有得到终端返回信息例如以下,则表示账号激活成功,可以正常登录了。 + +``` +User `admin@localhost.com` has been activated ✓ +``` + +*** +# Slink: Image Sharing Platform + +![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/andrii-kryvoviaz/slink/release.yml?logo=github) +![Docker Image Version (latest semver)](https://img.shields.io/docker/v/anirdev/slink?color=blue) +![Docker Pulls](https://img.shields.io/docker/pulls/anirdev/slink?logo=docker) +[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/andrii-kryvoviaz/slink/blob/main/LICENSE) + +**Slink** is a self-hosted image sharing platform built with [Symfony](https://symfony.com/) and [SvelteKit](https://kit.svelte.dev/)️. + +Solves the problem of sharing images with friends, family, and colleagues without relying on third-party services. It also offers a platform for artists to share their work with the community. Additionally, developers may find it useful for self-hosting screenshots of personal projects, which can then be used on GitHub, portfolios, blogs, etc. diff --git a/apps/sqlitebrowser/README.md b/apps/sqlitebrowser/README.md index 567cf7c9e..c3501d219 100644 --- a/apps/sqlitebrowser/README.md +++ b/apps/sqlitebrowser/README.md @@ -1,23 +1,21 @@ # DB Browser for SQLite -## What it is +## DB Browser for SQLite 是什么 -_DB Browser for SQLite_ (DB4S) is a high quality, visual, open source tool to -create, design, and edit database files compatible with SQLite. +*DB Browser for SQLite*(DB4S)是一个高质量、可视化、开源的工具,用于创建、设计和编辑与 SQLite 兼容的数据库文件。 -DB4S is for users and developers who want to create, search, and edit -databases. DB4S uses a familiar spreadsheet-like interface, so complicated SQL commands do not have to be learned. +DB4S 适用于希望创建、搜索和编辑数据库的用户和开发者。DB4S 使用类似电子表格的熟悉界面,因此无需学习复杂的 SQL 命令。 -Controls and wizards are available for users to: +控件和向导可供用户使用: -* Create and compact database files -* Create, define, modify and delete tables -* Create, define, and delete indexes -* Browse, edit, add, and delete records -* Search records -* Import and export records as text -* Import and export tables from/to CSV files -* Import and export databases from/to SQL dump files -* Issue SQL queries and inspect the results -* Examine a log of all SQL commands issued by the application -* Plot simple graphs based on table or query data \ No newline at end of file +* 创建和压缩数据库文件 +* 创建、定义、修改和删除表 +* 创建、定义和删除索引 +* 浏览、编辑、添加和删除记录 +* 搜索记录 +* 将记录作为文本导入和导出 +* 从/到 CSV 文件导入和导出表格 +* 从/到 SQL 转储文件导入/导出数据库 +* 执行 SQL 查询并检查结果 +* 检查应用程序发出的所有 SQL 命令的日志 +* 根据表或查询数据绘制简单的图表 \ No newline at end of file diff --git a/apps/sqlitebrowser/README_en.md b/apps/sqlitebrowser/README_en.md new file mode 100644 index 000000000..567cf7c9e --- /dev/null +++ b/apps/sqlitebrowser/README_en.md @@ -0,0 +1,23 @@ +# DB Browser for SQLite + +## What it is + +_DB Browser for SQLite_ (DB4S) is a high quality, visual, open source tool to +create, design, and edit database files compatible with SQLite. + +DB4S is for users and developers who want to create, search, and edit +databases. DB4S uses a familiar spreadsheet-like interface, so complicated SQL commands do not have to be learned. + +Controls and wizards are available for users to: + +* Create and compact database files +* Create, define, modify and delete tables +* Create, define, and delete indexes +* Browse, edit, add, and delete records +* Search records +* Import and export records as text +* Import and export tables from/to CSV files +* Import and export databases from/to SQL dump files +* Issue SQL queries and inspect the results +* Examine a log of all SQL commands issued by the application +* Plot simple graphs based on table or query data \ No newline at end of file diff --git a/apps/stackedit/README.md b/apps/stackedit/README.md index f22a1262f..52d0df270 100644 --- a/apps/stackedit/README.md +++ b/apps/stackedit/README.md @@ -1,26 +1,27 @@ # 使用说明 -- 注意 镜像高达 `6g` +* 注意 镜像高达 `6g` # 原始相关 -*** + +* * * # StackEdit [![Build Status](https://img.shields.io/travis/benweet/stackedit.svg?style=flat)](https://travis-ci.org/benweet/stackedit) [![NPM version](https://img.shields.io/npm/v/stackedit.svg?style=flat)](https://www.npmjs.org/package/stackedit) -> Full-featured, open-source Markdown editor based on PageDown, the Markdown library used by Stack Overflow and the other Stack Exchange sites. +> 基于 PageDown 的 Markdown 编辑器,PageDown 是 Stack Overflow 和其他 Stack Exchange 网站使用的 Markdown 库。 -https://stackedit.io/ +[https://stackedit.io/](https://stackedit.io/) -### Ecosystem +### 生态系统 -- [Chrome app](https://chrome.google.com/webstore/detail/iiooodelglhkcpgbajoejffhijaclcdg) -- NEW! Embed StackEdit in any website with [stackedit.js](https://github.com/benweet/stackedit.js) -- NEW! [Chrome extension](https://chrome.google.com/webstore/detail/ajehldoplanpchfokmeempkekhnhmoha) that uses stackedit.js -- [Community](https://community.stackedit.io/) +* [Chrome 应用](https://chrome.google.com/webstore/detail/iiooodelglhkcpgbajoejffhijaclcdg) +* NEW! 将 StackEdit 嵌入任何网站使用 [stackedit.js](https://github.com/benweet/stackedit.js) +* NEW! 使用 stackedit.js 的 [Chrome 扩展程序](https://chrome.google.com/webstore/detail/ajehldoplanpchfokmeempkekhnhmoha) +* [社区](https://community.stackedit.io/) -### Build +### 构建 ```bash # install dependencies @@ -36,10 +37,9 @@ npm run build npm run build --report ``` -### Deploy with Helm +### 使用 Helm 部署 -StackEdit Helm chart allows easy StackEdit deployment to any Kubernetes cluster. -You can use it to configure deployment with your existing ingress controller and cert-manager. +StackEdit Helm 图表允许轻松地将 StackEdit 部署到任何 Kubernetes 集群。您可以使用它配置与现有 ingress controller 和 cert-manager 的部署。 ```bash # Add the StackEdit Helm repository @@ -60,20 +60,20 @@ helm install --name stackedit stackedit/stackedit \ --set wordpressSecret=$WORDPRESS_CLIENT_SECRET ``` -Later, to upgrade StackEdit to the latest version: +稍后,要升级 StackEdit 到最新版本: ```bash helm repo update helm upgrade stackedit stackedit/stackedit ``` -If you want to uninstall StackEdit: +如果您想卸载 StackEdit: ```bash helm delete --purge stackedit ``` -If you want to use your existing ingress controller and cert-manager issuer: +如果您想使用现有的 ingress controller 和 cert-manager 颁发者: ```bash # See https://docs.cert-manager.io/en/latest/tutorials/acme/quick-start/index.html @@ -93,4 +93,4 @@ helm install --name stackedit stackedit/stackedit \ --set ingress.hosts[0].paths[0]=/ \ --set ingress.tls[0].secretName=stackedit-tls \ --set ingress.tls[0].hosts[0]=stackedit.example.com -``` +``` \ No newline at end of file diff --git a/apps/stackedit/README_en.md b/apps/stackedit/README_en.md new file mode 100644 index 000000000..f22a1262f --- /dev/null +++ b/apps/stackedit/README_en.md @@ -0,0 +1,96 @@ +# 使用说明 + +- 注意 镜像高达 `6g` + +# 原始相关 +*** + +# StackEdit + +[![Build Status](https://img.shields.io/travis/benweet/stackedit.svg?style=flat)](https://travis-ci.org/benweet/stackedit) [![NPM version](https://img.shields.io/npm/v/stackedit.svg?style=flat)](https://www.npmjs.org/package/stackedit) + +> Full-featured, open-source Markdown editor based on PageDown, the Markdown library used by Stack Overflow and the other Stack Exchange sites. + +https://stackedit.io/ + +### Ecosystem + +- [Chrome app](https://chrome.google.com/webstore/detail/iiooodelglhkcpgbajoejffhijaclcdg) +- NEW! Embed StackEdit in any website with [stackedit.js](https://github.com/benweet/stackedit.js) +- NEW! [Chrome extension](https://chrome.google.com/webstore/detail/ajehldoplanpchfokmeempkekhnhmoha) that uses stackedit.js +- [Community](https://community.stackedit.io/) + +### Build + +```bash +# install dependencies +npm install + +# serve with hot reload at localhost:8080 +npm start + +# build for production with minification +npm run build + +# build for production and view the bundle analyzer report +npm run build --report +``` + +### Deploy with Helm + +StackEdit Helm chart allows easy StackEdit deployment to any Kubernetes cluster. +You can use it to configure deployment with your existing ingress controller and cert-manager. + +```bash +# Add the StackEdit Helm repository +helm repo add stackedit https://benweet.github.io/stackedit-charts/ + +# Update your local Helm chart repository cache +helm repo update + +# Deploy StackEdit chart to your cluster +helm install --name stackedit stackedit/stackedit \ + --set dropboxAppKey=$DROPBOX_API_KEY \ + --set dropboxAppKeyFull=$DROPBOX_FULL_ACCESS_API_KEY \ + --set googleClientId=$GOOGLE_CLIENT_ID \ + --set googleApiKey=$GOOGLE_API_KEY \ + --set githubClientId=$GITHUB_CLIENT_ID \ + --set githubClientSecret=$GITHUB_CLIENT_SECRET \ + --set wordpressClientId=\"$WORDPRESS_CLIENT_ID\" \ + --set wordpressSecret=$WORDPRESS_CLIENT_SECRET +``` + +Later, to upgrade StackEdit to the latest version: + +```bash +helm repo update +helm upgrade stackedit stackedit/stackedit +``` + +If you want to uninstall StackEdit: + +```bash +helm delete --purge stackedit +``` + +If you want to use your existing ingress controller and cert-manager issuer: + +```bash +# See https://docs.cert-manager.io/en/latest/tutorials/acme/quick-start/index.html +helm install --name stackedit stackedit/stackedit \ + --set dropboxAppKey=$DROPBOX_API_KEY \ + --set dropboxAppKeyFull=$DROPBOX_FULL_ACCESS_API_KEY \ + --set googleClientId=$GOOGLE_CLIENT_ID \ + --set googleApiKey=$GOOGLE_API_KEY \ + --set githubClientId=$GITHUB_CLIENT_ID \ + --set githubClientSecret=$GITHUB_CLIENT_SECRET \ + --set wordpressClientId=\"$WORDPRESS_CLIENT_ID\" \ + --set wordpressSecret=$WORDPRESS_CLIENT_SECRET \ + --set ingress.enabled=true \ + --set ingress.annotations."kubernetes\.io/ingress\.class"=nginx \ + --set ingress.annotations."cert-manager\.io/cluster-issuer"=letsencrypt-prod \ + --set ingress.hosts[0].host=stackedit.example.com \ + --set ingress.hosts[0].paths[0]=/ \ + --set ingress.tls[0].secretName=stackedit-tls \ + --set ingress.tls[0].hosts[0]=stackedit.example.com +``` diff --git a/apps/stream-rec-backend/README.md b/apps/stream-rec-backend/README.md index fdee4b89d..dc923fa7b 100644 --- a/apps/stream-rec-backend/README.md +++ b/apps/stream-rec-backend/README.md @@ -1,72 +1,74 @@ -# Stream-Rec +[![Syncthing](https://github.com/syncthing/syncthing/raw/main/assets/logo-text-128.png)](https://syncthing.net/) -Stream-rec 是一个自动录制各种直播平台的工具。 +* * * -![Stream-Rec](https://file.lifebus.top/imgs/stream_rec_cover.png) +[![MPLv2 License](https://img.shields.io/badge/license-MPLv2-blue.svg?style=flat-square)](https://www.mozilla.org/MPL/2.0/) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/88/badge)](https://bestpractices.coreinfrastructure.org/projects/88) [![Go Report Card](https://goreportcard.com/badge/github.com/syncthing/syncthing)](https://goreportcard.com/report/github.com/syncthing/syncthing) -![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) +## 目标 -## 特性 +Syncthing 是一个**持续文件同步程序** 。它可以在两台或多台计算机之间同步文件。我们力求实现以下目标。这些目标按重要性排序,最重要的目标排在最前面。以下为目标列表的摘要版本 - 如需更多注释,请参阅完整的[目标文档](https://github.com/syncthing/syncthing/blob/main/GOALS.md) 。 -基于 Kotlin, Ktor, 和 ffmpeg。 +Syncthing 应该是: -+ 自动录播,可配置录制质量,路径,格式,并发量,分段录制(时间或文件大小),分段上传,根据直播标题和开始时间自动命名文件。 -+ 自动弹幕录制(XML格式),可使用 DanmakuFactory 进行弹幕转换,或配合AList来实现弹幕自动挂载。 -+ 使用 SQLite 持久化存储录播和上传信息 -+ 支持 Rclone 上传到云存储 -+ 使用 Web 界面进行配置 -+ 支持 Docker +1. **防止数据丢失** + + 保护用户的数据至关重要。我们采取一切合理措施以避免损坏用户的文件。 + +2. **抵御攻击者** + + 再次强调,保护用户的数据至关重要。无论我们还有哪些其他目标,我们绝不能让用户的数据容易被未经授权的第三方窃听或篡改。 + +3. **易于使用** + + Syncthing 应该易于接近、易于理解且包容性强。 + +4. **自动运行** + + 用户交互仅在必要时才应被要求。 + +5. **普遍可用** + + Syncthing 应在每台常见计算机上运行。我们深知最新技术并非每个人都能获得。 + +6. **个人用户** + + Syncthing 主要是为了赋予个人用户安全、安全且易于使用的文件同步能力。 + +7. **其他一切** + + 有很多我们关心的事情没有列在上面。只要这些价值不与上述目标相冲突,优化它们是可以接受的。 + -## 直播平台支持列表 +## 快速入门 -| 平台 | 录制 | 弹幕 | 链接格式 | -|---------|----|----|-----------------------------------------------| -| 抖音 | ✅ | ✅ | `https://www.live.douyin.com/{抖音id}` | -| 斗鱼 | ✅ | ✅ | `https://www.douyu.com/{直播间}` | -| 虎牙 | ✅ | ✅ | `https://www.huya.com/{直播间}` | -| PandaTV | ✅ | ✅ | `https://www.pandalive.co.kr/live/play/{直播间}` | -| Twitch | ✅ | ✅ | `https://www.twitch.tv/{直播间}` | +请参阅[入门指南](https://docs.syncthing.net/intro/getting-started.html) 。 -## 安装说明 +系统中可以在 [etc 目录](https://github.com/syncthing/syncthing/blob/main/etc) 找到一些在后台运行 Syncthing 的示例。此外,还有适用于 Windows、Mac 和 Linux 的几种 [图形界面实现](https://docs.syncthing.net/users/contrib.html#gui-wrappers) 。 -> 默认账户 -> -> 用户名:stream-rec -> -> 密码:stream-rec 或 `登录密码 (初始化)` 配置 +## Docker -### 必须修改配置 +要在 Docker 中运行 Syncthing,请参阅 [Docker README](https://github.com/syncthing/syncthing/blob/main/README-Docker.md)。 -+ `WebSocket API 地址` +## 投票表决功能/bug -默认值:`ws://stream-rec-backend:12555/live/update` +我们鼓励您就您关心的问题进行投票。这有助于团队了解用户遇到的最大痛点,并可能影响接下来的工作重点。 -需要获取: +## 联系方式 -+ 宿主机 IP 地址 -+ 配置项 `API 端口`, 默认值:`12555` +最好的联系点是论坛。如果您发现了一个显然是 bug 的问题,请在 GitHub 问题跟踪器中报告它。 -填写格式:`ws://{宿主机 IP 地址}:{API 端口}/live/update` +## 构建 -### 可修改配置 +从源代码构建 Syncthing 很简单。在从发布版本提取源代码包或通过 git 检出代码后,您只需运行 \`go run build.go\`,二进制文件将创建在 \`./bin\` 目录中。有关构建过程的更多细节,请参阅相关指南。 -+ `NextAuth 服务器地址` +## 已签名的发布版本 -默认值:`http://localhost:15275/` +从 v0.10.15 版本起,发布的二进制文件使用密钥 D26E6ED000654A3E 进行 GPG 签名,该密钥可在 [https://syncthing.net/security.html](https://syncthing.net/security.html) 和大多数密钥服务器上获取。 -需要获取: +此外,还内置了一个自动更新机制(在某些分发渠道中被禁用),该机制使用编译时嵌入的 ECDSA 签名。macOS 二进制文件也已正确代码签名。 -+ 宿主机 IP 地址 -+ 配置项 `WebUI 端口`, 默认值:`15275` +## 文档 -填写格式:`http://{宿主机 IP 地址}:{WebUI 端口}/` +请参阅 Syncthing 的 [文档站点](https://docs.syncthing.net/) [\[源代码\]](https://github.com/syncthing/docs)。 -### 无法修改项目 - -+ `API 地址` - -当前部署方式为 前后端合并部署,请勿强制修改参数值。 - ---- - -![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) +所有代码均采用 [MPLv2 License](https://github.com/syncthing/syncthing/blob/main/LICENSE) 许可。 \ No newline at end of file diff --git a/apps/stream-rec-backend/README_en.md b/apps/stream-rec-backend/README_en.md new file mode 100644 index 000000000..fdee4b89d --- /dev/null +++ b/apps/stream-rec-backend/README_en.md @@ -0,0 +1,72 @@ +# Stream-Rec + +Stream-rec 是一个自动录制各种直播平台的工具。 + +![Stream-Rec](https://file.lifebus.top/imgs/stream_rec_cover.png) + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 特性 + +基于 Kotlin, Ktor, 和 ffmpeg。 + ++ 自动录播,可配置录制质量,路径,格式,并发量,分段录制(时间或文件大小),分段上传,根据直播标题和开始时间自动命名文件。 ++ 自动弹幕录制(XML格式),可使用 DanmakuFactory 进行弹幕转换,或配合AList来实现弹幕自动挂载。 ++ 使用 SQLite 持久化存储录播和上传信息 ++ 支持 Rclone 上传到云存储 ++ 使用 Web 界面进行配置 ++ 支持 Docker + +## 直播平台支持列表 + +| 平台 | 录制 | 弹幕 | 链接格式 | +|---------|----|----|-----------------------------------------------| +| 抖音 | ✅ | ✅ | `https://www.live.douyin.com/{抖音id}` | +| 斗鱼 | ✅ | ✅ | `https://www.douyu.com/{直播间}` | +| 虎牙 | ✅ | ✅ | `https://www.huya.com/{直播间}` | +| PandaTV | ✅ | ✅ | `https://www.pandalive.co.kr/live/play/{直播间}` | +| Twitch | ✅ | ✅ | `https://www.twitch.tv/{直播间}` | + +## 安装说明 + +> 默认账户 +> +> 用户名:stream-rec +> +> 密码:stream-rec 或 `登录密码 (初始化)` 配置 + +### 必须修改配置 + ++ `WebSocket API 地址` + +默认值:`ws://stream-rec-backend:12555/live/update` + +需要获取: + ++ 宿主机 IP 地址 ++ 配置项 `API 端口`, 默认值:`12555` + +填写格式:`ws://{宿主机 IP 地址}:{API 端口}/live/update` + +### 可修改配置 + ++ `NextAuth 服务器地址` + +默认值:`http://localhost:15275/` + +需要获取: + ++ 宿主机 IP 地址 ++ 配置项 `WebUI 端口`, 默认值:`15275` + +填写格式:`http://{宿主机 IP 地址}:{WebUI 端口}/` + +### 无法修改项目 + ++ `API 地址` + +当前部署方式为 前后端合并部署,请勿强制修改参数值。 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/stream-rec-frontend/README.md b/apps/stream-rec-frontend/README.md index fdee4b89d..dc923fa7b 100644 --- a/apps/stream-rec-frontend/README.md +++ b/apps/stream-rec-frontend/README.md @@ -1,72 +1,74 @@ -# Stream-Rec +[![Syncthing](https://github.com/syncthing/syncthing/raw/main/assets/logo-text-128.png)](https://syncthing.net/) -Stream-rec 是一个自动录制各种直播平台的工具。 +* * * -![Stream-Rec](https://file.lifebus.top/imgs/stream_rec_cover.png) +[![MPLv2 License](https://img.shields.io/badge/license-MPLv2-blue.svg?style=flat-square)](https://www.mozilla.org/MPL/2.0/) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/88/badge)](https://bestpractices.coreinfrastructure.org/projects/88) [![Go Report Card](https://goreportcard.com/badge/github.com/syncthing/syncthing)](https://goreportcard.com/report/github.com/syncthing/syncthing) -![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) +## 目标 -## 特性 +Syncthing 是一个**持续文件同步程序** 。它可以在两台或多台计算机之间同步文件。我们力求实现以下目标。这些目标按重要性排序,最重要的目标排在最前面。以下为目标列表的摘要版本 - 如需更多注释,请参阅完整的[目标文档](https://github.com/syncthing/syncthing/blob/main/GOALS.md) 。 -基于 Kotlin, Ktor, 和 ffmpeg。 +Syncthing 应该是: -+ 自动录播,可配置录制质量,路径,格式,并发量,分段录制(时间或文件大小),分段上传,根据直播标题和开始时间自动命名文件。 -+ 自动弹幕录制(XML格式),可使用 DanmakuFactory 进行弹幕转换,或配合AList来实现弹幕自动挂载。 -+ 使用 SQLite 持久化存储录播和上传信息 -+ 支持 Rclone 上传到云存储 -+ 使用 Web 界面进行配置 -+ 支持 Docker +1. **防止数据丢失** + + 保护用户的数据至关重要。我们采取一切合理措施以避免损坏用户的文件。 + +2. **抵御攻击者** + + 再次强调,保护用户的数据至关重要。无论我们还有哪些其他目标,我们绝不能让用户的数据容易被未经授权的第三方窃听或篡改。 + +3. **易于使用** + + Syncthing 应该易于接近、易于理解且包容性强。 + +4. **自动运行** + + 用户交互仅在必要时才应被要求。 + +5. **普遍可用** + + Syncthing 应在每台常见计算机上运行。我们深知最新技术并非每个人都能获得。 + +6. **个人用户** + + Syncthing 主要是为了赋予个人用户安全、安全且易于使用的文件同步能力。 + +7. **其他一切** + + 有很多我们关心的事情没有列在上面。只要这些价值不与上述目标相冲突,优化它们是可以接受的。 + -## 直播平台支持列表 +## 快速入门 -| 平台 | 录制 | 弹幕 | 链接格式 | -|---------|----|----|-----------------------------------------------| -| 抖音 | ✅ | ✅ | `https://www.live.douyin.com/{抖音id}` | -| 斗鱼 | ✅ | ✅ | `https://www.douyu.com/{直播间}` | -| 虎牙 | ✅ | ✅ | `https://www.huya.com/{直播间}` | -| PandaTV | ✅ | ✅ | `https://www.pandalive.co.kr/live/play/{直播间}` | -| Twitch | ✅ | ✅ | `https://www.twitch.tv/{直播间}` | +请参阅[入门指南](https://docs.syncthing.net/intro/getting-started.html) 。 -## 安装说明 +系统中可以在 [etc 目录](https://github.com/syncthing/syncthing/blob/main/etc) 找到一些在后台运行 Syncthing 的示例。此外,还有适用于 Windows、Mac 和 Linux 的几种 [图形界面实现](https://docs.syncthing.net/users/contrib.html#gui-wrappers) 。 -> 默认账户 -> -> 用户名:stream-rec -> -> 密码:stream-rec 或 `登录密码 (初始化)` 配置 +## Docker -### 必须修改配置 +要在 Docker 中运行 Syncthing,请参阅 [Docker README](https://github.com/syncthing/syncthing/blob/main/README-Docker.md)。 -+ `WebSocket API 地址` +## 投票表决功能/bug -默认值:`ws://stream-rec-backend:12555/live/update` +我们鼓励您就您关心的问题进行投票。这有助于团队了解用户遇到的最大痛点,并可能影响接下来的工作重点。 -需要获取: +## 联系方式 -+ 宿主机 IP 地址 -+ 配置项 `API 端口`, 默认值:`12555` +最好的联系点是论坛。如果您发现了一个显然是 bug 的问题,请在 GitHub 问题跟踪器中报告它。 -填写格式:`ws://{宿主机 IP 地址}:{API 端口}/live/update` +## 构建 -### 可修改配置 +从源代码构建 Syncthing 很简单。在从发布版本提取源代码包或通过 git 检出代码后,您只需运行 \`go run build.go\`,二进制文件将创建在 \`./bin\` 目录中。有关构建过程的更多细节,请参阅相关指南。 -+ `NextAuth 服务器地址` +## 已签名的发布版本 -默认值:`http://localhost:15275/` +从 v0.10.15 版本起,发布的二进制文件使用密钥 D26E6ED000654A3E 进行 GPG 签名,该密钥可在 [https://syncthing.net/security.html](https://syncthing.net/security.html) 和大多数密钥服务器上获取。 -需要获取: +此外,还内置了一个自动更新机制(在某些分发渠道中被禁用),该机制使用编译时嵌入的 ECDSA 签名。macOS 二进制文件也已正确代码签名。 -+ 宿主机 IP 地址 -+ 配置项 `WebUI 端口`, 默认值:`15275` +## 文档 -填写格式:`http://{宿主机 IP 地址}:{WebUI 端口}/` +请参阅 Syncthing 的 [文档站点](https://docs.syncthing.net/) [\[源代码\]](https://github.com/syncthing/docs)。 -### 无法修改项目 - -+ `API 地址` - -当前部署方式为 前后端合并部署,请勿强制修改参数值。 - ---- - -![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) +所有代码均采用 [MPLv2 License](https://github.com/syncthing/syncthing/blob/main/LICENSE) 许可。 \ No newline at end of file diff --git a/apps/stream-rec-frontend/README_en.md b/apps/stream-rec-frontend/README_en.md new file mode 100644 index 000000000..fdee4b89d --- /dev/null +++ b/apps/stream-rec-frontend/README_en.md @@ -0,0 +1,72 @@ +# Stream-Rec + +Stream-rec 是一个自动录制各种直播平台的工具。 + +![Stream-Rec](https://file.lifebus.top/imgs/stream_rec_cover.png) + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 特性 + +基于 Kotlin, Ktor, 和 ffmpeg。 + ++ 自动录播,可配置录制质量,路径,格式,并发量,分段录制(时间或文件大小),分段上传,根据直播标题和开始时间自动命名文件。 ++ 自动弹幕录制(XML格式),可使用 DanmakuFactory 进行弹幕转换,或配合AList来实现弹幕自动挂载。 ++ 使用 SQLite 持久化存储录播和上传信息 ++ 支持 Rclone 上传到云存储 ++ 使用 Web 界面进行配置 ++ 支持 Docker + +## 直播平台支持列表 + +| 平台 | 录制 | 弹幕 | 链接格式 | +|---------|----|----|-----------------------------------------------| +| 抖音 | ✅ | ✅ | `https://www.live.douyin.com/{抖音id}` | +| 斗鱼 | ✅ | ✅ | `https://www.douyu.com/{直播间}` | +| 虎牙 | ✅ | ✅ | `https://www.huya.com/{直播间}` | +| PandaTV | ✅ | ✅ | `https://www.pandalive.co.kr/live/play/{直播间}` | +| Twitch | ✅ | ✅ | `https://www.twitch.tv/{直播间}` | + +## 安装说明 + +> 默认账户 +> +> 用户名:stream-rec +> +> 密码:stream-rec 或 `登录密码 (初始化)` 配置 + +### 必须修改配置 + ++ `WebSocket API 地址` + +默认值:`ws://stream-rec-backend:12555/live/update` + +需要获取: + ++ 宿主机 IP 地址 ++ 配置项 `API 端口`, 默认值:`12555` + +填写格式:`ws://{宿主机 IP 地址}:{API 端口}/live/update` + +### 可修改配置 + ++ `NextAuth 服务器地址` + +默认值:`http://localhost:15275/` + +需要获取: + ++ 宿主机 IP 地址 ++ 配置项 `WebUI 端口`, 默认值:`15275` + +填写格式:`http://{宿主机 IP 地址}:{WebUI 端口}/` + +### 无法修改项目 + ++ `API 地址` + +当前部署方式为 前后端合并部署,请勿强制修改参数值。 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/synapse-admin/README.md b/apps/synapse-admin/README.md index 5c6dc8ee8..04cb78805 100644 --- a/apps/synapse-admin/README.md +++ b/apps/synapse-admin/README.md @@ -1,106 +1,94 @@ -[![GitHub license](https://img.shields.io/github/license/Awesome-Technologies/synapse-admin)](https://github.com/Awesome-Technologies/synapse-admin/blob/master/LICENSE) -[![Build Status](https://api.travis-ci.com/Awesome-Technologies/synapse-admin.svg?branch=master)](https://app.travis-ci.com/github/Awesome-Technologies/synapse-admin) -[![build-test](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/build-test.yml/badge.svg)](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/build-test.yml) -[![gh-pages](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/edge_ghpage.yml/badge.svg)](https://awesome-technologies.github.io/synapse-admin/) -[![docker-release](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/docker-release.yml/badge.svg)](https://hub.docker.com/r/awesometechnologies/synapse-admin) -[![github-release](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/github-release.yml/badge.svg)](https://github.com/Awesome-Technologies/synapse-admin/releases) +[![GitHub license](https://img.shields.io/github/license/Awesome-Technologies/synapse-admin)](https://github.com/Awesome-Technologies/synapse-admin/blob/master/LICENSE) [![Build Status](https://api.travis-ci.com/Awesome-Technologies/synapse-admin.svg?branch=master)](https://app.travis-ci.com/github/Awesome-Technologies/synapse-admin) [![build-test](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/build-test.yml/badge.svg)](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/build-test.yml) [![gh-pages](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/edge_ghpage.yml/badge.svg)](https://awesome-technologies.github.io/synapse-admin/) [![docker-release](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/docker-release.yml/badge.svg)](https://hub.docker.com/r/awesometechnologies/synapse-admin) [![github-release](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/github-release.yml/badge.svg)](https://github.com/Awesome-Technologies/synapse-admin/releases) -# Synapse admin ui +# Synapse 管理 UI -This project is built using [react-admin](https://marmelab.com/react-admin/). +本项目使用 [react-admin](https://marmelab.com/react-admin/) 构建。 -## Usage +## 使用方法 -### Supported Synapse +### 支持的 Synapse -It needs at least [Synapse](https://github.com/matrix-org/synapse) v1.52.0 for all functions to work as expected! +为了所有功能正常工作,至少需要 [Synapse](https://github.com/matrix-org/synapse) v1.52.0! -You get your server version with the request `/_synapse/admin/v1/server_version`. -See also [Synapse version API](https://matrix-org.github.io/synapse/develop/admin_api/version_api.html). +您可以通过请求 `/_synapse/admin/v1/server_version` 获取服务器版本。另请参阅 [Synapse 版本 API](https://matrix-org.github.io/synapse/develop/admin_api/version_api.html)。 -After entering the URL on the login page of synapse-admin the server version appears below the input field. +在 synapse-admin 登录页面输入 URL 后,服务器版本将显示在输入字段下方。 -### Prerequisites +### 先决条件 -You need access to the following endpoints: +您需要访问以下端点: -- `/_matrix` -- `/_synapse/admin` +* `/_matrix` +* `/_synapse/admin` -See also [Synapse administration endpoints](https://matrix-org.github.io/synapse/develop/reverse_proxy.html#synapse-administration-endpoints) +另见 [synapse 管理端点](https://matrix-org.github.io/synapse/develop/reverse_proxy.html#synapse-administration-endpoints) -### Use without install +### 无需安装即可使用 -You can use the current version of Synapse Admin without own installation direct -via [GitHub Pages](https://awesome-technologies.github.io/synapse-admin/). +您可以直接通过 [GitHub Pages](https://awesome-technologies.github.io/synapse-admin/) 使用 Synapse Admin 的当前版本,无需自行安装。 -**Note:** -If you want to use the deployment, you have to make sure that the admin endpoints (`/_synapse/admin`) are accessible for your browser. -**Remember: You have no need to expose these endpoints to the internet but to your network.** -If you want your own deployment, follow the [Step-By-Step Install Guide](#step-by-step-install) below. +**注意:** 如果您想使用此部署,请确保浏览器可以访问管理端点(`/_synapse/admin`)。 **记住:您无需将这些端点暴露给互联网,只需暴露给您的网络。** 如果您想进行自己的部署,请遵循下面的[分步安装指南](#step-by-step-install) 。 -### Step-By-Step install +### 分步安装 -You have three options: +您有三个选择: -1. [Download the tarball and serve with any webserver](#steps-for-1) -2. [Download the source code from github and run using nodejs](#steps-for-2) -3. [Run the Docker container](#steps-for-3) +1. [下载 tar 包并使用任何 Web 服务器提供服务](#steps-for-1) +2. [从 GitHub 下载源代码并使用 nodejs 运行](#steps-for-2) +3. [运行 Docker 容器](#steps-for-3) -#### Steps for 1) +#### 步骤1)的说明 -- make sure you have a webserver installed that can serve static files (any webserver like nginx or apache will do) -- configure a vhost for synapse admin on your webserver -- download the .tar.gz from the latest release: https://github.com/Awesome-Technologies/synapse-admin/releases/latest -- unpack the .tar.gz -- move or symlink the `synapse-admin-x.x.x` into your vhosts root dir -- open the url of the vhost in your browser +* 确保您已安装一个可以提供静态文件的 Web 服务器(任何 Web 服务器如 nginx 或 apache 均可) +* 配置您的 Web 服务器上的 synapse admin 虚拟主机 +* 从最新版本下载.tar.gz 文件:[https://github.com/Awesome-Technologies/synapse-admin/releases/latest](https://github.com/Awesome-Technologies/synapse-admin/releases/latest) +* 解压.tar.gz 文件 +* 将 `synapse-admin-x.x.x` 移动或创建符号链接到您的虚拟主机根目录 +* 在浏览器中打开虚拟主机的 URL -#### Steps for 2) +#### 步骤2)的步骤: -- make sure you have installed the following: git, yarn, nodejs -- download the source code: `git clone https://github.com/Awesome-Technologies/synapse-admin.git` -- change into downloaded directory: `cd synapse-admin` -- download dependencies: `yarn install` -- start web server: `yarn start` +* 确保您已安装以下软件:git、yarn、nodejs +* 下载源代码: `git clone https://github.com/Awesome-Technologies/synapse-admin.git` +* 切换到下载的目录:`cd synapse-admin` +* 下载依赖项:`yarn install` +* 启动 Web 服务器:`yarn start` -You can fix the homeserver, so that the user can no longer define it himself. -Either you define it at startup (e.g. `REACT_APP_SERVER=https://yourmatrixserver.example.com yarn start`) -or by editing it in the [.env](.env) file. See also the -[documentation](https://create-react-app.dev/docs/adding-custom-environment-variables/). +您可以修复 homeserver,这样用户就不能再自行定义它了。您可以在启动时定义它(例如 `REACT_APP_SERVER=https://yourmatrixserver.example.com yarn start` )或在 [.env](.env) 文件中编辑它。也请参阅 [文档](https://create-react-app.dev/docs/adding-custom-environment-variables/) 。 -#### Steps for 3) +#### 步骤 3): -- run the Docker container from the public docker registry: `docker run -p 8080:80 awesometechnologies/synapse-admin` or use the [docker-compose.yml](docker-compose.yml): `docker-compose up -d` +* 从公共 Docker 仓库运行 Docker 容器: `docker run -p 8080:80 awesometechnologies/synapse-admin` 或者使用 [docker-compose.yml](docker-compose.yml):`docker-compose up -d` + + > 注意:如果您在非 amd64 架构(例如树莓派)上构建,请确保为 Node 定义最大 RAM。否则构建将失败。 + + ```yml + version: "3" + + services: + synapse-admin: + container_name: synapse-admin + hostname: synapse-admin + build: + context: https://github.com/Awesome-Technologies/synapse-admin.git + # args: + # - NODE_OPTIONS="--max_old_space_size=1024" + # # see #266, PUBLIC_URL must be without surrounding quotation marks + # - PUBLIC_URL=/synapse-admin + # - REACT_APP_SERVER="https://matrix.example.com" + ports: + - "8080:80" + restart: unless-stopped + ``` + +* 浏览到 [http://localhost:8080](http://localhost:8080) + - > note: if you're building on an architecture other than amd64 (for example a raspberry pi), make sure to define a maximum ram for node. otherwise the build will fail. - - ```yml - version: "3" - - services: - synapse-admin: - container_name: synapse-admin - hostname: synapse-admin - build: - context: https://github.com/Awesome-Technologies/synapse-admin.git - # args: - # - NODE_OPTIONS="--max_old_space_size=1024" - # # see #266, PUBLIC_URL must be without surrounding quotation marks - # - PUBLIC_URL=/synapse-admin - # - REACT_APP_SERVER="https://matrix.example.com" - ports: - - "8080:80" - restart: unless-stopped - ``` - -- browse to http://localhost:8080 - -## Screenshots +## 屏幕截图 ![Screenshots](./screenshots.jpg) -## Development +## 开发 -- Use `yarn test` to run all style, lint and unit tests -- Use `yarn fix` to fix the coding style \ No newline at end of file +* 使用 `yarn test` 运行所有样式、代码风格和单元测试 +* 使用 `yarn fix` 修复代码风格 \ No newline at end of file diff --git a/apps/synapse-admin/README_en.md b/apps/synapse-admin/README_en.md new file mode 100644 index 000000000..5c6dc8ee8 --- /dev/null +++ b/apps/synapse-admin/README_en.md @@ -0,0 +1,106 @@ +[![GitHub license](https://img.shields.io/github/license/Awesome-Technologies/synapse-admin)](https://github.com/Awesome-Technologies/synapse-admin/blob/master/LICENSE) +[![Build Status](https://api.travis-ci.com/Awesome-Technologies/synapse-admin.svg?branch=master)](https://app.travis-ci.com/github/Awesome-Technologies/synapse-admin) +[![build-test](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/build-test.yml/badge.svg)](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/build-test.yml) +[![gh-pages](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/edge_ghpage.yml/badge.svg)](https://awesome-technologies.github.io/synapse-admin/) +[![docker-release](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/docker-release.yml/badge.svg)](https://hub.docker.com/r/awesometechnologies/synapse-admin) +[![github-release](https://github.com/Awesome-Technologies/synapse-admin/actions/workflows/github-release.yml/badge.svg)](https://github.com/Awesome-Technologies/synapse-admin/releases) + +# Synapse admin ui + +This project is built using [react-admin](https://marmelab.com/react-admin/). + +## Usage + +### Supported Synapse + +It needs at least [Synapse](https://github.com/matrix-org/synapse) v1.52.0 for all functions to work as expected! + +You get your server version with the request `/_synapse/admin/v1/server_version`. +See also [Synapse version API](https://matrix-org.github.io/synapse/develop/admin_api/version_api.html). + +After entering the URL on the login page of synapse-admin the server version appears below the input field. + +### Prerequisites + +You need access to the following endpoints: + +- `/_matrix` +- `/_synapse/admin` + +See also [Synapse administration endpoints](https://matrix-org.github.io/synapse/develop/reverse_proxy.html#synapse-administration-endpoints) + +### Use without install + +You can use the current version of Synapse Admin without own installation direct +via [GitHub Pages](https://awesome-technologies.github.io/synapse-admin/). + +**Note:** +If you want to use the deployment, you have to make sure that the admin endpoints (`/_synapse/admin`) are accessible for your browser. +**Remember: You have no need to expose these endpoints to the internet but to your network.** +If you want your own deployment, follow the [Step-By-Step Install Guide](#step-by-step-install) below. + +### Step-By-Step install + +You have three options: + +1. [Download the tarball and serve with any webserver](#steps-for-1) +2. [Download the source code from github and run using nodejs](#steps-for-2) +3. [Run the Docker container](#steps-for-3) + +#### Steps for 1) + +- make sure you have a webserver installed that can serve static files (any webserver like nginx or apache will do) +- configure a vhost for synapse admin on your webserver +- download the .tar.gz from the latest release: https://github.com/Awesome-Technologies/synapse-admin/releases/latest +- unpack the .tar.gz +- move or symlink the `synapse-admin-x.x.x` into your vhosts root dir +- open the url of the vhost in your browser + +#### Steps for 2) + +- make sure you have installed the following: git, yarn, nodejs +- download the source code: `git clone https://github.com/Awesome-Technologies/synapse-admin.git` +- change into downloaded directory: `cd synapse-admin` +- download dependencies: `yarn install` +- start web server: `yarn start` + +You can fix the homeserver, so that the user can no longer define it himself. +Either you define it at startup (e.g. `REACT_APP_SERVER=https://yourmatrixserver.example.com yarn start`) +or by editing it in the [.env](.env) file. See also the +[documentation](https://create-react-app.dev/docs/adding-custom-environment-variables/). + +#### Steps for 3) + +- run the Docker container from the public docker registry: `docker run -p 8080:80 awesometechnologies/synapse-admin` or use the [docker-compose.yml](docker-compose.yml): `docker-compose up -d` + + > note: if you're building on an architecture other than amd64 (for example a raspberry pi), make sure to define a maximum ram for node. otherwise the build will fail. + + ```yml + version: "3" + + services: + synapse-admin: + container_name: synapse-admin + hostname: synapse-admin + build: + context: https://github.com/Awesome-Technologies/synapse-admin.git + # args: + # - NODE_OPTIONS="--max_old_space_size=1024" + # # see #266, PUBLIC_URL must be without surrounding quotation marks + # - PUBLIC_URL=/synapse-admin + # - REACT_APP_SERVER="https://matrix.example.com" + ports: + - "8080:80" + restart: unless-stopped + ``` + +- browse to http://localhost:8080 + +## Screenshots + +![Screenshots](./screenshots.jpg) + +## Development + +- Use `yarn test` to run all style, lint and unit tests +- Use `yarn fix` to fix the coding style \ No newline at end of file diff --git a/apps/syncthing-relaysrv/README.md b/apps/syncthing-relaysrv/README.md index 8f4c81f80..dc923fa7b 100644 --- a/apps/syncthing-relaysrv/README.md +++ b/apps/syncthing-relaysrv/README.md @@ -1,129 +1,74 @@ -[![Syncthing][14]][15] +[![Syncthing](https://github.com/syncthing/syncthing/raw/main/assets/logo-text-128.png)](https://syncthing.net/) ---- +* * * -[![MPLv2 License](https://img.shields.io/badge/license-MPLv2-blue.svg?style=flat-square)](https://www.mozilla.org/MPL/2.0/) -[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/88/badge)](https://bestpractices.coreinfrastructure.org/projects/88) -[![Go Report Card](https://goreportcard.com/badge/github.com/syncthing/syncthing)](https://goreportcard.com/report/github.com/syncthing/syncthing) +[![MPLv2 License](https://img.shields.io/badge/license-MPLv2-blue.svg?style=flat-square)](https://www.mozilla.org/MPL/2.0/) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/88/badge)](https://bestpractices.coreinfrastructure.org/projects/88) [![Go Report Card](https://goreportcard.com/badge/github.com/syncthing/syncthing)](https://goreportcard.com/report/github.com/syncthing/syncthing) -## Goals +## 目标 -Syncthing is a **continuous file synchronization program**. It synchronizes -files between two or more computers. We strive to fulfill the goals below. -The goals are listed in order of importance, the most important one being -the first. This is the summary version of the goal list - for more -commentary, see the full [Goals document][13]. +Syncthing 是一个**持续文件同步程序** 。它可以在两台或多台计算机之间同步文件。我们力求实现以下目标。这些目标按重要性排序,最重要的目标排在最前面。以下为目标列表的摘要版本 - 如需更多注释,请参阅完整的[目标文档](https://github.com/syncthing/syncthing/blob/main/GOALS.md) 。 -Syncthing should be: +Syncthing 应该是: -1. **Safe From Data Loss** +1. **防止数据丢失** + + 保护用户的数据至关重要。我们采取一切合理措施以避免损坏用户的文件。 + +2. **抵御攻击者** + + 再次强调,保护用户的数据至关重要。无论我们还有哪些其他目标,我们绝不能让用户的数据容易被未经授权的第三方窃听或篡改。 + +3. **易于使用** + + Syncthing 应该易于接近、易于理解且包容性强。 + +4. **自动运行** + + 用户交互仅在必要时才应被要求。 + +5. **普遍可用** + + Syncthing 应在每台常见计算机上运行。我们深知最新技术并非每个人都能获得。 + +6. **个人用户** + + Syncthing 主要是为了赋予个人用户安全、安全且易于使用的文件同步能力。 + +7. **其他一切** + + 有很多我们关心的事情没有列在上面。只要这些价值不与上述目标相冲突,优化它们是可以接受的。 + - Protecting the user's data is paramount. We take every reasonable - precaution to avoid corrupting the user's files. +## 快速入门 -2. **Secure Against Attackers** +请参阅[入门指南](https://docs.syncthing.net/intro/getting-started.html) 。 - Again, protecting the user's data is paramount. Regardless of our other - goals we must never allow the user's data to be susceptible to - eavesdropping or modification by unauthorized parties. - -3. **Easy to Use** - - Syncthing should be approachable, understandable and inclusive. - -4. **Automatic** - - User interaction should be required only when absolutely necessary. - -5. **Universally Available** - - Syncthing should run on every common computer. We are mindful that the - latest technology is not always available to any given individual. - -6. **For Individuals** - - Syncthing is primarily about empowering the individual user with safe, - secure and easy to use file synchronization. - -7. **Everything Else** - - There are many things we care about that don't make it on to the list. It - is fine to optimize for these values, as long as they are not in conflict - with the stated goals above. - -## Getting Started - -Take a look at the [getting started guide][2]. - -There are a few examples for keeping Syncthing running in the background -on your system in [the etc directory][3]. There are also several [GUI -implementations][11] for Windows, Mac and Linux. +系统中可以在 [etc 目录](https://github.com/syncthing/syncthing/blob/main/etc) 找到一些在后台运行 Syncthing 的示例。此外,还有适用于 Windows、Mac 和 Linux 的几种 [图形界面实现](https://docs.syncthing.net/users/contrib.html#gui-wrappers) 。 ## Docker -To run Syncthing in Docker, see [the Docker README][16]. +要在 Docker 中运行 Syncthing,请参阅 [Docker README](https://github.com/syncthing/syncthing/blob/main/README-Docker.md)。 -## Vote on features/bugs +## 投票表决功能/bug -We'd like to encourage you to [vote][12] on issues that matter to you. -This helps the team understand what are the biggest pain points for our users, and could potentially influence what is -being worked on next. +我们鼓励您就您关心的问题进行投票。这有助于团队了解用户遇到的最大痛点,并可能影响接下来的工作重点。 -## Getting in Touch +## 联系方式 -The first and best point of contact is the [Forum][8]. -If you've found something that is clearly a -bug, feel free to report it in the [GitHub issue tracker][10]. +最好的联系点是论坛。如果您发现了一个显然是 bug 的问题,请在 GitHub 问题跟踪器中报告它。 -## Building +## 构建 -Building Syncthing from source is easy. After extracting the source bundle from -a release or checking out git, you just need to run `go run build.go` and the -binaries are created in `./bin`. There's [a guide][5] with more details on the -build process. +从源代码构建 Syncthing 很简单。在从发布版本提取源代码包或通过 git 检出代码后,您只需运行 \`go run build.go\`,二进制文件将创建在 \`./bin\` 目录中。有关构建过程的更多细节,请参阅相关指南。 -## Signed Releases +## 已签名的发布版本 -As of v0.10.15 and onwards release binaries are GPG signed with the key -D26E6ED000654A3E, available from https://syncthing.net/security.html and -most key servers. +从 v0.10.15 版本起,发布的二进制文件使用密钥 D26E6ED000654A3E 进行 GPG 签名,该密钥可在 [https://syncthing.net/security.html](https://syncthing.net/security.html) 和大多数密钥服务器上获取。 -There is also a built in automatic upgrade mechanism (disabled in some -distribution channels) which uses a compiled in ECDSA signature. macOS -binaries are also properly code signed. +此外,还内置了一个自动更新机制(在某些分发渠道中被禁用),该机制使用编译时嵌入的 ECDSA 签名。macOS 二进制文件也已正确代码签名。 -## Documentation +## 文档 -Please see the Syncthing [documentation site][6] [[source]][17]. +请参阅 Syncthing 的 [文档站点](https://docs.syncthing.net/) [\[源代码\]](https://github.com/syncthing/docs)。 -All code is licensed under the [MPLv2 License][7]. - -[1]: https://docs.syncthing.net/specs/bep-v1.html - -[2]: https://docs.syncthing.net/intro/getting-started.html - -[3]: https://github.com/syncthing/syncthing/blob/main/etc - -[5]: https://docs.syncthing.net/dev/building.html - -[6]: https://docs.syncthing.net/ - -[7]: https://github.com/syncthing/syncthing/blob/main/LICENSE - -[8]: https://forum.syncthing.net/ - -[10]: https://github.com/syncthing/syncthing/issues - -[11]: https://docs.syncthing.net/users/contrib.html#gui-wrappers - -[12]: https://www.bountysource.com/teams/syncthing/issues - -[13]: https://github.com/syncthing/syncthing/blob/main/GOALS.md - -[14]: https://github.com/syncthing/syncthing/raw/main/assets/logo-text-128.png - -[15]: https://syncthing.net/ - -[16]: https://github.com/syncthing/syncthing/blob/main/README-Docker.md - -[17]: https://github.com/syncthing/docs +所有代码均采用 [MPLv2 License](https://github.com/syncthing/syncthing/blob/main/LICENSE) 许可。 \ No newline at end of file diff --git a/apps/syncthing-relaysrv/README_en.md b/apps/syncthing-relaysrv/README_en.md new file mode 100644 index 000000000..8f4c81f80 --- /dev/null +++ b/apps/syncthing-relaysrv/README_en.md @@ -0,0 +1,129 @@ +[![Syncthing][14]][15] + +--- + +[![MPLv2 License](https://img.shields.io/badge/license-MPLv2-blue.svg?style=flat-square)](https://www.mozilla.org/MPL/2.0/) +[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/88/badge)](https://bestpractices.coreinfrastructure.org/projects/88) +[![Go Report Card](https://goreportcard.com/badge/github.com/syncthing/syncthing)](https://goreportcard.com/report/github.com/syncthing/syncthing) + +## Goals + +Syncthing is a **continuous file synchronization program**. It synchronizes +files between two or more computers. We strive to fulfill the goals below. +The goals are listed in order of importance, the most important one being +the first. This is the summary version of the goal list - for more +commentary, see the full [Goals document][13]. + +Syncthing should be: + +1. **Safe From Data Loss** + + Protecting the user's data is paramount. We take every reasonable + precaution to avoid corrupting the user's files. + +2. **Secure Against Attackers** + + Again, protecting the user's data is paramount. Regardless of our other + goals we must never allow the user's data to be susceptible to + eavesdropping or modification by unauthorized parties. + +3. **Easy to Use** + + Syncthing should be approachable, understandable and inclusive. + +4. **Automatic** + + User interaction should be required only when absolutely necessary. + +5. **Universally Available** + + Syncthing should run on every common computer. We are mindful that the + latest technology is not always available to any given individual. + +6. **For Individuals** + + Syncthing is primarily about empowering the individual user with safe, + secure and easy to use file synchronization. + +7. **Everything Else** + + There are many things we care about that don't make it on to the list. It + is fine to optimize for these values, as long as they are not in conflict + with the stated goals above. + +## Getting Started + +Take a look at the [getting started guide][2]. + +There are a few examples for keeping Syncthing running in the background +on your system in [the etc directory][3]. There are also several [GUI +implementations][11] for Windows, Mac and Linux. + +## Docker + +To run Syncthing in Docker, see [the Docker README][16]. + +## Vote on features/bugs + +We'd like to encourage you to [vote][12] on issues that matter to you. +This helps the team understand what are the biggest pain points for our users, and could potentially influence what is +being worked on next. + +## Getting in Touch + +The first and best point of contact is the [Forum][8]. +If you've found something that is clearly a +bug, feel free to report it in the [GitHub issue tracker][10]. + +## Building + +Building Syncthing from source is easy. After extracting the source bundle from +a release or checking out git, you just need to run `go run build.go` and the +binaries are created in `./bin`. There's [a guide][5] with more details on the +build process. + +## Signed Releases + +As of v0.10.15 and onwards release binaries are GPG signed with the key +D26E6ED000654A3E, available from https://syncthing.net/security.html and +most key servers. + +There is also a built in automatic upgrade mechanism (disabled in some +distribution channels) which uses a compiled in ECDSA signature. macOS +binaries are also properly code signed. + +## Documentation + +Please see the Syncthing [documentation site][6] [[source]][17]. + +All code is licensed under the [MPLv2 License][7]. + +[1]: https://docs.syncthing.net/specs/bep-v1.html + +[2]: https://docs.syncthing.net/intro/getting-started.html + +[3]: https://github.com/syncthing/syncthing/blob/main/etc + +[5]: https://docs.syncthing.net/dev/building.html + +[6]: https://docs.syncthing.net/ + +[7]: https://github.com/syncthing/syncthing/blob/main/LICENSE + +[8]: https://forum.syncthing.net/ + +[10]: https://github.com/syncthing/syncthing/issues + +[11]: https://docs.syncthing.net/users/contrib.html#gui-wrappers + +[12]: https://www.bountysource.com/teams/syncthing/issues + +[13]: https://github.com/syncthing/syncthing/blob/main/GOALS.md + +[14]: https://github.com/syncthing/syncthing/raw/main/assets/logo-text-128.png + +[15]: https://syncthing.net/ + +[16]: https://github.com/syncthing/syncthing/blob/main/README-Docker.md + +[17]: https://github.com/syncthing/docs diff --git a/apps/syncthing/README.md b/apps/syncthing/README.md index 6cf9fc2db..dc923fa7b 100644 --- a/apps/syncthing/README.md +++ b/apps/syncthing/README.md @@ -1,114 +1,74 @@ -[![Syncthing][14]][15] +[![Syncthing](https://github.com/syncthing/syncthing/raw/main/assets/logo-text-128.png)](https://syncthing.net/) ---- +* * * -[![MPLv2 License](https://img.shields.io/badge/license-MPLv2-blue.svg?style=flat-square)](https://www.mozilla.org/MPL/2.0/) -[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/88/badge)](https://bestpractices.coreinfrastructure.org/projects/88) -[![Go Report Card](https://goreportcard.com/badge/github.com/syncthing/syncthing)](https://goreportcard.com/report/github.com/syncthing/syncthing) +[![MPLv2 License](https://img.shields.io/badge/license-MPLv2-blue.svg?style=flat-square)](https://www.mozilla.org/MPL/2.0/) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/88/badge)](https://bestpractices.coreinfrastructure.org/projects/88) [![Go Report Card](https://goreportcard.com/badge/github.com/syncthing/syncthing)](https://goreportcard.com/report/github.com/syncthing/syncthing) -## Goals +## 目标 -Syncthing is a **continuous file synchronization program**. It synchronizes -files between two or more computers. We strive to fulfill the goals below. -The goals are listed in order of importance, the most important one being -the first. This is the summary version of the goal list - for more -commentary, see the full [Goals document][13]. +Syncthing 是一个**持续文件同步程序** 。它可以在两台或多台计算机之间同步文件。我们力求实现以下目标。这些目标按重要性排序,最重要的目标排在最前面。以下为目标列表的摘要版本 - 如需更多注释,请参阅完整的[目标文档](https://github.com/syncthing/syncthing/blob/main/GOALS.md) 。 -Syncthing should be: +Syncthing 应该是: -1. **Safe From Data Loss** +1. **防止数据丢失** + + 保护用户的数据至关重要。我们采取一切合理措施以避免损坏用户的文件。 + +2. **抵御攻击者** + + 再次强调,保护用户的数据至关重要。无论我们还有哪些其他目标,我们绝不能让用户的数据容易被未经授权的第三方窃听或篡改。 + +3. **易于使用** + + Syncthing 应该易于接近、易于理解且包容性强。 + +4. **自动运行** + + 用户交互仅在必要时才应被要求。 + +5. **普遍可用** + + Syncthing 应在每台常见计算机上运行。我们深知最新技术并非每个人都能获得。 + +6. **个人用户** + + Syncthing 主要是为了赋予个人用户安全、安全且易于使用的文件同步能力。 + +7. **其他一切** + + 有很多我们关心的事情没有列在上面。只要这些价值不与上述目标相冲突,优化它们是可以接受的。 + - Protecting the user's data is paramount. We take every reasonable - precaution to avoid corrupting the user's files. +## 快速入门 -2. **Secure Against Attackers** +请参阅[入门指南](https://docs.syncthing.net/intro/getting-started.html) 。 - Again, protecting the user's data is paramount. Regardless of our other - goals we must never allow the user's data to be susceptible to - eavesdropping or modification by unauthorized parties. - -3. **Easy to Use** - - Syncthing should be approachable, understandable and inclusive. - -4. **Automatic** - - User interaction should be required only when absolutely necessary. - -5. **Universally Available** - - Syncthing should run on every common computer. We are mindful that the - latest technology is not always available to any given individual. - -6. **For Individuals** - - Syncthing is primarily about empowering the individual user with safe, - secure and easy to use file synchronization. - -7. **Everything Else** - - There are many things we care about that don't make it on to the list. It - is fine to optimize for these values, as long as they are not in conflict - with the stated goals above. - -## Getting Started - -Take a look at the [getting started guide][2]. - -There are a few examples for keeping Syncthing running in the background -on your system in [the etc directory][3]. There are also several [GUI -implementations][11] for Windows, Mac and Linux. +系统中可以在 [etc 目录](https://github.com/syncthing/syncthing/blob/main/etc) 找到一些在后台运行 Syncthing 的示例。此外,还有适用于 Windows、Mac 和 Linux 的几种 [图形界面实现](https://docs.syncthing.net/users/contrib.html#gui-wrappers) 。 ## Docker -To run Syncthing in Docker, see [the Docker README][16]. +要在 Docker 中运行 Syncthing,请参阅 [Docker README](https://github.com/syncthing/syncthing/blob/main/README-Docker.md)。 -## Vote on features/bugs +## 投票表决功能/bug -We'd like to encourage you to [vote][12] on issues that matter to you. -This helps the team understand what are the biggest pain points for our users, and could potentially influence what is being worked on next. +我们鼓励您就您关心的问题进行投票。这有助于团队了解用户遇到的最大痛点,并可能影响接下来的工作重点。 -## Getting in Touch +## 联系方式 -The first and best point of contact is the [Forum][8]. -If you've found something that is clearly a -bug, feel free to report it in the [GitHub issue tracker][10]. +最好的联系点是论坛。如果您发现了一个显然是 bug 的问题,请在 GitHub 问题跟踪器中报告它。 -## Building +## 构建 -Building Syncthing from source is easy. After extracting the source bundle from -a release or checking out git, you just need to run `go run build.go` and the -binaries are created in `./bin`. There's [a guide][5] with more details on the -build process. +从源代码构建 Syncthing 很简单。在从发布版本提取源代码包或通过 git 检出代码后,您只需运行 \`go run build.go\`,二进制文件将创建在 \`./bin\` 目录中。有关构建过程的更多细节,请参阅相关指南。 -## Signed Releases +## 已签名的发布版本 -As of v0.10.15 and onwards release binaries are GPG signed with the key -D26E6ED000654A3E, available from https://syncthing.net/security.html and -most key servers. +从 v0.10.15 版本起,发布的二进制文件使用密钥 D26E6ED000654A3E 进行 GPG 签名,该密钥可在 [https://syncthing.net/security.html](https://syncthing.net/security.html) 和大多数密钥服务器上获取。 -There is also a built in automatic upgrade mechanism (disabled in some -distribution channels) which uses a compiled in ECDSA signature. macOS -binaries are also properly code signed. +此外,还内置了一个自动更新机制(在某些分发渠道中被禁用),该机制使用编译时嵌入的 ECDSA 签名。macOS 二进制文件也已正确代码签名。 -## Documentation +## 文档 -Please see the Syncthing [documentation site][6] [[source]][17]. +请参阅 Syncthing 的 [文档站点](https://docs.syncthing.net/) [\[源代码\]](https://github.com/syncthing/docs)。 -All code is licensed under the [MPLv2 License][7]. - -[1]: https://docs.syncthing.net/specs/bep-v1.html -[2]: https://docs.syncthing.net/intro/getting-started.html -[3]: https://github.com/syncthing/syncthing/blob/main/etc -[5]: https://docs.syncthing.net/dev/building.html -[6]: https://docs.syncthing.net/ -[7]: https://github.com/syncthing/syncthing/blob/main/LICENSE -[8]: https://forum.syncthing.net/ -[10]: https://github.com/syncthing/syncthing/issues -[11]: https://docs.syncthing.net/users/contrib.html#gui-wrappers -[12]: https://www.bountysource.com/teams/syncthing/issues -[13]: https://github.com/syncthing/syncthing/blob/main/GOALS.md -[14]: https://github.com/syncthing/syncthing/raw/main/assets/logo-text-128.png -[15]: https://syncthing.net/ -[16]: https://github.com/syncthing/syncthing/blob/main/README-Docker.md -[17]: https://github.com/syncthing/docs +所有代码均采用 [MPLv2 License](https://github.com/syncthing/syncthing/blob/main/LICENSE) 许可。 \ No newline at end of file diff --git a/apps/syncthing/README_en.md b/apps/syncthing/README_en.md new file mode 100644 index 000000000..6cf9fc2db --- /dev/null +++ b/apps/syncthing/README_en.md @@ -0,0 +1,114 @@ +[![Syncthing][14]][15] + +--- + +[![MPLv2 License](https://img.shields.io/badge/license-MPLv2-blue.svg?style=flat-square)](https://www.mozilla.org/MPL/2.0/) +[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/88/badge)](https://bestpractices.coreinfrastructure.org/projects/88) +[![Go Report Card](https://goreportcard.com/badge/github.com/syncthing/syncthing)](https://goreportcard.com/report/github.com/syncthing/syncthing) + +## Goals + +Syncthing is a **continuous file synchronization program**. It synchronizes +files between two or more computers. We strive to fulfill the goals below. +The goals are listed in order of importance, the most important one being +the first. This is the summary version of the goal list - for more +commentary, see the full [Goals document][13]. + +Syncthing should be: + +1. **Safe From Data Loss** + + Protecting the user's data is paramount. We take every reasonable + precaution to avoid corrupting the user's files. + +2. **Secure Against Attackers** + + Again, protecting the user's data is paramount. Regardless of our other + goals we must never allow the user's data to be susceptible to + eavesdropping or modification by unauthorized parties. + +3. **Easy to Use** + + Syncthing should be approachable, understandable and inclusive. + +4. **Automatic** + + User interaction should be required only when absolutely necessary. + +5. **Universally Available** + + Syncthing should run on every common computer. We are mindful that the + latest technology is not always available to any given individual. + +6. **For Individuals** + + Syncthing is primarily about empowering the individual user with safe, + secure and easy to use file synchronization. + +7. **Everything Else** + + There are many things we care about that don't make it on to the list. It + is fine to optimize for these values, as long as they are not in conflict + with the stated goals above. + +## Getting Started + +Take a look at the [getting started guide][2]. + +There are a few examples for keeping Syncthing running in the background +on your system in [the etc directory][3]. There are also several [GUI +implementations][11] for Windows, Mac and Linux. + +## Docker + +To run Syncthing in Docker, see [the Docker README][16]. + +## Vote on features/bugs + +We'd like to encourage you to [vote][12] on issues that matter to you. +This helps the team understand what are the biggest pain points for our users, and could potentially influence what is being worked on next. + +## Getting in Touch + +The first and best point of contact is the [Forum][8]. +If you've found something that is clearly a +bug, feel free to report it in the [GitHub issue tracker][10]. + +## Building + +Building Syncthing from source is easy. After extracting the source bundle from +a release or checking out git, you just need to run `go run build.go` and the +binaries are created in `./bin`. There's [a guide][5] with more details on the +build process. + +## Signed Releases + +As of v0.10.15 and onwards release binaries are GPG signed with the key +D26E6ED000654A3E, available from https://syncthing.net/security.html and +most key servers. + +There is also a built in automatic upgrade mechanism (disabled in some +distribution channels) which uses a compiled in ECDSA signature. macOS +binaries are also properly code signed. + +## Documentation + +Please see the Syncthing [documentation site][6] [[source]][17]. + +All code is licensed under the [MPLv2 License][7]. + +[1]: https://docs.syncthing.net/specs/bep-v1.html +[2]: https://docs.syncthing.net/intro/getting-started.html +[3]: https://github.com/syncthing/syncthing/blob/main/etc +[5]: https://docs.syncthing.net/dev/building.html +[6]: https://docs.syncthing.net/ +[7]: https://github.com/syncthing/syncthing/blob/main/LICENSE +[8]: https://forum.syncthing.net/ +[10]: https://github.com/syncthing/syncthing/issues +[11]: https://docs.syncthing.net/users/contrib.html#gui-wrappers +[12]: https://www.bountysource.com/teams/syncthing/issues +[13]: https://github.com/syncthing/syncthing/blob/main/GOALS.md +[14]: https://github.com/syncthing/syncthing/raw/main/assets/logo-text-128.png +[15]: https://syncthing.net/ +[16]: https://github.com/syncthing/syncthing/blob/main/README-Docker.md +[17]: https://github.com/syncthing/docs diff --git a/apps/tailscale/README.md b/apps/tailscale/README.md index ee6fcf5df..c9997b46b 100644 --- a/apps/tailscale/README.md +++ b/apps/tailscale/README.md @@ -1,88 +1,66 @@ # Tailscale -https://tailscale.com +[https://tailscale.com](https://tailscale.com) -Private WireGuard® networks made easy +Private WireGuard® 网络轻松实现 -## Overview +## 概述 -This repository contains the majority of Tailscale's open source code. -Notably, it includes the `tailscaled` daemon and -the `tailscale` CLI tool. The `tailscaled` daemon runs on Linux, Windows, -[macOS](https://tailscale.com/kb/1065/macos-variants/), and to varying degrees -on FreeBSD and OpenBSD. The Tailscale iOS and Android apps use this repo's -code, but this repo doesn't contain the mobile GUI code. +此仓库包含 Tailscale 大部分开源代码。值得注意的是,它包括 `tailscaled` 服务端程序和 `tailscale` 命令行工具。`tailscaled` 服务端程序运行在 Linux、Windows、 [macOS](https://tailscale.com/kb/1065/macos-variants/) 上,以及在不同程度上运行在 FreeBSD 和 OpenBSD 上。Tailscale 的 iOS 和 Android 应用程序使用此仓库的代码,但此仓库不包含移动界面代码。 -Other [Tailscale repos](https://github.com/orgs/tailscale/repositories) of note: +其他值得关注的 Tailscale 仓库: -* the Android app is at https://github.com/tailscale/tailscale-android -* the Synology package is at https://github.com/tailscale/tailscale-synology -* the QNAP package is at https://github.com/tailscale/tailscale-qpkg -* the Chocolatey packaging is at https://github.com/tailscale/tailscale-chocolatey +* Android 应用位于 [https://github.com/tailscale/tailscale-android](https://github.com/tailscale/tailscale-android) +* Synology 包位于 [https://github.com/tailscale/tailscale-synology](https://github.com/tailscale/tailscale-synology) +* QNAP 包位于 [https://github.com/tailscale/tailscale-qpkg](https://github.com/tailscale/tailscale-qpkg) +* the Chocolatey 包装位于 [https://github.com/tailscale/tailscale-chocolatey](https://github.com/tailscale/tailscale-chocolatey) -For background on which parts of Tailscale are open source and why, -see [https://tailscale.com/opensource/](https://tailscale.com/opensource/). +有关 Tailscale 哪些部分是开源的以及原因,请参阅 [https://tailscale.com/opensource/](https://tailscale.com/opensource/)。 -## Using +## 使用 -We serve packages for a variety of distros and platforms at -[https://pkgs.tailscale.com](https://pkgs.tailscale.com/). +我们为各种发行版和平台提供包服务位于 [https://pkgs.tailscale.com](https://pkgs.tailscale.com/). -## Other clients +## 其他客户端 -The [macOS, iOS, and Windows clients](https://tailscale.com/download) -use the code in this repository but additionally include small GUI -wrappers. The GUI wrappers on non-open source platforms are themselves -not open source. +macOS、iOS 和 Windows 客户端使用此仓库中的代码,但还包含小型图形界面包装器。这些图形界面包装器在非开源平台上本身也不是开源的。 -## Building +## 构建 -We always require the latest Go release, currently Go 1.21. (While we build -releases with our [Go fork](https://github.com/tailscale/go/), its use is not -required.) +我们始终需要最新版本的 Go 语言发行版,目前是 Go 1.21。(虽然我们使用了自己 [的 Go 改进版本](https://github.com/tailscale/go/) 来构建发行版,但使用它并不是必需的。) ``` go install tailscale.com/cmd/tailscale{,d} ``` -If you're packaging Tailscale for distribution, use `build_dist.sh` -instead, to burn commit IDs and version info into the binaries: +如果你在打包 Tailscale 以便分发,请使用 \`build\_dist.sh\` 而不是其他方式,以将提交 ID 和版本信息嵌入到二进制文件中: ``` ./build_dist.sh tailscale.com/cmd/tailscale ./build_dist.sh tailscale.com/cmd/tailscaled ``` -If your distro has conventions that preclude the use of -`build_dist.sh`, please do the equivalent of what it does in your -distro's way, so that bug reports contain useful version information. +如果你的发行版有禁止使用 \`build\_dist.sh\` 的约定,请以你发行版的方式完成与其等效的操作,以便 bug 报告包含有用的版本信息。 -## Bugs +## Bug -Please file any issues about this code or the hosted service on -[the issue tracker](https://github.com/tailscale/tailscale/issues). +请将此代码或托管服务的相关问题提交到 [问题跟踪器](https://github.com/tailscale/tailscale/issues) 。 -## Contributing +## 贡献 -PRs welcome! But please file bugs. Commit messages should [reference -bugs](https://docs.github.com/en/github/writing-on-github/autolinked-references-and-urls). +欢迎提交 Pull Request!但请提交 Bug。提交的代码更改信息应 [引用 Bug](https://docs.github.com/en/github/writing-on-github/autolinked-references-and-urls)。 -We require [Developer Certificate of -Origin](https://en.wikipedia.org/wiki/Developer_Certificate_of_Origin) -`Signed-off-by` lines in commits. +我们要求提交的代码中包含 [开发者证书](https://en.wikipedia.org/wiki/Developer_Certificate_of_Origin) `Signed-off-by` 标记。 -See `git log` for our commit message style. It's basically the same as -[Go's style](https://github.com/golang/go/wiki/CommitMessage). +查看 `git log` 以了解我们的提交信息风格。基本上和 相同。 -## About Us +## 关于我们 -[Tailscale](https://tailscale.com/) is primarily developed by the -people at https://github.com/orgs/tailscale/people. For other contributors, -see: +主要由 的人员开发。其他贡献者请参见: -* https://github.com/tailscale/tailscale/graphs/contributors -* https://github.com/tailscale/tailscale-android/graphs/contributors +* [https://github.com/tailscale/tailscale/graphs/contributors](https://github.com/tailscale/tailscale/graphs/contributors) +* [https://github.com/tailscale/tailscale-android/graphs/contributors](https://github.com/tailscale/tailscale-android/graphs/contributors) -## Legal +## 法律 -WireGuard is a registered trademark of Jason A. Donenfeld. \ No newline at end of file +WireGuard 是 Jason A. Donenfeld 的注册商标。 \ No newline at end of file diff --git a/apps/tailscale/README_en.md b/apps/tailscale/README_en.md new file mode 100644 index 000000000..ee6fcf5df --- /dev/null +++ b/apps/tailscale/README_en.md @@ -0,0 +1,88 @@ +# Tailscale + +https://tailscale.com + +Private WireGuard® networks made easy + +## Overview + +This repository contains the majority of Tailscale's open source code. +Notably, it includes the `tailscaled` daemon and +the `tailscale` CLI tool. The `tailscaled` daemon runs on Linux, Windows, +[macOS](https://tailscale.com/kb/1065/macos-variants/), and to varying degrees +on FreeBSD and OpenBSD. The Tailscale iOS and Android apps use this repo's +code, but this repo doesn't contain the mobile GUI code. + +Other [Tailscale repos](https://github.com/orgs/tailscale/repositories) of note: + +* the Android app is at https://github.com/tailscale/tailscale-android +* the Synology package is at https://github.com/tailscale/tailscale-synology +* the QNAP package is at https://github.com/tailscale/tailscale-qpkg +* the Chocolatey packaging is at https://github.com/tailscale/tailscale-chocolatey + +For background on which parts of Tailscale are open source and why, +see [https://tailscale.com/opensource/](https://tailscale.com/opensource/). + +## Using + +We serve packages for a variety of distros and platforms at +[https://pkgs.tailscale.com](https://pkgs.tailscale.com/). + +## Other clients + +The [macOS, iOS, and Windows clients](https://tailscale.com/download) +use the code in this repository but additionally include small GUI +wrappers. The GUI wrappers on non-open source platforms are themselves +not open source. + +## Building + +We always require the latest Go release, currently Go 1.21. (While we build +releases with our [Go fork](https://github.com/tailscale/go/), its use is not +required.) + +``` +go install tailscale.com/cmd/tailscale{,d} +``` + +If you're packaging Tailscale for distribution, use `build_dist.sh` +instead, to burn commit IDs and version info into the binaries: + +``` +./build_dist.sh tailscale.com/cmd/tailscale +./build_dist.sh tailscale.com/cmd/tailscaled +``` + +If your distro has conventions that preclude the use of +`build_dist.sh`, please do the equivalent of what it does in your +distro's way, so that bug reports contain useful version information. + +## Bugs + +Please file any issues about this code or the hosted service on +[the issue tracker](https://github.com/tailscale/tailscale/issues). + +## Contributing + +PRs welcome! But please file bugs. Commit messages should [reference +bugs](https://docs.github.com/en/github/writing-on-github/autolinked-references-and-urls). + +We require [Developer Certificate of +Origin](https://en.wikipedia.org/wiki/Developer_Certificate_of_Origin) +`Signed-off-by` lines in commits. + +See `git log` for our commit message style. It's basically the same as +[Go's style](https://github.com/golang/go/wiki/CommitMessage). + +## About Us + +[Tailscale](https://tailscale.com/) is primarily developed by the +people at https://github.com/orgs/tailscale/people. For other contributors, +see: + +* https://github.com/tailscale/tailscale/graphs/contributors +* https://github.com/tailscale/tailscale-android/graphs/contributors + +## Legal + +WireGuard is a registered trademark of Jason A. Donenfeld. \ No newline at end of file diff --git a/apps/telegram/README.md b/apps/telegram/README.md index 4f58e6757..3dc04e8fb 100644 --- a/apps/telegram/README.md +++ b/apps/telegram/README.md @@ -1,94 +1,80 @@ # 使用说明 -- 访问链接`https`: +* 访问链接`https`: `https://IP_OF_SERVER:6901` -- 账户密码 +* 账户密码 + ``` username: kasm_user password: password ``` + # 原始相关 -# [Telegram Desktop][telegram_desktop] – Official Messenger +# [Telegram Desktop](https://desktop.telegram.org) – 官方即时通讯软件 -This is the complete source code and the build instructions for the official [Telegram][telegram] messenger desktop client, based on the [Telegram API][telegram_api] and the [MTProto][telegram_proto] secure protocol. +这是基于 [Telegram API](https://telegram.org) 和 [MTProto](https://core.telegram.org/mtproto) 安全协议的官方 [Telegram](https://telegram.org) 桌面客户端的完整源代码和构建说明。 -[![Version](https://badge.fury.io/gh/telegramdesktop%2Ftdesktop.svg)](https://github.com/telegramdesktop/tdesktop/releases) -[![Build Status](https://github.com/telegramdesktop/tdesktop/workflows/Windows./badge.svg)](https://github.com/telegramdesktop/tdesktop/actions) -[![Build Status](https://github.com/telegramdesktop/tdesktop/workflows/MacOS./badge.svg)](https://github.com/telegramdesktop/tdesktop/actions) -[![Build Status](https://github.com/telegramdesktop/tdesktop/workflows/Linux./badge.svg)](https://github.com/telegramdesktop/tdesktop/actions) +[![Version](https://badge.fury.io/gh/telegramdesktop%2Ftdesktop.svg)](https://github.com/telegramdesktop/tdesktop/releases) [![Build Status](https://github.com/telegramdesktop/tdesktop/workflows/Windows./badge.svg)](https://github.com/telegramdesktop/tdesktop/actions) [![Build Status](https://github.com/telegramdesktop/tdesktop/workflows/MacOS./badge.svg)](https://github.com/telegramdesktop/tdesktop/actions) [![Build Status](https://github.com/telegramdesktop/tdesktop/workflows/Linux./badge.svg)](https://github.com/telegramdesktop/tdesktop/actions) -[![Preview of Telegram Desktop][preview_image]][preview_image_url] +[![Preview of Telegram Desktop](https://github.com/telegramdesktop/tdesktop/blob/dev/docs/assets/preview.png "Preview of Telegram Desktop")](https://raw.githubusercontent.com/telegramdesktop/tdesktop/dev/docs/assets/preview.png) -The source code is published under GPLv3 with OpenSSL exception, the license is available [here][license]. +源代码在 GPLv3 许可下发布,并包含 OpenSSL 例外,许可信息请参阅[此处](https://github.com/telegramdesktop/tdesktop/blob/dev/LICENSE) 。 -## Supported systems +## 支持的系统 -The latest version is available for +最新版本适用于 -* [Windows 7 and above (64 bit)](https://telegram.org/dl/desktop/win64) ([portable](https://telegram.org/dl/desktop/win64_portable)) -* [Windows 7 and above (32 bit)](https://telegram.org/dl/desktop/win) ([portable](https://telegram.org/dl/desktop/win_portable)) -* [macOS 10.12 and above](https://telegram.org/dl/desktop/mac) -* [Linux static build for 64 bit](https://telegram.org/dl/desktop/linux) -* [Snap](https://snapcraft.io/telegram-desktop) -* [Flatpak](https://flathub.org/apps/details/org.telegram.desktop) +* [Windows 7 及以上(64 位)](https://telegram.org/dl/desktop/win64) ( [便携版](https://telegram.org/dl/desktop/win64_portable) ) +* [Windows 7 及以上(32 位)](https://telegram.org/dl/desktop/win) ( [便携版](https://telegram.org/dl/desktop/win_portable) ) +* [macOS 10.12 及以上](https://telegram.org/dl/desktop/mac) +* [64 位静态构建的 Linux](https://telegram.org/dl/desktop/linux) +* [Snap](https://snapcraft.io/telegram-desktop) +* [Flatpak](https://flathub.org/apps/details/org.telegram.desktop) -## Old system versions +## 旧系统版本 -Version **2.4.4** was the last that supports older systems +Version **2.4.4** 是最后一个支持旧系统的版本 -* [OS X 10.10 and 10.11](https://updates.tdesktop.com/tosx/tsetup-osx.2.4.4.dmg) -* [Linux static build for 32 bit](https://updates.tdesktop.com/tlinux32/tsetup32.2.4.4.tar.xz) +* [OS X 10.10 和 10.11](https://updates.tdesktop.com/tosx/tsetup-osx.2.4.4.dmg) +* [Linux 32 位静态构建](https://updates.tdesktop.com/tlinux32/tsetup32.2.4.4.tar.xz) -Version **1.8.15** was the last that supports older systems +Version **1.8.15** 是最后一个支持旧系统的版本 -* [Windows XP and Vista](https://updates.tdesktop.com/tsetup/tsetup.1.8.15.exe) ([portable](https://updates.tdesktop.com/tsetup/tportable.1.8.15.zip)) -* [OS X 10.8 and 10.9](https://updates.tdesktop.com/tmac/tsetup.1.8.15.dmg) -* [OS X 10.6 and 10.7](https://updates.tdesktop.com/tmac32/tsetup32.1.8.15.dmg) +* [Windows XP 和 Vista](https://updates.tdesktop.com/tsetup/tsetup.1.8.15.exe) ( [便携版](https://updates.tdesktop.com/tsetup/tportable.1.8.15.zip) ) +* [OS X 10.8 和 10.9](https://updates.tdesktop.com/tmac/tsetup.1.8.15.dmg) +* [OS X 10.6 和 10.7](https://updates.tdesktop.com/tmac32/tsetup32.1.8.15.dmg) -## Third-party +## 第三方 -* Qt 6 ([LGPL](http://doc.qt.io/qt-6/lgpl.html)) and Qt 5.15 ([LGPL](http://doc.qt.io/qt-5/lgpl.html)) slightly patched -* OpenSSL 1.1.1 and 1.0.1 ([OpenSSL License](https://www.openssl.org/source/license.html)) -* WebRTC ([New BSD License](https://github.com/desktop-app/tg_owt/blob/master/LICENSE)) -* zlib 1.2.11 ([zlib License](http://www.zlib.net/zlib_license.html)) -* LZMA SDK 9.20 ([public domain](http://www.7-zip.org/sdk.html)) -* liblzma ([public domain](http://tukaani.org/xz/)) -* Google Breakpad ([License](https://chromium.googlesource.com/breakpad/breakpad/+/master/LICENSE)) -* Google Crashpad ([Apache License 2.0](https://chromium.googlesource.com/crashpad/crashpad/+/master/LICENSE)) -* GYP ([BSD License](https://github.com/bnoordhuis/gyp/blob/master/LICENSE)) -* Ninja ([Apache License 2.0](https://github.com/ninja-build/ninja/blob/master/COPYING)) -* OpenAL Soft ([LGPL](https://github.com/kcat/openal-soft/blob/master/COPYING)) -* Opus codec ([BSD License](http://www.opus-codec.org/license/)) -* FFmpeg ([LGPL](https://www.ffmpeg.org/legal.html)) -* Guideline Support Library ([MIT License](https://github.com/Microsoft/GSL/blob/master/LICENSE)) -* Range-v3 ([Boost License](https://github.com/ericniebler/range-v3/blob/master/LICENSE.txt)) -* Open Sans font ([Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)) -* Vazir font ([SIL Open Font License 1.1](https://github.com/rastikerdar/vazir-font/blob/master/OFL.txt)) -* Emoji alpha codes ([MIT License](https://github.com/emojione/emojione/blob/master/extras/alpha-codes/LICENSE.md)) -* Catch test framework ([Boost License](https://github.com/philsquared/Catch/blob/master/LICENSE.txt)) -* xxHash ([BSD License](https://github.com/Cyan4973/xxHash/blob/dev/LICENSE)) -* QR Code generator ([MIT License](https://github.com/nayuki/QR-Code-generator#license)) -* CMake ([New BSD License](https://github.com/Kitware/CMake/blob/master/Copyright.txt)) -* Hunspell ([LGPL](https://github.com/hunspell/hunspell/blob/master/COPYING.LESSER)) +* Qt 6 ([LGPL](http://doc.qt.io/qt-6/lgpl.html)) 和 Qt 5.15 ([LGPL](http://doc.qt.io/qt-5/lgpl.html)) 略作修改 +* OpenSSL 1.1.1 和 1.0.1 ([OpenSSL 许可证](https://www.openssl.org/source/license.html) ) +* WebRTC ( [新 BSD 许可证](https://github.com/desktop-app/tg_owt/blob/master/LICENSE) ) +* zlib 1.2.11 ([zlib 许可证](http://www.zlib.net/zlib_license.html) ) +* LZMA SDK 9.20 ( [公有领域](http://www.7-zip.org/sdk.html) ) +* liblzma ( [公有领域](http://tukaani.org/xz/) ) +* Google Breakpad ( [许可证](https://chromium.googlesource.com/breakpad/breakpad/+/master/LICENSE) ) +* Google Crashpad ([Apache License 2.0](https://chromium.googlesource.com/crashpad/crashpad/+/master/LICENSE)) +* GYP ([BSD 许可证](https://github.com/bnoordhuis/gyp/blob/master/LICENSE) ) +* Ninja ([Apache 许可证 2.0](https://github.com/ninja-build/ninja/blob/master/COPYING)) +* OpenAL Soft ([LGPL](https://github.com/kcat/openal-soft/blob/master/COPYING)) +* Opus 编码器 ([BSD 许可证](http://www.opus-codec.org/license/) ) +* FFmpeg ([LGPL](https://www.ffmpeg.org/legal.html)) +* Guideline Support Library ([MIT License](https://github.com/Microsoft/GSL/blob/master/LICENSE)) +* Range-v3 ([Boost License](https://github.com/ericniebler/range-v3/blob/master/LICENSE.txt)) +* Open Sans 字体 ([Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)) +* Vazir 字体([SIL 开放字体许可证 1.1](https://github.com/rastikerdar/vazir-font/blob/master/OFL.txt)) +* Emoji alpha 代码([MIT 许可证](https://github.com/emojione/emojione/blob/master/extras/alpha-codes/LICENSE.md) ) +* Catch 测试框架([Boost 许可证](https://github.com/philsquared/Catch/blob/master/LICENSE.txt) ) +* xxHash([BSD 许可证](https://github.com/Cyan4973/xxHash/blob/dev/LICENSE) ) +* QR Code 生成器 ([MIT License](https://github.com/nayuki/QR-Code-generator#license)) +* CMake ([New BSD License](https://github.com/Kitware/CMake/blob/master/Copyright.txt)) +* Hunspell ([LGPL](https://github.com/hunspell/hunspell/blob/master/COPYING.LESSER)) -## Build instructions +## 构建说明 -* Windows [(32-bit)][win32] [(64-bit)][win64] -* [macOS][mac] -* [GNU/Linux using Docker][linux] - -[//]: # (LINKS) -[telegram]: https://telegram.org -[telegram_desktop]: https://desktop.telegram.org -[telegram_api]: https://core.telegram.org -[telegram_proto]: https://core.telegram.org/mtproto -[license]: https://github.com/telegramdesktop/tdesktop/blob/dev/LICENSE -[win32]: https://github.com/telegramdesktop/tdesktop/blob/dev/docs/building-win.md -[win64]: https://github.com/telegramdesktop/tdesktop/blob/dev/docs/building-win-x64.md -[mac]: https://github.com/telegramdesktop/tdesktop/blob/dev/docs/building-mac.md -[linux]: https://github.com/telegramdesktop/tdesktop/blob/dev/docs/building-linux.md -[preview_image]: https://github.com/telegramdesktop/tdesktop/blob/dev/docs/assets/preview.png "Preview of Telegram Desktop" -[preview_image_url]: https://raw.githubusercontent.com/telegramdesktop/tdesktop/dev/docs/assets/preview.png +* Windows (32-bit)(64-bit) +* [macOS](https://github.com/telegramdesktop/tdesktop/blob/dev/docs/building-mac.md) +* [GNU/Linux using Docker](https://github.com/telegramdesktop/tdesktop/blob/dev/docs/building-linux.md) \ No newline at end of file diff --git a/apps/telegram/README_en.md b/apps/telegram/README_en.md new file mode 100644 index 000000000..4f58e6757 --- /dev/null +++ b/apps/telegram/README_en.md @@ -0,0 +1,94 @@ +# 使用说明 + +- 访问链接`https`: + +`https://IP_OF_SERVER:6901` + +- 账户密码 +``` +username: kasm_user +password: password +``` +# 原始相关 + +# [Telegram Desktop][telegram_desktop] – Official Messenger + +This is the complete source code and the build instructions for the official [Telegram][telegram] messenger desktop client, based on the [Telegram API][telegram_api] and the [MTProto][telegram_proto] secure protocol. + +[![Version](https://badge.fury.io/gh/telegramdesktop%2Ftdesktop.svg)](https://github.com/telegramdesktop/tdesktop/releases) +[![Build Status](https://github.com/telegramdesktop/tdesktop/workflows/Windows./badge.svg)](https://github.com/telegramdesktop/tdesktop/actions) +[![Build Status](https://github.com/telegramdesktop/tdesktop/workflows/MacOS./badge.svg)](https://github.com/telegramdesktop/tdesktop/actions) +[![Build Status](https://github.com/telegramdesktop/tdesktop/workflows/Linux./badge.svg)](https://github.com/telegramdesktop/tdesktop/actions) + +[![Preview of Telegram Desktop][preview_image]][preview_image_url] + +The source code is published under GPLv3 with OpenSSL exception, the license is available [here][license]. + +## Supported systems + +The latest version is available for + +* [Windows 7 and above (64 bit)](https://telegram.org/dl/desktop/win64) ([portable](https://telegram.org/dl/desktop/win64_portable)) +* [Windows 7 and above (32 bit)](https://telegram.org/dl/desktop/win) ([portable](https://telegram.org/dl/desktop/win_portable)) +* [macOS 10.12 and above](https://telegram.org/dl/desktop/mac) +* [Linux static build for 64 bit](https://telegram.org/dl/desktop/linux) +* [Snap](https://snapcraft.io/telegram-desktop) +* [Flatpak](https://flathub.org/apps/details/org.telegram.desktop) + +## Old system versions + +Version **2.4.4** was the last that supports older systems + +* [OS X 10.10 and 10.11](https://updates.tdesktop.com/tosx/tsetup-osx.2.4.4.dmg) +* [Linux static build for 32 bit](https://updates.tdesktop.com/tlinux32/tsetup32.2.4.4.tar.xz) + +Version **1.8.15** was the last that supports older systems + +* [Windows XP and Vista](https://updates.tdesktop.com/tsetup/tsetup.1.8.15.exe) ([portable](https://updates.tdesktop.com/tsetup/tportable.1.8.15.zip)) +* [OS X 10.8 and 10.9](https://updates.tdesktop.com/tmac/tsetup.1.8.15.dmg) +* [OS X 10.6 and 10.7](https://updates.tdesktop.com/tmac32/tsetup32.1.8.15.dmg) + +## Third-party + +* Qt 6 ([LGPL](http://doc.qt.io/qt-6/lgpl.html)) and Qt 5.15 ([LGPL](http://doc.qt.io/qt-5/lgpl.html)) slightly patched +* OpenSSL 1.1.1 and 1.0.1 ([OpenSSL License](https://www.openssl.org/source/license.html)) +* WebRTC ([New BSD License](https://github.com/desktop-app/tg_owt/blob/master/LICENSE)) +* zlib 1.2.11 ([zlib License](http://www.zlib.net/zlib_license.html)) +* LZMA SDK 9.20 ([public domain](http://www.7-zip.org/sdk.html)) +* liblzma ([public domain](http://tukaani.org/xz/)) +* Google Breakpad ([License](https://chromium.googlesource.com/breakpad/breakpad/+/master/LICENSE)) +* Google Crashpad ([Apache License 2.0](https://chromium.googlesource.com/crashpad/crashpad/+/master/LICENSE)) +* GYP ([BSD License](https://github.com/bnoordhuis/gyp/blob/master/LICENSE)) +* Ninja ([Apache License 2.0](https://github.com/ninja-build/ninja/blob/master/COPYING)) +* OpenAL Soft ([LGPL](https://github.com/kcat/openal-soft/blob/master/COPYING)) +* Opus codec ([BSD License](http://www.opus-codec.org/license/)) +* FFmpeg ([LGPL](https://www.ffmpeg.org/legal.html)) +* Guideline Support Library ([MIT License](https://github.com/Microsoft/GSL/blob/master/LICENSE)) +* Range-v3 ([Boost License](https://github.com/ericniebler/range-v3/blob/master/LICENSE.txt)) +* Open Sans font ([Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)) +* Vazir font ([SIL Open Font License 1.1](https://github.com/rastikerdar/vazir-font/blob/master/OFL.txt)) +* Emoji alpha codes ([MIT License](https://github.com/emojione/emojione/blob/master/extras/alpha-codes/LICENSE.md)) +* Catch test framework ([Boost License](https://github.com/philsquared/Catch/blob/master/LICENSE.txt)) +* xxHash ([BSD License](https://github.com/Cyan4973/xxHash/blob/dev/LICENSE)) +* QR Code generator ([MIT License](https://github.com/nayuki/QR-Code-generator#license)) +* CMake ([New BSD License](https://github.com/Kitware/CMake/blob/master/Copyright.txt)) +* Hunspell ([LGPL](https://github.com/hunspell/hunspell/blob/master/COPYING.LESSER)) + +## Build instructions + +* Windows [(32-bit)][win32] [(64-bit)][win64] +* [macOS][mac] +* [GNU/Linux using Docker][linux] + +[//]: # (LINKS) +[telegram]: https://telegram.org +[telegram_desktop]: https://desktop.telegram.org +[telegram_api]: https://core.telegram.org +[telegram_proto]: https://core.telegram.org/mtproto +[license]: https://github.com/telegramdesktop/tdesktop/blob/dev/LICENSE +[win32]: https://github.com/telegramdesktop/tdesktop/blob/dev/docs/building-win.md +[win64]: https://github.com/telegramdesktop/tdesktop/blob/dev/docs/building-win-x64.md +[mac]: https://github.com/telegramdesktop/tdesktop/blob/dev/docs/building-mac.md +[linux]: https://github.com/telegramdesktop/tdesktop/blob/dev/docs/building-linux.md +[preview_image]: https://github.com/telegramdesktop/tdesktop/blob/dev/docs/assets/preview.png "Preview of Telegram Desktop" +[preview_image_url]: https://raw.githubusercontent.com/telegramdesktop/tdesktop/dev/docs/assets/preview.png diff --git a/apps/tldraw/README.md b/apps/tldraw/README.md index 48be447bc..c33e5e23c 100644 --- a/apps/tldraw/README.md +++ b/apps/tldraw/README.md @@ -1,25 +1,20 @@ -
- - - tldraw - -
+ ![tldraw](https://raw.githubusercontent.com/tldraw/tldraw/main/assets/github-hero-light-draw.png) # tldraw -Welcome to the public monorepo for [tldraw](https://tldraw.com). +欢迎访问 tldraw 的公共单库仓库 [tldraw](https://tldraw.com)。 -## What is tldraw? +## 什么是 tldraw? -tldraw is a collaborative digital whiteboard available at [tldraw.com](https://tldraw.com). Its editor, user interface, and other underlying libraries are open source and available in this repository. They are also distributed on npm. You can use tldraw to create a drop-in whiteboard for your product or as the foundation on which to build your own infinite canvas applications. +tldraw 是一个可协作的数字白板,可在 [tldraw.com](https://tldraw.com) 上使用。其编辑器、用户界面和其他底层库是开源的,并且在此仓库中提供。它们还通过 npm 分发。您可以使用 tldraw 为您的产品创建一个可插入的白板,或者以此为基础构建自己的无限画布应用程序。 -Learn more at [tldraw.dev](https://tldraw.dev). +访问 [tldraw.dev](https://tldraw.dev) 以获取更多信息。 -> **Note** This repo contains source code for the **current version** of tldraw. You can find the source for the original version [here](https://github.com/tldraw/tldraw-v1). +> **注意** 本仓库包含 tldraw 当前版本的源代码。您可以在这里找到原始版本的源代码 [here](https://github.com/tldraw/tldraw-v1)。 -## Installation & Usage +## 安装与使用 -To learn more about using tldraw in your React application, follow our guide [here](https://tldraw.dev/installation) or see the [examples sandbox](https://stackblitz.com/github/tldraw/tldraw/tree/examples?file=src%2F1-basic%2FBasicExample.tsx). +要了解如何在您的 React 应用程序中使用 tldraw,请遵循我们的指南 [here](https://tldraw.dev/installation) 或查看 [examples sandbox](https://stackblitz.com/github/tldraw/tldraw/tree/examples?file=src%2F1-basic%2FBasicExample.tsx)。 ```tsx import { Tldraw } from '@tldraw/tldraw' @@ -34,79 +29,79 @@ export default function () { } ``` -## Local development +## 本地开发 -To run the local development server, first clone this repo. +要运行本地开发服务器,首先克隆此仓库。 -Install dependencies: +安装依赖: ```bash yarn ``` -Start the local development server: +启动本地开发服务器: ```bash yarn dev ``` -Open the example project at `localhost:5420`. +在 `localhost:5420` 打开示例项目。 -### Examples +### 示例 -Our development server contains several examples that demonstrates different ways that you can customize tldraw or use its APIs. Each example is found in the [**apps/examples**](https://github.com/tldraw/tldraw/tree/main/apps/examples) folder. +我们的开发服务器包含多个示例,展示了您如何自定义 tldraw 或使用其 API 的不同方法。每个示例都位于 [**apps/examples**](https://github.com/tldraw/tldraw/tree/main/apps/examples) 文件夹中。 -- eg: `localhost:5420` for the basic example. -- eg: `localhost:5420/api` for the API example. +* 例如:在基本示例中使用 `localhost:5420`。 +* 示例:`localhost:5420/api` 用于 API 示例。 -To learn more about using tldraw, [visit our docs](https://tldraw.dev). +要了解更多关于使用 tldraw 的信息,请访问我们的文档:[docs](https://tldraw.dev)。 -## About this repository +## 关于此仓库 -### Top-level layout +### 顶层布局 -This repository's contents is divided across four primary sections: +这个仓库的内容分为四个主要部分: -- `/apps` contains the source for our applications -- `/packages` contains the source for our public packages -- `/scripts` contains scripts used for building and publishing -- `/assets` contains icons and translations relied on by the app -- `/docs` contains the content for our docs site at [tldraw.dev](https://tldraw.dev) +* `/apps` 包含我们的应用程序源代码 +* `/packages` 包含我们的公共包源代码 +* `/scripts` 包含用于构建和发布的脚本 +* `/assets` 包含应用程序依赖的图标和翻译 +* `/docs` 包含我们 docs 站点 [tldraw.dev](https://tldraw.dev) 的内容 -### Applications +### 应用程序 -- `examples`: our local development / examples project -- `vscode`: our [Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=tldraw-org.tldraw-vscode) +* `examples`: 我们的本地开发 / 示例项目 +* `vscode`: 我们的 [Visual Studio Code 扩展](https://marketplace.visualstudio.com/items?itemName=tldraw-org.tldraw-vscode) ### Packages -- `assets`: a library for working with tldraw's fonts and translations -- `editor`: the tldraw editor -- `state`: a signals library, also known as signia -- `store`: an in-memory reactive database -- `tldraw`: the main tldraw package containing both the editor and the UI -- `tlschema`: shape definitions and migrations -- `utils`: low-level data utilities shared by other libraries -- `validate`: a validation library used for run-time validation +* `assets`: 一个用于处理 tldraw 字体和翻译的库 +* `editor`: tldraw 编辑器 +* `state`: 一个信号库,也被称为 signia +* `store`: 一个内存中的响应式数据库 +* `tldraw`: tldraw 主包,包含编辑器和 UI +* `tlschema`: 形状定义和迁移 +* `utils`: 其他库共享的基础数据工具 +* `validate`: 用于运行时验证的验证库 -## Community +## 社区 -Have questions, comments or feedback? [Join our discord](https://discord.gg/rhsyWMUJxd) or [start a discussion](https://github.com/tldraw/tldraw/discussions/new). +有问题、评论或反馈?加入我们的 [discord](https://discord.gg/rhsyWMUJxd) 或 [发起讨论](https://github.com/tldraw/tldraw/discussions/new) 。 -## Distributions +## 分发 -You can find tldraw on npm [here](https://www.npmjs.com/package/@tldraw/tldraw?activeTab=versions). +您可以在 npm 上找到 tldraw [这里](https://www.npmjs.com/package/@tldraw/tldraw?activeTab=versions) 。 -At the moment the tldraw package is in alpha. We also ship a canary version which is always up to date with the main branch of this repo. +目前,tldraw 包处于测试版。我们还提供了一个 Canary 版本,该版本始终与本仓库的主要分支保持最新。 -## License +## 许可证 -The source code for various apps and packages in this repository (as well as our 2.0+ distributions and releases) are currently licensed under Apache-2.0. These licenses are subject to change in our upcoming 2.0 release. If you are planning to use tldraw in a commercial product, please reach out at [hello@tldraw.com](mailto://hello@tldraw.com). +本仓库中各种应用程序和包的源代码(以及我们的 2.0 及以上版本的分发和发布)目前采用 Apache-2.0 许可证。这些许可条款将在我们即将发布的 2.0 版本中发生变化。如果您计划在商业产品中使用 tldraw,请联系 [hello@tldraw.com](mailto://hello@tldraw.com)。 -## Contribution +## 贡献 -Please see our [contributing guide](https://github.com/tldraw/tldraw/blob/main/CONTRIBUTING.md). Found a bug? Please [submit an issue](https://github.com/tldraw/tldraw/issues/new). +请参阅我们的[贡献指南](https://github.com/tldraw/tldraw/blob/main/CONTRIBUTING.md) 。发现错误了吗?请[提交一个问题](https://github.com/tldraw/tldraw/issues/new) 。 -## Contact +## 联系 -Find us on Twitter at [@tldraw](https://twitter.com/tldraw) or email [hello@tldraw.com](mailto://hello@tldraw.com). You can also [join our discord](https://discord.gg/rhsyWMUJxd) for quick help and support. +在 Twitter 上关注我们 [@tldraw](https://twitter.com/tldraw) 或发送邮件至 [hello@tldraw.com](mailto://hello@tldraw.com)。您还可以加入我们的 [Discord](https://discord.gg/rhsyWMUJxd) 获取快速帮助和支持。 \ No newline at end of file diff --git a/apps/tldraw/README_en.md b/apps/tldraw/README_en.md new file mode 100644 index 000000000..48be447bc --- /dev/null +++ b/apps/tldraw/README_en.md @@ -0,0 +1,112 @@ +
+ + + tldraw + +
+ +# tldraw + +Welcome to the public monorepo for [tldraw](https://tldraw.com). + +## What is tldraw? + +tldraw is a collaborative digital whiteboard available at [tldraw.com](https://tldraw.com). Its editor, user interface, and other underlying libraries are open source and available in this repository. They are also distributed on npm. You can use tldraw to create a drop-in whiteboard for your product or as the foundation on which to build your own infinite canvas applications. + +Learn more at [tldraw.dev](https://tldraw.dev). + +> **Note** This repo contains source code for the **current version** of tldraw. You can find the source for the original version [here](https://github.com/tldraw/tldraw-v1). + +## Installation & Usage + +To learn more about using tldraw in your React application, follow our guide [here](https://tldraw.dev/installation) or see the [examples sandbox](https://stackblitz.com/github/tldraw/tldraw/tree/examples?file=src%2F1-basic%2FBasicExample.tsx). + +```tsx +import { Tldraw } from '@tldraw/tldraw' +import '@tldraw/tldraw/tldraw.css' + +export default function () { + return ( +
+ +
+ ) +} +``` + +## Local development + +To run the local development server, first clone this repo. + +Install dependencies: + +```bash +yarn +``` + +Start the local development server: + +```bash +yarn dev +``` + +Open the example project at `localhost:5420`. + +### Examples + +Our development server contains several examples that demonstrates different ways that you can customize tldraw or use its APIs. Each example is found in the [**apps/examples**](https://github.com/tldraw/tldraw/tree/main/apps/examples) folder. + +- eg: `localhost:5420` for the basic example. +- eg: `localhost:5420/api` for the API example. + +To learn more about using tldraw, [visit our docs](https://tldraw.dev). + +## About this repository + +### Top-level layout + +This repository's contents is divided across four primary sections: + +- `/apps` contains the source for our applications +- `/packages` contains the source for our public packages +- `/scripts` contains scripts used for building and publishing +- `/assets` contains icons and translations relied on by the app +- `/docs` contains the content for our docs site at [tldraw.dev](https://tldraw.dev) + +### Applications + +- `examples`: our local development / examples project +- `vscode`: our [Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=tldraw-org.tldraw-vscode) + +### Packages + +- `assets`: a library for working with tldraw's fonts and translations +- `editor`: the tldraw editor +- `state`: a signals library, also known as signia +- `store`: an in-memory reactive database +- `tldraw`: the main tldraw package containing both the editor and the UI +- `tlschema`: shape definitions and migrations +- `utils`: low-level data utilities shared by other libraries +- `validate`: a validation library used for run-time validation + +## Community + +Have questions, comments or feedback? [Join our discord](https://discord.gg/rhsyWMUJxd) or [start a discussion](https://github.com/tldraw/tldraw/discussions/new). + +## Distributions + +You can find tldraw on npm [here](https://www.npmjs.com/package/@tldraw/tldraw?activeTab=versions). + +At the moment the tldraw package is in alpha. We also ship a canary version which is always up to date with the main branch of this repo. + +## License + +The source code for various apps and packages in this repository (as well as our 2.0+ distributions and releases) are currently licensed under Apache-2.0. These licenses are subject to change in our upcoming 2.0 release. If you are planning to use tldraw in a commercial product, please reach out at [hello@tldraw.com](mailto://hello@tldraw.com). + +## Contribution + +Please see our [contributing guide](https://github.com/tldraw/tldraw/blob/main/CONTRIBUTING.md). Found a bug? Please [submit an issue](https://github.com/tldraw/tldraw/issues/new). + +## Contact + +Find us on Twitter at [@tldraw](https://twitter.com/tldraw) or email [hello@tldraw.com](mailto://hello@tldraw.com). You can also [join our discord](https://discord.gg/rhsyWMUJxd) for quick help and support. diff --git a/apps/transmission/README.md b/apps/transmission/README.md index 473eceffc..7df74656f 100644 --- a/apps/transmission/README.md +++ b/apps/transmission/README.md @@ -1,101 +1,97 @@ -## About +## 关于 -Transmission is a fast, easy, and free BitTorrent client. It comes in several flavors: - * A native macOS GUI application - * GTK+ and Qt GUI applications for Linux, BSD, etc. - * A Qt-based Windows-compatible GUI application - * A headless daemon for servers and routers - * A web UI for remote controlling any of the above - -Visit https://transmissionbt.com/ for more information. +Transmission 是一个快速、易用且免费的 BitTorrent 客户端。它有几种版本: -## Documentation +* 原生 macOS 图形用户界面应用程序 +* 适用于 Linux、BSD 等的 GTK+ 和 Qt 图形用户界面应用程序 +* 一个基于 Qt 的 Windows 兼容图形用户界面应用程序 +* 一个无头守护进程,用于服务器和路由器 +* 一个用于远程控制上述任何一项的网页界面 -[Transmission's documentation](https://github.com/transmission/transmission/blob/main/docs/README.md) is currently out-of-date, but the team has recently begun a new project to update it and is looking for volunteers. If you're interested, please feel free to submit pull requests! +更多信息,请访问 [https://transmissionbt.com/](https://transmissionbt.com/) -## Command line interface notes +## 文档 -Transmission is fully supported in transmission-remote, the preferred cli client. +[Transmission 的文档](https://github.com/transmission/transmission/blob/main/docs/README.md)目前过时,但团队最近已经开始了一个新项目来更新它,并在寻找志愿者。如果你感兴趣,请随时提交拉取请求! -Three standalone tools to examine, create, and edit .torrent files exist: transmission-show, transmission-create, and transmission-edit, respectively. +## 命令行界面注意事项 -Prior to development of transmission-remote, the standalone client transmission-cli was created. Limited to a single torrent at a time, transmission-cli is deprecated and exists primarily to support older hardware dependent upon it. In almost all instances, transmission-remote should be used instead. +Transmission 完全支持 transmission-remote,这是首选的命令行客户端。 -Different distributions may choose to package any or all of these tools in one or more separate packages. +有三个独立工具分别用于检查、创建和编辑.torrent 文件:transmission-show、transmission-create 和 transmission-edit。 -## Building +在开发传输-远程之前,创建了独立客户端传输-cli。传输-cli 一次只能处理一个种子文件,现已弃用,主要为了支持依赖它的旧硬件。在几乎所有情况下,应使用传输-远程替代。 -Transmission has an Xcode project file (Transmission.xcodeproj) for building in Xcode. +不同的发行版可以选择将这些工具中的任何一个或全部打包成一个或多个单独的包。 -For a more detailed description, and dependencies, visit [How to Build Transmission](https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md) in docs +## 构建 -### Building a Transmission release from the command line +传输有一个 Xcode 项目文件(Transmission.xcodeproj),用于在 Xcode 中构建。 - $ tar xf transmission-3.00.tar.xz - $ cd transmission-3.00 - $ mkdir build - $ cd build - # Use -DCMAKE_BUILD_TYPE=RelWithDebInfo to build optimzed binary with debug information. (preferred) - # Use -DCMAKE_BUILD_TYPE=Release to build full optimized binary. - $ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. - $ make - $ sudo make install +如需更详细的描述和依赖信息,请访问文档中的[如何构建传输](https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md) 。 -### Building Transmission from the nightly builds +### 从命令行构建 Transmission 发行版 -Download a tarball from https://build.transmissionbt.com/job/trunk-linux/ and follow the steps from the previous section. +``` +$ tar xf transmission-3.00.tar.xz +$ cd transmission-3.00 +$ mkdir build +$ cd build +# Use -DCMAKE_BUILD_TYPE=RelWithDebInfo to build optimzed binary with debug information. (preferred) +# Use -DCMAKE_BUILD_TYPE=Release to build full optimized binary. +$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. +$ make +$ sudo make install +``` -If you're new to building programs from source code, this is typically easier than building from Git. +### 从夜间构建构建 Transmission -### Building Transmission from Git (first time) +从 [https://build.transmissionbt.com/job/trunk-linux/](https://build.transmissionbt.com/job/trunk-linux/) 下载一个 tarball,并按照上一节中的步骤操作。 - $ git clone https://github.com/transmission/transmission Transmission - $ cd Transmission - $ git submodule update --init --recursive - $ mkdir build - $ cd build - # Use -DCMAKE_BUILD_TYPE=RelWithDebInfo to build optimzed binary with debug information. (preferred) - # Use -DCMAKE_BUILD_TYPE=Release to build full optimized binary. - $ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. - $ make - $ sudo make install +如果你是第一次从源代码构建程序,通常从 Git 构建会比从夜间构建更简单。 -### Building Transmission from Git (updating) +### 从 Git 构建 Transmission(首次构建) - $ cd Transmission/build - $ make clean - $ git submodule foreach --recursive git clean -xfd - $ git pull --rebase --prune - $ git submodule update --init --recursive - # Use -DCMAKE_BUILD_TYPE=RelWithDebInfo to build optimzed binary with debug information. (preferred) - # Use -DCMAKE_BUILD_TYPE=Release to build full optimized binary. - $ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. - $ make - $ sudo make install +``` +$ git clone https://github.com/transmission/transmission Transmission +$ cd Transmission +$ git submodule update --init --recursive +$ mkdir build +$ cd build +# Use -DCMAKE_BUILD_TYPE=RelWithDebInfo to build optimzed binary with debug information. (preferred) +# Use -DCMAKE_BUILD_TYPE=Release to build full optimized binary. +$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. +$ make +$ sudo make install +``` -## Contributing +### 从 Git 更新构建 Transmission -### Code Style +``` +$ cd Transmission/build +$ make clean +$ git submodule foreach --recursive git clean -xfd +$ git pull --rebase --prune +$ git submodule update --init --recursive +# Use -DCMAKE_BUILD_TYPE=RelWithDebInfo to build optimzed binary with debug information. (preferred) +# Use -DCMAKE_BUILD_TYPE=Release to build full optimized binary. +$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. +$ make +$ sudo make install +``` -You would want to setup your editor to make use of the .clang-format file located in the root of this repository and the eslint/prettier rules in web/package.json. +## 贡献 -If for some reason you are unwilling or unable to do so, there is a shell script which you can use: `./code_style.sh` +### 代码风格 -### Translations +建议将编辑器配置为使用此仓库根目录下的 .clang-format 文件以及 web/package.json 中的 eslint/prettier 规则。 -See [language translations](https://github.com/transmission/transmission/blob/main/docs/Translating.md). +如果出于某种原因你不愿意或无法这样做,你可以使用一个 shell 脚本:\`./code\_style.sh\` -## Sponsors +### 翻译 - - - - - - - - - - - -
[MacStadium]macOS CI builds are running on a M1 Mac Mini provided by MacStadium
[SignPath]Free code signing on Windows provided by SignPath.io, certificate by SignPath Foundation
+请参见[语言翻译](https://github.com/transmission/transmission/blob/main/docs/Translating.md) 。 + +## 赞助商 + +
macOS CI 构建运行在由 MacStadium 提供的 M1 Mac Mini 上
免费的代码签名服务由 SignPath.io 提供,证书由 SignPath 基金会 发放
\ No newline at end of file diff --git a/apps/transmission/README_en.md b/apps/transmission/README_en.md new file mode 100644 index 000000000..473eceffc --- /dev/null +++ b/apps/transmission/README_en.md @@ -0,0 +1,101 @@ +## About + +Transmission is a fast, easy, and free BitTorrent client. It comes in several flavors: + * A native macOS GUI application + * GTK+ and Qt GUI applications for Linux, BSD, etc. + * A Qt-based Windows-compatible GUI application + * A headless daemon for servers and routers + * A web UI for remote controlling any of the above + +Visit https://transmissionbt.com/ for more information. + +## Documentation + +[Transmission's documentation](https://github.com/transmission/transmission/blob/main/docs/README.md) is currently out-of-date, but the team has recently begun a new project to update it and is looking for volunteers. If you're interested, please feel free to submit pull requests! + +## Command line interface notes + +Transmission is fully supported in transmission-remote, the preferred cli client. + +Three standalone tools to examine, create, and edit .torrent files exist: transmission-show, transmission-create, and transmission-edit, respectively. + +Prior to development of transmission-remote, the standalone client transmission-cli was created. Limited to a single torrent at a time, transmission-cli is deprecated and exists primarily to support older hardware dependent upon it. In almost all instances, transmission-remote should be used instead. + +Different distributions may choose to package any or all of these tools in one or more separate packages. + +## Building + +Transmission has an Xcode project file (Transmission.xcodeproj) for building in Xcode. + +For a more detailed description, and dependencies, visit [How to Build Transmission](https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md) in docs + +### Building a Transmission release from the command line + + $ tar xf transmission-3.00.tar.xz + $ cd transmission-3.00 + $ mkdir build + $ cd build + # Use -DCMAKE_BUILD_TYPE=RelWithDebInfo to build optimzed binary with debug information. (preferred) + # Use -DCMAKE_BUILD_TYPE=Release to build full optimized binary. + $ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. + $ make + $ sudo make install + +### Building Transmission from the nightly builds + +Download a tarball from https://build.transmissionbt.com/job/trunk-linux/ and follow the steps from the previous section. + +If you're new to building programs from source code, this is typically easier than building from Git. + +### Building Transmission from Git (first time) + + $ git clone https://github.com/transmission/transmission Transmission + $ cd Transmission + $ git submodule update --init --recursive + $ mkdir build + $ cd build + # Use -DCMAKE_BUILD_TYPE=RelWithDebInfo to build optimzed binary with debug information. (preferred) + # Use -DCMAKE_BUILD_TYPE=Release to build full optimized binary. + $ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. + $ make + $ sudo make install + +### Building Transmission from Git (updating) + + $ cd Transmission/build + $ make clean + $ git submodule foreach --recursive git clean -xfd + $ git pull --rebase --prune + $ git submodule update --init --recursive + # Use -DCMAKE_BUILD_TYPE=RelWithDebInfo to build optimzed binary with debug information. (preferred) + # Use -DCMAKE_BUILD_TYPE=Release to build full optimized binary. + $ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. + $ make + $ sudo make install + +## Contributing + +### Code Style + +You would want to setup your editor to make use of the .clang-format file located in the root of this repository and the eslint/prettier rules in web/package.json. + +If for some reason you are unwilling or unable to do so, there is a shell script which you can use: `./code_style.sh` + +### Translations + +See [language translations](https://github.com/transmission/transmission/blob/main/docs/Translating.md). + +## Sponsors + + + + + + + + + + + + +
[MacStadium]macOS CI builds are running on a M1 Mac Mini provided by MacStadium
[SignPath]Free code signing on Windows provided by SignPath.io, certificate by SignPath Foundation
diff --git a/apps/ugly-avatar/README.md b/apps/ugly-avatar/README.md index 776c1195d..fe6d0ee1c 100644 --- a/apps/ugly-avatar/README.md +++ b/apps/ugly-avatar/README.md @@ -1,3 +1,3 @@ # ugly-face -This project is under Attribution-NonCommercial 4.0 International License. This means no commercial use for the project. I thought about this for a time. If you want to use this as part of your website that needs an avatar generator, you are free to use it. If you however, buid an app solely on this code as your main project, I am highly against that practice. I don't want to have the frustration of "oh someone copied my code and made money with it". +本项目采用 Attribution-NonCommercial 4.0 International License 许可。这意味着项目不得用于商业用途。我考虑了这个问题一段时间。如果你打算将此项目作为网站中需要头像生成器的一部分来使用,你可以自由使用。然而,如果你仅基于此代码构建一个应用程序作为你的主要项目,我非常反对这种做法。我不想因为“有人复制了我的代码并以此获利”而感到沮丧。 \ No newline at end of file diff --git a/apps/ugly-avatar/README_en.md b/apps/ugly-avatar/README_en.md new file mode 100644 index 000000000..776c1195d --- /dev/null +++ b/apps/ugly-avatar/README_en.md @@ -0,0 +1,3 @@ +# ugly-face + +This project is under Attribution-NonCommercial 4.0 International License. This means no commercial use for the project. I thought about this for a time. If you want to use this as part of your website that needs an avatar generator, you are free to use it. If you however, buid an app solely on this code as your main project, I am highly against that practice. I don't want to have the frustration of "oh someone copied my code and made money with it". diff --git a/apps/vocechat/README.md b/apps/vocechat/README.md index 50bab46df..7ba2c149d 100644 --- a/apps/vocechat/README.md +++ b/apps/vocechat/README.md @@ -1,25 +1,17 @@ -# Web Client of VoceChat +# VoceChat 的 Web 客户端 -
- -
-

-

+![](https://voce.chat/apple-touch-icon.png) -[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/privoce/vocechat-web/issues) -![GitHub issues](https://img.shields.io/github/issues-raw/Privoce/vocechat-web) ![GitHub](https://img.shields.io/github/license/privoce/vocechat-web) ![GitHub top language](https://img.shields.io/github/languages/top/privoce/vocechat-web) ![Docker Pulls](https://img.shields.io/docker/pulls/privoce/vocechat-server) +[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/privoce/vocechat-web/issues) ![GitHub issues](https://img.shields.io/github/issues-raw/Privoce/vocechat-web) ![GitHub](https://img.shields.io/github/license/privoce/vocechat-web) ![GitHub top language](https://img.shields.io/github/languages/top/privoce/vocechat-web) ![Docker Pulls](https://img.shields.io/docker/pulls/privoce/vocechat-server) -
+* 🎉 由 React & Redux Toolkit 提供动力 +* ✅ Typescript +* 📦 PWA +* 📢 通知 -- 🎉 Powered by React & Redux Toolkit -- ✅ Typescript -- 📦 PWA -- 📢 Notification +## 部署在您的服务器!或者使用我们的测试服务器 -## Host your server! Or use our test server - -- Host your own Voce server ([docker image](https://hub.docker.com/r/privoce/vocechat-server/tags)): - Run on x86_64 platform: +* 自行部署 Voce 服务器([docker 镜像](https://hub.docker.com/r/privoce/vocechat-server/tags) ):运行在 x86_64 平台上: ```bash docker run -d --restart=always \ @@ -28,50 +20,56 @@ docker run -d --restart=always \ privoce/vocechat-server:latest ``` -For more server hosting instructions, see our documentation: https://doc.voce.chat/ +如需更多服务器托管说明,请参阅我们的文档:[https://doc.voce.chat/](https://doc.voce.chat/) -## Preview +## 预览 -- official site: https://voce.chat -- live demo: https://privoce.voce.chat/ -- demo API Docs (Swagger): https://dev.voce.chat/api/swagger +* 官方网站: [https://voce.chat](https://voce.chat) + +* 在线演示: [https://privoce.voce.chat/](https://privoce.voce.chat/) + +* 演示 API 文档 (Swagger): [https://dev.voce.chat/api/swagger](https://dev.voce.chat/api/swagger) + +* 设计: [https://www.figma.com/file/EHnNr53kNmDWgUT86It6CH/UI](https://www.figma.com/file/EHnNr53kNmDWgUT86It6CH/UI) + +* 文本编辑器: [https://plate.udecode.io/docs/installation](https://plate.udecode.io/docs/installation) + +* Markdown 编辑器: [https://nhn.github.io/tui.editor/latest/](https://nhn.github.io/tui.editor/latest/) + +* redux: [@reduxjs/toolkit](https://redux-toolkit.js.org/introduction/getting-started) + +* indexDB 包装器: [https://github.com/localForage/localForage](https://github.com/localForage/localForage) + -- design: https://www.figma.com/file/EHnNr53kNmDWgUT86It6CH/UI -- text editor: https://plate.udecode.io/docs/installation -- markdown editor: https://nhn.github.io/tui.editor/latest/ -- redux: [@reduxjs/toolkit](https://redux-toolkit.js.org/introduction/getting-started) -- indexDB wrapper: https://github.com/localForage/localForage +## 本地开发 -## Local Development +* `git clone https://github.com/Privoce/vocechat-web vocechat-web` + +* `cd vocechat-web & yarn install` + +* `yarn start` + +* 打开 `localhost:3009` + -- `git clone https://github.com/Privoce/vocechat-web vocechat-web` +### 推荐工具 -- `cd vocechat-web & yarn install` +* [VS Code](https://code.visualstudio.com/) 编辑器推荐 +* VS Code 插件: + * [dbaeumer.vscode-eslint](#0): ESLint + * [esbenp.prettier-vscode](#0): Prettier + * [dsznajder.es7-react-js-snippets](https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets): 适用于 JS/TS 中的 React、React-Native 和 Redux 的 ES7+语法扩展 -- `yarn start` - -- Open `localhost:3009` - -### Tools Recommended - -- [VS Code](https://code.visualstudio.com/) Editor Recommended -- VS Code plugins: - - [dbaeumer.vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint): ESLint - - [esbenp.prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode): Prettier - - [dsznajder.es7-react-js-snippets](https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets): Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax - -## License +## 许可证 [GPL v3](https://github.com/Privoce/vocechat-web/blob/main/LICENSE) -## Thanks all the contributors +## 感谢所有贡献者 - - - +[![](https://contrib.rocks/image?repo=privoce/vocechat-web)](https://github.com/privoce/vocechat-web/graphs/contributors) -Discuss collaboration: han@privoce.com or https://bridger.chat/han - -Telegram group: https://t.me/opencfdchannel VoceChat: https://voce.chat - -Telegram channel: https://t.me/vocechat_group VoceChat Channel: https://privoce.voce.chat +讨论合作:[han@privoce.com](han@privoce.com) 或 [https://bridger.chat/han](https://bridger.chat/han) + +Telegram 群组:[https://t.me/opencfdchannel](https://t.me/opencfdchannel) VoceChat:[https://voce.chat](https://voce.chat) + +Telegram 频道: [https://t.me/vocechat_group](https://t.me/vocechat_group) VoceChat 频道: [https://privoce.voce.chat](https://privoce.voce.chat) \ No newline at end of file diff --git a/apps/vocechat/README_en.md b/apps/vocechat/README_en.md new file mode 100644 index 000000000..50bab46df --- /dev/null +++ b/apps/vocechat/README_en.md @@ -0,0 +1,77 @@ +# Web Client of VoceChat + +
+ +
+

+

+ +[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/privoce/vocechat-web/issues) +![GitHub issues](https://img.shields.io/github/issues-raw/Privoce/vocechat-web) ![GitHub](https://img.shields.io/github/license/privoce/vocechat-web) ![GitHub top language](https://img.shields.io/github/languages/top/privoce/vocechat-web) ![Docker Pulls](https://img.shields.io/docker/pulls/privoce/vocechat-server) + +
+ +- 🎉 Powered by React & Redux Toolkit +- ✅ Typescript +- 📦 PWA +- 📢 Notification + +## Host your server! Or use our test server + +- Host your own Voce server ([docker image](https://hub.docker.com/r/privoce/vocechat-server/tags)): + Run on x86_64 platform: + +```bash +docker run -d --restart=always \ + -p 3000:3000 \ + --name vocechat-server \ + privoce/vocechat-server:latest +``` + +For more server hosting instructions, see our documentation: https://doc.voce.chat/ + +## Preview + +- official site: https://voce.chat +- live demo: https://privoce.voce.chat/ +- demo API Docs (Swagger): https://dev.voce.chat/api/swagger + +- design: https://www.figma.com/file/EHnNr53kNmDWgUT86It6CH/UI +- text editor: https://plate.udecode.io/docs/installation +- markdown editor: https://nhn.github.io/tui.editor/latest/ +- redux: [@reduxjs/toolkit](https://redux-toolkit.js.org/introduction/getting-started) +- indexDB wrapper: https://github.com/localForage/localForage + +## Local Development + +- `git clone https://github.com/Privoce/vocechat-web vocechat-web` + +- `cd vocechat-web & yarn install` + +- `yarn start` + +- Open `localhost:3009` + +### Tools Recommended + +- [VS Code](https://code.visualstudio.com/) Editor Recommended +- VS Code plugins: + - [dbaeumer.vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint): ESLint + - [esbenp.prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode): Prettier + - [dsznajder.es7-react-js-snippets](https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets): Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax + +## License + +[GPL v3](https://github.com/Privoce/vocechat-web/blob/main/LICENSE) + +## Thanks all the contributors + + + + + +Discuss collaboration: han@privoce.com or https://bridger.chat/han + +Telegram group: https://t.me/opencfdchannel VoceChat: https://voce.chat + +Telegram channel: https://t.me/vocechat_group VoceChat Channel: https://privoce.voce.chat diff --git a/apps/wallos/README.md b/apps/wallos/README.md index d9f57dafe..da8ec66f0 100644 --- a/apps/wallos/README.md +++ b/apps/wallos/README.md @@ -1,26 +1,22 @@ - - - - Wallos - + ![Wallos](https://github.com/ellite/Wallos/raw/main/images/wallossolid.png) -Wallos: Open-Source Personal Subscription Tracker +Wallos: 开源个人订阅追踪器 -## Introduction +## 简介 -Wallos is a powerful, open-source, and self-hostable web application designed to empower you in managing your finances with ease. Say goodbye to complicated spreadsheets and expensive financial software – Wallos simplifies the process of tracking expenses and helps you gain better control over your financial life. +Wallos 是一个强大、开源且可自行托管的网络应用,旨在帮助您轻松管理财务。告别复杂的电子表格和昂贵的财务管理软件,Wallos 简化了费用追踪的过程,帮助您更好地掌控自己的财务生活。 -## Features +## 功能 -- Subscription Management: Keep track of your recurring subscriptions and payments, ensuring you never miss a due date. -- Category Management: Organize your expenses into customizable categories, enabling you to gain insights into your spending habits. -- Multi-Currency support: Wallos supports multiple currencies, allowing you to manage your finances in the currency of your choice. -- Currency Conversion: Integrates with the Fixer API so you can get exchange rates and see all your subscriptions on your main currency. -- Data Privacy: As a self-hosted application, Wallos ensures that your financial data remains private and secure on your own server. -- Customization: Tailor Wallos to your needs with customizable categories, currencies, themes and other display options. -- Sorting Options: Allowing you to view your subscriptions from different perspectives. -- Logo Search: Wallos can search the web for the logo of your subscriptions if you don't have them available for upload. -- Mobile view: Wallos on the go. -- Statistics: Another perspective into your spendings. -- Notifications: Get notified by email of an upcoming payment. -- Multi Language support. \ No newline at end of file +* 订阅管理:追踪您的定期订阅和支付,确保您不会错过任何到期日。 +* 分类管理:将支出组织到自定义类别中,帮助您了解自己的消费习惯。 +* 多货币支持:Wallos 支持多种货币,允许您使用首选货币管理财务。 +* 货币转换:与 Fixer API 集成,以便获取汇率并以主要货币查看所有订阅。 +* 数据隐私:作为自托管的应用程序,Wallos 确保您的财务数据在您自己的服务器上保持私密和安全。 +* 自定义:根据您的需求,您可以自定义 Wallos 的分类、货币、主题和其他显示选项。 +* 排序选项:从不同的视角查看您的订阅。 +* Logo 搜索:如果您没有上传订阅的 Logo,Wallos 可以在网上为您搜索。 +* 移动视图:随时随地使用 Wallos。 +* 统计数据:另一种看待支出的方式。 +* 通知:收到即将付款的电子邮件通知。 +* 多语言支持。 \ No newline at end of file diff --git a/apps/wallos/README_en.md b/apps/wallos/README_en.md new file mode 100644 index 000000000..d9f57dafe --- /dev/null +++ b/apps/wallos/README_en.md @@ -0,0 +1,26 @@ + + + + Wallos + + +Wallos: Open-Source Personal Subscription Tracker + +## Introduction + +Wallos is a powerful, open-source, and self-hostable web application designed to empower you in managing your finances with ease. Say goodbye to complicated spreadsheets and expensive financial software – Wallos simplifies the process of tracking expenses and helps you gain better control over your financial life. + +## Features + +- Subscription Management: Keep track of your recurring subscriptions and payments, ensuring you never miss a due date. +- Category Management: Organize your expenses into customizable categories, enabling you to gain insights into your spending habits. +- Multi-Currency support: Wallos supports multiple currencies, allowing you to manage your finances in the currency of your choice. +- Currency Conversion: Integrates with the Fixer API so you can get exchange rates and see all your subscriptions on your main currency. +- Data Privacy: As a self-hosted application, Wallos ensures that your financial data remains private and secure on your own server. +- Customization: Tailor Wallos to your needs with customizable categories, currencies, themes and other display options. +- Sorting Options: Allowing you to view your subscriptions from different perspectives. +- Logo Search: Wallos can search the web for the logo of your subscriptions if you don't have them available for upload. +- Mobile view: Wallos on the go. +- Statistics: Another perspective into your spendings. +- Notifications: Get notified by email of an upcoming payment. +- Multi Language support. \ No newline at end of file diff --git a/apps/watchtower/README.md b/apps/watchtower/README.md index 6f3486141..c266492be 100644 --- a/apps/watchtower/README.md +++ b/apps/watchtower/README.md @@ -1,28 +1,16 @@ -
- - - # Watchtower - - A process for automating Docker container base image updates. -

- - [![Circle CI](https://circleci.com/gh/containrrr/watchtower.svg?style=shield)](https://circleci.com/gh/containrrr/watchtower) - [![codecov](https://codecov.io/gh/containrrr/watchtower/branch/main/graph/badge.svg)](https://codecov.io/gh/containrrr/watchtower) - [![GoDoc](https://godoc.org/github.com/containrrr/watchtower?status.svg)](https://godoc.org/github.com/containrrr/watchtower) - [![Go Report Card](https://goreportcard.com/badge/github.com/containrrr/watchtower)](https://goreportcard.com/report/github.com/containrrr/watchtower) - [![latest version](https://img.shields.io/github/tag/containrrr/watchtower.svg)](https://github.com/containrrr/watchtower/releases) - [![Apache-2.0 License](https://img.shields.io/github/license/containrrr/watchtower.svg)](https://www.apache.org/licenses/LICENSE-2.0) - [![Codacy Badge](https://app.codacy.com/project/badge/Grade/1c48cfb7646d4009aa8c6f71287670b8)](https://www.codacy.com/gh/containrrr/watchtower/dashboard?utm_source=github.com&utm_medium=referral&utm_content=containrrr/watchtower&utm_campaign=Badge_Grade) - [![All Contributors](https://img.shields.io/github/all-contributors/containrrr/watchtower)](#contributors) - [![Pulls from DockerHub](https://img.shields.io/docker/pulls/containrrr/watchtower.svg)](https://hub.docker.com/r/containrrr/watchtower) +![](https://raw.githubusercontent.com/containrrr/watchtower/main/logo.png) -
+# Watchtower -## Quick Start +一个用于自动化 Docker 容器基础镜像更新的过程。 -With watchtower you can update the running version of your containerized app simply by pushing a new image to the Docker Hub or your own image registry. +[![Circle CI](https://circleci.com/gh/containrrr/watchtower.svg?style=shield)](https://circleci.com/gh/containrrr/watchtower) [![codecov](https://codecov.io/gh/containrrr/watchtower/branch/main/graph/badge.svg)](https://codecov.io/gh/containrrr/watchtower) [![GoDoc](https://godoc.org/github.com/containrrr/watchtower?status.svg)](https://godoc.org/github.com/containrrr/watchtower) [![Go Report Card](https://goreportcard.com/badge/github.com/containrrr/watchtower)](https://goreportcard.com/report/github.com/containrrr/watchtower) [![latest version](https://img.shields.io/github/tag/containrrr/watchtower.svg)](https://github.com/containrrr/watchtower/releases) [![Apache-2.0 License](https://img.shields.io/github/license/containrrr/watchtower.svg)](https://www.apache.org/licenses/LICENSE-2.0) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/1c48cfb7646d4009aa8c6f71287670b8)](https://www.codacy.com/gh/containrrr/watchtower/dashboard?utm_source=github.com&utm_medium=referral&utm_content=containrrr/watchtower&utm_campaign=Badge_Grade) [![All Contributors](https://img.shields.io/github/all-contributors/containrrr/watchtower)](#contributors) [![Pulls from DockerHub](https://img.shields.io/docker/pulls/containrrr/watchtower.svg)](https://hub.docker.com/r/containrrr/watchtower) -Watchtower will pull down your new image, gracefully shut down your existing container and restart it with the same options that were used when it was deployed initially. Run the watchtower container with the following command: +## 快速开始 + +使用 Watchtower,您只需推送一个新的镜像到 Docker Hub 或您自己的镜像仓库,就可以更新正在运行的容器化应用版本。 + +Watchtower 将拉取你的新镜像,优雅地关闭现有容器并使用最初部署时的相同选项重新启动它。使用以下命令运行 watchtower 容器: ``` $ docker run --detach \ @@ -31,145 +19,14 @@ $ docker run --detach \ containrrr/watchtower ``` -## Documentation -The full documentation is available at https://containrrr.dev/watchtower. +## 文档 -## Contributors +完整的文档可在 [https://containrrr.dev/watchtower](https://containrrr.dev/watchtower) 查看。 -Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): +## 贡献者 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
James
James

⚠️ 🤔
Florian
Florian

👀 📖
Brian DeHamer
Brian DeHamer

💻 🚧
Ross Cadogan
Ross Cadogan

💻
stffabi
stffabi

💻 🚧
Austin
Austin

📖
David Gardner
David Gardner

👀 📖
Tanguy ⧓ Herrmann
Tanguy ⧓ Herrmann

💻
Rodrigo Damazio Bovendorp
Rodrigo Damazio Bovendorp

💻 📖
Ryan Kuba
Ryan Kuba

🚇
cnrmck
cnrmck

📖
Harry Walter
Harry Walter

💻
Robotex
Robotex

📖
Gerald Pape
Gerald Pape

📖
fomk
fomk

💻
Sven Gottwald
Sven Gottwald

🚇
techknowlogick
techknowlogick

💻
waja
waja

📖
Scott Albertson
Scott Albertson

📖
Jason Huddleston
Jason Huddleston

📖
Napster
Napster

💻
Maxim
Maxim

💻 📖
Max Schmitt
Max Schmitt

📖
cron410
cron410

📖
Paulo Henrique
Paulo Henrique

📖
Kaleb Elwert
Kaleb Elwert

📖
Bill Butler
Bill Butler

📖
Mario Tacke
Mario Tacke

💻
Mark Woodbridge
Mark Woodbridge

💻
Simon Aronsson
Simon Aronsson

💻 🚧 👀 📖
Ansem93
Ansem93

📖
Luka Peschke
Luka Peschke

💻 📖
Zois Pagoulatos
Zois Pagoulatos

💻 👀 🚧
Alexandre Menif
Alexandre Menif

💻
Andrey
Andrey

📖
Armando Lüscher
Armando Lüscher

📖
Ryan Budke
Ryan Budke

📖
Kaloyan Raev
Kaloyan Raev

💻 ⚠️
sixth
sixth

📖
Gina Häußge
Gina Häußge

💻
Max H.
Max H.

💻
Jungkook Park
Jungkook Park

📖
Jan Kristof Nidzwetzki
Jan Kristof Nidzwetzki

📖
lukas
lukas

💻
Ameya Shenoy
Ameya Shenoy

💻
Raymon de Looff
Raymon de Looff

💻
John Clayton
John Clayton

💻
Germs2004
Germs2004

📖
Lukas Willburger
Lukas Willburger

💻
Oliver Cervera
Oliver Cervera

📖
Victor Moura
Victor Moura

⚠️ 💻 📖
Maximilian Brandau
Maximilian Brandau

💻 ⚠️
Andrew
Andrew

📖
sixcorners
sixcorners

📖
nils måsén
nils måsén

📖 💻
Arne Jørgensen
Arne Jørgensen

⚠️ 👀
PatSki123
PatSki123

📖
Valentine Zavadsky
Valentine Zavadsky

💻 📖 ⚠️
Alexander Voronin
Alexander Voronin

💻 🐛
Oliver Mueller
Oliver Mueller

📖
Sebastiaan Tammer
Sebastiaan Tammer

💻
miosame
miosame

📖
Andrew Metzger
Andrew Metzger

🐛 💡
Pierre Grimaud
Pierre Grimaud

📖
Matt Doran
Matt Doran

📖
MihailITPlace
MihailITPlace

💻
bugficks
bugficks

💻 📖
Michael
Michael

💻
D. Domig
D. Domig

📖
Ben Osheroff
Ben Osheroff

💻
David H.
David H.

💻
Chander Ganesan
Chander Ganesan

📖
yrien30
yrien30

💻
ksurl
ksurl

📖 💻 🚇
rg9400
rg9400

💻
Turtle Kalus
Turtle Kalus

💻
Srihari Thalla
Srihari Thalla

📖
Thomas Gaudin
Thomas Gaudin

📖
hydrargyrum
hydrargyrum

📖
Reinout van Rees
Reinout van Rees

📖
DasSkelett
DasSkelett

💻
zenjabba
zenjabba

📖
Dan Quan
Dan Quan

📖
modem7
modem7

📖
Igor Zibarev
Igor Zibarev

💻
Patrice
Patrice

💻
James White
James White

📖
Dirk Kok
Dirk Kok

💻
EDIflyer
EDIflyer

📖
Jauder Ho
Jauder Ho

💻
Tamal Das
Tamal Das

📖
+感谢这些 wonderful 人们([emoji key](https://allcontributors.org/docs/en/emoji-key)): - - - - - -This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! +
James⚠️🤔Florian👀📖Brian DeHamer💻🚧Ross Cadogan💻stffabi💻🚧奥斯汀📖大卫·加德纳👀 📖
塔古伊 ⧓ Herrmann💻罗德里戈·达马佐·博文德💻 📖Ryan Kuba🚇cnrmck📖哈里·沃特尔💻罗博泰克斯📖杰拉尔德·帕佩📖
fomk💻斯文·戈特瓦尔德🚇techknowlogick💻waja📖斯科特·阿尔伯特森📖杰森·胡德斯顿📖纳普斯特💻
马克西姆💻 📖Max Schmitt📖cron410📖Paulo Henrique📖Kaleb Elwert📖比尔·巴特勒📖马里奥·塔克💻
马克·伍德布里奇💻西蒙·阿隆松💻 🚧 👀 📖安-sem-93📖卢卡·佩舍克💻 📖佐伊·帕古拉托斯💻 👀 🚧Alexandre Menif💻Andrey📖
阿曼多·卢舍尔📖瑞安·布德克📖卡洛扬·雷夫💻 ⚠️第六📖Gina Häußge💻Max H.💻朴智孔📖
Jan Kristof Nidzwetzki📖lukas💻Ameya Shenoy💻Raymon de Looff💻约翰·克莱顿💻Germs2004📖卢卡斯·威尔布格尔💻
奥利弗·塞维拉📖Victor Moura⚠️ 💻 📖Maximilian Brandau💻 ⚠️安德鲁📖六角📖尼尔斯·马森📖 💻阿 rne jørgensen⚠️ 👀
PatSki123📖Valentine Zavadsky💻 📖 ⚠️Alexander Voronin💻 🐛Oliver Mueller📖塞斯巴恩·塔默💻miosame📖Andrew Metzger🐛 💡
皮埃尔·格里马德📖马特·多兰📖米哈伊尔 IT 地方💻bugficks💻 📖Michael💻D. Domig📖Ben Osheroff💻
大卫 H.💻查恩德·甘那南📖yrien30💻ksurl📖 💻 🚇rg9400💻Turtle Kalus💻Srihari Thalla📖
托马斯·加丁📖水银📖雷因·范·里斯📖DasSkelett💻zenjabba📖Dan Quan📖modem7📖
Igor Zibarev💻帕特里斯💻詹姆斯·怀特📖迪克·科克💻EDIflyer📖Jauder Ho💻Tamal Das 📖
+该项目遵循 [all-contributors](https://github.com/all-contributors/all-contributors) 规范。所有类型的贡献都欢迎! \ No newline at end of file diff --git a/apps/watchtower/README_en.md b/apps/watchtower/README_en.md new file mode 100644 index 000000000..6f3486141 --- /dev/null +++ b/apps/watchtower/README_en.md @@ -0,0 +1,175 @@ +
+ + + # Watchtower + + A process for automating Docker container base image updates. +

+ + [![Circle CI](https://circleci.com/gh/containrrr/watchtower.svg?style=shield)](https://circleci.com/gh/containrrr/watchtower) + [![codecov](https://codecov.io/gh/containrrr/watchtower/branch/main/graph/badge.svg)](https://codecov.io/gh/containrrr/watchtower) + [![GoDoc](https://godoc.org/github.com/containrrr/watchtower?status.svg)](https://godoc.org/github.com/containrrr/watchtower) + [![Go Report Card](https://goreportcard.com/badge/github.com/containrrr/watchtower)](https://goreportcard.com/report/github.com/containrrr/watchtower) + [![latest version](https://img.shields.io/github/tag/containrrr/watchtower.svg)](https://github.com/containrrr/watchtower/releases) + [![Apache-2.0 License](https://img.shields.io/github/license/containrrr/watchtower.svg)](https://www.apache.org/licenses/LICENSE-2.0) + [![Codacy Badge](https://app.codacy.com/project/badge/Grade/1c48cfb7646d4009aa8c6f71287670b8)](https://www.codacy.com/gh/containrrr/watchtower/dashboard?utm_source=github.com&utm_medium=referral&utm_content=containrrr/watchtower&utm_campaign=Badge_Grade) + [![All Contributors](https://img.shields.io/github/all-contributors/containrrr/watchtower)](#contributors) + [![Pulls from DockerHub](https://img.shields.io/docker/pulls/containrrr/watchtower.svg)](https://hub.docker.com/r/containrrr/watchtower) + +
+ +## Quick Start + +With watchtower you can update the running version of your containerized app simply by pushing a new image to the Docker Hub or your own image registry. + +Watchtower will pull down your new image, gracefully shut down your existing container and restart it with the same options that were used when it was deployed initially. Run the watchtower container with the following command: + +``` +$ docker run --detach \ + --name watchtower \ + --volume /var/run/docker.sock:/var/run/docker.sock \ + containrrr/watchtower +``` + +## Documentation +The full documentation is available at https://containrrr.dev/watchtower. + +## Contributors + +Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
James
James

⚠️ 🤔
Florian
Florian

👀 📖
Brian DeHamer
Brian DeHamer

💻 🚧
Ross Cadogan
Ross Cadogan

💻
stffabi
stffabi

💻 🚧
Austin
Austin

📖
David Gardner
David Gardner

👀 📖
Tanguy ⧓ Herrmann
Tanguy ⧓ Herrmann

💻
Rodrigo Damazio Bovendorp
Rodrigo Damazio Bovendorp

💻 📖
Ryan Kuba
Ryan Kuba

🚇
cnrmck
cnrmck

📖
Harry Walter
Harry Walter

💻
Robotex
Robotex

📖
Gerald Pape
Gerald Pape

📖
fomk
fomk

💻
Sven Gottwald
Sven Gottwald

🚇
techknowlogick
techknowlogick

💻
waja
waja

📖
Scott Albertson
Scott Albertson

📖
Jason Huddleston
Jason Huddleston

📖
Napster
Napster

💻
Maxim
Maxim

💻 📖
Max Schmitt
Max Schmitt

📖
cron410
cron410

📖
Paulo Henrique
Paulo Henrique

📖
Kaleb Elwert
Kaleb Elwert

📖
Bill Butler
Bill Butler

📖
Mario Tacke
Mario Tacke

💻
Mark Woodbridge
Mark Woodbridge

💻
Simon Aronsson
Simon Aronsson

💻 🚧 👀 📖
Ansem93
Ansem93

📖
Luka Peschke
Luka Peschke

💻 📖
Zois Pagoulatos
Zois Pagoulatos

💻 👀 🚧
Alexandre Menif
Alexandre Menif

💻
Andrey
Andrey

📖
Armando Lüscher
Armando Lüscher

📖
Ryan Budke
Ryan Budke

📖
Kaloyan Raev
Kaloyan Raev

💻 ⚠️
sixth
sixth

📖
Gina Häußge
Gina Häußge

💻
Max H.
Max H.

💻
Jungkook Park
Jungkook Park

📖
Jan Kristof Nidzwetzki
Jan Kristof Nidzwetzki

📖
lukas
lukas

💻
Ameya Shenoy
Ameya Shenoy

💻
Raymon de Looff
Raymon de Looff

💻
John Clayton
John Clayton

💻
Germs2004
Germs2004

📖
Lukas Willburger
Lukas Willburger

💻
Oliver Cervera
Oliver Cervera

📖
Victor Moura
Victor Moura

⚠️ 💻 📖
Maximilian Brandau
Maximilian Brandau

💻 ⚠️
Andrew
Andrew

📖
sixcorners
sixcorners

📖
nils måsén
nils måsén

📖 💻
Arne Jørgensen
Arne Jørgensen

⚠️ 👀
PatSki123
PatSki123

📖
Valentine Zavadsky
Valentine Zavadsky

💻 📖 ⚠️
Alexander Voronin
Alexander Voronin

💻 🐛
Oliver Mueller
Oliver Mueller

📖
Sebastiaan Tammer
Sebastiaan Tammer

💻
miosame
miosame

📖
Andrew Metzger
Andrew Metzger

🐛 💡
Pierre Grimaud
Pierre Grimaud

📖
Matt Doran
Matt Doran

📖
MihailITPlace
MihailITPlace

💻
bugficks
bugficks

💻 📖
Michael
Michael

💻
D. Domig
D. Domig

📖
Ben Osheroff
Ben Osheroff

💻
David H.
David H.

💻
Chander Ganesan
Chander Ganesan

📖
yrien30
yrien30

💻
ksurl
ksurl

📖 💻 🚇
rg9400
rg9400

💻
Turtle Kalus
Turtle Kalus

💻
Srihari Thalla
Srihari Thalla

📖
Thomas Gaudin
Thomas Gaudin

📖
hydrargyrum
hydrargyrum

📖
Reinout van Rees
Reinout van Rees

📖
DasSkelett
DasSkelett

💻
zenjabba
zenjabba

📖
Dan Quan
Dan Quan

📖
modem7
modem7

📖
Igor Zibarev
Igor Zibarev

💻
Patrice
Patrice

💻
James White
James White

📖
Dirk Kok
Dirk Kok

💻
EDIflyer
EDIflyer

📖
Jauder Ho
Jauder Ho

💻
Tamal Das
Tamal Das

📖
+ + + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! + diff --git a/apps/web-check/README.md b/apps/web-check/README.md index 279685d67..9d19002f0 100644 --- a/apps/web-check/README.md +++ b/apps/web-check/README.md @@ -1,449 +1,411 @@ -

Web-Check

+# Web-Check +![](https://i.ibb.co/q1gZN2p/web-check-logo.png) +***任何网站的全面、按需开源情报*** +**🌐 [web-check.xyz](https://web-check.xyz/)** -

-
-Comprehensive, on-demand open source intelligence for any website -
-🌐 web-check.xyz
+* * * -

+## 关于 ---- +了解给定网站的内部运作:发现潜在的攻击向量,分析服务器架构,查看安全配置,并了解该网站使用了哪些技术。 -## About -Get an insight into the inner-workings of a given website: uncover potential attack vectors, analyse server architecture, view security configurations, and learn what technologies a site is using. +目前仪表板将显示:IP 信息、SSL 证书链、DNS 记录、Cookies、头部信息、域名信息、搜索爬取规则、页面映射、服务器位置、重定向记录、开放端口、 traceroute、DNS 安全扩展、站点性能、跟踪器、关联主机名、碳足迹。敬请期待,我会很快添加更多功能! -Currently the dashboard will show: IP info, SSL chain, DNS records, cookies, headers, domain info, search crawl rules, page map, server location, redirect ledger, open ports, traceroute, DNS security extensions, site performance, trackers, associated hostnames, carbon footprint. Stay tuned, as I'll add more soon! +目标是帮助您轻松了解、优化和保护您的网站。 -The aim is to help you easily understand, optimize and secure your website. +### 截图 -### Screenshot [![Screenshot](https://raw.githubusercontent.com/Lissy93/web-check/master/.github/screenshots/web-check-screenshot7.png)](https://web-check.as93.net/) ### Live Demo -A hosted version can be accessed at: **[web-check.as93.net](https://web-check.as93.net)** -### Mirror -The source for this repo is mirrored to CodeBerg, available at: **[codeberg.org/alicia/web-check](https://codeberg.org/alicia/web-check)** +托管版本可访问:**[web-check.as93.net](https://web-check.as93.net)** -### Motivation -Often when you're looking into a website, there's several things you always initially check. -Think: Whois, SSL chain, DNS records, tech stack, security protocols, crawl rules, sitemap, redirects, basic performance, open ports, server info, etc. -None of this is hard to find with a series of basic curl commands, or a combination of online tools. But it's just so much easier to have everything presented clearly and visible in one place :) +### 镜像 -### Features +此仓库的源代码镜像到了 CodeBerg,地址为:**[codeberg.org/alicia/web-check](https://codeberg.org/alicia/web-check)** -
-

Expand to see all features

+### 动机 -**Note** _this list needs updating, many more jobs have been added since..._ +当你查看一个网站时,通常会先检查一些基本内容。比如:Whois 查询、SSL 证书链、DNS 记录、技术栈、安全协议、爬虫规则、站点地图、重定向、基本性能、开放端口、服务器信息等。这些信息大多可以通过一系列基本的 curl 命令或组合使用在线工具来获取。但把这些信息清晰地集中展示在一个地方会方便得多 :) -
-IP Address +### 功能 - +#### 展开查看所有功能 -###### Description -The IP Address task involves mapping the user provided URL to its corresponding IP address through a process known as Domain Name System (DNS) resolution. An IP address is a unique identifier given to every device on the Internet, and when paired with a domain name, it allows for accurate routing of online requests and responses. +请注意,此列表需要更新,自那以后已经添加了许多新的任务... -###### Use Cases -Identifying the IP address of a domain can be incredibly valuable for OSINT purposes. This information can aid in creating a detailed map of a target's network infrastructure, pinpointing the physical location of a server, identifying the hosting service, and even discovering other domains that are hosted on the same IP address. In cybersecurity, it's also useful for tracking the sources of attacks or malicious activities. +**IP 地址** ![](undefined?) -###### Useful Links -- [https://en.wikipedia.org/wiki/IP_address](https://en.wikipedia.org/wiki/IP_address) -- [https://tools.ietf.org/html/rfc791](https://tools.ietf.org/html/rfc791) -- [https://www.cloudflare.com/learning/dns/what-is-dns/](https://www.cloudflare.com/learning/dns/what-is-dns/) -- [https://www.whois.com/whois-lookup](https://www.whois.com/whois-lookup) +###### 描述 -
-
-SSL +IP 地址任务涉及通过域名系统(DNS)解析将用户提供的 URL 映射为其对应的 IP 地址。IP 地址是互联网上每个设备的唯一标识符,与域名配对后,可以准确地路由在线请求和响应。 - +###### 使用案例 -###### Description -The SSL task involves checking if the site has a valid Secure Sockets Layer (SSL) certificate. SSL is a protocol for establishing authenticated and encrypted links between networked computers. It's commonly used for securing communications over the internet, such as web browsing sessions, email transmissions, and more. In this task, we reach out to the server and initiate a SSL handshake. If successful, we gather details about the SSL certificate presented by the server. +识别域名的 IP 地址在开源情报(OSINT)方面具有巨大价值。这些信息可以帮助构建目标网络架构的详细地图,确定服务器的物理位置,识别托管服务,甚至发现同一 IP 地址上托管的其他域名。在网络安全领域,它还有助于追踪攻击或恶意活动的来源。 -###### Use Cases -SSL certificates not only provide the assurance that data transmission to and from the website is secure, but they also provide valuable OSINT data. Information from an SSL certificate can include the issuing authority, the domain name, its validity period, and sometimes even organization details. This can be useful for verifying the authenticity of a website, understanding its security setup, or even for discovering associated subdomains or other services. +###### 相关链接 -###### Useful Links -- [https://en.wikipedia.org/wiki/Transport_Layer_Security](https://en.wikipedia.org/wiki/Transport_Layer_Security) -- [https://tools.ietf.org/html/rfc8446](https://tools.ietf.org/html/rfc8446) -- [https://letsencrypt.org/docs/](https://letsencrypt.org/docs/) -- [https://www.sslshopper.com/ssl-checker.html](https://www.sslshopper.com/ssl-checker.html) +* [https://en.wikipedia.org/wiki/IP\_address](https://en.wikipedia.org/wiki/IP_address) +* [https://tools.ietf.org/html/rfc791](https://tools.ietf.org/html/rfc791) +* [https://www.cloudflare.com/learning/dns/what-is-dns/](https://www.cloudflare.com/learning/dns/what-is-dns/) +* [https://www.whois.com/whois-lookup](https://www.whois.com/whois-lookup) -
-
-DNS Records +**SSL** ![](https://i.ibb.co/kB7LsV1/wc-ssl.png?) - +###### 描述 -###### Description -The DNS Records task involves querying the Domain Name System (DNS) for records associated with the target domain. DNS is a system that translates human-readable domain names into IP addresses that computers use to communicate. Various types of DNS records exist, including A (address), MX (mail exchange), NS (name server), CNAME (canonical name), and TXT (text), among others. +SSL 任务涉及检查网站是否具有有效的安全套接字层(SSL)证书。SSL 是一种在网络计算机之间建立身份验证和加密连接的协议。它通常用于保护互联网上的通信,如网页浏览会话、电子邮件传输等。在这个任务中,我们会联系服务器并发起 SSL 握手。如果成功,我们将收集服务器提供的 SSL 证书的相关信息。 -###### Use Cases -Extracting DNS records can provide a wealth of information in an OSINT investigation. For example, A and AAAA records can disclose IP addresses associated with a domain, potentially revealing the location of servers. MX records can give clues about a domain's email provider. TXT records are often used for various administrative purposes and can sometimes inadvertently leak internal information. Understanding a domain's DNS setup can also be useful in understanding how its online infrastructure is built and managed. +###### 用例 -###### Useful Links -- [https://en.wikipedia.org/wiki/List_of_DNS_record_types](https://en.wikipedia.org/wiki/List_of_DNS_record_types) -- [https://tools.ietf.org/html/rfc1035](https://tools.ietf.org/html/rfc1035) -- [https://mxtoolbox.com/DNSLookup.aspx](https://mxtoolbox.com/DNSLookup.aspx) -- [https://www.dnswatch.info/](https://www.dnswatch.info/) +SSL 证书不仅提供了数据传输到和从网站的安全保障,还提供了有价值的开源情报(OSINT)数据。从 SSL 证书中可以获取的信息包括颁发机构、域名、有效期限,有时甚至包括组织详情。这些信息可以用于验证网站的真实性、了解其安全设置,甚至发现关联的子域名或其他服务。 -
-
-Cookies +###### 相关链接 - +* [https://en.wikipedia.org/wiki/Transport\_Layer\_Security](https://en.wikipedia.org/wiki/Transport_Layer_Security) +* [https://tools.ietf.org/html/rfc8446](https://tools.ietf.org/html/rfc8446) +* [https://letsencrypt.org/docs/](https://letsencrypt.org/docs/) +* [https://www.sslshopper.com/ssl-checker.html](https://www.sslshopper.com/ssl-checker.html) -###### Description -The Cookies task involves examining the HTTP cookies set by the target website. Cookies are small pieces of data stored on the user's computer by the web browser while browsing a website. They hold a modest amount of data specific to a particular client and website, such as site preferences, the state of the user's session, or tracking information. +**DNS 记录** ![](https://i.ibb.co/7Q1kMwM/wc-dns.png?) -###### Use Cases -Cookies provide a wealth of information in an OSINT investigation. They can disclose information about how the website tracks and interacts with its users. For instance, session cookies can reveal how user sessions are managed, and tracking cookies can hint at what kind of tracking or analytics frameworks are being used. Additionally, examining cookie policies and practices can offer insights into the site's security settings and compliance with privacy regulations. +###### 描述 -###### Useful Links -- [https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies) -- [https://www.cookiepro.com/knowledge/what-is-a-cookie/](https://www.cookiepro.com/knowledge/what-is-a-cookie/) -- [https://owasp.org/www-community/controls/SecureFlag](https://owasp.org/www-community/controls/SecureFlag) -- [https://tools.ietf.org/html/rfc6265](https://tools.ietf.org/html/rfc6265) +DNS 记录任务涉及查询域名系统(DNS)以获取与目标域名相关的记录。DNS 是一个将人类可读的域名转换为计算机用于通信的 IP 地址的系统。存在多种类型的 DNS 记录,包括 A(地址)、MX(邮件交换)、NS(名称服务器)、CNAME(标准名称)和 TXT(文本)等。 -
-
-Crawl Rules +###### 用例 - +提取 DNS 记录可以在开源情报(OSINT)调查中提供大量信息。例如,A 和 AAAA 记录可以揭示与域名相关的 IP 地址,可能揭示服务器的位置。MX 记录可以提供关于域名邮件服务提供商的线索。TXT 记录通常用于各种管理目的,有时可能会无意中泄露内部信息。了解域名的 DNS 设置也有助于理解其在线基础设施的构建和管理方式。 -###### Description -The Crawl Rules task is focused on retrieving and interpreting the 'robots.txt' file from the target website. This text file is part of the Robots Exclusion Protocol (REP), a group of web standards that regulate how robots crawl the web, access and index content, and serve that content up to users. The file indicates which parts of the site the website owner doesn't want to be accessed by web crawler bots. +###### 有用链接 -###### Use Cases -The 'robots.txt' file can provide valuable information for an OSINT investigation. It often discloses the directories and pages that the site owner doesn't want to be indexed, potentially because they contain sensitive information. Moreover, it might reveal the existence of otherwise hidden or unlinked directories. Additionally, understanding crawl rules may offer insights into a website's SEO strategies. +* [https://en.wikipedia.org/wiki/List\_of\_DNS\_record\_types](https://en.wikipedia.org/wiki/List_of_DNS_record_types) +* [https://tools.ietf.org/html/rfc1035](https://tools.ietf.org/html/rfc1035) +* [https://mxtoolbox.com/DNSLookup.aspx](https://mxtoolbox.com/DNSLookup.aspx) +* [https://www.dnswatch.info/](https://www.dnswatch.info/) -###### Useful Links -- [https://developers.google.com/search/docs/advanced/robots/intro](https://developers.google.com/search/docs/advanced/robots/intro) -- [https://www.robotstxt.org/robotstxt.html](https://www.robotstxt.org/robotstxt.html) -- [https://moz.com/learn/seo/robotstxt](https://moz.com/learn/seo/robotstxt) -- [https://en.wikipedia.org/wiki/Robots_exclusion_standard](https://en.wikipedia.org/wiki/Robots_exclusion_standard) +**Cookies** ![](https://i.ibb.co/TTQ6DtP/wc-cookies.png?) -
-
-Headers +###### 描述 - +Cookies 任务涉及检查目标网站设置的 HTTP Cookies。Cookies 是网页浏览器在用户浏览网站时存储在用户计算机上的少量数据。它们包含特定于特定客户端和网站的少量数据,例如站点偏好、用户的会话状态或跟踪信息。 -###### Description -The Headers task involves extracting and interpreting the HTTP headers sent by the target website during the request-response cycle. HTTP headers are key-value pairs sent at the start of an HTTP response, or before the actual data. Headers contain important directives for how to handle the data being transferred, including cache policies, content types, encoding, server information, security policies, and more. +###### 用例 -###### Use Cases -Analyzing HTTP headers can provide significant insights in an OSINT investigation. Headers can reveal specific server configurations, chosen technologies, caching directives, and various security settings. This information can help to determine a website's underlying technology stack, server-side security measures, potential vulnerabilities, and general operational practices. +Cookies 在 OSINT 调查中提供了丰富的信息。它们可以揭示网站如何跟踪和与用户互动。例如,会话 Cookie 可以显示用户会话是如何管理的,而跟踪 Cookie 则可能暗示正在使用的跟踪或分析框架的类型。此外,检查 Cookie 的政策和实践可以提供有关网站安全设置和隐私法规合规性的见解。 -###### Useful Links -- [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) -- [https://tools.ietf.org/html/rfc7231#section-3.2](https://tools.ietf.org/html/rfc7231#section-3.2) -- [https://www.w3schools.com/tags/ref_httpheaders.asp](https://www.w3schools.com/tags/ref_httpheaders.asp) -- [https://owasp.org/www-project-secure-headers/](https://owasp.org/www-project-secure-headers/) +###### 相关链接 -
-
-Quality Report +* [https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies) +* [https://www.cookiepro.com/knowledge/what-is-a-cookie/](https://www.cookiepro.com/knowledge/what-is-a-cookie/) +* [https://owasp.org/www-community/controls/SecureFlag](https://owasp.org/www-community/controls/SecureFlag) +* [https://tools.ietf.org/html/rfc6265](https://tools.ietf.org/html/rfc6265) - +**爬取规则** ![](https://i.ibb.co/KwQCjPf/wc-robots.png?) -###### Description -The Headers task involves extracting and interpreting the HTTP headers sent by the target website during the request-response cycle. HTTP headers are key-value pairs sent at the start of an HTTP response, or before the actual data. Headers contain important directives for how to handle the data being transferred, including cache policies, content types, encoding, server information, security policies, and more. +###### 描述 -###### Use Cases -Analyzing HTTP headers can provide significant insights in an OSINT investigation. Headers can reveal specific server configurations, chosen technologies, caching directives, and various security settings. This information can help to determine a website's underlying technology stack, server-side security measures, potential vulnerabilities, and general operational practices. +爬取规则任务专注于从目标网站获取并解析 'robots.txt' 文件。这个文本文件是机器人排除协议(REP)的一部分,是一组用于规范机器人如何爬取网络、访问和索引内容以及向用户提供这些内容的网络标准。该文件指出了网站所有者不希望被网络爬虫机器人访问的网站部分。 -###### Useful Links -- [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) -- [https://tools.ietf.org/html/rfc7231#section-3.2](https://tools.ietf.org/html/rfc7231#section-3.2) -- [https://www.w3schools.com/tags/ref_httpheaders.asp](https://www.w3schools.com/tags/ref_httpheaders.asp) -- [https://owasp.org/www-project-secure-headers/](https://owasp.org/www-project-secure-headers/) +###### 用例 -
-
-Server Location +'robots.txt' 文件可以为开源情报(OSINT)调查提供有价值的信息。它通常会披露站点所有者不希望被索引的目录和页面,可能是因为这些页面包含敏感信息。此外,它还可能揭示其他隐藏或未链接的目录的存在。另外,了解爬虫规则可能有助于了解网站的搜索引擎优化(SEO)策略。 - +###### 相关链接 -###### Description -The Server Location task determines the physical location of a server hosting a website based on its IP address. The geolocation data typically includes the country, region, and often city where the server is located. The task also provides additional contextual information such as the official language, currency, and flag of the server's location country. +* [https://developers.google.com/search/docs/advanced/robots/intro](https://developers.google.com/search/docs/advanced/robots/intro) +* [https://www.robotstxt.org/robotstxt.html](https://www.robotstxt.org/robotstxt.html) +* [https://moz.com/learn/seo/robotstxt](https://moz.com/learn/seo/robotstxt) +* [https://en.wikipedia.org/wiki/Robots\_exclusion\_standard](https://en.wikipedia.org/wiki/Robots_exclusion_standard) -###### Use Cases -In the realm of OSINT, server location information can be very valuable. It can give an indication of the possible jurisdiction that laws the data on the server falls under, which can be important in legal or investigative contexts. The server location can also hint at the target audience of a website and reveal inconsistencies that could suggest the use of hosting or proxy services to disguise the actual location. +**头部信息** ![](https://i.ibb.co/t3xcwP1/wc-headers.png?) -###### Useful Links -- [https://en.wikipedia.org/wiki/Geolocation_software](https://en.wikipedia.org/wiki/Geolocation_software) -- [https://www.iplocation.net/](https://www.iplocation.net/) -- [https://www.cloudflare.com/learning/cdn/glossary/geolocation/](https://www.cloudflare.com/learning/cdn/glossary/geolocation/) -- [https://developers.google.com/maps/documentation/geolocation/intro](https://developers.google.com/maps/documentation/geolocation/intro) +###### 描述 -
-
-Associated Domains and Hostnames +Headers 任务涉及提取和解释目标网站在请求-响应周期中发送的 HTTP 头部信息。HTTP 头部是在 HTTP 响应开始时或在实际数据之前发送的关键值对。头部信息包含处理正在传输的数据的重要指令,包括缓存策略、内容类型、编码、服务器信息、安全策略等。 - +###### 用例 -###### Description -This task involves identifying and listing all domains and subdomains (hostnames) that are associated with the website's primary domain. This process often involves DNS enumeration to discover any linked domains and hostnames. +在开源情报(OSINT)调查中,分析 HTTP 头部可以提供重要的见解。头部信息可以揭示特定的服务器配置、选择的技术、缓存指令以及各种安全设置。这些信息有助于确定网站的技术栈、服务器端的安全措施、潜在的漏洞以及一般的运营实践。 -###### Use Cases -In OSINT investigations, understanding the full scope of a target's web presence is critical. Associated domains could lead to uncovering related projects, backup sites, development/test sites, or services linked to the main site. These can sometimes provide additional information or potential security vulnerabilities. A comprehensive list of associated domains and hostnames can also give an overview of the organization's structure and online footprint. +###### 相关链接 -###### Useful Links -- [https://en.wikipedia.org/wiki/Domain_Name_System](https://en.wikipedia.org/wiki/Domain_Name_System) -- [https://resources.infosecinstitute.com/topic/dns-enumeration-pentest/](https://resources.infosecinstitute.com/topic/dns-enumeration-pentest/) -- [https://subdomainfinder.c99.nl/](https://subdomainfinder.c99.nl/) -- [https://securitytrails.com/blog/top-dns-enumeration-tools](https://securitytrails.com/blog/top-dns-enumeration-tools) +* [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) +* [https://tools.ietf.org/html/rfc7231#section-3.2](https://tools.ietf.org/html/rfc7231#section-3.2) +* [https://www.w3schools.com/tags/ref\_httpheaders.asp](https://www.w3schools.com/tags/ref_httpheaders.asp) +* [https://owasp.org/www-project-secure-headers/](https://owasp.org/www-project-secure-headers/) -
-
-Redirect Chain +**质量报告** ![](https://i.ibb.co/Kqg8rx7/wc-quality.png?) - +###### 描述 -###### Description -This task traces the sequence of HTTP redirects that occur from the original URL to the final destination URL. An HTTP redirect is a response with a status code that advises the client to go to another URL. Redirects can occur for several reasons, such as URL normalization (directing to the www version of the site), enforcing HTTPS, URL shorteners, or forwarding users to a new site location. +Headers 任务涉及提取并解释目标网站在请求-响应周期中发送的 HTTP 头部信息。HTTP 头部是在 HTTP 响应开始时或在实际数据之前发送的关键值对。头部信息包含处理正在传输的数据的重要指令,包括缓存策略、内容类型、编码、服务器信息、安全策略等。 -###### Use Cases -Understanding the redirect chain can be crucial for several reasons. From a security perspective, long or complicated redirect chains can be a sign of potential security risks, such as unencrypted redirects in the chain. Additionally, redirects can impact website performance and SEO, as each redirect introduces additional round-trip-time (RTT). For OSINT, understanding the redirect chain can help identify relationships between different domains or reveal the use of certain technologies or hosting providers. +###### 应用场景 -###### Useful Links -- [https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections](https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections) -- [https://en.wikipedia.org/wiki/URL_redirection](https://en.wikipedia.org/wiki/URL_redirection) -- [https://www.screamingfrog.co.uk/server-response-codes/](https://www.screamingfrog.co.uk/server-response-codes/) -- [https://ahrefs.com/blog/301-redirects/](https://ahrefs.com/blog/301-redirects/) +在 OSINT 调查中,分析 HTTP 头部可以提供重要的见解。头部信息可以揭示特定的服务器配置、选择的技术、缓存指令以及各种安全设置。这些信息有助于确定网站的基础技术栈、服务器端的安全措施、潜在的漏洞以及一般的运营实践。 -
-
-TXT Records +###### 有用链接 - +* [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) +* [https://tools.ietf.org/html/rfc7231#section-3.2](https://tools.ietf.org/html/rfc7231#section-3.2) +* [https://www.w3schools.com/tags/ref\_httpheaders.asp](https://www.w3schools.com/tags/ref_httpheaders.asp) +* [https://owasp.org/www-project-secure-headers/](https://owasp.org/www-project-secure-headers/) -###### Description -TXT records are a type of Domain Name Service (DNS) record that provides text information to sources outside your domain. They can be used for a variety of purposes, such as verifying domain ownership, ensuring email security, and even preventing unauthorized changes to your website. +**服务器位置** ![](https://i.ibb.co/cXH2hfR/wc-location.png?) -###### Use Cases -In the context of OSINT, TXT records can be a valuable source of information. They may reveal details about the domain's email configuration, the use of specific services like Google Workspace or Microsoft 365, or security measures in place such as SPF and DKIM. Understanding these details can give an insight into the technologies used by the organization, their email security practices, and potential vulnerabilities. +###### 描述 -###### Useful Links -- [https://www.cloudflare.com/learning/dns/dns-records/dns-txt-record/](https://www.cloudflare.com/learning/dns/dns-records/dns-txt-record/) -- [https://en.wikipedia.org/wiki/TXT_record](https://en.wikipedia.org/wiki/TXT_record) -- [https://tools.ietf.org/html/rfc7208](https://tools.ietf.org/html/rfc7208) -- [https://dmarc.org/wiki/FAQ](https://dmarc.org/wiki/FAQ) +服务器位置任务是根据服务器的 IP 地址确定托管网站的物理位置。地理位置数据通常包括服务器所在国家、地区,有时还包括城市。该任务还提供有关服务器位置国家的官方语言、货币和国旗等额外上下文信息。 -
-
-Server Status +###### 应用场景 - +在开源情报(OSINT)领域,服务器位置信息非常有价值。它可以提供服务器上数据可能受法律管辖的线索,这对于法律或调查情境中非常重要。服务器位置还可以暗示网站的目标受众,并揭示不一致之处,这些不一致可能表明使用了托管或代理服务来掩饰实际位置。 +###### 相关链接 -
-
-Open Ports +* [https://en.wikipedia.org/wiki/Geolocation\_software](https://en.wikipedia.org/wiki/Geolocation_software) +* [https://www.iplocation.net/](https://www.iplocation.net/) +* [https://www.cloudflare.com/learning/cdn/glossary/geolocation/](https://www.cloudflare.com/learning/cdn/glossary/geolocation/) +* [https://developers.google.com/maps/documentation/geolocation/intro](https://developers.google.com/maps/documentation/geolocation/intro) - +**关联域名和主机名** ![](https://i.ibb.co/25j1sT7/wc-hosts.png?) -###### Description -Open ports on a server are endpoints of communication which are available for establishing connections with clients. Each port corresponds to a specific service or protocol, such as HTTP (port 80), HTTPS (port 443), FTP (port 21), etc. The open ports on a server can be determined using techniques such as port scanning. +###### 描述 -###### Use Cases -In the context of OSINT, knowing which ports are open on a server can provide valuable information about the services running on that server. This information can be useful for understanding the potential vulnerabilities of the system, or for understanding the nature of the services the server is providing. For example, a server with port 22 open (SSH) might be used for remote administration, while a server with port 443 open is serving HTTPS traffic. +此任务涉及识别并列出与网站主域名相关的所有域名和子域名(主机名)。这个过程通常涉及 DNS 枚举,以发现任何关联的域名和主机名。 -###### Useful Links -- [https://www.netwrix.com/port_scanning.html](https://www.netwrix.com/port_scanning.html) -- [https://nmap.org/book/man-port-scanning-basics.html](https://nmap.org/book/man-port-scanning-basics.html) -- [https://www.cloudflare.com/learning/ddos/glossary/open-port/](https://www.cloudflare.com/learning/ddos/glossary/open-port/) -- [https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers](https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers) +###### 使用案例 -
-
-Traceroute +在开源情报(OSINT)调查中,了解目标在网络上的完整存在范围至关重要。关联域名可能会揭示相关项目、备份站点、开发/测试站点或与主站点相关的服务。这些有时可以提供额外信息或潜在的安全漏洞。一个全面的关联域名和主机名列表也可以概述组织的结构和在线足迹。 - +###### 相关链接 -###### Description -Traceroute is a network diagnostic tool used to track in real-time the pathway taken by a packet of information from one system to another. It records each hop along the route, providing details about the IPs of routers and the delay at each point. +* [https://en.wikipedia.org/wiki/Domain\_Name\_System](https://en.wikipedia.org/wiki/Domain_Name_System) +* [https://resources.infosecinstitute.com/topic/dns-enumeration-pentest/](https://resources.infosecinstitute.com/topic/dns-enumeration-pentest/) +* [https://subdomainfinder.c99.nl/](https://subdomainfinder.c99.nl/) +* [https://securitytrails.com/blog/top-dns-enumeration-tools](https://securitytrails.com/blog/top-dns-enumeration-tools) -###### Use Cases -In OSINT investigations, traceroute can provide insights about the routing paths and geography of the network infrastructure supporting a website or service. This can help to identify network bottlenecks, potential censorship or manipulation of network traffic, and give an overall sense of the network's structure and efficiency. Additionally, the IP addresses collected during the traceroute may provide additional points of inquiry for further OSINT investigation. +**重定向链** ![](https://i.ibb.co/hVVrmwh/wc-redirects.png?) -###### Useful Links -- [https://www.cloudflare.com/learning/network-layer/what-is-traceroute/](https://www.cloudflare.com/learning/network-layer/what-is-traceroute/) -- [https://tools.ietf.org/html/rfc1393](https://tools.ietf.org/html/rfc1393) -- [https://en.wikipedia.org/wiki/Traceroute](https://en.wikipedia.org/wiki/Traceroute) -- [https://www.ripe.net/publications/docs/ripe-611](https://www.ripe.net/publications/docs/ripe-611) +###### 描述 -
-
-Carbon Footprint +此任务追踪从原始 URL 到最终目标 URL 之间发生的 HTTP 重定向序列。HTTP 重定向是一种响应,其状态码建议客户端访问另一个 URL。重定向可能出于多种原因发生,例如 URL 规范化(将用户导向站点的 www 版本)、强制使用 HTTPS、URL 缩短,或转发用户到新的站点位置。 - +###### 应用场景 -###### Description -This task calculates the estimated carbon footprint of a website. It's based on the amount of data being transferred and processed, and the energy usage of the servers that host and deliver the website. The larger the website and the more complex its features, the higher its carbon footprint is likely to be. +了解重定向链对于多个方面都至关重要。从安全角度来看,长且复杂的重定向链可能是潜在安全风险的迹象,例如链中的未加密重定向。此外,重定向会影响网站性能和 SEO,因为每次重定向都会增加额外的往返时间(RTT)。对于开源情报(OSINT),了解重定向链有助于识别不同域名之间的关系,或揭示使用某些技术和托管提供商的情况。 -###### Use Cases -From an OSINT perspective, understanding a website's carbon footprint doesn't directly provide insights into its internal workings or the organization behind it. However, it can still be valuable data in broader analyses, especially in contexts where environmental impact is a consideration. For example, it can be useful for activists, researchers, or ethical hackers who are interested in the sustainability of digital infrastructure, and who want to hold organizations accountable for their environmental impact. +###### 相关链接 -###### Useful Links -- [https://www.websitecarbon.com/](https://www.websitecarbon.com/) -- [https://www.thegreenwebfoundation.org/](https://www.thegreenwebfoundation.org/) -- [https://www.nature.com/articles/s41598-020-76164-y](https://www.nature.com/articles/s41598-020-76164-y) -- [https://www.sciencedirect.com/science/article/pii/S0959652620307817](https://www.sciencedirect.com/science/article/pii/S0959652620307817) +* [https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections](https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections) +* [https://en.wikipedia.org/wiki/URL\_redirection](https://en.wikipedia.org/wiki/URL_redirection) +* [https://www.screamingfrog.co.uk/server-response-codes/](https://www.screamingfrog.co.uk/server-response-codes/) +* [https://ahrefs.com/blog/301-redirects/](https://ahrefs.com/blog/301-redirects/) -
-
-Server Info +**TXT 记录** ![](https://i.ibb.co/wyt21QN/wc-txt-records.png?) - +###### 描述 -###### Description -This task retrieves various pieces of information about the server hosting the target website. This can include the server type (e.g., Apache, Nginx), the hosting provider, the Autonomous System Number (ASN), and more. The information is usually obtained through a combination of IP address lookups and analysis of HTTP response headers. +TXT 记录是域名服务(DNS)记录的一种,提供文本信息给您域名之外的来源。它们可以用于多种目的,例如验证域名所有权、确保电子邮件安全,甚至防止未经授权对网站进行更改。 -###### Use Cases -In an OSINT context, server information can provide valuable clues about the organization behind a website. For instance, the choice of hosting provider could suggest the geographical region in which the organization operates, while the server type could hint at the technologies used by the organization. The ASN could also be used to find other domains hosted by the same organization. +###### 应用场景 -###### Useful Links -- [https://en.wikipedia.org/wiki/List_of_HTTP_header_fields](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields) -- [https://en.wikipedia.org/wiki/Autonomous_system_(Internet)](https://en.wikipedia.org/wiki/Autonomous_system_(Internet)) -- [https://tools.ietf.org/html/rfc7231#section-7.4.2](https://tools.ietf.org/html/rfc7231#section-7.4.2) -- [https://builtwith.com/](https://builtwith.com/) +在开源情报(OSINT)的背景下,TXT 记录可以是一个有价值的信息来源。它们可能揭示有关域名电子邮件配置的细节,使用特定服务(如 Google Workspace 或 Microsoft 365)的情况,或已实施的安全措施(如 SPF 和 DKIM)。了解这些细节可以提供有关组织所使用的技术、电子邮件安全实践以及潜在漏洞的见解。 -
-
-Domain Info +###### 有用链接 - +* [https://www.cloudflare.com/learning/dns/dns-records/dns-txt-record/](https://www.cloudflare.com/learning/dns/dns-records/dns-txt-record/) +* [https://en.wikipedia.org/wiki/TXT\_record](https://en.wikipedia.org/wiki/TXT_record) +* [https://tools.ietf.org/html/rfc7208](https://tools.ietf.org/html/rfc7208) +* [https://dmarc.org/wiki/FAQ](https://dmarc.org/wiki/FAQ) -###### Description -This task retrieves Whois records for the target domain. Whois records are a rich source of information, including the name and contact information of the domain registrant, the domain's creation and expiration dates, the domain's nameservers, and more. The information is usually obtained through a query to a Whois database server. +**服务器状态** ![](https://i.ibb.co/V9CNLBK/wc-status.png?) **开放端口** ![](https://i.ibb.co/F8D1hmf/wc-ports.png?) -###### Use Cases -In an OSINT context, Whois records can provide valuable clues about the entity behind a website. They can show when the domain was first registered and when it's set to expire, which could provide insights into the operational timeline of the entity. The contact information, though often redacted or anonymized, can sometimes lead to additional avenues of investigation. The nameservers could also be used to link together multiple domains owned by the same entity. +###### 描述 -###### Useful Links -- [https://en.wikipedia.org/wiki/WHOIS](https://en.wikipedia.org/wiki/WHOIS) -- [https://www.icann.org/resources/pages/whois-2018-01-17-en](https://www.icann.org/resources/pages/whois-2018-01-17-en) -- [https://whois.domaintools.com/](https://whois.domaintools.com/) +服务器上的开放端口是用于与客户端建立连接的通信端点。每个端口对应于特定的服务或协议,例如 HTTP(端口 80)、HTTPS(端口 443)、FTP(端口 21)等。可以使用端口扫描等技术来确定服务器上的开放端口。 -
-
-DNS Security Extensions +###### 用例 - +在开源情报(OSINT)的背景下,了解服务器上哪些端口是开放的可以提供有关该服务器上运行的服务的重要信息。这些信息可用于理解该系统的潜在漏洞,或了解服务器提供的服务的性质。例如,一个开放了端口 22(SSH)的服务器可能用于远程管理,而开放了端口 443 的服务器则在提供 HTTPS 流量。 -###### Description -Without DNSSEC, it's possible for MITM attackers to spoof records and lead users to phishing sites. This is because the DNS system includes no built-in methods to verify that the response to the request was not forged, or that any other part of the process wasn’t interrupted by an attacker. The DNS Security Extensions (DNSSEC) secures DNS lookups by signing your DNS records using public keys, so browsers can detect if the response has been tampered with. Another solution to this issue is DoH (DNS over HTTPS) and DoT (DNS over TLD). +###### 相关链接 -###### Use Cases -DNSSEC information provides insight into an organization's level of cybersecurity maturity and potential vulnerabilities, particularly around DNS spoofing and cache poisoning. If no DNS secururity (DNSSEC, DoH, DoT, etc) is implemented, this may provide an entry point for an attacker. +* [https://www.netwrix.com/port\_scanning.html](https://www.netwrix.com/port_scanning.html) +* [https://nmap.org/book/man-port-scanning-basics.html](https://nmap.org/book/man-port-scanning-basics.html) +* [https://www.cloudflare.com/learning/ddos/glossary/open-port/](https://www.cloudflare.com/learning/ddos/glossary/open-port/) +* [https://en.wikipedia.org/wiki/List\_of\_TCP\_and\_UDP\_port\_numbers](https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers) -###### Useful Links -- [https://dnssec-analyzer.verisignlabs.com/](https://dnssec-analyzer.verisignlabs.com/) -- [https://www.cloudflare.com/dns/dnssec/how-dnssec-works/](https://www.cloudflare.com/dns/dnssec/how-dnssec-works/) -- [https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions](https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions) -- [https://www.icann.org/resources/pages/dnssec-what-is-it-why-important-2019-03-05-en](https://www.icann.org/resources/pages/dnssec-what-is-it-why-important-2019-03-05-en) -- [https://support.google.com/domains/answer/6147083](https://support.google.com/domains/answer/6147083) -- [https://www.internetsociety.org/resources/deploy360/2013/dnssec-test-sites/](https://www.internetsociety.org/resources/deploy360/2013/dnssec-test-sites/) +**跟踪路由** ![](https://i.ibb.co/M59qgxP/wc-trace-route.png?) -
+###### 描述 -
+traceroute 是一种网络诊断工具,用于实时追踪信息包从一个系统到另一个系统的路径。它记录沿途的每个跳点,提供关于路由器的 IP 地址以及每个点的延迟详情。 -Read more here: **[web-check.as93.net/about](https://web-check.as93.net/about)** +###### 用例 -_Note that not all checks will work for all sites. Sometimes it's not possible to determine some information, and the demo instance has some limitations imposed by Netlify for the lambda functions._ +在开源情报(OSINT)调查中,traceroute 可以提供有关支持网站或服务的网络基础设施的路由路径和地理信息的见解。这有助于识别网络瓶颈、潜在的网络流量审查或操控,并总体了解网络的结构和效率。此外,traceroute 收集的 IP 地址还可以为进一步的 OSINT 调查提供额外的查询点。 ---- +###### 相关链接 -## Usage +* [https://www.cloudflare.com/learning/network-layer/what-is-traceroute/](https://www.cloudflare.com/learning/network-layer/what-is-traceroute/) +* [https://tools.ietf.org/html/rfc1393](https://tools.ietf.org/html/rfc1393) +* [https://en.wikipedia.org/wiki/Traceroute](https://en.wikipedia.org/wiki/Traceroute) +* [https://www.ripe.net/publications/docs/ripe-611](https://www.ripe.net/publications/docs/ripe-611) -### Developing +**碳足迹** ![](https://i.ibb.co/dmbFxjN/wc-carbon.png?) -1. Clone the repo, `git clone git@github.com:Lissy93/web-check.git` -2. Cd into it, `cd web-check` -3. Install dependencies: `yarn` -4. Start the dev server, with `yarn dev` +###### 描述 -You'll need [Node.js](https://nodejs.org/en) (V 18.16.1 or later) installed, as well as [git](https://git-scm.com/). -Some checks also require `chromium`, `traceroute` and `dns` to be installed within your environment. These jobs will just be skipped if those packages arn't present. +此任务计算网站的估计碳足迹。这基于传输和处理的数据量以及托管和交付网站的服务器的能耗。网站规模越大,功能越复杂,其碳足迹很可能越高。 -### Deploying - Option #1: Netlify +###### 应用场景 -Click the button below, to deploy to Netlify 👇 +从开源情报(OSINT)的角度来看,了解网站的碳足迹并不能直接提供对其内部运作或背后组织的见解。然而,在考虑环境影响的更广泛分析中,它仍然可以提供有价值的数据。例如,对于关注数字基础设施可持续性的活动家、研究人员或道德黑客来说,了解并关注组织的环境影响是有用的。 -[![Deploy to Netlify](https://img.shields.io/badge/Deploy-Netlify-%2330c8c9?style=for-the-badge&logo=netlify&labelColor=1e0e41 'Deploy Web-Check to Netlify, via 1-Click Script')](https://app.netlify.com/start/deploy?repository=https://github.com/lissy93/web-check) +###### 有用链接 -### Deploying - Option #2: Docker +* [https://www.websitecarbon.com/](https://www.websitecarbon.com/) +* [https://www.thegreenwebfoundation.org/](https://www.thegreenwebfoundation.org/) +* [https://www.nature.com/articles/s41598-020-76164-y](https://www.nature.com/articles/s41598-020-76164-y) +* [https://www.sciencedirect.com/science/article/pii/S0959652620307817](https://www.sciencedirect.com/science/article/pii/S0959652620307817) -Run `docker run -p 8888:3000 lissy93/web-check`, then open `http://localhost:3000` +**服务器信息** ![](https://i.ibb.co/Mk1jx32/wc-server.png?) -You can get the Docker image from: -- DockerHub: [`lissy93/web-check`](https://hub.docker.com/r/lissy93/web-check) -- GHCR: [`ghcr.io/lissy93/web-check`](https://github.com/Lissy93/web-check/pkgs/container/web-check) -- Or build the image yourself by cloning the repo and running `docker build -t web-check .` +###### 描述 -### Deploying - Option #3: From Source +此任务会检索托管目标网站的服务器的各种信息。这可能包括服务器类型(例如,Apache、Nginx)、托管提供商、自治系统编号(ASN)等。通常通过 IP 地址查询和分析 HTTP 响应头来获取这些信息。 -Follow the instructions in the [Developing](#developing) section above, then run `yarn build` && `yarn start` to build and serve the application. +###### 应用场景 -### Configuring +在开源情报(OSINT)的背景下,服务器信息可以提供有关网站背后的组织的重要线索。例如,托管提供商的选择可能表明该组织运营的地理区域,而服务器类型则可能暗示该组织使用的技术。自治系统(ASN)也可以用来找到由同一组织托管的其他域名。 -By default, no configuration is needed. -But there are some optional environmental variables that you can set to give you access to some additional checks +###### 相关链接 -- `GOOGLE_CLOUD_API_KEY` - A Google API key ([get here](https://cloud.google.com/api-gateway/docs/authenticate-api-keys)). This can be used to return quality metrics for a site -- `TORRENT_IP_API_KEY` - A torrent API key ([get here](https://iknowwhatyoudownload.com/en/api/)). This will show torrents downloaded by an IP -- `REACT_APP_SHODAN_API_KEY` - A Shodan API key ([get here](https://account.shodan.io/)). This will show associated host names for a given domain -- `REACT_APP_WHO_API_KEY` - A WhoAPI key ([get here](https://whoapi.com/)). This will show more comprehensive WhoIs records than the default job -- `SECURITY_TRAILS_API_KEY` - A Security Trails API key ([get here](https://securitytrails.com/corp/api)). This will show org info associated with the IP -- `BUILT_WITH_API_KEY` - A BuiltWith API key ([get here](https://api.builtwith.com/)). This will show the main features of a site +* [https://en.wikipedia.org/wiki/List\_of\_HTTP\_header\_fields](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields) +* [https://en.wikipedia.org/wiki/Autonomous\_system\_(Internet)](https://en.wikipedia.org/wiki/Autonomous_system_\(Internet\)) +* [https://tools.ietf.org/html/rfc7231#section-7.4.2](https://tools.ietf.org/html/rfc7231#section-7.4.2) +* [https://builtwith.com/](https://builtwith.com/) -The above keys can be added into an `.env` file in the projects root, or via the Netlify UI, or by passing directly to the Docker container. +**域名信息** ![](https://i.ibb.co/89WLp14/wc-domain.png?) ---- +###### 描述 -## Community +此任务会为目标域名检索 Whois 记录。Whois 记录是一个丰富的信息来源,包括域名注册人的姓名和联系方式、域名的创建和到期日期、域名的名称服务器等。这些信息通常通过向 Whois 数据库服务器发送查询来获取。 -### Contributing +###### 使用案例 -Contributions of any kind are very welcome, and would be much appreciated. -For Code of Conduct, see [Contributor Convent](https://www.contributor-covenant.org/version/2/1/code_of_conduct/). +在开源情报(OSINT)的情境下,Whois 记录可以提供关于网站背后实体的重要线索。它们可以显示该域名首次注册的时间以及到期时间,这可能有助于了解该实体的运营时间线。尽管联系信息通常被删除或匿名化,但有时仍可引导进一步的调查。域名服务器也可以用来将同一实体拥有的多个域名联系起来。 -To get started, fork the repo, make your changes, add, commit and push the code, then come back here to open a pull request. If you're new to GitHub or open source, [this guide](https://www.freecodecamp.org/news/how-to-make-your-first-pull-request-on-github-3#let-s-make-our-first-pull-request-) or the [git docs](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) may help you get started, but feel free to reach out if you need any support. +###### 相关链接 + +* [https://en.wikipedia.org/wiki/WHOIS](https://en.wikipedia.org/wiki/WHOIS) +* [https://www.icann.org/resources/pages/whois-2018-01-17-en](https://www.icann.org/resources/pages/whois-2018-01-17-en) +* [https://whois.domaintools.com/](https://whois.domaintools.com/) + +**DNS 安全扩展** ![](https://i.ibb.co/J54zVmQ/wc-dnssec.png?) + +###### 描述 + +没有 DNSSEC,中间人(MITM)攻击者有可能伪造记录并引导用户访问钓鱼网站。这是因为 DNS 系统中没有内置的方法来验证响应是否被篡改,或者整个过程是否被攻击者中断。DNS 安全扩展(DNSSEC)通过使用公钥对 DNS 记录进行签名,使浏览器能够检测到响应是否被篡改。另一个解决这个问题的方法是 DoH(HTTPS over DNS)和 DoT(TLS over DNS)。 + +###### 应用场景 + +DNSSEC 信息可以提供组织网络安全成熟度和潜在漏洞的洞察,特别是关于 DNS 伪造和缓存中毒。如果没有实施 DNS 安全(DNSSEC、DoH、DoT 等),这可能会为攻击者提供一个入口点。 + +###### 相关链接 + +* [https://dnssec-analyzer.verisignlabs.com/](https://dnssec-analyzer.verisignlabs.com/) +* [https://www.cloudflare.com/dns/dnssec/how-dnssec-works/](https://www.cloudflare.com/dns/dnssec/how-dnssec-works/) +* [https://en.wikipedia.org/wiki/Domain\_Name\_System\_Security\_Extensions](https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions) +* [https://www.icann.org/resources/pages/dnssec-what-is-it-why-important-2019-03-05-en](https://www.icann.org/resources/pages/dnssec-what-is-it-why-important-2019-03-05-en) +* [https://support.google.com/domains/answer/6147083](https://support.google.com/domains/answer/6147083) +* [https://www.internetsociety.org/resources/deploy360/2013/dnssec-test-sites/](https://www.internetsociety.org/resources/deploy360/2013/dnssec-test-sites/) + +访问此处了解更多:**[web-check.as93.net/about](https://web-check.as93.net/about)** + +*请注意,并非所有检查都适用于所有站点。有时无法确定某些信息,而演示实例受到 Netlify 对 lambda 函数的一些限制。* + +* * * + +## 使用方法 + +### 开发中 + +1. 克隆仓库, `git clone git@github.com:Lissy93/web-check.git` +2. 进入该目录:`cd web-check` +3. 安装依赖:`yarn` +4. 启动开发服务器,使用:`yarn dev` + +你需要安装 [Node.js](https://nodejs.org/en)(版本 18.16.1 或更高版本)以及 [git](https://git-scm.com/)。一些检查还需要在你的环境中安装 `chromium`、`traceroute` 和 `dns`。如果这些包不存在,这些任务将会被跳过。 + +### 部署 - 方案 #1: Netlify + +请点击下方按钮,将项目部署到 Netlify 👇 + +[![Deploy to Netlify](https://img.shields.io/badge/Deploy-Netlify-%2330c8c9?style=for-the-badge&logo=netlify&labelColor=1e0e41 "Deploy Web-Check to Netlify, via 1-Click Script")](https://app.netlify.com/start/deploy?repository=https://github.com/lissy93/web-check) + +### 部署 - 方案 #2: Docker + +运行 `docker run -p 8888:3000 lissy93/web-check` ,然后打开 `http://localhost:3000` + +您可以从以下地址获取 Docker 镜像: + +* DockerHub: [`lissy93/web-check`](https://hub.docker.com/r/lissy93/web-check) +* GHCR: [`ghcr.io/lissy93/web-check`](https://github.com/Lissy93/web-check/pkgs/container/web-check) +* 或者通过克隆仓库并运行 `docker build -t web-check .` 来自行构建镜像 + +### 部署 - 方案 #3: 从源代码部署 + +请遵循上方“开发”部分中的说明,然后运行 \`yarn build\` && \`yarn start\` 来构建并启动应用程序。 + +### 配置 + +默认情况下无需进行任何配置。但您可以设置一些可选的环境变量,以访问一些额外的检查功能 + +* `GOOGLE_CLOUD_API_KEY` - 一个 Google API 密钥( [获取方式请参见此处](https://cloud.google.com/api-gateway/docs/authenticate-api-keys) )。可以用于返回站点的质量指标 +* `TORRENT_IP_API_KEY` - 一个 torrent API 密钥( [获取方式请参见此处](https://iknowwhatyoudownload.com/en/api/) )。可以显示由某个 IP 下载的种子文件 +* `REACT_APP_SHODAN_API_KEY` - 一个 Shodan API 密钥( [获取方式请参见此处](https://account.shodan.io/) )。可以显示给定域名相关的主机名 +* `REACT_APP_WHO_API_KEY` - 一个 WhoAPI 密钥( [获取方式请参见此处](https://whoapi.com/) )。可以显示比默认任务更全面的 WhoIs 记录 +* `SECURITY_TRAILS_API_KEY` - 一个 Security Trails API 密钥( [在这里获取](https://securitytrails.com/corp/api) )。这将显示与 IP 相关联的组织信息 +* `BUILT_WITH_API_KEY` - 一个 BuiltWith API 密钥( [在这里获取](https://api.builtwith.com/) )。这将显示站点的主要功能 + +上述密钥可以添加到项目根目录下的 `.env` 文件中,或者通过 Netlify UI,或者直接传递给 Docker 容器。 + +* * * + +## 社区 + +### 贡献 + +任何形式的贡献都十分欢迎,并将不胜感激。有关行为准则,请参见 [贡献者守则](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) 。 + +要开始,请克隆仓库,进行更改,添加、提交并推送代码,然后返回这里提交合并请求。如果你是 GitHub 或开源的新手,可以参考 [这份指南](https://www.freecodecamp.org/news/how-to-make-your-first-pull-request-on-github-3#let-s-make-our-first-pull-request-) 或 [git 文档](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) 来入门,但如果你需要任何支持,请随时联系我们。 [![Submit a PR](https://img.shields.io/badge/Submit_a_PR-GitHub-%23060606?style=for-the-badge&logo=github&logoColor=fff)](https://github.com/Lissy93/web-check/compare) +### 报告错误 -### Reporting Bugs - -If you've found something that doesn't work as it should, or would like to suggest a new feature, then go ahead and raise a ticket on GitHub. -For bugs, please outline the steps needed to reproduce, and include relevant info like system info and resulting logs. +如果发现有些功能无法正常工作,或者想要建议新功能,可以在 GitHub 上提交问题单。对于 bug,请描述重现该问题所需的步骤,并附上相关信息,如系统信息和日志结果。 [![Raise an Issue](https://img.shields.io/badge/Raise_an_Issue-GitHub-%23060606?style=for-the-badge&logo=github&logoColor=fff)](https://github.com/Lissy93/web-check/issues/new/choose) -### Supporting +### 支持 [![Sponsor Lissy93 on GitHub](https://img.shields.io/badge/Sponsor_on_GitHub-Lissy93-%23ff4dda?style=for-the-badge&logo=githubsponsors&logoColor=ff4dda)](https://github.com/sponsors/Lissy93) +* * * ---- +## 许可证 +> ***[Lissy93/Web-Check](https://github.com/Lissy93/web-check)** 采用 [MIT](https://github.com/Lissy93/web-check/blob/HEAD/LICENSE) 许可证 © [Alicia Sykes](https://aliciasykes.com) 2023。* +> 如需更多信息,请参见 TLDR Legal > MIT -## License - - -> _**[Lissy93/Web-Check](https://github.com/Lissy93/web-check)** is licensed under [MIT](https://github.com/Lissy93/web-check/blob/HEAD/LICENSE) © [Alicia Sykes](https://aliciasykes.com) 2023._
-> For information, see TLDR Legal > MIT - -
-Expand License +展开许可证 ``` The MIT License (MIT) @@ -467,27 +429,7 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` -
- - -

- © Alicia Sykes 2023
- Licensed under MIT
-
- Thanks for visiting :) -

- - - - +*© [Alicia Sykes](https://aliciasykes.com) 2023* +*授权协议:MIT* +[![](https://i.ibb.co/4KtpYxb/octocat-clean-mini.png)](https://github.com/lissy93) +感谢访问 :)) \ No newline at end of file diff --git a/apps/web-check/README_en.md b/apps/web-check/README_en.md new file mode 100644 index 000000000..279685d67 --- /dev/null +++ b/apps/web-check/README_en.md @@ -0,0 +1,493 @@ +

Web-Check

+ + +

+
+Comprehensive, on-demand open source intelligence for any website +
+🌐 web-check.xyz
+ +

+ +--- + +## About +Get an insight into the inner-workings of a given website: uncover potential attack vectors, analyse server architecture, view security configurations, and learn what technologies a site is using. + +Currently the dashboard will show: IP info, SSL chain, DNS records, cookies, headers, domain info, search crawl rules, page map, server location, redirect ledger, open ports, traceroute, DNS security extensions, site performance, trackers, associated hostnames, carbon footprint. Stay tuned, as I'll add more soon! + +The aim is to help you easily understand, optimize and secure your website. + +### Screenshot +[![Screenshot](https://raw.githubusercontent.com/Lissy93/web-check/master/.github/screenshots/web-check-screenshot7.png)](https://web-check.as93.net/) + +### Live Demo +A hosted version can be accessed at: **[web-check.as93.net](https://web-check.as93.net)** + +### Mirror +The source for this repo is mirrored to CodeBerg, available at: **[codeberg.org/alicia/web-check](https://codeberg.org/alicia/web-check)** + +### Motivation +Often when you're looking into a website, there's several things you always initially check. +Think: Whois, SSL chain, DNS records, tech stack, security protocols, crawl rules, sitemap, redirects, basic performance, open ports, server info, etc. +None of this is hard to find with a series of basic curl commands, or a combination of online tools. But it's just so much easier to have everything presented clearly and visible in one place :) + +### Features + +
+

Expand to see all features

+ +**Note** _this list needs updating, many more jobs have been added since..._ + +
+IP Address + + + +###### Description +The IP Address task involves mapping the user provided URL to its corresponding IP address through a process known as Domain Name System (DNS) resolution. An IP address is a unique identifier given to every device on the Internet, and when paired with a domain name, it allows for accurate routing of online requests and responses. + +###### Use Cases +Identifying the IP address of a domain can be incredibly valuable for OSINT purposes. This information can aid in creating a detailed map of a target's network infrastructure, pinpointing the physical location of a server, identifying the hosting service, and even discovering other domains that are hosted on the same IP address. In cybersecurity, it's also useful for tracking the sources of attacks or malicious activities. + +###### Useful Links +- [https://en.wikipedia.org/wiki/IP_address](https://en.wikipedia.org/wiki/IP_address) +- [https://tools.ietf.org/html/rfc791](https://tools.ietf.org/html/rfc791) +- [https://www.cloudflare.com/learning/dns/what-is-dns/](https://www.cloudflare.com/learning/dns/what-is-dns/) +- [https://www.whois.com/whois-lookup](https://www.whois.com/whois-lookup) + +
+
+SSL + + + +###### Description +The SSL task involves checking if the site has a valid Secure Sockets Layer (SSL) certificate. SSL is a protocol for establishing authenticated and encrypted links between networked computers. It's commonly used for securing communications over the internet, such as web browsing sessions, email transmissions, and more. In this task, we reach out to the server and initiate a SSL handshake. If successful, we gather details about the SSL certificate presented by the server. + +###### Use Cases +SSL certificates not only provide the assurance that data transmission to and from the website is secure, but they also provide valuable OSINT data. Information from an SSL certificate can include the issuing authority, the domain name, its validity period, and sometimes even organization details. This can be useful for verifying the authenticity of a website, understanding its security setup, or even for discovering associated subdomains or other services. + +###### Useful Links +- [https://en.wikipedia.org/wiki/Transport_Layer_Security](https://en.wikipedia.org/wiki/Transport_Layer_Security) +- [https://tools.ietf.org/html/rfc8446](https://tools.ietf.org/html/rfc8446) +- [https://letsencrypt.org/docs/](https://letsencrypt.org/docs/) +- [https://www.sslshopper.com/ssl-checker.html](https://www.sslshopper.com/ssl-checker.html) + +
+
+DNS Records + + + +###### Description +The DNS Records task involves querying the Domain Name System (DNS) for records associated with the target domain. DNS is a system that translates human-readable domain names into IP addresses that computers use to communicate. Various types of DNS records exist, including A (address), MX (mail exchange), NS (name server), CNAME (canonical name), and TXT (text), among others. + +###### Use Cases +Extracting DNS records can provide a wealth of information in an OSINT investigation. For example, A and AAAA records can disclose IP addresses associated with a domain, potentially revealing the location of servers. MX records can give clues about a domain's email provider. TXT records are often used for various administrative purposes and can sometimes inadvertently leak internal information. Understanding a domain's DNS setup can also be useful in understanding how its online infrastructure is built and managed. + +###### Useful Links +- [https://en.wikipedia.org/wiki/List_of_DNS_record_types](https://en.wikipedia.org/wiki/List_of_DNS_record_types) +- [https://tools.ietf.org/html/rfc1035](https://tools.ietf.org/html/rfc1035) +- [https://mxtoolbox.com/DNSLookup.aspx](https://mxtoolbox.com/DNSLookup.aspx) +- [https://www.dnswatch.info/](https://www.dnswatch.info/) + +
+
+Cookies + + + +###### Description +The Cookies task involves examining the HTTP cookies set by the target website. Cookies are small pieces of data stored on the user's computer by the web browser while browsing a website. They hold a modest amount of data specific to a particular client and website, such as site preferences, the state of the user's session, or tracking information. + +###### Use Cases +Cookies provide a wealth of information in an OSINT investigation. They can disclose information about how the website tracks and interacts with its users. For instance, session cookies can reveal how user sessions are managed, and tracking cookies can hint at what kind of tracking or analytics frameworks are being used. Additionally, examining cookie policies and practices can offer insights into the site's security settings and compliance with privacy regulations. + +###### Useful Links +- [https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies) +- [https://www.cookiepro.com/knowledge/what-is-a-cookie/](https://www.cookiepro.com/knowledge/what-is-a-cookie/) +- [https://owasp.org/www-community/controls/SecureFlag](https://owasp.org/www-community/controls/SecureFlag) +- [https://tools.ietf.org/html/rfc6265](https://tools.ietf.org/html/rfc6265) + +
+
+Crawl Rules + + + +###### Description +The Crawl Rules task is focused on retrieving and interpreting the 'robots.txt' file from the target website. This text file is part of the Robots Exclusion Protocol (REP), a group of web standards that regulate how robots crawl the web, access and index content, and serve that content up to users. The file indicates which parts of the site the website owner doesn't want to be accessed by web crawler bots. + +###### Use Cases +The 'robots.txt' file can provide valuable information for an OSINT investigation. It often discloses the directories and pages that the site owner doesn't want to be indexed, potentially because they contain sensitive information. Moreover, it might reveal the existence of otherwise hidden or unlinked directories. Additionally, understanding crawl rules may offer insights into a website's SEO strategies. + +###### Useful Links +- [https://developers.google.com/search/docs/advanced/robots/intro](https://developers.google.com/search/docs/advanced/robots/intro) +- [https://www.robotstxt.org/robotstxt.html](https://www.robotstxt.org/robotstxt.html) +- [https://moz.com/learn/seo/robotstxt](https://moz.com/learn/seo/robotstxt) +- [https://en.wikipedia.org/wiki/Robots_exclusion_standard](https://en.wikipedia.org/wiki/Robots_exclusion_standard) + +
+
+Headers + + + +###### Description +The Headers task involves extracting and interpreting the HTTP headers sent by the target website during the request-response cycle. HTTP headers are key-value pairs sent at the start of an HTTP response, or before the actual data. Headers contain important directives for how to handle the data being transferred, including cache policies, content types, encoding, server information, security policies, and more. + +###### Use Cases +Analyzing HTTP headers can provide significant insights in an OSINT investigation. Headers can reveal specific server configurations, chosen technologies, caching directives, and various security settings. This information can help to determine a website's underlying technology stack, server-side security measures, potential vulnerabilities, and general operational practices. + +###### Useful Links +- [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) +- [https://tools.ietf.org/html/rfc7231#section-3.2](https://tools.ietf.org/html/rfc7231#section-3.2) +- [https://www.w3schools.com/tags/ref_httpheaders.asp](https://www.w3schools.com/tags/ref_httpheaders.asp) +- [https://owasp.org/www-project-secure-headers/](https://owasp.org/www-project-secure-headers/) + +
+
+Quality Report + + + +###### Description +The Headers task involves extracting and interpreting the HTTP headers sent by the target website during the request-response cycle. HTTP headers are key-value pairs sent at the start of an HTTP response, or before the actual data. Headers contain important directives for how to handle the data being transferred, including cache policies, content types, encoding, server information, security policies, and more. + +###### Use Cases +Analyzing HTTP headers can provide significant insights in an OSINT investigation. Headers can reveal specific server configurations, chosen technologies, caching directives, and various security settings. This information can help to determine a website's underlying technology stack, server-side security measures, potential vulnerabilities, and general operational practices. + +###### Useful Links +- [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) +- [https://tools.ietf.org/html/rfc7231#section-3.2](https://tools.ietf.org/html/rfc7231#section-3.2) +- [https://www.w3schools.com/tags/ref_httpheaders.asp](https://www.w3schools.com/tags/ref_httpheaders.asp) +- [https://owasp.org/www-project-secure-headers/](https://owasp.org/www-project-secure-headers/) + +
+
+Server Location + + + +###### Description +The Server Location task determines the physical location of a server hosting a website based on its IP address. The geolocation data typically includes the country, region, and often city where the server is located. The task also provides additional contextual information such as the official language, currency, and flag of the server's location country. + +###### Use Cases +In the realm of OSINT, server location information can be very valuable. It can give an indication of the possible jurisdiction that laws the data on the server falls under, which can be important in legal or investigative contexts. The server location can also hint at the target audience of a website and reveal inconsistencies that could suggest the use of hosting or proxy services to disguise the actual location. + +###### Useful Links +- [https://en.wikipedia.org/wiki/Geolocation_software](https://en.wikipedia.org/wiki/Geolocation_software) +- [https://www.iplocation.net/](https://www.iplocation.net/) +- [https://www.cloudflare.com/learning/cdn/glossary/geolocation/](https://www.cloudflare.com/learning/cdn/glossary/geolocation/) +- [https://developers.google.com/maps/documentation/geolocation/intro](https://developers.google.com/maps/documentation/geolocation/intro) + +
+
+Associated Domains and Hostnames + + + +###### Description +This task involves identifying and listing all domains and subdomains (hostnames) that are associated with the website's primary domain. This process often involves DNS enumeration to discover any linked domains and hostnames. + +###### Use Cases +In OSINT investigations, understanding the full scope of a target's web presence is critical. Associated domains could lead to uncovering related projects, backup sites, development/test sites, or services linked to the main site. These can sometimes provide additional information or potential security vulnerabilities. A comprehensive list of associated domains and hostnames can also give an overview of the organization's structure and online footprint. + +###### Useful Links +- [https://en.wikipedia.org/wiki/Domain_Name_System](https://en.wikipedia.org/wiki/Domain_Name_System) +- [https://resources.infosecinstitute.com/topic/dns-enumeration-pentest/](https://resources.infosecinstitute.com/topic/dns-enumeration-pentest/) +- [https://subdomainfinder.c99.nl/](https://subdomainfinder.c99.nl/) +- [https://securitytrails.com/blog/top-dns-enumeration-tools](https://securitytrails.com/blog/top-dns-enumeration-tools) + +
+
+Redirect Chain + + + +###### Description +This task traces the sequence of HTTP redirects that occur from the original URL to the final destination URL. An HTTP redirect is a response with a status code that advises the client to go to another URL. Redirects can occur for several reasons, such as URL normalization (directing to the www version of the site), enforcing HTTPS, URL shorteners, or forwarding users to a new site location. + +###### Use Cases +Understanding the redirect chain can be crucial for several reasons. From a security perspective, long or complicated redirect chains can be a sign of potential security risks, such as unencrypted redirects in the chain. Additionally, redirects can impact website performance and SEO, as each redirect introduces additional round-trip-time (RTT). For OSINT, understanding the redirect chain can help identify relationships between different domains or reveal the use of certain technologies or hosting providers. + +###### Useful Links +- [https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections](https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections) +- [https://en.wikipedia.org/wiki/URL_redirection](https://en.wikipedia.org/wiki/URL_redirection) +- [https://www.screamingfrog.co.uk/server-response-codes/](https://www.screamingfrog.co.uk/server-response-codes/) +- [https://ahrefs.com/blog/301-redirects/](https://ahrefs.com/blog/301-redirects/) + +
+
+TXT Records + + + +###### Description +TXT records are a type of Domain Name Service (DNS) record that provides text information to sources outside your domain. They can be used for a variety of purposes, such as verifying domain ownership, ensuring email security, and even preventing unauthorized changes to your website. + +###### Use Cases +In the context of OSINT, TXT records can be a valuable source of information. They may reveal details about the domain's email configuration, the use of specific services like Google Workspace or Microsoft 365, or security measures in place such as SPF and DKIM. Understanding these details can give an insight into the technologies used by the organization, their email security practices, and potential vulnerabilities. + +###### Useful Links +- [https://www.cloudflare.com/learning/dns/dns-records/dns-txt-record/](https://www.cloudflare.com/learning/dns/dns-records/dns-txt-record/) +- [https://en.wikipedia.org/wiki/TXT_record](https://en.wikipedia.org/wiki/TXT_record) +- [https://tools.ietf.org/html/rfc7208](https://tools.ietf.org/html/rfc7208) +- [https://dmarc.org/wiki/FAQ](https://dmarc.org/wiki/FAQ) + +
+
+Server Status + + + + +
+
+Open Ports + + + +###### Description +Open ports on a server are endpoints of communication which are available for establishing connections with clients. Each port corresponds to a specific service or protocol, such as HTTP (port 80), HTTPS (port 443), FTP (port 21), etc. The open ports on a server can be determined using techniques such as port scanning. + +###### Use Cases +In the context of OSINT, knowing which ports are open on a server can provide valuable information about the services running on that server. This information can be useful for understanding the potential vulnerabilities of the system, or for understanding the nature of the services the server is providing. For example, a server with port 22 open (SSH) might be used for remote administration, while a server with port 443 open is serving HTTPS traffic. + +###### Useful Links +- [https://www.netwrix.com/port_scanning.html](https://www.netwrix.com/port_scanning.html) +- [https://nmap.org/book/man-port-scanning-basics.html](https://nmap.org/book/man-port-scanning-basics.html) +- [https://www.cloudflare.com/learning/ddos/glossary/open-port/](https://www.cloudflare.com/learning/ddos/glossary/open-port/) +- [https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers](https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers) + +
+
+Traceroute + + + +###### Description +Traceroute is a network diagnostic tool used to track in real-time the pathway taken by a packet of information from one system to another. It records each hop along the route, providing details about the IPs of routers and the delay at each point. + +###### Use Cases +In OSINT investigations, traceroute can provide insights about the routing paths and geography of the network infrastructure supporting a website or service. This can help to identify network bottlenecks, potential censorship or manipulation of network traffic, and give an overall sense of the network's structure and efficiency. Additionally, the IP addresses collected during the traceroute may provide additional points of inquiry for further OSINT investigation. + +###### Useful Links +- [https://www.cloudflare.com/learning/network-layer/what-is-traceroute/](https://www.cloudflare.com/learning/network-layer/what-is-traceroute/) +- [https://tools.ietf.org/html/rfc1393](https://tools.ietf.org/html/rfc1393) +- [https://en.wikipedia.org/wiki/Traceroute](https://en.wikipedia.org/wiki/Traceroute) +- [https://www.ripe.net/publications/docs/ripe-611](https://www.ripe.net/publications/docs/ripe-611) + +
+
+Carbon Footprint + + + +###### Description +This task calculates the estimated carbon footprint of a website. It's based on the amount of data being transferred and processed, and the energy usage of the servers that host and deliver the website. The larger the website and the more complex its features, the higher its carbon footprint is likely to be. + +###### Use Cases +From an OSINT perspective, understanding a website's carbon footprint doesn't directly provide insights into its internal workings or the organization behind it. However, it can still be valuable data in broader analyses, especially in contexts where environmental impact is a consideration. For example, it can be useful for activists, researchers, or ethical hackers who are interested in the sustainability of digital infrastructure, and who want to hold organizations accountable for their environmental impact. + +###### Useful Links +- [https://www.websitecarbon.com/](https://www.websitecarbon.com/) +- [https://www.thegreenwebfoundation.org/](https://www.thegreenwebfoundation.org/) +- [https://www.nature.com/articles/s41598-020-76164-y](https://www.nature.com/articles/s41598-020-76164-y) +- [https://www.sciencedirect.com/science/article/pii/S0959652620307817](https://www.sciencedirect.com/science/article/pii/S0959652620307817) + +
+
+Server Info + + + +###### Description +This task retrieves various pieces of information about the server hosting the target website. This can include the server type (e.g., Apache, Nginx), the hosting provider, the Autonomous System Number (ASN), and more. The information is usually obtained through a combination of IP address lookups and analysis of HTTP response headers. + +###### Use Cases +In an OSINT context, server information can provide valuable clues about the organization behind a website. For instance, the choice of hosting provider could suggest the geographical region in which the organization operates, while the server type could hint at the technologies used by the organization. The ASN could also be used to find other domains hosted by the same organization. + +###### Useful Links +- [https://en.wikipedia.org/wiki/List_of_HTTP_header_fields](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields) +- [https://en.wikipedia.org/wiki/Autonomous_system_(Internet)](https://en.wikipedia.org/wiki/Autonomous_system_(Internet)) +- [https://tools.ietf.org/html/rfc7231#section-7.4.2](https://tools.ietf.org/html/rfc7231#section-7.4.2) +- [https://builtwith.com/](https://builtwith.com/) + +
+
+Domain Info + + + +###### Description +This task retrieves Whois records for the target domain. Whois records are a rich source of information, including the name and contact information of the domain registrant, the domain's creation and expiration dates, the domain's nameservers, and more. The information is usually obtained through a query to a Whois database server. + +###### Use Cases +In an OSINT context, Whois records can provide valuable clues about the entity behind a website. They can show when the domain was first registered and when it's set to expire, which could provide insights into the operational timeline of the entity. The contact information, though often redacted or anonymized, can sometimes lead to additional avenues of investigation. The nameservers could also be used to link together multiple domains owned by the same entity. + +###### Useful Links +- [https://en.wikipedia.org/wiki/WHOIS](https://en.wikipedia.org/wiki/WHOIS) +- [https://www.icann.org/resources/pages/whois-2018-01-17-en](https://www.icann.org/resources/pages/whois-2018-01-17-en) +- [https://whois.domaintools.com/](https://whois.domaintools.com/) + +
+
+DNS Security Extensions + + + +###### Description +Without DNSSEC, it's possible for MITM attackers to spoof records and lead users to phishing sites. This is because the DNS system includes no built-in methods to verify that the response to the request was not forged, or that any other part of the process wasn’t interrupted by an attacker. The DNS Security Extensions (DNSSEC) secures DNS lookups by signing your DNS records using public keys, so browsers can detect if the response has been tampered with. Another solution to this issue is DoH (DNS over HTTPS) and DoT (DNS over TLD). + +###### Use Cases +DNSSEC information provides insight into an organization's level of cybersecurity maturity and potential vulnerabilities, particularly around DNS spoofing and cache poisoning. If no DNS secururity (DNSSEC, DoH, DoT, etc) is implemented, this may provide an entry point for an attacker. + +###### Useful Links +- [https://dnssec-analyzer.verisignlabs.com/](https://dnssec-analyzer.verisignlabs.com/) +- [https://www.cloudflare.com/dns/dnssec/how-dnssec-works/](https://www.cloudflare.com/dns/dnssec/how-dnssec-works/) +- [https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions](https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions) +- [https://www.icann.org/resources/pages/dnssec-what-is-it-why-important-2019-03-05-en](https://www.icann.org/resources/pages/dnssec-what-is-it-why-important-2019-03-05-en) +- [https://support.google.com/domains/answer/6147083](https://support.google.com/domains/answer/6147083) +- [https://www.internetsociety.org/resources/deploy360/2013/dnssec-test-sites/](https://www.internetsociety.org/resources/deploy360/2013/dnssec-test-sites/) + +
+ +
+ +Read more here: **[web-check.as93.net/about](https://web-check.as93.net/about)** + +_Note that not all checks will work for all sites. Sometimes it's not possible to determine some information, and the demo instance has some limitations imposed by Netlify for the lambda functions._ + +--- + +## Usage + +### Developing + +1. Clone the repo, `git clone git@github.com:Lissy93/web-check.git` +2. Cd into it, `cd web-check` +3. Install dependencies: `yarn` +4. Start the dev server, with `yarn dev` + +You'll need [Node.js](https://nodejs.org/en) (V 18.16.1 or later) installed, as well as [git](https://git-scm.com/). +Some checks also require `chromium`, `traceroute` and `dns` to be installed within your environment. These jobs will just be skipped if those packages arn't present. + +### Deploying - Option #1: Netlify + +Click the button below, to deploy to Netlify 👇 + +[![Deploy to Netlify](https://img.shields.io/badge/Deploy-Netlify-%2330c8c9?style=for-the-badge&logo=netlify&labelColor=1e0e41 'Deploy Web-Check to Netlify, via 1-Click Script')](https://app.netlify.com/start/deploy?repository=https://github.com/lissy93/web-check) + +### Deploying - Option #2: Docker + +Run `docker run -p 8888:3000 lissy93/web-check`, then open `http://localhost:3000` + +You can get the Docker image from: +- DockerHub: [`lissy93/web-check`](https://hub.docker.com/r/lissy93/web-check) +- GHCR: [`ghcr.io/lissy93/web-check`](https://github.com/Lissy93/web-check/pkgs/container/web-check) +- Or build the image yourself by cloning the repo and running `docker build -t web-check .` + +### Deploying - Option #3: From Source + +Follow the instructions in the [Developing](#developing) section above, then run `yarn build` && `yarn start` to build and serve the application. + +### Configuring + +By default, no configuration is needed. +But there are some optional environmental variables that you can set to give you access to some additional checks + +- `GOOGLE_CLOUD_API_KEY` - A Google API key ([get here](https://cloud.google.com/api-gateway/docs/authenticate-api-keys)). This can be used to return quality metrics for a site +- `TORRENT_IP_API_KEY` - A torrent API key ([get here](https://iknowwhatyoudownload.com/en/api/)). This will show torrents downloaded by an IP +- `REACT_APP_SHODAN_API_KEY` - A Shodan API key ([get here](https://account.shodan.io/)). This will show associated host names for a given domain +- `REACT_APP_WHO_API_KEY` - A WhoAPI key ([get here](https://whoapi.com/)). This will show more comprehensive WhoIs records than the default job +- `SECURITY_TRAILS_API_KEY` - A Security Trails API key ([get here](https://securitytrails.com/corp/api)). This will show org info associated with the IP +- `BUILT_WITH_API_KEY` - A BuiltWith API key ([get here](https://api.builtwith.com/)). This will show the main features of a site + +The above keys can be added into an `.env` file in the projects root, or via the Netlify UI, or by passing directly to the Docker container. + +--- + +## Community + +### Contributing + +Contributions of any kind are very welcome, and would be much appreciated. +For Code of Conduct, see [Contributor Convent](https://www.contributor-covenant.org/version/2/1/code_of_conduct/). + +To get started, fork the repo, make your changes, add, commit and push the code, then come back here to open a pull request. If you're new to GitHub or open source, [this guide](https://www.freecodecamp.org/news/how-to-make-your-first-pull-request-on-github-3#let-s-make-our-first-pull-request-) or the [git docs](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) may help you get started, but feel free to reach out if you need any support. + +[![Submit a PR](https://img.shields.io/badge/Submit_a_PR-GitHub-%23060606?style=for-the-badge&logo=github&logoColor=fff)](https://github.com/Lissy93/web-check/compare) + + +### Reporting Bugs + +If you've found something that doesn't work as it should, or would like to suggest a new feature, then go ahead and raise a ticket on GitHub. +For bugs, please outline the steps needed to reproduce, and include relevant info like system info and resulting logs. + +[![Raise an Issue](https://img.shields.io/badge/Raise_an_Issue-GitHub-%23060606?style=for-the-badge&logo=github&logoColor=fff)](https://github.com/Lissy93/web-check/issues/new/choose) + +### Supporting + +[![Sponsor Lissy93 on GitHub](https://img.shields.io/badge/Sponsor_on_GitHub-Lissy93-%23ff4dda?style=for-the-badge&logo=githubsponsors&logoColor=ff4dda)](https://github.com/sponsors/Lissy93) + + +--- + + +## License + + +> _**[Lissy93/Web-Check](https://github.com/Lissy93/web-check)** is licensed under [MIT](https://github.com/Lissy93/web-check/blob/HEAD/LICENSE) © [Alicia Sykes](https://aliciasykes.com) 2023._
+> For information, see TLDR Legal > MIT + +
+Expand License + +``` +The MIT License (MIT) +Copyright (c) Alicia Sykes + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sub-license, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included install +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANT ABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +``` + +
+ + +

+ © Alicia Sykes 2023
+ Licensed under MIT
+
+ Thanks for visiting :) +

+ + + + diff --git a/apps/weektodo/README.md b/apps/weektodo/README.md index f36c1281f..643095281 100644 --- a/apps/weektodo/README.md +++ b/apps/weektodo/README.md @@ -1,74 +1,80 @@ -# WeekToDo | FOSS Minimalist Weekly Planner ---- -![GitHub all releases](https://img.shields.io/github/downloads/zuntek/weektodoweb/total) -[![vue3](https://img.shields.io/badge/vue-3.x-brightgreen.svg)](https://vuejs.org/) +# WeekToDo | FOSS 极简主义周计划应用 -WeekToDo is a free minimalist weekly planner app focused on privacy. Schedule your tasks and projects with to do lists and a calendar. Available for Windows, Mac, Linux or online. +* * * + +![GitHub all releases](https://img.shields.io/github/downloads/zuntek/weektodoweb/total) [![vue3](https://img.shields.io/badge/vue-3.x-brightgreen.svg)](https://vuejs.org/) + +WeekToDo 是一款注重隐私的免费极简主义周计划应用。您可以使用待办事项列表和日历来安排任务和项目。适用于 Windows、Mac、Linux 或在线使用。 ![Logo](https://weektodo.me/weektodo-preview.webp) -## Features +## 功能 -- Cross platform -- Light/dark mode toggle -- Custom To-do Lists -- Drag and Drop -- Multi-language -- Sub-tasks -- Markdown Support -- Customizable user interface -- Local Storage -- Task Colors -- Task Time -- Recurring Tasks -- Notifications and reminders +* 跨平台 +* 明/暗模式切换 +* 自定义待办事项列表 +* 拖放 +* 多语言 +* 子任务 +* Markdown 支持 +* 可定制的用户界面 +* 本地存储 +* 任务颜色 +* 任务时间 +* 重复任务 +* 通知与提醒 -## Roadmap +## 路线图 -- Touch mode -- Mobile Version -- Sync across devices -- Workspaces -- Themes +* 触摸模式 + +* 移动版本 + +* 设备间同步 + +* 工作区 + +* 主题 + - -## Installation +## 安装 -### Download installer +### 下载安装程序 -[Windows / Linux / macOS](https://github.com/zuntek/weektodoweb/releases/latest -) +[Windows / Linux / macOS](https://github.com/zuntek/weektodoweb/releases/latest) -### External Stores +### 外部存储 -#### Windows +#### Windows [Uptodown](https://weektodo.uptodown.com/windows) -#### macOS +#### macOS [Macupdate](https://www.macupdate.com/app/mac/63506/weektodo) -#### Linux +#### Linux -Snapd can be installed from the command line: +Snapd 可以从命令行安装: ```bash sudo apt update sudo apt install snapd ``` -To install WeekToDo, simply use the following command: + +要安装 WeekToDo,只需使用以下命令: + ```bash sudo snap install weektodo -``` +``` -## Build and Run From Source +## 从源代码构建和运行 -If you want to understand how WeekToDo works or want to debug an issue, you'll want to get the source, build it, and run it locally. +如果你想了解 WeekToDo 的工作原理或调试某个问题,你需要获取源代码、构建并本地运行它。 -### Installing Prerequisites +### 安装前置条件 -You'll need git, a recent version of [Node.JS](https://nodejs.org/en/) (currently v16.X is recommended), [Yarn](https://yarnpkg.com/) and [Electron](https://www.electronjs.org/). +你需要安装 git,以及最新版本的 Node.JS(目前推荐使用 v16.X),Yarn 和 Electron。 ``` git clone https://github.com/manuelernestog/weektodo @@ -77,52 +83,49 @@ yarn install yarn run serve // to run web version yarn run electron:serve // to run native version ``` -## Contributing -You can support this project in several ways: +## 贡献 -### Donate +你可以通过多种方式支持这个项目: -https://weektodo.me/support-us +### 捐赠 -### Share +[https://weektodo.me/support-us](https://weektodo.me/support-us) -- [Facebook](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fweektodo.me%2F) -- [Twitter](https://twitter.com/intent/tweet?url=https%3A%2F%2Fweektodo.me%2F&text=) -- [Linkedin](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fweektodo.me%2F&title=) +### 分享 -### Rate the app +* [Facebook](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fweektodo.me%2F) +* [Twitter](https://twitter.com/intent/tweet?url=https%3A%2F%2Fweektodo.me%2F&text=) +* [Linkedin](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fweektodo.me%2F&title=) -- [ProductHunt](https://www.producthunt.com/posts/weektodo) -- [AlternativeTo](https://alternativeto.net/software/weektodo/about/) -- [SassHub](https://www.saashub.com/weektodo-reviews/new) +### 评价应用 -### Translations +* [ProductHunt](https://www.producthunt.com/posts/weektodo) +* [AlternativeTo](https://alternativeto.net/software/weektodo/about/) +* [SassHub](https://www.saashub.com/weektodo-reviews/new) -Currently the system is developed in multiple languages, you can send me a correction of any error or you can add your language if it's not available. +### 翻译 -You can find the base file with all the used words in english [here](src/assets/languages/en.json/) +目前系统支持多种语言,您可以纠正任何错误,或者如果您使用的语言尚未包含,可以添加您的语言。 -For add a new language Fork the repo and create a Pull Request creating a new file of the `translations/en.json` and name he file acording the [language code](https://gist.github.com/Josantonius/b455e315bc7f790d14b136d61d9ae469). +您可以在[这里](src/assets/languages/en.json/)找到包含所有使用词汇的英文基础文件。 -If this is to dificult, you can donwload this [file](src/assets/languages/en.json/), translate it and send the file to the email contact@weektodo.me - -## Contributing +要添加新语言,请克隆仓库并创建一个新的翻译文件,该文件应基于 `translations/en.json`,并根据[语言代码](https://gist.github.com/Josantonius/b455e315bc7f790d14b136d61d9ae469)命名文件。 -Weektodo is open-source. Pull requests and contributions are welcome! There are three ways to contribute: grab a [bug report](https://github.com/manuelernestog/issues?q=is%3Aopen+is%3Aissue+label%3Abug) or [feature suggestion](https://github.com/manuelernestog/issues?q=is%3Aissue+is%3Aopen+label%3Afeature) that has been marked `accepted` and dig in. +如果这太困难,您可以下载[此文件](src/assets/languages/en.json/) ,进行翻译后,将文件发送到邮箱 [contact@weektodo.me](mailto:contact@weektodo.me)。 -Read [Contributing.md](https://github.com/manuelernestog/weektodo/blob/main/CONTRIBUTING.md) for more information. +## 贡献 + +Weektodo 是开源项目。欢迎提交拉取请求和贡献!有三种贡献方式:选择一个已被标记为 `accepted` 的 [bug 报告](https://github.com/manuelernestog/issues?q=is%3Aopen+is%3Aissue+label%3Abug) 或 [功能建议](https://github.com/manuelernestog/issues?q=is%3Aissue+is%3Aopen+label%3Afeature) 并开始参与。 + +请阅读 [Contributing.md](https://github.com/manuelernestog/weektodo/blob/main/CONTRIBUTING.md) 以获取更多信息。 ## Author -- [Manuel Ernesto Garcia](https://manuelernestogr.bio.link/) +* [Manuel Ernesto Garcia](https://manuelernestogr.bio.link/) -## Contributors +## 贡献者 - - - +[![](https://contrib.rocks/image?repo=manuelernestog/weektodo)](https://github.com/manuelernestog/weektodo/graphs/contributors) -Made with [contrib.rocks](https://contrib.rocks). - - \ No newline at end of file +使用了 [contrib.rocks](https://contrib.rocks) 制作。 \ No newline at end of file diff --git a/apps/weektodo/README_en.md b/apps/weektodo/README_en.md new file mode 100644 index 000000000..f36c1281f --- /dev/null +++ b/apps/weektodo/README_en.md @@ -0,0 +1,128 @@ +# WeekToDo | FOSS Minimalist Weekly Planner +--- +![GitHub all releases](https://img.shields.io/github/downloads/zuntek/weektodoweb/total) +[![vue3](https://img.shields.io/badge/vue-3.x-brightgreen.svg)](https://vuejs.org/) + +WeekToDo is a free minimalist weekly planner app focused on privacy. Schedule your tasks and projects with to do lists and a calendar. Available for Windows, Mac, Linux or online. + +![Logo](https://weektodo.me/weektodo-preview.webp) + +## Features + +- Cross platform +- Light/dark mode toggle +- Custom To-do Lists +- Drag and Drop +- Multi-language +- Sub-tasks +- Markdown Support +- Customizable user interface +- Local Storage +- Task Colors +- Task Time +- Recurring Tasks +- Notifications and reminders + +## Roadmap + +- Touch mode +- Mobile Version +- Sync across devices +- Workspaces +- Themes + + +## Installation + +### Download installer + +[Windows / Linux / macOS](https://github.com/zuntek/weektodoweb/releases/latest +) + +### External Stores + +#### Windows + +[Uptodown](https://weektodo.uptodown.com/windows) + +#### macOS + +[Macupdate](https://www.macupdate.com/app/mac/63506/weektodo) + +#### Linux + +Snapd can be installed from the command line: + +```bash +sudo apt update +sudo apt install snapd +``` +To install WeekToDo, simply use the following command: +```bash +sudo snap install weektodo +``` + +## Build and Run From Source + +If you want to understand how WeekToDo works or want to debug an issue, you'll want to get the source, build it, and run it locally. + +### Installing Prerequisites + +You'll need git, a recent version of [Node.JS](https://nodejs.org/en/) (currently v16.X is recommended), [Yarn](https://yarnpkg.com/) and [Electron](https://www.electronjs.org/). + +``` +git clone https://github.com/manuelernestog/weektodo +cd weektodo +yarn install +yarn run serve // to run web version +yarn run electron:serve // to run native version +``` +## Contributing + +You can support this project in several ways: + +### Donate + +https://weektodo.me/support-us + +### Share + +- [Facebook](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fweektodo.me%2F) +- [Twitter](https://twitter.com/intent/tweet?url=https%3A%2F%2Fweektodo.me%2F&text=) +- [Linkedin](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fweektodo.me%2F&title=) + +### Rate the app + +- [ProductHunt](https://www.producthunt.com/posts/weektodo) +- [AlternativeTo](https://alternativeto.net/software/weektodo/about/) +- [SassHub](https://www.saashub.com/weektodo-reviews/new) + +### Translations + +Currently the system is developed in multiple languages, you can send me a correction of any error or you can add your language if it's not available. + +You can find the base file with all the used words in english [here](src/assets/languages/en.json/) + +For add a new language Fork the repo and create a Pull Request creating a new file of the `translations/en.json` and name he file acording the [language code](https://gist.github.com/Josantonius/b455e315bc7f790d14b136d61d9ae469). + +If this is to dificult, you can donwload this [file](src/assets/languages/en.json/), translate it and send the file to the email contact@weektodo.me + +## Contributing + +Weektodo is open-source. Pull requests and contributions are welcome! There are three ways to contribute: grab a [bug report](https://github.com/manuelernestog/issues?q=is%3Aopen+is%3Aissue+label%3Abug) or [feature suggestion](https://github.com/manuelernestog/issues?q=is%3Aissue+is%3Aopen+label%3Afeature) that has been marked `accepted` and dig in. + +Read [Contributing.md](https://github.com/manuelernestog/weektodo/blob/main/CONTRIBUTING.md) for more information. + +## Author + +- [Manuel Ernesto Garcia](https://manuelernestogr.bio.link/) + +## Contributors + + + + + +Made with [contrib.rocks](https://contrib.rocks). + + \ No newline at end of file diff --git a/apps/wgcf-socks5-proxy/README.md b/apps/wgcf-socks5-proxy/README.md index cab0306c2..6f1249b51 100644 --- a/apps/wgcf-socks5-proxy/README.md +++ b/apps/wgcf-socks5-proxy/README.md @@ -1,15 +1,15 @@ # wgcf-docker -CloudFlare warp in docker +CloudFlare warp 的 docker 版 -fork from: https://github.com/Neilpang/wgcf-docker +派生自: [https://github.com/Neilpang/wgcf-docker](https://github.com/Neilpang/wgcf-docker) -#### What improvements did I make: +#### 我做了哪些改进: -1. Limit the alpine version to 3.17 to avoid errors caused by version issues. -2. Added socks5 proxy service +1. 限制使用 3.17 版本的 Alpine,以避免因版本问题导致的错误。 +2. 添加了 socks5 代理服务 -Run example: +运行示例: ```shell docker run --rm -it \ @@ -22,59 +22,59 @@ docker run --rm -it \ activeliang/wgcf-socks5-proxy -6 ``` -Now you can use the socks proxy on the host machine: +现在您可以在宿主机上使用 socks 代理: ```shell curl --socks5 127.0.0.1:7889 -6 ip.p3terx.com ``` -## Configurable SOCKS5 Proxy with Environment Variables +## 可配置的 SOCKS5 代理通过环境变量 -This SOCKS5 proxy supports configuration through environment variables. You can customize the proxy settings using the following variables: USER, PASSWORD, PORT, and HOST. Authentication (auth) will only be enabled if both the USER and PASSWORD variables are provided. +此 SOCKS5 代理支持通过环境变量进行配置。您可以使用以下变量自定义代理设置:USER、PASSWORD、PORT 和 HOST。只有当提供了 USER 和 PASSWORD 变量时,认证(auth)才会被启用。 -### Usage +### 使用方法 -To configure the SOCKS5 proxy, follow these steps: +要配置 SOCKS5 代理,请按照以下步骤操作: -1. Set the following environment variables: +1. 设置以下环境变量: + + * USER:认证的用户名(可选)。 + * PASSWORD:认证的密码(可选)。 + * 端口:代理服务器的端口号(默认:1080) + * 代理服务器的主机地址(默认:0.0.0.0)。 + + 注意:只有当 USER 和 PASSWORD 变量都提供时,才会启用身份验证。如果缺少任何一个,身份验证将不会启用。 + +2. 使用您首选的方法启动 SOCKS5 代理,并将环境变量作为参数传递。 + + 示例: + + ```bash + PASSWORD=mypassword PORT=1080 HOST=0.0.0.0 start_proxy.sh + docker run --rm -it \ + --name wgcf \ + --sysctl net.ipv6.conf.all.disable_ipv6=0 \ + --privileged --cap-add net_admin \ + -v /lib/modules:/lib/modules \ + -v $(pwd)/wgcf:/wgcf \ + -p 7889:1080 \ + -e USER=myuser \ + -e PASSWORD=mypassword \ + -e PORT=1080 \ + -e HOST=0.0.0.0 \ + activeliang/wgcf-socks5-proxy -6 + ``` + + 此命令将使用指定的配置启动 SOCKS5 代理。 + +3. SOCKS5 代理将在指定的主机和端口上可用。仅当提供了 USER 和 PASSWORD 变量时才会强制执行身份验证。 + - - USER: The username for authentication (optional). - - PASSWORD: The password for authentication (optional). - - PORT: The port number for the proxy server (default: 1080). - - HOST: The host address for the proxy server (default: 0.0.0.0). +就这样!你现在可以使用环境变量配置 SOCKS5 代理,并可以通过提供 USER 和 PASSWORD 变量来启用身份验证。 - Note: Authentication will be enabled only if both the USER and PASSWORD variables are provided. If either one is missing, authentication will not be enabled. +## 以下是原始项目的 README -2. Start the SOCKS5 proxy using your preferred method, passing the environment variables as arguments. - - Example: - - ```bash - PASSWORD=mypassword PORT=1080 HOST=0.0.0.0 start_proxy.sh - docker run --rm -it \ - --name wgcf \ - --sysctl net.ipv6.conf.all.disable_ipv6=0 \ - --privileged --cap-add net_admin \ - -v /lib/modules:/lib/modules \ - -v $(pwd)/wgcf:/wgcf \ - -p 7889:1080 \ - -e USER=myuser \ - -e PASSWORD=mypassword \ - -e PORT=1080 \ - -e HOST=0.0.0.0 \ - activeliang/wgcf-socks5-proxy -6 - ``` - - This command will start the SOCKS5 proxy with the specified configuration. - -3. The SOCKS5 proxy will be accessible on the specified host and port. Authentication will be enforced only if both the USER and PASSWORD variables are provided. - -That's it! You can now configure the SOCKS5 proxy using environment variables, with the option to enable authentication by providing both the USER and PASSWORD variables. - - -## The following is the readme of the original project - -1. Run a single container: +1. 运行单个容器: ``` @@ -121,7 +121,7 @@ docker run --rm -it \ ``` -or: +或者: ``` docker run --rm -it \ @@ -168,7 +168,7 @@ docker run --rm -it \ ``` -2. If aonther container needs to use the wgcf network, run it like: +2. 如果另一个容器需要使用 wgcf 网络,可以这样运行: ``` @@ -176,7 +176,7 @@ docker run --rm -it --network container:wgcf curlimages/curl curl ipinfo.io ``` -3. Docker-compose example: +3. Docker-compose 示例: ``` Enable both ipv4 and ipv6 by default: @@ -264,7 +264,7 @@ services: ``` -or: +或者: ``` @@ -361,4 +361,4 @@ services: -``` +``` \ No newline at end of file diff --git a/apps/wgcf-socks5-proxy/README_en.md b/apps/wgcf-socks5-proxy/README_en.md new file mode 100644 index 000000000..cab0306c2 --- /dev/null +++ b/apps/wgcf-socks5-proxy/README_en.md @@ -0,0 +1,364 @@ +# wgcf-docker + +CloudFlare warp in docker + +fork from: https://github.com/Neilpang/wgcf-docker + +#### What improvements did I make: + +1. Limit the alpine version to 3.17 to avoid errors caused by version issues. +2. Added socks5 proxy service + +Run example: + +```shell +docker run --rm -it \ + --name wgcf \ + --sysctl net.ipv6.conf.all.disable_ipv6=0 \ + --privileged --cap-add net_admin \ + -v /lib/modules:/lib/modules \ + -v $(pwd)/wgcf:/wgcf \ + -p 7889:1080 \ + activeliang/wgcf-socks5-proxy -6 +``` + +Now you can use the socks proxy on the host machine: + +```shell +curl --socks5 127.0.0.1:7889 -6 ip.p3terx.com +``` + +## Configurable SOCKS5 Proxy with Environment Variables + +This SOCKS5 proxy supports configuration through environment variables. You can customize the proxy settings using the following variables: USER, PASSWORD, PORT, and HOST. Authentication (auth) will only be enabled if both the USER and PASSWORD variables are provided. + +### Usage + +To configure the SOCKS5 proxy, follow these steps: + +1. Set the following environment variables: + + - USER: The username for authentication (optional). + - PASSWORD: The password for authentication (optional). + - PORT: The port number for the proxy server (default: 1080). + - HOST: The host address for the proxy server (default: 0.0.0.0). + + Note: Authentication will be enabled only if both the USER and PASSWORD variables are provided. If either one is missing, authentication will not be enabled. + +2. Start the SOCKS5 proxy using your preferred method, passing the environment variables as arguments. + + Example: + + ```bash + PASSWORD=mypassword PORT=1080 HOST=0.0.0.0 start_proxy.sh + docker run --rm -it \ + --name wgcf \ + --sysctl net.ipv6.conf.all.disable_ipv6=0 \ + --privileged --cap-add net_admin \ + -v /lib/modules:/lib/modules \ + -v $(pwd)/wgcf:/wgcf \ + -p 7889:1080 \ + -e USER=myuser \ + -e PASSWORD=mypassword \ + -e PORT=1080 \ + -e HOST=0.0.0.0 \ + activeliang/wgcf-socks5-proxy -6 + ``` + + This command will start the SOCKS5 proxy with the specified configuration. + +3. The SOCKS5 proxy will be accessible on the specified host and port. Authentication will be enforced only if both the USER and PASSWORD variables are provided. + +That's it! You can now configure the SOCKS5 proxy using environment variables, with the option to enable authentication by providing both the USER and PASSWORD variables. + + +## The following is the readme of the original project + +1. Run a single container: + +``` + +docker run --rm -it \ + --name wgcf \ + --sysctl net.ipv6.conf.all.disable_ipv6=0 \ + --privileged --cap-add net_admin \ + -v /lib/modules:/lib/modules \ + -v $(pwd)/wgcf:/wgcf \ + neilpang/wgcf-docker + + + +The above command will enable both ipv4 and ipv6, you can enable ipv4 or ipv6 only like following: + + +#enable ipv4 only: + + + +docker run --rm -it \ + --name wgcf \ + --sysctl net.ipv6.conf.all.disable_ipv6=0 \ + --privileged --cap-add net_admin \ + -v /lib/modules:/lib/modules \ + -v $(pwd)/wgcf:/wgcf \ + neilpang/wgcf-docker -4 + + + +#enable ipv6 only: + + + +docker run --rm -it \ + --name wgcf \ + --sysctl net.ipv6.conf.all.disable_ipv6=0 \ + --privileged --cap-add net_admin \ + -v /lib/modules:/lib/modules \ + -v $(pwd)/wgcf:/wgcf \ + neilpang/wgcf-docker -6 + + + +``` + +or: + +``` +docker run --rm -it \ + --name wgcf \ + --sysctl net.ipv6.conf.all.disable_ipv6=0 \ + --privileged --cap-add net_admin \ + -v /lib/modules:/lib/modules \ + -v $(pwd)/wgcf:/wgcf \ + neilpang/wgcf-docker:alpine + + + + + +The above command will enable both ipv4 and ipv6, you can enable ipv4 or ipv6 only like following: + + +#enable ipv4 only: + + +docker run --rm -it \ + --name wgcf \ + --sysctl net.ipv6.conf.all.disable_ipv6=0 \ + --privileged --cap-add net_admin \ + -v /lib/modules:/lib/modules \ + -v $(pwd)/wgcf:/wgcf \ + neilpang/wgcf-docker:alpine -4 + + + +#enable ipv6 only: + + +docker run --rm -it \ + --name wgcf \ + --sysctl net.ipv6.conf.all.disable_ipv6=0 \ + --privileged --cap-add net_admin \ + -v /lib/modules:/lib/modules \ + -v $(pwd)/wgcf:/wgcf \ + neilpang/wgcf-docker:alpine -6 + + + + +``` + +2. If aonther container needs to use the wgcf network, run it like: + +``` + +docker run --rm -it --network container:wgcf curlimages/curl curl ipinfo.io + +``` + +3. Docker-compose example: + +``` +Enable both ipv4 and ipv6 by default: + + +version: "2.4" +services: + wgcf: + image: neilpang/wgcf-docker:latest + volumes: + - ./wgcf:/wgcf + - /lib/modules:/lib/modules + privileged: true + sysctls: + net.ipv6.conf.all.disable_ipv6: 0 + cap_add: + - NET_ADMIN + + + test: + image: curlimages/curl + network_mode: "service:wgcf" + depends_on: + - wgcf + command: curl ipinfo.io + + + + +Enable ipv6 only: + +version: "2.4" +services: + wgcf: + image: neilpang/wgcf-docker:latest + volumes: + - ./wgcf:/wgcf + - /lib/modules:/lib/modules + privileged: true + sysctls: + net.ipv6.conf.all.disable_ipv6: 0 + cap_add: + - NET_ADMIN + command: "-6" + + + test: + image: curlimages/curl + network_mode: "service:wgcf" + depends_on: + - wgcf + command: curl ipv6.ip.sb + + + + + +Enable ipv4 only: + + + +version: "2.4" +services: + wgcf: + image: neilpang/wgcf-docker:latest + volumes: + - ./wgcf:/wgcf + - /lib/modules:/lib/modules + privileged: true + sysctls: + net.ipv6.conf.all.disable_ipv6: 0 + cap_add: + - NET_ADMIN + command: "-4" + + + test: + image: curlimages/curl + network_mode: "service:wgcf" + depends_on: + - wgcf + command: curl ipinfo.io + + + +``` + +or: + +``` + +Enable both ipv4 and ipv6 by default: + + + +version: "2.4" +services: + wgcf: + image: neilpang/wgcf-docker:alpine + volumes: + - ./wgcf:/wgcf + - /lib/modules:/lib/modules + privileged: true + sysctls: + net.ipv6.conf.all.disable_ipv6: 0 + cap_add: + - NET_ADMIN + + + test: + image: curlimages/curl + network_mode: "service:wgcf" + depends_on: + - wgcf + command: curl ipinfo.io + + + + + + + + +Enable ipv6 only: + + + +version: "2.4" +services: + wgcf: + image: neilpang/wgcf-docker:alpine + volumes: + - ./wgcf:/wgcf + - /lib/modules:/lib/modules + privileged: true + sysctls: + net.ipv6.conf.all.disable_ipv6: 0 + cap_add: + - NET_ADMIN + command: "-6" + + + test: + image: curlimages/curl + network_mode: "service:wgcf" + depends_on: + - wgcf + command: curl ipv6.ip.sb + + + + + + +Enable ipv4 only: + + + +version: "2.4" +services: + wgcf: + image: neilpang/wgcf-docker:alpine + volumes: + - ./wgcf:/wgcf + - /lib/modules:/lib/modules + privileged: true + sysctls: + net.ipv6.conf.all.disable_ipv6: 0 + cap_add: + - NET_ADMIN + command: "-4" + + + test: + image: curlimages/curl + network_mode: "service:wgcf" + depends_on: + - wgcf + command: curl ipinfo.io + + + + + +``` diff --git a/apps/wireguard-ui/README.md b/apps/wireguard-ui/README.md index dce34a275..c147ae624 100644 --- a/apps/wireguard-ui/README.md +++ b/apps/wireguard-ui/README.md @@ -10,19 +10,20 @@ ``` # 原始相关 -*** + +* * * ![](https://github.com/ngoduykhanh/wireguard-ui/workflows/wireguard-ui%20build%20release/badge.svg) # wireguard-ui -A web user interface to manage your WireGuard setup. +一个用于管理你的 WireGuard 配置的网络用户界面。 -## Features +## 功能 -- Friendly UI -- Authentication -- Manage extra client information (name, email, etc) -- Retrieve client config using QR code / file / email +* 友好界面 +* 认证 +* 管理额外的客户端信息(名称、邮箱等) +* 使用二维码/文件/邮箱检索客户端配置 -![wireguard-ui 0.3.7](https://user-images.githubusercontent.com/37958026/177041280-e3e7ca16-d4cf-4e95-9920-68af15e780dd.png) +![wireguard-ui 0.3.7](https://user-images.githubusercontent.com/37958026/177041280-e3e7ca16-d4cf-4e95-9920-68af15e780dd.png) \ No newline at end of file diff --git a/apps/wireguard-ui/README_en.md b/apps/wireguard-ui/README_en.md new file mode 100644 index 000000000..dce34a275 --- /dev/null +++ b/apps/wireguard-ui/README_en.md @@ -0,0 +1,28 @@ +# 使用说明 + +新版本的镜像假如遇到网页登录存在问题,或许可以尝试重启应用再登录。 + +假如无效,则可以在 1Panel 高级设置里编辑应用`compose`文件调整以下参数,具体可以查看原项目说明。 + +``` + - WGUI_MANAGE_START=false + - WGUI_MANAGE_RESTART=true +``` + +# 原始相关 +*** + +![](https://github.com/ngoduykhanh/wireguard-ui/workflows/wireguard-ui%20build%20release/badge.svg) + +# wireguard-ui + +A web user interface to manage your WireGuard setup. + +## Features + +- Friendly UI +- Authentication +- Manage extra client information (name, email, etc) +- Retrieve client config using QR code / file / email + +![wireguard-ui 0.3.7](https://user-images.githubusercontent.com/37958026/177041280-e3e7ca16-d4cf-4e95-9920-68af15e780dd.png) diff --git a/apps/woodpecker/README.md b/apps/woodpecker/README.md index 2f845c7a6..26de61b7b 100644 --- a/apps/woodpecker/README.md +++ b/apps/woodpecker/README.md @@ -1,123 +1,79 @@ -

- - Woodpecker - -

-
-

- - - - - - - - Translation status - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-
+[![Woodpecker](https://github.com/woodpecker-ci/woodpecker/raw/main/docs/static/img/logo.svg)](https://github.com/woodpecker-ci/woodpecker/) -# Woodpecker + [![](https://ci.woodpecker-ci.org/api/badges/woodpecker-ci/woodpecker/status.svg)](https://ci.woodpecker-ci.org/woodpecker-ci/woodpecker "Build Status")[![](https://codecov.io/gh/woodpecker-ci/woodpecker/branch/main/graph/badge.svg) ](https://codecov.io/gh/woodpecker-ci/woodpecker)[![Translation status](https://translate.woodpecker-ci.org/widgets/woodpecker-ci/-/ui/svg-badge.svg) ](https://translate.woodpecker-ci.org/engage/woodpecker-ci/)[![](https://img.shields.io/discord/838698813463724034.svg?label=discord) ](https://discord.gg/fcMQqSMXJy "Join the Discord chat at https://discord.gg/fcMQqSMXJy")[![](https://img.shields.io/matrix/woodpecker:matrix.org?label=matrix) ](https://matrix.to/#/#woodpecker:matrix.org "Join the Matrix space at https://matrix.to/#/#woodpecker:matrix.org")[![](https://goreportcard.com/badge/github.com/woodpecker-ci/woodpecker) ](https://goreportcard.com/badge/github.com/woodpecker-ci/woodpecker "Go Report Card")[![](https://godoc.org/github.com/woodpecker-ci/woodpecker?status.svg) ](https://godoc.org/github.com/woodpecker-ci/woodpecker "GoDoc")[![](https://img.shields.io/github/v/release/woodpecker-ci/woodpecker?sort=semver) ](https://github.com/woodpecker-ci/woodpecker/releases/latest "GitHub release")[![](https://img.shields.io/docker/pulls/woodpeckerci/woodpecker-server) ](https://hub.docker.com/r/woodpeckerci/woodpecker-server "Docker pulls")[![](https://img.shields.io/badge/License-Apache%202.0-blue.svg) ](https://opensource.org/licenses/Apache-2.0 "License: Apache-2.0")[![](https://bestpractices.coreinfrastructure.org/projects/5309/badge) ](https://bestpractices.coreinfrastructure.org/projects/5309)[![](https://badgen.net/https/api.tickgit.com/badgen/github.com/woodpecker-ci/woodpecker)](https://www.tickgit.com/browse?repo=github.com/woodpecker-ci/woodpecker "TODOs") -> Woodpecker is a community fork of the Drone CI system. +# 啄木鸟 + +> 啄木鸟是 Drone CI 系统的一个社区分支。 ![woodpecker](https://github.com/woodpecker-ci/woodpecker/raw/main/docs/docs/woodpecker.png) -## 🫶 Support +## 🫶 支持 -Please consider to donate and become a backer. 🙏 [[Become a backer](https://opencollective.com/woodpecker-ci#category-CONTRIBUTE)] +请考虑捐赠并成为赞助者。🙏 [ [成为赞助者](https://opencollective.com/woodpecker-ci#category-CONTRIBUTE) ] - +[![](https://opencollective.com/woodpecker-ci/backers.svg?width=890)](https://opencollective.com/woodpecker-ci) -## 🚀 Usage +## 🚀 使用方法 ### .woodpecker.yml -- Place your pipeline in a file named `.woodpecker.yml` in your repository -- Pipeline steps can be named as you like -- Run any command in the commands section +* 将您的流水线放在仓库中名为 `.woodpecker.yml` 的文件中 +* 流水线步骤可以自定义命名 +* 在命令部分运行任意命令 -[Read More](https://woodpecker-ci.org/docs/usage/intro) +[了解更多](https://woodpecker-ci.org/docs/usage/intro) -### Build steps are containers +### 构建步骤是容器 -- Define any Docker image as context -- Install the needed tools in custom Docker images, use them as context +* 定义任意 Docker 镜像作为上下文 +* 安装所需工具到自定义 Docker 镜像中,并将它们用作上下文 -[Read More](https://woodpecker-ci.org/docs/usage/pipeline-syntax#steps) +[了解更多](https://woodpecker-ci.org/docs/usage/pipeline-syntax#steps) -### Plugins +### 插件 -Woodpecker has [official plugins](https://woodpecker-ci.org/plugins), but you can also use your own. +Woodpecker 有[官方插件](https://woodpecker-ci.org/plugins) ,但你也可以使用自己的。 -[Read More](https://woodpecker-ci.org/docs/usage/plugins/plugins) +[了解更多](https://woodpecker-ci.org/docs/usage/plugins/plugins) -## 📖 Documentation +## 文档 -https://woodpecker-ci.org/ +[https://woodpecker-ci.org/](https://woodpecker-ci.org/) -## ✨ Contribute +## ✨ 贡献 -See [Contributing Guide](https://github.com/woodpecker-ci/woodpecker/blob/main/CONTRIBUTING.md) +查看 [贡献指南](https://github.com/woodpecker-ci/woodpecker/blob/main/CONTRIBUTING.md) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://woodpecker-ci.org/docs/next/development/getting-started#gitpod) -## 📣 Translate +## 📣 翻译 -We use an own [Weblate](https://weblate.org/en/) instance at [translate.woodpecker-ci.org](https://translate.woodpecker-ci.org). +我们使用一个自有的 [Weblate](https://weblate.org/en/) 实例,地址为 [translate.woodpecker-ci.org](https://translate.woodpecker-ci.org)。 - - Translation status - +[![Translation status](https://translate.woodpecker-ci.org/widgets/woodpecker-ci/-/ui/multi-blue.svg)](https://translate.woodpecker-ci.org/engage/woodpecker-ci/) -## 👋 Who uses Woodpecker? +## 👋 谁在使用 Woodpecker? -[Codeberg](https://codeberg.org), the Woodpecker project itself, and many others. +[Codeberg](https://codeberg.org),Woodpecker 项目本身,以及许多其他项目。 -Leave a [comment](https://github.com/woodpecker-ci/woodpecker/issues/122) if you're using it as well. +如果你也在使用,请留下一个 [评论](https://github.com/woodpecker-ci/woodpecker/issues/122) 。 -Also consider using the topic `WoodpeckerCI` in your repository, so others can learn from your config and use the hashtag `#WoodpeckerCI` when talking about the project on social media! +也考虑在你的仓库中使用主题 `WoodpeckerCI`,这样其他人可以从你的配置中学习,并在社交媒体上讨论项目时使用标签 `#WoodpeckerCI`! -Here are some places where people mention Woodpecker: +这里有一些地方提到了 Woodpecker: -- [GitHub](https://github.com/topics/WoodpeckerCI) -- [Codeberg](https://codeberg.org/explore/repos?q=woodpeckerci&topic=1) -- [Twitter](https://twitter.com/search?q=%23WoodpeckerCI&src=typed_query) -- [Fediverse](https://mastodon.social/tags/WoodpeckerCI) +* [GitHub](https://github.com/topics/WoodpeckerCI) +* [Codeberg](https://codeberg.org/explore/repos?q=woodpeckerci&topic=1) +* [Twitter](https://twitter.com/search?q=%23WoodpeckerCI&src=typed_query) +* [联邦宇宙](https://mastodon.social/tags/WoodpeckerCI) -## ✨ Stars over time +## ✨ 标星趋势 [![Stargazers over time](https://starchart.cc/woodpecker-ci/woodpecker.svg)](https://starchart.cc/woodpecker-ci/woodpecker) -## License +## 许可证 -Woodpecker is Apache 2.0 licensed with the source files in this repository having a header indicating which license they are under and what copyrights apply. +Woodpecker 采用 Apache 2.0 许可证,此仓库中的源文件包含版权声明及其适用的许可证信息。 -Files under the `docs/` folder are licensed under Creative Commons Attribution-ShareAlike 4.0 International Public License. +`docs/` 文件夹下的文件采用 Creative Commons Attribution-ShareAlike 4.0 International Public License 许可。 \ No newline at end of file diff --git a/apps/woodpecker/README_en.md b/apps/woodpecker/README_en.md new file mode 100644 index 000000000..2f845c7a6 --- /dev/null +++ b/apps/woodpecker/README_en.md @@ -0,0 +1,123 @@ +

+ + Woodpecker + +

+
+

+ + + + + + + + Translation status + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+ +# Woodpecker + +> Woodpecker is a community fork of the Drone CI system. + +![woodpecker](https://github.com/woodpecker-ci/woodpecker/raw/main/docs/docs/woodpecker.png) + +## 🫶 Support + +Please consider to donate and become a backer. 🙏 [[Become a backer](https://opencollective.com/woodpecker-ci#category-CONTRIBUTE)] + + + +## 🚀 Usage + +### .woodpecker.yml + +- Place your pipeline in a file named `.woodpecker.yml` in your repository +- Pipeline steps can be named as you like +- Run any command in the commands section + +[Read More](https://woodpecker-ci.org/docs/usage/intro) + +### Build steps are containers + +- Define any Docker image as context +- Install the needed tools in custom Docker images, use them as context + +[Read More](https://woodpecker-ci.org/docs/usage/pipeline-syntax#steps) + +### Plugins + +Woodpecker has [official plugins](https://woodpecker-ci.org/plugins), but you can also use your own. + +[Read More](https://woodpecker-ci.org/docs/usage/plugins/plugins) + +## 📖 Documentation + +https://woodpecker-ci.org/ + +## ✨ Contribute + +See [Contributing Guide](https://github.com/woodpecker-ci/woodpecker/blob/main/CONTRIBUTING.md) + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://woodpecker-ci.org/docs/next/development/getting-started#gitpod) + +## 📣 Translate + +We use an own [Weblate](https://weblate.org/en/) instance at [translate.woodpecker-ci.org](https://translate.woodpecker-ci.org). + + + Translation status + + +## 👋 Who uses Woodpecker? + +[Codeberg](https://codeberg.org), the Woodpecker project itself, and many others. + +Leave a [comment](https://github.com/woodpecker-ci/woodpecker/issues/122) if you're using it as well. + +Also consider using the topic `WoodpeckerCI` in your repository, so others can learn from your config and use the hashtag `#WoodpeckerCI` when talking about the project on social media! + +Here are some places where people mention Woodpecker: + +- [GitHub](https://github.com/topics/WoodpeckerCI) +- [Codeberg](https://codeberg.org/explore/repos?q=woodpeckerci&topic=1) +- [Twitter](https://twitter.com/search?q=%23WoodpeckerCI&src=typed_query) +- [Fediverse](https://mastodon.social/tags/WoodpeckerCI) + +## ✨ Stars over time + +[![Stargazers over time](https://starchart.cc/woodpecker-ci/woodpecker.svg)](https://starchart.cc/woodpecker-ci/woodpecker) + +## License + +Woodpecker is Apache 2.0 licensed with the source files in this repository having a header indicating which license they are under and what copyrights apply. + +Files under the `docs/` folder are licensed under Creative Commons Attribution-ShareAlike 4.0 International Public License. diff --git a/apps/wps-office/README.md b/apps/wps-office/README.md index 34a505257..156808214 100644 --- a/apps/wps-office/README.md +++ b/apps/wps-office/README.md @@ -1,80 +1,80 @@ -The [LinuxServer.io](https://linuxserver.io/) team brings you another container release featuring: +The [LinuxServer.io](https://linuxserver.io/) 团队为您带来了另一个容器发布,包含: -- regular and timely application updates -- easy user mappings (PGID, PUID) -- custom base image with s6 overlay -- weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth -- regular security updates +* 定期且及时的应用更新 +* 简单的用户映射(PGID, PUID) +* 自定义基础镜像,带有 s6 覆盖 +* 每周为基础操作系统进行更新,并在整个 LinuxServer.io 生态系统中使用共同的层,以最小化空间使用、停机时间和带宽 +* 常规安全更新 -Find us at: +访问我们: -- [Blog](https://blog.linuxserver.io/) \- all the things you can do with our containers including How-To guides, opinions and much more! -- [Discord](https://discord.gg/YWrKVTn) \- realtime support / chat with the community and the team. -- [Discourse](https://discourse.linuxserver.io/) \- post on our community forum. -- [Fleet](https://fleet.linuxserver.io/) \- an online web interface which displays all of our maintained images. -- [GitHub](https://github.com/linuxserver) \- view the source for all of our repositories. -- [Open Collective](https://opencollective.com/linuxserver) \- please consider helping us by either donating or contributing to our budget +* \[Blog\] - 有关我们容器的所有功能,包括使用指南、观点等内容! +* [Discord](https://discord.gg/YWrKVTn) - 实时支持/与社区和团队进行聊天。 +* [Discourse](https://discourse.linuxserver.io/) - 在我们的社区论坛发帖。 +* [Fleet](https://fleet.linuxserver.io/) - 一个在线的网页界面,显示我们维护的所有镜像。 +* [GitHub](https://github.com/linuxserver) - 查看我们所有仓库的源代码。 +* [Open Collective](https://opencollective.com/linuxserver) - 请考虑通过捐赠或资助我们的预算来帮助我们 -[WPS Office](https://www.wps.com/) is a lightweight, feature-rich comprehensive office suite with high compatibility. As a handy and professional office software, WPS Office allows you to edit files in Writer, Presentation, Spreadsheet, and PDF to improve your work efficiency. +[WPS Office](https://www.wps.com/) 是一款轻量、功能丰富且兼容性高的综合办公套件。作为一款便捷且专业的办公软件,WPS Office 允许你在 Writer、Presentation、Spreadsheet 和 PDF 中编辑文件,从而提高工作效率。 [![wps-office](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/wps-office-icon.png)](https://www.wps.com/) -## Supported Architectures +## 支持的架构 -We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). +我们利用 docker manifest 来实现多平台支持。更多详细信息请参阅 docker [这里](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) 和 我们的公告 [这里](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/) 。 -Simply pulling `lscr.io/linuxserver/wps-office:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. +简单地拉取 `lscr.io/linuxserver/wps-office:latest` 应该会获取到正确的架构图像,但你也可以通过标签拉取特定的架构图像。 -The architectures supported by this image are: +此图像支持的架构有: -| Architecture | Available | Tag | +| 架构 | 可用 | Tag | | --- | --- | --- | -| x86-64 | ✅ | amd64-<version tag> | -| arm64 | ❌ | | -| armhf | ❌ | | +| x86-64 | ✅ | amd64-<版本标签> | +| arm64 | ❌ | | +| armhf | ❌ | | -## Application Setup +## 应用设置 -The application can be accessed at: +应用可通过以下地址访问: -- http://yourhost:3000/ -- https://yourhost:3001/ +* [http://yourhost:3000/](http://yourhost:3000/) +* [https://yourhost:3001/](https://yourhost:3001/) -### Options in all KasmVNC based GUI containers +### KasmVNC 基础的 GUI 容器中的选项 -This container is based on [Docker Baseimage KasmVNC](https://github.com/linuxserver/docker-baseimage-kasmvnc) which means there are additional environment variables and run configurations to enable or disable specific functionality. +此容器基于 [Docker Baseimage KasmVNC](https://github.com/linuxserver/docker-baseimage-kasmvnc),这意味着存在额外的环境变量和运行配置,可以启用或禁用特定功能。 -#### Optional environment variables +#### 可选的环境变量 -| Variable | Description | +| 变量 | 描述 | | --- | --- | -| CUSTOM_PORT | Internal port the container listens on for http if it needs to be swapped from the default 3000. | -| CUSTOM\_HTTPS\_PORT | Internal port the container listens on for https if it needs to be swapped from the default 3001. | -| CUSTOM_USER | HTTP Basic auth username, abc is default. | -| PASSWORD | HTTP Basic auth password, abc is default. If unset there will be no auth | -| SUBFOLDER | Subfolder for the application if running a subfolder reverse proxy, need both slashes IE `/subfolder/` | -| TITLE | The page title displayed on the web browser, default "KasmVNC Client". | -| FM_HOME | This is the home directory (landing) for the file manager, default "/config". | -| START_DOCKER | If set to false a container with privilege will not automatically start the DinD Docker setup. | -| DRINODE | If mounting in /dev/dri for [DRI3 GPU Acceleration](https://www.kasmweb.com/kasmvnc/docs/master/gpu_acceleration.html) allows you to specify the device to use IE `/dev/dri/renderD128` | +| CUSTOM\_PORT | 容器监听的内部端口,用于 http,如果需要从默认的 3000 端口更改。 | +| CUSTOM\_HTTPS\_PORT | 容器监听的内部端口,用于 https,如果需要从默认的 3001 端口更改。 | +| CUSTOM\_USER | HTTP 基本认证用户名,默认为 abc。 | +| PASSWORD | HTTP 基本认证密码,默认为 abc。如果未设置,则无需认证。 | +| SUBFOLDER | 如果运行子文件夹反向代理,则需要在应用中创建一个子文件夹,例如 \`/subfolder/\`。 | +| TITLE | 网页浏览器中显示的页面标题,默认为“KasmVNC 客户端”。 | +| FM\_HOME | 这是文件管理器的主目录(起始目录),默认为 \`/config\`。 | +| START\_DOCKER | 如果设置为 false,则不会自动启动 DinD Docker 环境。 | +| DRINODE | 如果在 /dev/dri 挂载以启用 DRI3 GPU 加速 ,你可以指定要使用的设备,例如 /dev/dri/renderD128 | -#### Optional run configurations +#### 可选运行配置 -| Variable | Description | +| 变量 | 描述 | | --- | --- | -| `--privileged` | Will start a Docker in Docker (DinD) setup inside the container to use docker in an isolated environment. For increased performance mount the Docker directory inside the container to the host IE `-v /home/user/docker-data:/var/lib/docker`. | -| `-v /var/run/docker.sock:/var/run/docker.sock` | Mount in the host level Docker socket to either interact with it via CLI or use Docker enabled applications. | -| `--device /dev/dri:/dev/dri` | Mount a GPU into the container, this can be used in conjunction with the `DRINODE` environment variable to leverage a host video card for GPU accelerated appplications. Only **Open Source** drivers are supported IE (Intel,AMDGPU,Radeon,ATI,Nouveau) | +| \--privileged | 将在容器内部启动一个 Docker 在 Docker (DinD) 设置,以便在隔离环境中使用 Docker。为了提高性能,请将 Docker 目录挂载到主机上,例如 -v /home/user/docker-data:/var/lib/docker | +| \-v /var/run/docker.sock:/var/run/docker.sock | 在主机级别挂载 Docker 套接字,以便通过命令行界面与之交互或使用 Docker 启动的应用程序。 | +| \--device /dev/dri:/dev/dri | 将 GPU 挂载到容器中,可以与 DRINODE 环境变量结合使用,以利用主机的显卡进行 GPU 加速的应用程序。仅支持开源驱动程序(如 Intel、AMDGPU、Radeon、ATI、Nouveau) | -### Lossless mode +### 无损模式 -This container is capable of delivering a true lossless image at a high framerate to your web browser by changing the Stream Quality preset to "Lossless", more information [here](https://www.kasmweb.com/docs/latest/how_to/lossless.html#technical-background). In order to use this mode from a non localhost endpoint the HTTPS port on 3001 needs to be used. If using a reverse proxy to port 3000 specific headers will need to be set as outlined [here](https://github.com/linuxserver/docker-baseimage-kasmvnc#lossless). +此容器可以通过将 Stream Quality 预设更改为“无损”模式,在高帧率下将真正的无损图像传输到您的网络浏览器。更多信息请参阅 [此处](https://www.kasmweb.com/docs/latest/how_to/lossless.html#technical-background) 。要从非本地主机端点使用此模式,需要使用 3001 端口的 HTTPS。如果通过反向代理访问端口 3000,则需要设置特定的标头,具体请参阅 [此处](https://github.com/linuxserver/docker-baseimage-kasmvnc#lossless) 。 -## Usage +## 使用方法 -Here are some example snippets to help you get started creating a container. +以下是一些示例片段,帮助你开始创建容器。 -### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose)) +### docker-compose(推荐,\[点击这里获取更多信息\](#0)) ``` --- @@ -98,7 +98,7 @@ services: restart: unless-stopped ``` -### docker cli ([click here for more info](https://docs.docker.com/engine/reference/commandline/cli/)) +### docker cli(\[点击这里获取更多信息\](#0)) ``` docker run -d \ @@ -115,44 +115,44 @@ docker run -d \ lscr.io/linuxserver/wps-office:latest ``` -## Parameters +## 参数 -Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `:` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container. +容器镜像通过在运行时传递参数(如上文所示)进行配置。这些参数通过冒号分隔,分别表示外部和内部。例如,\`-p 8080:80\` 会将容器内部的端口 \`80\` 映射到主机的 IP 地址上的端口 \`8080\`。 -| Parameter | Function | +| 参数 | 功能 | | --- | --- | -| `-p 3000` | WPS Office desktop gui. | -| `-p 3001` | WPS Office desktop gui HTTPS. | -| `-e PUID=1000` | for UserID - see below for explanation | -| `-e PGID=1000` | for GroupID - see below for explanation | -| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | -| `-v /config` | Users home directory in the container, stores program settings and documents | -| `--shm-size=` | This is needed for electron applications to function properly. | -| `--security-opt seccomp=unconfined` | For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. | +| \-p 3000 | WPS Office 桌面界面。 | +| \-p 3001 | WPS Office 桌面界面 HTTPS。 | +| \-e PUID=1000 | for UserID - 请参见下方说明 | +| \-e PGID=1000 | for GroupID - 请参见下方说明 | +| \-e TZ=Etc/UTC | 指定要使用的时区,参见此 列表 。 | +| \-v /config | 容器中的用户主目录,用于存储程序设置和文档 | +| \--shm-size= | 这对于电子应用程序的正常运行是必需的。 | +| \--security-opt seccomp=unconfined | 仅对 Docker 引擎而言,许多现代的 GUI 应用在较旧的主机上运行时需要此设置,因为 Docker 不认识这些系统调用。 | -## Environment variables from files (Docker secrets) +## 环境变量从文件(Docker 秘钥) -You can set any environment variable from a file by using a special prepend `FILE__`. +你可以通过使用一个特殊的前缀 \``FILE__`\` 来从文件中设置任何环境变量。 -As an example: +例如: ``` -e FILE__PASSWORD=/run/secrets/mysecretpassword ``` -Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file. +将根据 \`/run/secrets/mysecretpassword\` 文件的内容设置环境变量 \``PASSWORD`\`。 -## Umask for running applications +## 运行应用程序的 umask -For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional `-e UMASK=022` setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up [here](https://en.wikipedia.org/wiki/Umask) before asking for support. +对于所有图像,我们提供了使用可选的 \`-e UMASK=022\` 设置来覆盖容器内启动的服务的默认 umask 设置的能力。请注意,umask 不是 chmod,它的值会从权限中减去,而不是增加。在请求支持之前,请先阅读 [这里](https://en.wikipedia.org/wiki/Umask) 。 -## User / Group Identifiers +## 用户 / 组标识符 -When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`. +使用卷(-v 标志)时,可能会在主机操作系统和容器之间出现权限问题,我们通过允许您指定用户 PUID 和组 PGID 来避免这个问题。 -Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. +确保主机上的任何卷目录由您指定的同一用户拥有,任何权限问题都会神奇地消失。 -In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below: +在这个实例中 `PUID=1000` 和 `PGID=1000`,要找到你的值,请使用 `id user`,如下所示: ``` $ id username @@ -161,42 +161,42 @@ In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as bel ## Docker Mods -We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. +我们发布了各种 [Docker Mods](https://github.com/linuxserver/docker-mods) 以在容器中启用额外的功能。此镜像可用的 Mods 列表(如果有)以及可以应用于我们任何镜像的通用 Mods 可通过上方的动态徽章访问。 -## Support Info +## 支持信息 -- Shell access whilst the container is running: `docker exec -it wps-office /bin/bash` -- To monitor the logs of the container in realtime: `docker logs -f wps-office` -- container version number - - `docker inspect -f '{{ index .Config.Labels "build_version" }}' wps-office` -- image version number - - `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/wps-office:latest` +* 在容器运行时访问 Shell: `docker exec -it wps-office /bin/bash` +* 实时监控容器的日志:`docker logs -f wps-office` +* 容器版本号 + * `docker inspect -f '{{ index .Config.Labels "build_version" }}' wps-office` +* image 版本号 + * `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/wps-office:latest` -## Updating Info +## 更新信息 -Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image. +我们的大多数镜像都是静态的、版本化的,需要更新镜像并重新创建容器才能更新应用程序。除了少数例外(例如 nextcloud、plex),我们不建议或支持在容器内部更新应用程序。请参阅上方的[应用程序设置](#application-setup)部分,查看该镜像是否推荐进行更新。 -Below are the instructions for updating containers: +以下是更新容器的步骤: -### Via Docker Compose +### 通过 Docker Compose -- Update all images: `docker-compose pull` - - or update a single image: `docker-compose pull wps-office` -- Let compose update all containers as necessary: `docker-compose up -d` - - or update a single container: `docker-compose up -d wps-office` -- You can also remove the old dangling images: `docker image prune` +* 更新所有镜像:`docker-compose pull` + * 或更新单个镜像: `docker-compose pull wps-office` +* 让 Compose 更新所有必要的容器:`docker-compose up -d` + * 或更新单个容器: `docker-compose up -d wps-office` +* 你也可以移除旧的孤立镜像:\`docker image prune\` -### Via Docker Run +### 通过 Docker Run -- Update the image: `docker pull lscr.io/linuxserver/wps-office:latest` -- Stop the running container: `docker stop wps-office` -- Delete the container: `docker rm wps-office` -- Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved) -- You can also remove the old dangling images: `docker image prune` +* 更新镜像: `docker pull lscr.io/linuxserver/wps-office:latest` +* 停止运行中的容器:`docker stop wps-office` +* 删除容器:`docker rm wps-office` +* 使用相同的 \`docker run\` 参数重新创建一个新的容器(如果正确映射到主机文件夹,您的 `/config` 文件夹和设置将被保留) +* 你也可以移除旧的孤立镜像:\`docker image prune\` -### Via Watchtower auto-updater (only use if you don't remember the original parameters) +### 通过 Watchtower 自动更新程序(仅在您不记得原始参数时使用) -- Pull the latest image at its tag and replace it with the same env variables in one run: +* 拉取最新标签的镜像并在一次运行中用相同的环境变量替换它: ``` docker run --rm \ @@ -205,18 +205,18 @@ Below are the instructions for updating containers: --run-once wps-office ``` -- You can also remove the old dangling images: `docker image prune` +* 你也可以移除旧的孤立镜像:\`docker image prune\` -**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose). +\*\*注意\*\*:我们不推荐使用 Watchtower 来自动化现有 Docker 容器的更新。实际上,我们一般不建议自动化更新。然而,这个工具对于一次性手动更新忘记原始参数的容器是有用的。从长远来看,我们强烈建议使用 Docker Compose。 -### Image Update Notifications - Diun (Docker Image Update Notifier) +### 镜像更新通知 - Diun(Docker Image Update Notifier) -- We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. +* 我们推荐使用 [Diun](https://crazymax.dev/diun/) 获取更新通知。其他在无人干预的情况下自动更新容器的工具不被推荐或支持。 -## Building locally +## 本地构建 -If you want to make local modifications to these images for development purposes or just to customize the logic: +如果您为了开发目的或只是自定义逻辑而对这些镜像进行本地修改: ``` git clone https://github.com/linuxserver/docker-wps-office.git @@ -227,14 +227,14 @@ docker build \ -t lscr.io/linuxserver/wps-office:latest . ``` -The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` +在 x86\_64 硬件上可以使用 `multiarch/qemu-user-static` 构建 ARM 变体。 ``` docker run --rm --privileged multiarch/qemu-user-static:register --reset ``` -Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. +注册后,您可以使用 `-f Dockerfile.aarch64` 定义要使用的 Dockerfile。 -## Versions +## 版本 -- **21.04.23:** \- Initial release. \ No newline at end of file +* **21.04.23:** - 初始发布。 \ No newline at end of file diff --git a/apps/wps-office/README_en.md b/apps/wps-office/README_en.md new file mode 100644 index 000000000..34a505257 --- /dev/null +++ b/apps/wps-office/README_en.md @@ -0,0 +1,240 @@ +The [LinuxServer.io](https://linuxserver.io/) team brings you another container release featuring: + +- regular and timely application updates +- easy user mappings (PGID, PUID) +- custom base image with s6 overlay +- weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth +- regular security updates + +Find us at: + +- [Blog](https://blog.linuxserver.io/) \- all the things you can do with our containers including How-To guides, opinions and much more! +- [Discord](https://discord.gg/YWrKVTn) \- realtime support / chat with the community and the team. +- [Discourse](https://discourse.linuxserver.io/) \- post on our community forum. +- [Fleet](https://fleet.linuxserver.io/) \- an online web interface which displays all of our maintained images. +- [GitHub](https://github.com/linuxserver) \- view the source for all of our repositories. +- [Open Collective](https://opencollective.com/linuxserver) \- please consider helping us by either donating or contributing to our budget + +[WPS Office](https://www.wps.com/) is a lightweight, feature-rich comprehensive office suite with high compatibility. As a handy and professional office software, WPS Office allows you to edit files in Writer, Presentation, Spreadsheet, and PDF to improve your work efficiency. + +[![wps-office](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/wps-office-icon.png)](https://www.wps.com/) + +## Supported Architectures + +We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). + +Simply pulling `lscr.io/linuxserver/wps-office:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. + +The architectures supported by this image are: + +| Architecture | Available | Tag | +| --- | --- | --- | +| x86-64 | ✅ | amd64-<version tag> | +| arm64 | ❌ | | +| armhf | ❌ | | + +## Application Setup + +The application can be accessed at: + +- http://yourhost:3000/ +- https://yourhost:3001/ + +### Options in all KasmVNC based GUI containers + +This container is based on [Docker Baseimage KasmVNC](https://github.com/linuxserver/docker-baseimage-kasmvnc) which means there are additional environment variables and run configurations to enable or disable specific functionality. + +#### Optional environment variables + +| Variable | Description | +| --- | --- | +| CUSTOM_PORT | Internal port the container listens on for http if it needs to be swapped from the default 3000. | +| CUSTOM\_HTTPS\_PORT | Internal port the container listens on for https if it needs to be swapped from the default 3001. | +| CUSTOM_USER | HTTP Basic auth username, abc is default. | +| PASSWORD | HTTP Basic auth password, abc is default. If unset there will be no auth | +| SUBFOLDER | Subfolder for the application if running a subfolder reverse proxy, need both slashes IE `/subfolder/` | +| TITLE | The page title displayed on the web browser, default "KasmVNC Client". | +| FM_HOME | This is the home directory (landing) for the file manager, default "/config". | +| START_DOCKER | If set to false a container with privilege will not automatically start the DinD Docker setup. | +| DRINODE | If mounting in /dev/dri for [DRI3 GPU Acceleration](https://www.kasmweb.com/kasmvnc/docs/master/gpu_acceleration.html) allows you to specify the device to use IE `/dev/dri/renderD128` | + +#### Optional run configurations + +| Variable | Description | +| --- | --- | +| `--privileged` | Will start a Docker in Docker (DinD) setup inside the container to use docker in an isolated environment. For increased performance mount the Docker directory inside the container to the host IE `-v /home/user/docker-data:/var/lib/docker`. | +| `-v /var/run/docker.sock:/var/run/docker.sock` | Mount in the host level Docker socket to either interact with it via CLI or use Docker enabled applications. | +| `--device /dev/dri:/dev/dri` | Mount a GPU into the container, this can be used in conjunction with the `DRINODE` environment variable to leverage a host video card for GPU accelerated appplications. Only **Open Source** drivers are supported IE (Intel,AMDGPU,Radeon,ATI,Nouveau) | + +### Lossless mode + +This container is capable of delivering a true lossless image at a high framerate to your web browser by changing the Stream Quality preset to "Lossless", more information [here](https://www.kasmweb.com/docs/latest/how_to/lossless.html#technical-background). In order to use this mode from a non localhost endpoint the HTTPS port on 3001 needs to be used. If using a reverse proxy to port 3000 specific headers will need to be set as outlined [here](https://github.com/linuxserver/docker-baseimage-kasmvnc#lossless). + +## Usage + +Here are some example snippets to help you get started creating a container. + +### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose)) + +``` +--- +version: "2.1" +services: + wps-office: + image: lscr.io/linuxserver/wps-office:latest + container_name: wps-office + security_opt: + - seccomp:unconfined #optional + environment: + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC + volumes: + - /path/to/config:/config + ports: + - 3000:3000 + - 3001:3001 + shm_size: "1gb" + restart: unless-stopped +``` + +### docker cli ([click here for more info](https://docs.docker.com/engine/reference/commandline/cli/)) + +``` +docker run -d \ + --name=wps-office \ + --security-opt seccomp=unconfined `#optional` \ + -e PUID=1000 \ + -e PGID=1000 \ + -e TZ=Etc/UTC \ + -p 3000:3000 \ + -p 3001:3001 \ + -v /path/to/config:/config \ + --shm-size="1gb" \ + --restart unless-stopped \ + lscr.io/linuxserver/wps-office:latest +``` + +## Parameters + +Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `:` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container. + +| Parameter | Function | +| --- | --- | +| `-p 3000` | WPS Office desktop gui. | +| `-p 3001` | WPS Office desktop gui HTTPS. | +| `-e PUID=1000` | for UserID - see below for explanation | +| `-e PGID=1000` | for GroupID - see below for explanation | +| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | +| `-v /config` | Users home directory in the container, stores program settings and documents | +| `--shm-size=` | This is needed for electron applications to function properly. | +| `--security-opt seccomp=unconfined` | For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. | + +## Environment variables from files (Docker secrets) + +You can set any environment variable from a file by using a special prepend `FILE__`. + +As an example: + +``` +-e FILE__PASSWORD=/run/secrets/mysecretpassword +``` + +Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file. + +## Umask for running applications + +For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional `-e UMASK=022` setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up [here](https://en.wikipedia.org/wiki/Umask) before asking for support. + +## User / Group Identifiers + +When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`. + +Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. + +In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below: + +``` + $ id username + uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) +``` + +## Docker Mods + +We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. + +## Support Info + +- Shell access whilst the container is running: `docker exec -it wps-office /bin/bash` +- To monitor the logs of the container in realtime: `docker logs -f wps-office` +- container version number + - `docker inspect -f '{{ index .Config.Labels "build_version" }}' wps-office` +- image version number + - `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/wps-office:latest` + +## Updating Info + +Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image. + +Below are the instructions for updating containers: + +### Via Docker Compose + +- Update all images: `docker-compose pull` + - or update a single image: `docker-compose pull wps-office` +- Let compose update all containers as necessary: `docker-compose up -d` + - or update a single container: `docker-compose up -d wps-office` +- You can also remove the old dangling images: `docker image prune` + +### Via Docker Run + +- Update the image: `docker pull lscr.io/linuxserver/wps-office:latest` +- Stop the running container: `docker stop wps-office` +- Delete the container: `docker rm wps-office` +- Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved) +- You can also remove the old dangling images: `docker image prune` + +### Via Watchtower auto-updater (only use if you don't remember the original parameters) + +- Pull the latest image at its tag and replace it with the same env variables in one run: + + ``` + docker run --rm \ + -v /var/run/docker.sock:/var/run/docker.sock \ + containrrr/watchtower \ + --run-once wps-office + ``` + +- You can also remove the old dangling images: `docker image prune` + + +**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose). + +### Image Update Notifications - Diun (Docker Image Update Notifier) + +- We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. + +## Building locally + +If you want to make local modifications to these images for development purposes or just to customize the logic: + +``` +git clone https://github.com/linuxserver/docker-wps-office.git +cd docker-wps-office +docker build \ + --no-cache \ + --pull \ + -t lscr.io/linuxserver/wps-office:latest . +``` + +The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` + +``` +docker run --rm --privileged multiarch/qemu-user-static:register --reset +``` + +Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. + +## Versions + +- **21.04.23:** \- Initial release. \ No newline at end of file diff --git a/apps/yourls/README.md b/apps/yourls/README.md index b5f0801fe..3b35b25d5 100644 --- a/apps/yourls/README.md +++ b/apps/yourls/README.md @@ -1,6 +1,6 @@ # 使用说明 -- 初始化设置 +* 初始化设置 注意:首次实例化时,访问根文件夹将生成错误。通过路径 `/admin/` 访问 `YOURLS` 管理界面。 @@ -8,109 +8,54 @@ 那么需要访问`http://localhost:40037/admin/`进行初始化设置 - # 原始相关 -

- - YOURLS - -

+# [![YOURLS](https://raw.githubusercontent.com/YOURLS/YOURLS/master/images/yourls-logo.svg)](https://yourls.org) -> Your Own URL Shortener +> 您自己的 URL 缩短器 -![CI](https://github.com/YOURLS/YOURLS/workflows/CI/badge.svg) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/YOURLS/YOURLS/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/YOURLS/YOURLS/?branch=master) ![PHP Version Support](https://img.shields.io/packagist/php-v/yourls/yourls) [![Packagist](https://img.shields.io/packagist/v/yourls/yourls.svg)](https://packagist.org/packages/yourls/yourls) [![OpenCollective](https://opencollective.com/yourls/backers/badge.svg)](https://opencollective.com/yourls#contributors) -[![OpenCollective](https://opencollective.com/yourls/sponsors/badge.svg)](#sponsors) +![CI](https://github.com/YOURLS/YOURLS/workflows/CI/badge.svg) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/YOURLS/YOURLS/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/YOURLS/YOURLS/?branch=master) ![PHP Version Support](https://img.shields.io/packagist/php-v/yourls/yourls) [![Packagist](https://img.shields.io/packagist/v/yourls/yourls.svg)](https://packagist.org/packages/yourls/yourls) [![OpenCollective](https://opencollective.com/yourls/backers/badge.svg)](https://opencollective.com/yourls#contributors) [![OpenCollective](https://opencollective.com/yourls/sponsors/badge.svg)](#sponsors) -**YOURLS** is a set of PHP scripts that will allow you to run Your Own URL Shortener, on **your** server. You'll have full control over your data, detailed stats, analytics, plugins, and more. It's free and open-source. +**YOURLS** 是一套 PHP 脚本,允许您在自己的服务器上运行您自己的 URL 缩短器。您可以完全控制您的数据、详细的统计信息、分析、插件等。它是免费且开源的。 -## Quick Start +## 快速开始 -Get YOURLS : -* Download the latest [release](https://github.com/YOURLS/YOURLS/releases) -* Using Composer? You can simply `composer create-project yourls/yourls .` in an empty directory. +获取 YOURLS: -Install YOURLS: -* Read [yourls.org](https://yourls.org) for starters -* The complete documentation is on [docs.yourls.org](https://docs.yourls.org) and contains everything from beginners to experts. +* 下载最新版本的 [发布](https://github.com/YOURLS/YOURLS/releases) +* 使用 Composer?你可以在一个空目录中直接 `composer create-project yourls/yourls .` 。 -## Community news, tips and tricks +安装 YOURLS: -* Read and subscribe to the [The Official YOURLS Blog](http://blog.yourls.org) -* Check what the user community makes: plugins, tools, guides and more on [Awesome YOURLS](https://github.com/YOURLS/awesome-yourls) -* Engage users and ask for help in our [community discussions](https://github.com/YOURLS/YOURLS/discussions) -* Keep track of development: "Star" and "Watch" this project, follow [commit messages](https://github.com/YOURLS/YOURLS/commits/master) +* 阅读 [yourls.org](https://yourls.org) 以入门 +* 完整的文档在 [docs.yourls.org](https://docs.yourls.org),包含了从初学者到专家的所有内容。 -## Contributing +## 社区新闻、技巧和窍门 -Feature suggestion? Bug to report? +* 阅读并订阅官方 YOURLS 博客 [The Official YOURLS Blog](http://blog.yourls.org) +* 查看用户社区的成果:插件、工具、指南和其他内容,访问 [Awesome YOURLS](https://github.com/YOURLS/awesome-yourls) +* 在我们的[社区讨论](https://github.com/YOURLS/YOURLS/discussions)中与用户互动并寻求帮助 +* 跟踪开发进度:为这个项目点“星标”和“关注”,查看[提交信息](https://github.com/YOURLS/YOURLS/commits/master) -__Before opening any issue, please search for existing [issues](https://github.com/YOURLS/YOURLS/issues) (open and closed) and read the [Contributing Guidelines](https://github.com/YOURLS/.github/blob/master/CONTRIBUTING.md).__ +## 贡献 +有新功能建议吗?遇到 bug 了吗? -## Backers +**在提交任何问题之前,请搜索现有的[问题](https://github.com/YOURLS/YOURLS/issues) (包括已解决的问题)并阅读[贡献指南](https://github.com/YOURLS/.github/blob/master/CONTRIBUTING.md) 。** -Do you use and enjoy YOURLS? [Become a backer](https://opencollective.com/yourls#backer) and show your support to our open source project. +## 支持者 -[![](https://opencollective.com/yourls/backer/0/avatar.svg)](https://opencollective.com/yourls/backer/0/website) -[![](https://opencollective.com/yourls/backer/1/avatar.svg)](https://opencollective.com/yourls/backer/1/website) -[![](https://opencollective.com/yourls/backer/2/avatar.svg)](https://opencollective.com/yourls/backer/2/website) -[![](https://opencollective.com/yourls/backer/3/avatar.svg)](https://opencollective.com/yourls/backer/3/website) -[![](https://opencollective.com/yourls/backer/4/avatar.svg)](https://opencollective.com/yourls/backer/4/website) -[![](https://opencollective.com/yourls/backer/5/avatar.svg)](https://opencollective.com/yourls/backer/5/website) -[![](https://opencollective.com/yourls/backer/6/avatar.svg)](https://opencollective.com/yourls/backer/6/website) -[![](https://opencollective.com/yourls/backer/7/avatar.svg)](https://opencollective.com/yourls/backer/7/website) -[![](https://opencollective.com/yourls/backer/8/avatar.svg)](https://opencollective.com/yourls/backer/8/website) -[![](https://opencollective.com/yourls/backer/9/avatar.svg)](https://opencollective.com/yourls/backer/9/website) -[![](https://opencollective.com/yourls/backer/10/avatar.svg)](https://opencollective.com/yourls/backer/10/website) -[![](https://opencollective.com/yourls/backer/11/avatar.svg)](https://opencollective.com/yourls/backer/11/website) -[![](https://opencollective.com/yourls/backer/12/avatar.svg)](https://opencollective.com/yourls/backer/12/website) -[![](https://opencollective.com/yourls/backer/13/avatar.svg)](https://opencollective.com/yourls/backer/13/website) -[![](https://opencollective.com/yourls/backer/14/avatar.svg)](https://opencollective.com/yourls/backer/14/website) -[![](https://opencollective.com/yourls/backer/15/avatar.svg)](https://opencollective.com/yourls/backer/15/website) -[![](https://opencollective.com/yourls/backer/16/avatar.svg)](https://opencollective.com/yourls/backer/16/website) -[![](https://opencollective.com/yourls/backer/17/avatar.svg)](https://opencollective.com/yourls/backer/17/website) -[![](https://opencollective.com/yourls/backer/18/avatar.svg)](https://opencollective.com/yourls/backer/18/website) -[![](https://opencollective.com/yourls/backer/19/avatar.svg)](https://opencollective.com/yourls/backer/19/website) -[![](https://opencollective.com/yourls/backer/20/avatar.svg)](https://opencollective.com/yourls/backer/20/website) -[![](https://opencollective.com/yourls/backer/21/avatar.svg)](https://opencollective.com/yourls/backer/21/website) -[![](https://opencollective.com/yourls/backer/22/avatar.svg)](https://opencollective.com/yourls/backer/22/website) -[![](https://opencollective.com/yourls/backer/23/avatar.svg)](https://opencollective.com/yourls/backer/23/website) -[![](https://opencollective.com/yourls/backer/24/avatar.svg)](https://opencollective.com/yourls/backer/24/website) -[![](https://opencollective.com/yourls/backer/25/avatar.svg)](https://opencollective.com/yourls/backer/25/website) -[![](https://opencollective.com/yourls/backer/26/avatar.svg)](https://opencollective.com/yourls/backer/26/website) -[![](https://opencollective.com/yourls/backer/27/avatar.svg)](https://opencollective.com/yourls/backer/27/website) -[![](https://opencollective.com/yourls/backer/28/avatar.svg)](https://opencollective.com/yourls/backer/28/website) -[![](https://opencollective.com/yourls/backer/29/avatar.svg)](https://opencollective.com/yourls/backer/29/website) +您使用并享受 YOURLS 吗?请[成为赞助者](https://opencollective.com/yourls#backer) ,支持我们的开源项目。 +[![](https://opencollective.com/yourls/backer/0/avatar.svg)](https://opencollective.com/yourls/backer/0/website) [![](https://opencollective.com/yourls/backer/1/avatar.svg)](https://opencollective.com/yourls/backer/1/website) [![](https://opencollective.com/yourls/backer/2/avatar.svg)](https://opencollective.com/yourls/backer/2/website) [![](https://opencollective.com/yourls/backer/3/avatar.svg)](https://opencollective.com/yourls/backer/3/website) [![](https://opencollective.com/yourls/backer/4/avatar.svg)](https://opencollective.com/yourls/backer/4/website) [![](https://opencollective.com/yourls/backer/5/avatar.svg)](https://opencollective.com/yourls/backer/5/website) [![](https://opencollective.com/yourls/backer/6/avatar.svg)](https://opencollective.com/yourls/backer/6/website) [![](https://opencollective.com/yourls/backer/7/avatar.svg)](https://opencollective.com/yourls/backer/7/website) [![](https://opencollective.com/yourls/backer/8/avatar.svg)](https://opencollective.com/yourls/backer/8/website) [![](https://opencollective.com/yourls/backer/9/avatar.svg)](https://opencollective.com/yourls/backer/9/website) [![](https://opencollective.com/yourls/backer/10/avatar.svg)](https://opencollective.com/yourls/backer/10/website) [![](https://opencollective.com/yourls/backer/11/avatar.svg)](https://opencollective.com/yourls/backer/11/website) [![](https://opencollective.com/yourls/backer/12/avatar.svg)](https://opencollective.com/yourls/backer/12/website) [![](https://opencollective.com/yourls/backer/13/avatar.svg)](https://opencollective.com/yourls/backer/13/website) [![](https://opencollective.com/yourls/backer/14/avatar.svg)](https://opencollective.com/yourls/backer/14/website) [![](https://opencollective.com/yourls/backer/15/avatar.svg)](https://opencollective.com/yourls/backer/15/website) [![](https://opencollective.com/yourls/backer/16/avatar.svg)](https://opencollective.com/yourls/backer/16/website) [![](https://opencollective.com/yourls/backer/17/avatar.svg)](https://opencollective.com/yourls/backer/17/website) [![](https://opencollective.com/yourls/backer/18/avatar.svg)](https://opencollective.com/yourls/backer/18/website) [![](https://opencollective.com/yourls/backer/19/avatar.svg)](https://opencollective.com/yourls/backer/19/website) [![](https://opencollective.com/yourls/backer/20/avatar.svg)](https://opencollective.com/yourls/backer/20/website) [![](https://opencollective.com/yourls/backer/21/avatar.svg)](https://opencollective.com/yourls/backer/21/website) [![](https://opencollective.com/yourls/backer/22/avatar.svg)](https://opencollective.com/yourls/backer/22/website) [![](https://opencollective.com/yourls/backer/23/avatar.svg)](https://opencollective.com/yourls/backer/23/website) [![](https://opencollective.com/yourls/backer/24/avatar.svg)](https://opencollective.com/yourls/backer/24/website) [![](https://opencollective.com/yourls/backer/25/avatar.svg)](https://opencollective.com/yourls/backer/25/website) [![](https://opencollective.com/yourls/backer/26/avatar.svg)](https://opencollective.com/yourls/backer/26/website) [![](https://opencollective.com/yourls/backer/27/avatar.svg)](https://opencollective.com/yourls/backer/27/website) [![](https://opencollective.com/yourls/backer/28/avatar.svg)](https://opencollective.com/yourls/backer/28/website) [![](https://opencollective.com/yourls/backer/29/avatar.svg)](https://opencollective.com/yourls/backer/29/website) -## Sponsors +## 赞助商 -Does your company use YOURLS? Ask your manager or marketing team if your company would be interested in supporting our project. Your company logo will show here. Help support our open-source development efforts by [becoming a sponsor](https://opencollective.com/yourls). +如果您公司的员工使用了 YOURLS,请询问您的经理或营销团队,看看您的公司是否愿意支持我们的项目。您的公司标志将在此展示。通过[成为赞助商](https://opencollective.com/yourls) ,帮助支持我们的开源开发工作。 -[![](https://opencollective.com/yourls/sponsor/0/avatar.svg)](https://opencollective.com/yourls/sponsor/0/website) -[![](https://opencollective.com/yourls/sponsor/1/avatar.svg)](https://opencollective.com/yourls/sponsor/1/website) -[![](https://opencollective.com/yourls/sponsor/2/avatar.svg)](https://opencollective.com/yourls/sponsor/2/website) -[![](https://opencollective.com/yourls/sponsor/3/avatar.svg)](https://opencollective.com/yourls/sponsor/3/website) -[![](https://opencollective.com/yourls/sponsor/4/avatar.svg)](https://opencollective.com/yourls/sponsor/4/website) -[![](https://opencollective.com/yourls/sponsor/5/avatar.svg)](https://opencollective.com/yourls/sponsor/5/website) -[![](https://opencollective.com/yourls/sponsor/6/avatar.svg)](https://opencollective.com/yourls/sponsor/6/website) -[![](https://opencollective.com/yourls/sponsor/7/avatar.svg)](https://opencollective.com/yourls/sponsor/7/website) -[![](https://opencollective.com/yourls/sponsor/8/avatar.svg)](https://opencollective.com/yourls/sponsor/8/website) -[![](https://opencollective.com/yourls/sponsor/9/avatar.svg)](https://opencollective.com/yourls/sponsor/9/website) -[![](https://opencollective.com/yourls/sponsor/10/avatar.svg)](https://opencollective.com/yourls/sponsor/10/website) -[![](https://opencollective.com/yourls/sponsor/11/avatar.svg)](https://opencollective.com/yourls/sponsor/11/website) -[![](https://opencollective.com/yourls/sponsor/12/avatar.svg)](https://opencollective.com/yourls/sponsor/12/website) -[![](https://opencollective.com/yourls/sponsor/13/avatar.svg)](https://opencollective.com/yourls/sponsor/13/website) -[![](https://opencollective.com/yourls/sponsor/14/avatar.svg)](https://opencollective.com/yourls/sponsor/14/website) -[![](https://opencollective.com/yourls/sponsor/15/avatar.svg)](https://opencollective.com/yourls/sponsor/15/website) -[![](https://opencollective.com/yourls/sponsor/16/avatar.svg)](https://opencollective.com/yourls/sponsor/16/website) -[![](https://opencollective.com/yourls/sponsor/17/avatar.svg)](https://opencollective.com/yourls/sponsor/17/website) -[![](https://opencollective.com/yourls/sponsor/18/avatar.svg)](https://opencollective.com/yourls/sponsor/18/website) -[![](https://opencollective.com/yourls/sponsor/19/avatar.svg)](https://opencollective.com/yourls/sponsor/19/website) +[![](https://opencollective.com/yourls/sponsor/0/avatar.svg)](https://opencollective.com/yourls/sponsor/0/website) [![](https://opencollective.com/yourls/sponsor/1/avatar.svg)](https://opencollective.com/yourls/sponsor/1/website) [![](https://opencollective.com/yourls/sponsor/2/avatar.svg)](https://opencollective.com/yourls/sponsor/2/website) [![](https://opencollective.com/yourls/sponsor/3/avatar.svg)](https://opencollective.com/yourls/sponsor/3/website) [![](https://opencollective.com/yourls/sponsor/4/avatar.svg)](https://opencollective.com/yourls/sponsor/4/website) [![](https://opencollective.com/yourls/sponsor/5/avatar.svg)](https://opencollective.com/yourls/sponsor/5/website) [![](https://opencollective.com/yourls/sponsor/6/avatar.svg)](https://opencollective.com/yourls/sponsor/6/website) [![](https://opencollective.com/yourls/sponsor/7/avatar.svg)](https://opencollective.com/yourls/sponsor/7/website) [![](https://opencollective.com/yourls/sponsor/8/avatar.svg)](https://opencollective.com/yourls/sponsor/8/website) [![](https://opencollective.com/yourls/sponsor/9/avatar.svg)](https://opencollective.com/yourls/sponsor/9/website) [![](https://opencollective.com/yourls/sponsor/10/avatar.svg)](https://opencollective.com/yourls/sponsor/10/website) [![](https://opencollective.com/yourls/sponsor/11/avatar.svg)](https://opencollective.com/yourls/sponsor/11/website) [![](https://opencollective.com/yourls/sponsor/12/avatar.svg)](https://opencollective.com/yourls/sponsor/12/website) [![](https://opencollective.com/yourls/sponsor/13/avatar.svg)](https://opencollective.com/yourls/sponsor/13/website) [![](https://opencollective.com/yourls/sponsor/14/avatar.svg)](https://opencollective.com/yourls/sponsor/14/website) [![](https://opencollective.com/yourls/sponsor/15/avatar.svg)](https://opencollective.com/yourls/sponsor/15/website) [![](https://opencollective.com/yourls/sponsor/16/avatar.svg)](https://opencollective.com/yourls/sponsor/16/website) [![](https://opencollective.com/yourls/sponsor/17/avatar.svg)](https://opencollective.com/yourls/sponsor/17/website) [![](https://opencollective.com/yourls/sponsor/18/avatar.svg)](https://opencollective.com/yourls/sponsor/18/website) [![](https://opencollective.com/yourls/sponsor/19/avatar.svg)](https://opencollective.com/yourls/sponsor/19/website) +## 许可证 -## License - -Free software. Do whatever the hell you want with it. -YOURLS is released under the [MIT license](LICENSE). +自由软件。您可以随意使用它。 +YOURLS 采用 [MIT 许可证](LICENSE) 发布。 \ No newline at end of file diff --git a/apps/yourls/README_en.md b/apps/yourls/README_en.md new file mode 100644 index 000000000..b5f0801fe --- /dev/null +++ b/apps/yourls/README_en.md @@ -0,0 +1,116 @@ +# 使用说明 + +- 初始化设置 + +注意:首次实例化时,访问根文件夹将生成错误。通过路径 `/admin/` 访问 `YOURLS` 管理界面。 + +假如外部访问地址设置为`http://localhost:40037`, + +那么需要访问`http://localhost:40037/admin/`进行初始化设置 + + +# 原始相关 + +

+ + YOURLS + +

+ +> Your Own URL Shortener + +![CI](https://github.com/YOURLS/YOURLS/workflows/CI/badge.svg) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/YOURLS/YOURLS/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/YOURLS/YOURLS/?branch=master) ![PHP Version Support](https://img.shields.io/packagist/php-v/yourls/yourls) [![Packagist](https://img.shields.io/packagist/v/yourls/yourls.svg)](https://packagist.org/packages/yourls/yourls) [![OpenCollective](https://opencollective.com/yourls/backers/badge.svg)](https://opencollective.com/yourls#contributors) +[![OpenCollective](https://opencollective.com/yourls/sponsors/badge.svg)](#sponsors) + +**YOURLS** is a set of PHP scripts that will allow you to run Your Own URL Shortener, on **your** server. You'll have full control over your data, detailed stats, analytics, plugins, and more. It's free and open-source. + +## Quick Start + +Get YOURLS : +* Download the latest [release](https://github.com/YOURLS/YOURLS/releases) +* Using Composer? You can simply `composer create-project yourls/yourls .` in an empty directory. + +Install YOURLS: +* Read [yourls.org](https://yourls.org) for starters +* The complete documentation is on [docs.yourls.org](https://docs.yourls.org) and contains everything from beginners to experts. + +## Community news, tips and tricks + +* Read and subscribe to the [The Official YOURLS Blog](http://blog.yourls.org) +* Check what the user community makes: plugins, tools, guides and more on [Awesome YOURLS](https://github.com/YOURLS/awesome-yourls) +* Engage users and ask for help in our [community discussions](https://github.com/YOURLS/YOURLS/discussions) +* Keep track of development: "Star" and "Watch" this project, follow [commit messages](https://github.com/YOURLS/YOURLS/commits/master) + +## Contributing + +Feature suggestion? Bug to report? + +__Before opening any issue, please search for existing [issues](https://github.com/YOURLS/YOURLS/issues) (open and closed) and read the [Contributing Guidelines](https://github.com/YOURLS/.github/blob/master/CONTRIBUTING.md).__ + + +## Backers + +Do you use and enjoy YOURLS? [Become a backer](https://opencollective.com/yourls#backer) and show your support to our open source project. + +[![](https://opencollective.com/yourls/backer/0/avatar.svg)](https://opencollective.com/yourls/backer/0/website) +[![](https://opencollective.com/yourls/backer/1/avatar.svg)](https://opencollective.com/yourls/backer/1/website) +[![](https://opencollective.com/yourls/backer/2/avatar.svg)](https://opencollective.com/yourls/backer/2/website) +[![](https://opencollective.com/yourls/backer/3/avatar.svg)](https://opencollective.com/yourls/backer/3/website) +[![](https://opencollective.com/yourls/backer/4/avatar.svg)](https://opencollective.com/yourls/backer/4/website) +[![](https://opencollective.com/yourls/backer/5/avatar.svg)](https://opencollective.com/yourls/backer/5/website) +[![](https://opencollective.com/yourls/backer/6/avatar.svg)](https://opencollective.com/yourls/backer/6/website) +[![](https://opencollective.com/yourls/backer/7/avatar.svg)](https://opencollective.com/yourls/backer/7/website) +[![](https://opencollective.com/yourls/backer/8/avatar.svg)](https://opencollective.com/yourls/backer/8/website) +[![](https://opencollective.com/yourls/backer/9/avatar.svg)](https://opencollective.com/yourls/backer/9/website) +[![](https://opencollective.com/yourls/backer/10/avatar.svg)](https://opencollective.com/yourls/backer/10/website) +[![](https://opencollective.com/yourls/backer/11/avatar.svg)](https://opencollective.com/yourls/backer/11/website) +[![](https://opencollective.com/yourls/backer/12/avatar.svg)](https://opencollective.com/yourls/backer/12/website) +[![](https://opencollective.com/yourls/backer/13/avatar.svg)](https://opencollective.com/yourls/backer/13/website) +[![](https://opencollective.com/yourls/backer/14/avatar.svg)](https://opencollective.com/yourls/backer/14/website) +[![](https://opencollective.com/yourls/backer/15/avatar.svg)](https://opencollective.com/yourls/backer/15/website) +[![](https://opencollective.com/yourls/backer/16/avatar.svg)](https://opencollective.com/yourls/backer/16/website) +[![](https://opencollective.com/yourls/backer/17/avatar.svg)](https://opencollective.com/yourls/backer/17/website) +[![](https://opencollective.com/yourls/backer/18/avatar.svg)](https://opencollective.com/yourls/backer/18/website) +[![](https://opencollective.com/yourls/backer/19/avatar.svg)](https://opencollective.com/yourls/backer/19/website) +[![](https://opencollective.com/yourls/backer/20/avatar.svg)](https://opencollective.com/yourls/backer/20/website) +[![](https://opencollective.com/yourls/backer/21/avatar.svg)](https://opencollective.com/yourls/backer/21/website) +[![](https://opencollective.com/yourls/backer/22/avatar.svg)](https://opencollective.com/yourls/backer/22/website) +[![](https://opencollective.com/yourls/backer/23/avatar.svg)](https://opencollective.com/yourls/backer/23/website) +[![](https://opencollective.com/yourls/backer/24/avatar.svg)](https://opencollective.com/yourls/backer/24/website) +[![](https://opencollective.com/yourls/backer/25/avatar.svg)](https://opencollective.com/yourls/backer/25/website) +[![](https://opencollective.com/yourls/backer/26/avatar.svg)](https://opencollective.com/yourls/backer/26/website) +[![](https://opencollective.com/yourls/backer/27/avatar.svg)](https://opencollective.com/yourls/backer/27/website) +[![](https://opencollective.com/yourls/backer/28/avatar.svg)](https://opencollective.com/yourls/backer/28/website) +[![](https://opencollective.com/yourls/backer/29/avatar.svg)](https://opencollective.com/yourls/backer/29/website) + + +## Sponsors + +Does your company use YOURLS? Ask your manager or marketing team if your company would be interested in supporting our project. Your company logo will show here. Help support our open-source development efforts by [becoming a sponsor](https://opencollective.com/yourls). + +[![](https://opencollective.com/yourls/sponsor/0/avatar.svg)](https://opencollective.com/yourls/sponsor/0/website) +[![](https://opencollective.com/yourls/sponsor/1/avatar.svg)](https://opencollective.com/yourls/sponsor/1/website) +[![](https://opencollective.com/yourls/sponsor/2/avatar.svg)](https://opencollective.com/yourls/sponsor/2/website) +[![](https://opencollective.com/yourls/sponsor/3/avatar.svg)](https://opencollective.com/yourls/sponsor/3/website) +[![](https://opencollective.com/yourls/sponsor/4/avatar.svg)](https://opencollective.com/yourls/sponsor/4/website) +[![](https://opencollective.com/yourls/sponsor/5/avatar.svg)](https://opencollective.com/yourls/sponsor/5/website) +[![](https://opencollective.com/yourls/sponsor/6/avatar.svg)](https://opencollective.com/yourls/sponsor/6/website) +[![](https://opencollective.com/yourls/sponsor/7/avatar.svg)](https://opencollective.com/yourls/sponsor/7/website) +[![](https://opencollective.com/yourls/sponsor/8/avatar.svg)](https://opencollective.com/yourls/sponsor/8/website) +[![](https://opencollective.com/yourls/sponsor/9/avatar.svg)](https://opencollective.com/yourls/sponsor/9/website) +[![](https://opencollective.com/yourls/sponsor/10/avatar.svg)](https://opencollective.com/yourls/sponsor/10/website) +[![](https://opencollective.com/yourls/sponsor/11/avatar.svg)](https://opencollective.com/yourls/sponsor/11/website) +[![](https://opencollective.com/yourls/sponsor/12/avatar.svg)](https://opencollective.com/yourls/sponsor/12/website) +[![](https://opencollective.com/yourls/sponsor/13/avatar.svg)](https://opencollective.com/yourls/sponsor/13/website) +[![](https://opencollective.com/yourls/sponsor/14/avatar.svg)](https://opencollective.com/yourls/sponsor/14/website) +[![](https://opencollective.com/yourls/sponsor/15/avatar.svg)](https://opencollective.com/yourls/sponsor/15/website) +[![](https://opencollective.com/yourls/sponsor/16/avatar.svg)](https://opencollective.com/yourls/sponsor/16/website) +[![](https://opencollective.com/yourls/sponsor/17/avatar.svg)](https://opencollective.com/yourls/sponsor/17/website) +[![](https://opencollective.com/yourls/sponsor/18/avatar.svg)](https://opencollective.com/yourls/sponsor/18/website) +[![](https://opencollective.com/yourls/sponsor/19/avatar.svg)](https://opencollective.com/yourls/sponsor/19/website) + + +## License + +Free software. Do whatever the hell you want with it. +YOURLS is released under the [MIT license](LICENSE). diff --git a/apps/zabbix-agent/README.md b/apps/zabbix-agent/README.md index 2035c7bda..486fdba44 100644 --- a/apps/zabbix-agent/README.md +++ b/apps/zabbix-agent/README.md @@ -1,32 +1,19 @@ -Zabbix is free software, released under the GNU General Public License -(GPL) version 2. +Zabbix 是自由软件,在 GNU 通用公共许可证(GPL)版本 2 下发布。 -You can redistribute it and/or modify it under the terms of the GNU GPL -as published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. +您可以根据自由软件基金会发布的 GNU GPL 的条款自由分发和/或修改它;要么是该许可证的第 2 版,要么(由您选择)任何后来的版本。 -The formal terms of the GPL can be found at -http://www.fsf.org/licenses/ . +GPL 的正式条款可以在 [http://www.fsf.org/licenses/](http://www.fsf.org/licenses/) 查看。 -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. +该程序是以希望它有用为基础进行分发的,但不附带任何担保,甚至不附带适销性或特定用途适用性的暗示担保。请参阅 GNU 通用公共许可证以获取更多信息。 -Exception for linking with OpenSSL +OpenSSL 链接例外 -In addition, as a special exception, we give permission to link the code -of Zabbix with the OpenSSL project OpenSSL library (or with modified -versions of it that use the same license as the OpenSSL library), and -distribute the linked executables. +此外,作为特别例外,我们允许将 Zabbix 的代码与 OpenSSL 项目 OpenSSL 库(或使用与 OpenSSL 库相同许可证的 OpenSSL 库的修改版本)链接,并分发链接后的可执行文件。 -Please see https://www.zabbix.com/ for detailed information about Zabbix. +请参见 [https://www.zabbix.com/](https://www.zabbix.com/) 以获取有关 Zabbix 的详细信息。 -On-line Zabbix documentation is available at -https://www.zabbix.com/documentation/6.2/manual/ . +在线 Zabbix 文档可在 [https://www.zabbix.com/documentation/6.2/manual/](https://www.zabbix.com/documentation/6.2/manual/) . -Zabbix installation instructions can be found at -https://www.zabbix.com/documentation/6.2/manual/installation/ . +Zabbix 安装指南可在 [https://www.zabbix.com/documentation/6.2/manual/installation/](https://www.zabbix.com/documentation/6.2/manual/installation/) . -If you are installing Zabbix from packages the instructions can be found at -https://www.zabbix.com/documentation/6.2/manual/installation/install_from_packages/ . \ No newline at end of file +如果你是从包安装 Zabbix,相关说明可以在 [https://www.zabbix.com/documentation/6.2/manual/installation/install\_from\_packages/](https://www.zabbix.com/documentation/6.2/manual/installation/install_from_packages/) 查看。 \ No newline at end of file diff --git a/apps/zabbix-agent/README_en.md b/apps/zabbix-agent/README_en.md new file mode 100644 index 000000000..2035c7bda --- /dev/null +++ b/apps/zabbix-agent/README_en.md @@ -0,0 +1,32 @@ +Zabbix is free software, released under the GNU General Public License +(GPL) version 2. + +You can redistribute it and/or modify it under the terms of the GNU GPL +as published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The formal terms of the GPL can be found at +http://www.fsf.org/licenses/ . + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +Exception for linking with OpenSSL + +In addition, as a special exception, we give permission to link the code +of Zabbix with the OpenSSL project OpenSSL library (or with modified +versions of it that use the same license as the OpenSSL library), and +distribute the linked executables. + +Please see https://www.zabbix.com/ for detailed information about Zabbix. + +On-line Zabbix documentation is available at +https://www.zabbix.com/documentation/6.2/manual/ . + +Zabbix installation instructions can be found at +https://www.zabbix.com/documentation/6.2/manual/installation/ . + +If you are installing Zabbix from packages the instructions can be found at +https://www.zabbix.com/documentation/6.2/manual/installation/install_from_packages/ . \ No newline at end of file diff --git a/apps/zabbix-server/README.md b/apps/zabbix-server/README.md index 949780c4e..549c7a41e 100644 --- a/apps/zabbix-server/README.md +++ b/apps/zabbix-server/README.md @@ -1,6 +1,6 @@ # 使用说明 -- 默认账户与密码(注意大小写) +* 默认账户与密码(注意大小写) ``` username:Admin @@ -17,41 +17,27 @@ password:zabbix 但是实际能够运行。如有错误,期待反馈。 -- 带`&mysql`版本,会安装符合`Zabbix`格式要求的数据库版本 -- 不带`&mysql`的版本,默认调用面板安装的数据库 - +* 带`&mysql`版本,会安装符合`Zabbix`格式要求的数据库版本 +* 不带`&mysql`的版本,默认调用面板安装的数据库 # 原始相关 -Zabbix is free software, released under the GNU General Public License -(GPL) version 2. +Zabbix 是自由软件,采用 GNU 通用公共许可证(GPL)版本 2 发布。 -You can redistribute it and/or modify it under the terms of the GNU GPL -as published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. +您可以根据自由软件基金会发布的 GNU GPL 的条款自由分发和/或修改它;您可以使用版本 2 的许可证,或者(按您的选择)使用该许可证的任何后续版本。 -The formal terms of the GPL can be found at -http://www.fsf.org/licenses/ . +GPL 的正式条款可以在 [http://www.fsf.org/licenses/](http://www.fsf.org/licenses/) 查看。 -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. +该程序是以希望它会对你有用为基础进行分发的,但 是没有任何担保;甚至包括适销性或特定用途适用性的隐含担保。更多详情请参见 GNU 通用公共许可证。 -Exception for linking with OpenSSL +OpenSSL 链接例外 -In addition, as a special exception, we give permission to link the code -of Zabbix with the OpenSSL project OpenSSL library (or with modified -versions of it that use the same license as the OpenSSL library), and -distribute the linked executables. +此外,作为特殊例外,我们允许将 Zabbix 的代码与 OpenSSL 项目 OpenSSL 库(或使用与 OpenSSL 库相同许可证的 OpenSSL 库的修改版本)链接,并分发链接后的可执行文件。 -Please see https://www.zabbix.com/ for detailed information about Zabbix. +请参见 [https://www.zabbix.com/](https://www.zabbix.com/) 获取有关 Zabbix 的详细信息。 -On-line Zabbix documentation is available at -https://www.zabbix.com/documentation/6.2/manual/ . +在线 Zabbix 文档可在 [https://www.zabbix.com/documentation/6.2/manual/](https://www.zabbix.com/documentation/6.2/manual/) . -Zabbix installation instructions can be found at -https://www.zabbix.com/documentation/6.2/manual/installation/ . +Zabbix 安装指南可在 [https://www.zabbix.com/documentation/6.2/manual/installation/](https://www.zabbix.com/documentation/6.2/manual/installation/) . -If you are installing Zabbix from packages the instructions can be found at -https://www.zabbix.com/documentation/6.2/manual/installation/install_from_packages/ . \ No newline at end of file +如果你是从包安装 Zabbix,相关说明可以在 [https://www.zabbix.com/documentation/6.2/manual/installation/install\_from\_packages/](https://www.zabbix.com/documentation/6.2/manual/installation/install_from_packages/) 查看 。 \ No newline at end of file diff --git a/apps/zabbix-server/README_en.md b/apps/zabbix-server/README_en.md new file mode 100644 index 000000000..949780c4e --- /dev/null +++ b/apps/zabbix-server/README_en.md @@ -0,0 +1,57 @@ +# 使用说明 + +- 默认账户与密码(注意大小写) + +``` +username:Admin +password:zabbix +``` + +## 注意事项 + +**注意:默认版本是Zabbix-MySQL版本的,Zabbix 6.X的需求环境MySQL8** + +**`postgresql`的版本,资源占用会小很多。** + +商店自带的`MySQL 8`的数据库格式设置与`Zabbix`需求有所不同,`zabbix-server-mysql`容器会提示存在错误。 + +但是实际能够运行。如有错误,期待反馈。 + +- 带`&mysql`版本,会安装符合`Zabbix`格式要求的数据库版本 +- 不带`&mysql`的版本,默认调用面板安装的数据库 + + +# 原始相关 + +Zabbix is free software, released under the GNU General Public License +(GPL) version 2. + +You can redistribute it and/or modify it under the terms of the GNU GPL +as published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The formal terms of the GPL can be found at +http://www.fsf.org/licenses/ . + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +Exception for linking with OpenSSL + +In addition, as a special exception, we give permission to link the code +of Zabbix with the OpenSSL project OpenSSL library (or with modified +versions of it that use the same license as the OpenSSL library), and +distribute the linked executables. + +Please see https://www.zabbix.com/ for detailed information about Zabbix. + +On-line Zabbix documentation is available at +https://www.zabbix.com/documentation/6.2/manual/ . + +Zabbix installation instructions can be found at +https://www.zabbix.com/documentation/6.2/manual/installation/ . + +If you are installing Zabbix from packages the instructions can be found at +https://www.zabbix.com/documentation/6.2/manual/installation/install_from_packages/ . \ No newline at end of file diff --git a/apps/zerotier-moon/README.md b/apps/zerotier-moon/README.md index e5f1f7255..f5f2ad967 100644 --- a/apps/zerotier-moon/README.md +++ b/apps/zerotier-moon/README.md @@ -1,171 +1,173 @@ -ZeroTier - Global Area Networking -====== +# ZeroTier - 全球区域网络 -*This document is written for a software developer audience. For information on using ZeroTier, see the: [Website](https://www.zerotier.com), [Documentation Site](https://docs.zerotier.com), and [Discussion Forum](https://discuss.zerotier.com).* +*本文档面向软件开发者读者。有关使用 ZeroTier 的信息,请参阅: [官方网站](https://www.zerotier.com) 、 [文档站点](https://docs.zerotier.com) 和 [讨论论坛](https://discuss.zerotier.com) 。* -ZeroTier is a smart programmable Ethernet switch for planet Earth. It allows all networked devices, VMs, containers, and applications to communicate as if they all reside in the same physical data center or cloud region. +ZeroTier 是一个智能可编程以太网交换机,适用于地球。它允许所有网络设备、虚拟机、容器和应用程序像它们位于同一个物理数据中心或云区域一样进行通信。 -This is accomplished by combining a cryptographically addressed and secure peer to peer network (termed VL1) with an Ethernet emulation layer somewhat similar to VXLAN (termed VL2). Our VL2 Ethernet virtualization layer includes advanced enterprise SDN features like fine grained access control rules for network micro-segmentation and security monitoring. +这通过结合一个加密地址和安全的对等网络(称为 VL1)以及一个类似于 VXLAN 的以太网仿真层(称为 VL2)来实现。我们的 VL2 以太网虚拟化层包括精细粒度的访问控制规则等先进的企业级 SDN 功能,用于网络微分割和安全监控。 -All ZeroTier traffic is encrypted end-to-end using secret keys that only you control. Most traffic flows peer to peer, though we offer free (but slow) relaying for users who cannot establish peer to peer connections. +所有 ZeroTier 流量均使用仅您控制的秘密密钥进行端到端加密。大多数流量通过对等方直接传输,尽管我们为无法建立对等连接的用户提供免费(但速度较慢)的中继服务。 -The goals and design principles of ZeroTier are inspired by among other things the original [Google BeyondCorp](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43231.pdf) paper and the [Jericho Forum](https://en.wikipedia.org/wiki/Jericho_Forum) with its notion of "deperimeterization." +ZeroTier 的目标和设计原则受到诸如原始的 [Google BeyondCorp](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43231.pdf) 论文和 [Jericho Forum](https://en.wikipedia.org/wiki/Jericho_Forum) 及其“去边界化”概念等众多因素的启发。 -Visit [ZeroTier's site](https://www.zerotier.com/) for more information and [pre-built binary packages](https://www.zerotier.com/download/). Apps for Android and iOS are available for free in the Google Play and Apple app stores. +请访问 [ZeroTier 的网站](https://www.zerotier.com/)获取更多信息和[预构建的二进制包](https://www.zerotier.com/download/) 。Android 和 iOS 的应用程序可在 Google Play 和 Apple 应用商店免费下载。 -ZeroTier is licensed under the [BSL version 1.1](https://mariadb.com/bsl11/). See [LICENSE.txt](https://github.com/zerotier/ZeroTierOne/blob/dev/LICENSE.txt) and the [ZeroTier pricing page](https://www.zerotier.com/pricing) for details. ZeroTier is free to use internally in businesses and academic institutions and for non-commercial purposes. Certain types of commercial use such as building closed-source apps and devices based on ZeroTier or offering ZeroTier network controllers and network management as a SaaS service require a commercial license. +ZeroTier 采用 [BSL 版本 1.1](https://mariadb.com/bsl11/) 许可。详情请参阅 [LICENSE.txt](https://github.com/zerotier/ZeroTierOne/blob/dev/LICENSE.txt) 和 [ZeroTier 的定价页面](https://www.zerotier.com/pricing) 。ZeroTier 在企业内部和学术机构中免费使用,适用于非商业用途。基于 ZeroTier 构建封闭源代码的应用程序和设备,或提供 ZeroTier 网络控制器和网络管理作为 SaaS 服务的某些商业用途需要商业许可。 -A small amount of third party code is also included in ZeroTier and is not subject to our BSL license. See [AUTHORS.md](https://github.com/zerotier/ZeroTierOne/blob/dev/AUTHORS.md) for a list of third party code, where it is included, and the licenses that apply to it. All of the third party code in ZeroTier is liberally licensed (MIT, BSD, Apache, public domain, etc.). +ZeroTier 中还包含少量第三方代码,并不受我们的 BSL 许可协议约束。请参见 [AUTHORS.md](https://github.com/zerotier/ZeroTierOne/blob/dev/AUTHORS.md) 以获取第三方代码列表、它们的位置以及适用的许可协议。ZeroTier 中的所有第三方代码均采用宽松许可(MIT、BSD、Apache、公共领域等)。 -### Getting Started +### 快速入门 -Everything in the ZeroTier world is controlled by two types of identifier: 40-bit/10-digit *ZeroTier addresses* and 64-bit/16-digit *network IDs*. These identifiers are easily distinguished by their length. A ZeroTier address identifies a node or "device" (laptop, phone, server, VM, app, etc.) while a network ID identifies a virtual Ethernet network that can be joined by devices. +ZeroTier 世界中的所有内容均由两种类型的标识符控制:40 位/10 位的 *ZeroTier 地址*和 64 位/16 位的*网络 ID*。这些标识符通过长度很容易区分。ZeroTier 地址标识一个节点或“设备”(笔记本电脑、手机、服务器、虚拟机、应用程序等),而网络 ID 标识一个虚拟以太网网络,设备可以加入该网络。 -ZeroTier addresses can be thought of as port numbers on an enormous planet-wide enterprise Ethernet smart switch supporting VLANs. Network IDs are VLAN IDs to which these ports may be assigned. A single port can be assigned to more than one VLAN. +ZeroTier 地址可以被视为一个巨大的全球企业以太网智能交换机上的端口号,该交换机支持 VLAN。网络 ID 是这些端口可以分配的 VLAN ID。一个端口可以分配给多个 VLAN。 -A ZeroTier address looks like `8056c2e21c` and a network ID looks like `8056c2e21c000001`. Network IDs are composed of the ZeroTier address of that network's primary controller and an arbitrary 24-bit ID that identifies the network on this controller. Network controllers are roughly analogous to SDN controllers in SDN protocols like [OpenFlow](https://en.wikipedia.org/wiki/OpenFlow), though as with the analogy between VXLAN and VL2 this should not be read to imply that the protocols or design are the same. You can use our convenient and inexpensive SaaS hosted controllers at [my.zerotier.com](https://my.zerotier.com/) or [run your own controller](controller/) if you don't mind messing around with JSON configuration files or writing scripts to do so. +一个 ZeroTier 地址看起来像 \``8056c2e21c`\`,而一个网络 ID 看起来像 \``8056c2e21c000001`\`。网络 ID 由该网络主控制器的 ZeroTier 地址和一个任意的 24 位 ID 组成,该 ID 用于标识此控制器上的网络。网络控制器大致类似于 SDN 协议(如 OpenFlow)中的 SDN 控制器,尽管像 VXLAN 与 VL2 之间的类比一样,这不应被解读为意味着协议或设计相同。你可以使用我们方便且经济实惠的基于云的服务控制器访问 [my.zerotier.com](https://my.zerotier.com/),或者如果你愿意处理 JSON 配置文件或编写脚本,也可以自己运行控制器。 -### Project Layout +### 项目布局 -The base path contains the ZeroTier One service main entry point (`one.cpp`), self test code, makefiles, etc. +基础路径包含 ZeroTier One 服务的主要入口点(`one.cpp`)、自我测试代码、Makefile 等。 - - `artwork/`: icons, logos, etc. - - `attic/`: old stuff and experimental code that we want to keep around for reference. - - `controller/`: the reference network controller implementation, which is built and included by default on desktop and server build targets. - - `debian/`: files for building Debian packages on Linux. - - `doc/`: manual pages and other documentation. - - `ext/`: third party libraries, binaries that we ship for convenience on some platforms (Mac and Windows), and installation support files. - - `include/`: include files for the ZeroTier core. - - `java/`: a JNI wrapper used with our Android mobile app. (The whole Android app is not open source but may be made so in the future.) - - `node/`: the ZeroTier virtual Ethernet switch core, which is designed to be entirely separate from the rest of the code and able to be built as a stand-alone OS-independent library. Note to developers: do not use C++11 features in here, since we want this to build on old embedded platforms that lack C++11 support. C++11 can be used elsewhere. - - `osdep/`: code to support and integrate with OSes, including platform-specific stuff only built for certain targets. - - `rule-compiler/`: JavaScript rules language compiler for defining network-level rules. - - `service/`: the ZeroTier One service, which wraps the ZeroTier core and provides VPN-like connectivity to virtual networks for desktops, laptops, servers, VMs, and containers. - - `windows/`: Visual Studio solution files, Windows service code, and the Windows task bar app UI. - - `zeroidc/`: OIDC implementation used by ZeroTier service to log into SSO-enabled networks. (This part is written in Rust, and more Rust will be appearing in this repository in the future.) +* `artwork/`:图标、徽标等。 +* `attic/`: 旧的代码和实验性代码,我们希望保留这些代码以便参考。 +* `controller/`: 参考网络控制器的实现,这是在桌面和服务器构建目标中默认构建和包含的。 +* `debian/`: 用于在 Linux 上构建 Debian 包的文件。 +* `doc/`: 手册页和其他文档。 +* `ext/`: 第三方库,我们在某些平台(Mac 和 Windows)上提供的方便使用的二进制文件,以及安装支持文件。 +* `include/`: ZeroTier 核心的头文件。 +* `java/`: 用于我们的 Android 移动应用的 JNI 封装。整个 Android 应用目前不是开源的,但未来可能会开源。 +* `node/`: ZeroTier 虚拟以太网交换机的核心代码,设计为完全独立于其他代码,并能够作为独立的跨平台库进行构建。开发人员注意:不要在这里使用 C++11 特性,因为我们希望这个代码能够在缺乏 C++11 支持的旧嵌入式平台上进行构建。C++11 可以在其他地方使用。 +* `osdep/`: 支持和集成到操作系统中的代码,包括仅针对某些目标构建的平台特定代码。 +* `rule-compiler/`: 用于定义网络级别规则的 JavaScript 规则语言编译器。 +* `service/`: ZeroTier One 服务,该服务封装了 ZeroTier 核心,并为桌面、笔记本、服务器、虚拟机和容器提供类似虚拟网络的连接性。 +* `windows/`: Visual Studio 项目文件、Windows 服务代码以及 Windows 任务栏应用程序 UI。 +* `zeroidc/`: ZeroTier 服务用于登录 SSO 启用网络的 OIDC 实现。(这部分是用 Rust 编写的,未来这个仓库中还会出现更多的 Rust 代码。) -### Build and Platform Notes +### 构建和平台注意事项 -To build on Mac and Linux just type `make`. On FreeBSD and OpenBSD `gmake` (GNU make) is required and can be installed from packages or ports. For Windows there is a Visual Studio solution in `windows/`. +在 Mac 和 Linux 上构建只需输入 `make`。在 FreeBSD 和 OpenBSD 上需要 `gmake`(GNU make),可以从包或 ports 安装。对于 Windows,在 `windows/` 目录中有 Visual Studio 解决方案。 - - **Mac** - - Xcode command line tools for macOS 10.13 or newer are required. - - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. - - **Linux** - - The minimum compiler versions required are GCC/G++ 4.9.3 or CLANG/CLANG++ 3.4.2. (Install `clang` on CentOS 7 as G++ is too old.) - - Linux makefiles automatically detect and prefer clang/clang++ if present as it produces smaller and slightly faster binaries in most cases. You can override by supplying CC and CXX variables on the make command line. - - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. - - **Windows** - - Visual Studio 2022 on Windows 10 or newer. - - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. - - **FreeBSD** - - GNU make is required. Type `gmake` to build. - - `binutils` is required. Type `pkg install binutils` to install. - - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. - - **OpenBSD** - - There is a limit of four network memberships on OpenBSD as there are only four tap devices (`/dev/tap0` through `/dev/tap3`). - - GNU make is required. Type `gmake` to build. - - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. +* **Mac** + * macOS 10.13 或更新版本所需的 Xcode 命令行工具是必需的。 + * x86\_64 和 ARM64 目标所需的 Rust *如果构建时启用了 SSO*。 +* **Linux** + * 所需的最小编译器版本是 GCC/G++ 4.9.3 或 CLANG/CLANG++ 3.4.2。(在 CentOS 7 上安装 `clang`,因为 G++ 过于陈旧。) + * Linux makefile 会自动检测并优先使用 clang/clang++,因为在大多数情况下它会产生更小且稍快的二进制文件。您可以通过在 make 命令行中提供 CC 和 CXX 变量来覆盖此设置。 + * Rust 用于 x86\_64 和 ARM64 目标 *如果构建时启用了 SSO*。 +* **Windows** + * Visual Studio 2022 在 Windows 10 或更新版本上。 + * Rust 用于 x86\_64 和 ARM64 目标 *如果构建时启用了 SSO*。 +* **FreeBSD** + * GNU make 是必需的。输入 `gmake` 来编译。 + * `binutils` 是必需的。输入 `pkg install binutils` 来安装。 + * x86\_64 和 ARM64 目标需要 Rust, *如果构建时启用了 SSO*。 +* **OpenBSD** + * OpenBSD 上最多只能有四个网络成员身份,因为只有四个 tap 设备(/dev/tap0 至 /dev/tap3)。 + * 需要 GNU make。输入 gmake 来编译。 + * x86\_64 和 ARM64 目标需要 Rust,如果构建时启用了 SSO。 -Typing `make selftest` will build a *zerotier-selftest* binary which unit tests various internals and reports on a few aspects of the build environment. It's a good idea to try this on novel platforms or architectures. +输入 make selftest 将构建一个 zerotier-selftest 可执行文件,该文件对各种内部组件进行单元测试,并报告构建环境的几个方面。在新的平台或架构上尝试这个是个好主意。 -### Running +### 运行 -Running *zerotier-one* with `-h` option will show help. +运行 \`zerotier-one\` 并使用 \`-h\` 选项可以显示帮助信息。 -On Linux and BSD, if you built from source, you can start the service with: +在 Linux 和 BSD 上,如果你是从源代码编译的,可以使用以下命令启动服务: - sudo ./zerotier-one -d +``` +sudo ./zerotier-one -d +``` -On most distributions, macOS, and Windows, the installer will start the service and set it up to start on boot. +在大多数发行版、macOS 和 Windows 上,安装程序会启动服务并设置为开机自启动。 -A home folder for your system will automatically be created. +系统会自动为你创建一个主文件夹。 -The service is controlled via the JSON API, which by default is available at 127.0.0.1 port 9993. We include a *zerotier-cli* command line utility to make API calls for standard things like joining and leaving networks. The *authtoken.secret* file in the home folder contains the secret token for accessing this API. See [service/README.md](service/README.md) for API documentation. +该服务通过 JSON API 控制, 默认情况下 API 可以在 127.0.0.1 的 9993 端口访问。我们提供了一个 *zerotier-cli* 命令行工具,用于执行标准操作(如加入和退出网络)的 API 调用。主文件夹中的 *authtoken.secret* 文件包含了访问此 API 的密钥。请参阅 [service/README.md](service/README.md) 获取 API 文档。 -Here's where home folders live (by default) on each OS: +这是每个操作系统中默认的主文件夹位置: - * **Linux**: `/var/lib/zerotier-one` - * **FreeBSD** / **OpenBSD**: `/var/db/zerotier-one` - * **Mac**: `/Library/Application Support/ZeroTier/One` - * **Windows**: `\ProgramData\ZeroTier\One` (That's the default. The base 'shared app data' folder might be different if Windows is installed with a non-standard drive letter assignment or layout.) +* **Linux**: `/var/lib/zerotier-one` +* FreeBSD / OpenBSD: /var/db/zerotier-one +* Mac: `/Library/Application Support/ZeroTier/One` +* Windows: \\ProgramData\\ZeroTier\\One (That's the default. The base 'shared app data' folder might be different if Windows is installed with a non-standard drive letter assignment or layout.) -### Basic Troubleshooting +### 基本排查问题 -For most users, it just works. +对于大多数用户来说,它就是这么工作的。 -If you are running a local system firewall, we recommend adding a rules permitting zerotier. If you installed binaries for Windows this should be done automatically. Other platforms might require manual editing of local firewall rules depending on your configuration. +如果你正在运行本地系统防火墙,我们建议添加允许 zerotier 的规则。如果你在 Windows 上安装了二进制文件,这应该会自动完成。其他平台可能需要根据你的配置手动编辑本地防火墙规则。 -See the [documentation site](https://docs.zerotier.com/zerotier/troubleshooting) for more information. +更多信息请参见 [文档站点](https://docs.zerotier.com/zerotier/troubleshooting) 。 -The Mac firewall can be found under "Security" in System Preferences. Linux has a variety of firewall configuration systems and tools. +Mac 的防火墙可以在系统偏好设置中的“安全性”下找到。Linux 有不同的防火墙配置系统和工具。 -On CentOS check `/etc/sysconfig/iptables` for IPTables rules. For other distributions consult your distribution's documentation. You'll also have to check the UIs or documentation for commercial third party firewall applications like Little Snitch (Mac), McAfee Firewall Enterprise (Windows), etc. if you are running any of those. Some corporate environments might have centrally managed firewall software, so you might also have to contact IT. +在 CentOS 中检查 `/etc/sysconfig/iptables` 以查看 IPTables 规则。对于其他发行版,请参阅相应发行版的文档。如果你正在运行 Little Snitch(Mac)或 McAfee Firewall Enterprise(Windows)等商业第三方防火墙应用程序,还需要检查其 UI 或文档。某些企业环境可能有集中管理的防火墙软件,因此你可能还需要联系 IT 部门。 -ZeroTier One peers will automatically locate each other and communicate directly over a local wired LAN *if UDP port 9993 inbound is open*. If that port is filtered, they won't be able to see each others' LAN announcement packets. If you're experiencing poor performance between devices on the same physical network, check their firewall settings. Without LAN auto-location peers must attempt "loopback" NAT traversal, which sometimes fails and in any case requires that every packet traverse your external router twice. +ZeroTier One 对等节点会自动互相定位并在本地有线局域网中直接通信 *如果 UDP 端口 9993 入站是开放的* 。如果该端口被过滤,它们将无法看到彼此的局域网公告包。如果你在同一物理网络中的设备之间遇到性能不佳的问题,请检查其防火墙设置。如果没有局域网自动定位,对等节点必须尝试“回环”NAT 穿越,这有时会失败,并且无论如何,每包都需要经过你的外部路由器两次。 -Users behind certain types of firewalls and "symmetric" NAT devices may not be able to connect to external peers directly at all. ZeroTier has limited support for port prediction and will *attempt* to traverse symmetric NATs, but this doesn't always work. If P2P connectivity fails you'll be bouncing UDP packets off our relay servers resulting in slower performance. Some NAT router(s) have a configurable NAT mode, and setting this to "full cone" will eliminate this problem. If you do this you may also see a magical improvement for things like VoIP phones, Skype, BitTorrent, WebRTC, certain games, etc., since all of these use NAT traversal techniques similar to ours. +某些类型防火墙和“对称”NAT 设备后的用户可能无法直接连接到外部节点。ZeroTier 支持有限的端口预测,并会尝试穿越对称 NAT,但这并不总是有效。如果 P2P 连接失败,UDP 数据包将通过我们的中继服务器进行转发,导致性能变慢。一些 NAT 路由器具有可配置的 NAT 模式,将其设置为“全锥型”可以解决这个问题。这样,您还可能在 VoIP 电话、Skype、BitTorrent、WebRTC、某些游戏等方面看到神奇的性能提升,因为所有这些都使用与我们相似的 NAT 穿越技术。 -If a firewall between you and the Internet blocks ZeroTier's UDP traffic, you will fall back to last-resort TCP tunneling to rootservers over port 443 (https impersonation). This will work almost anywhere but is *very slow* compared to UDP or direct peer to peer connectivity. +如果您与互联网之间的防火墙阻止了 ZeroTier 的 UDP 流量,您将退回到作为最后手段的通过端口 443(https 冒充)的 TCP 隧道连接到根服务器。这几乎可以在任何地方工作,但与 UDP 或直接 P2P 连接相比,速度非常慢。 -Additional help can be found in our [knowledge base](https://zerotier.atlassian.net/wiki/spaces/SD/overview). +您可以在我们的[知识库](https://zerotier.atlassian.net/wiki/spaces/SD/overview)中找到更多帮助。 ### Prometheus Metrics -Prometheus Metrics are available at the `/metrics` API endpoint. This endpoint is protected by an API key stored in `metricstoken.secret` to prevent unwanted information leakage. Information that could be gleaned from the metrics include joined networks and peers your instance is talking to. +Prometheus 指标在 `/metrics`API 端点处可用。该端点通过存储在 `metricstoken.secret` 中的 API 密钥进行保护,以防止意外信息泄露。从这些指标中可以获取到的信息包括你的实例正在与其通信的网络和节点。 -Access control is via the ZeroTier control interface itself and `metricstoken.secret`. This can be sent as a bearer auth token, via the `X-ZT1-Auth` HTTP header field, or appended to the URL as `?auth=`. You can see the current metrics via `cURL` with the following command: +访问控制通过 ZeroTier 控制接口本身和 `metricstoken.secret` 实现。可以将其作为 bearer auth 令牌发送,通过 `X-ZT1-Auth`HTTP 头字段,或者附加到 URL 中作为 `?auth=`。你可以通过 `cURL` 查看当前的指标,使用以下命令: - // Linux - curl -H "X-ZT1-Auth: $(sudo cat /var/lib/zerotier-one/metricstoken.secret)" http://localhost:9993/metrics +``` +// Linux +curl -H "X-ZT1-Auth: $(sudo cat /var/lib/zerotier-one/metricstoken.secret)" http://localhost:9993/metrics - // macOS - curl -H "X-XT1-Auth: $(sudo cat /Library/Application\ Support/ZeroTier/One/metricstoken.secret)" http://localhost:9993/metrics +// macOS +curl -H "X-XT1-Auth: $(sudo cat /Library/Application\ Support/ZeroTier/One/metricstoken.secret)" http://localhost:9993/metrics - // Windows PowerShell (Admin) - Invoke-RestMethod -Headers @{'X-ZT1-Auth' = "$(Get-Content C:\ProgramData\ZeroTier\One\metricstoken.secret)"; } -Uri http://localhost:9993/metrics +// Windows PowerShell (Admin) +Invoke-RestMethod -Headers @{'X-ZT1-Auth' = "$(Get-Content C:\ProgramData\ZeroTier\One\metricstoken.secret)"; } -Uri http://localhost:9993/metrics +``` -To configure a scrape job in Prometheus on the machine ZeroTier is running on, add this to your Prometheus `scrape_config`: +要在 ZeroTier 运行的机器上配置 Prometheus 的抓取作业,将以下内容添加到你的 Prometheus`scrape_config` 中: - - job_name: zerotier-one - honor_labels: true - scrape_interval: 15s - metrics_path: /metrics - static_configs: - - targets: - - 127.0.0.1:9993 - labels: - group: zerotier-one - node_id: $YOUR_10_CHARACTER_NODE_ID - authorization: - credentials: $YOUR_METRICS_TOKEN_SECRET +``` +- job_name: zerotier-one + honor_labels: true + scrape_interval: 15s + metrics_path: /metrics + static_configs: + - targets: + - 127.0.0.1:9993 + labels: + group: zerotier-one + node_id: $YOUR_10_CHARACTER_NODE_ID + authorization: + credentials: $YOUR_METRICS_TOKEN_SECRET +``` -If neither of these methods are desirable, it is probably possible to distribute metrics via [Prometheus Proxy](https://github.com/pambrose/prometheus-proxy) or some other tool. Note: We have not tested this internally, but will probably work with the correct configuration. +如果这两种方法都不合适,可能可以通过或其他工具来分发指标。注意:我们尚未在内部测试过这一点,但应该在正确配置的情况下工作。 -Metrics are also available on disk in ZeroTier's working directory: +Metrics 也会存储在 ZeroTier 工作目录的磁盘上: - // Linux - /var/lib/zerotier-one/metrics.prom +// Linux /var/lib/zerotier-one/metrics.prom - // macOS - /Library/Application\ Support/ZeroTier/One/metrics.prom +// macOS /Library/Application Support/ZeroTier/One/metrics.prom - //Windows - C:\ProgramData\ZeroTier\One\metrics.prom +// Windows C:\\ProgramData\\ZeroTier\\One\\metrics.prom -#### Available Metrics +#### 可用指标 -| Metric Name | Labels | Metric Type | Description | -| --- | --- | --- | --- | -| zt_packet | packet_type, direction | Counter | ZeroTier packet type counts | -| zt_packet_error | error_type, direction | Counter | ZeroTier packet errors| -| zt_data | protocol, direction | Counter | number of bytes ZeroTier has transmitted or received | -| zt_num_networks | | Gauge | number of networks this instance is joined to | -| zt_network_multicast_groups_subscribed | network_id | Gauge | number of multicast groups networks are subscribed to | -| zt_network_packets | network_id, direction | Counter | number of incoming/outgoing packets per network | -| zt_peer_latency | node_id | Histogram | peer latency (ms) | -| zt_peer_path_count | node_id, status | Gauge | number of paths to peer | -| zt_peer_packets | node_id, direction | Counter | number of packets to/from a peer | -| zt_peer_packet_errors | node_id | Counter | number of incoming packet errors from a peer | +| 指标名称 | 标签 | 指标类型 | 描述 | +| --- | --- | --- | --- | +| zt\_packet | packet\_type, direction | Counter | ZeroTier 包类型计数 | +| ZeroTier 包错误 | 错误类型, 方向 | 计数器 | ZeroTier 包错误 | +| zt\_data | 协议, 方向 | Counter | ZeroTier 已传输或接收的字节数 | +| zt\_num\_networks | | 计数器 | 此实例加入的网络数量 | +| zt\_network\_multicast\_groups\_subscribed | 网络 ID | Gauge | 网络订阅的组播组数量 | +| 组播网络包 | 网络 ID, 方向 | Counter | 每网络的入站/出站数据包数量 | +| zt\_peer\_latency | node\_id | Histogram | 对等延迟 (ms) | +| zt\_peer\_path\_count | node\_id, 状态 | Gauge | 到对等体的路径数量 | +| zt\_peer\_packets | node\_id, direction | Counter | 来自/发送给对等节点的数据包数量 | +| zt\_peer\_packet\_errors | node\_id | Counter | 来自对等节点的入站数据包错误数量 | -If there are other metrics you'd like to see tracked, ask us in an Issue or send us a Pull Request! +如果您希望跟踪其他指标,请在 Issue 中告诉我们或向我们提交 Pull Request! \ No newline at end of file diff --git a/apps/zerotier-moon/README_en.md b/apps/zerotier-moon/README_en.md new file mode 100644 index 000000000..e5f1f7255 --- /dev/null +++ b/apps/zerotier-moon/README_en.md @@ -0,0 +1,171 @@ +ZeroTier - Global Area Networking +====== + +*This document is written for a software developer audience. For information on using ZeroTier, see the: [Website](https://www.zerotier.com), [Documentation Site](https://docs.zerotier.com), and [Discussion Forum](https://discuss.zerotier.com).* + +ZeroTier is a smart programmable Ethernet switch for planet Earth. It allows all networked devices, VMs, containers, and applications to communicate as if they all reside in the same physical data center or cloud region. + +This is accomplished by combining a cryptographically addressed and secure peer to peer network (termed VL1) with an Ethernet emulation layer somewhat similar to VXLAN (termed VL2). Our VL2 Ethernet virtualization layer includes advanced enterprise SDN features like fine grained access control rules for network micro-segmentation and security monitoring. + +All ZeroTier traffic is encrypted end-to-end using secret keys that only you control. Most traffic flows peer to peer, though we offer free (but slow) relaying for users who cannot establish peer to peer connections. + +The goals and design principles of ZeroTier are inspired by among other things the original [Google BeyondCorp](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43231.pdf) paper and the [Jericho Forum](https://en.wikipedia.org/wiki/Jericho_Forum) with its notion of "deperimeterization." + +Visit [ZeroTier's site](https://www.zerotier.com/) for more information and [pre-built binary packages](https://www.zerotier.com/download/). Apps for Android and iOS are available for free in the Google Play and Apple app stores. + +ZeroTier is licensed under the [BSL version 1.1](https://mariadb.com/bsl11/). See [LICENSE.txt](https://github.com/zerotier/ZeroTierOne/blob/dev/LICENSE.txt) and the [ZeroTier pricing page](https://www.zerotier.com/pricing) for details. ZeroTier is free to use internally in businesses and academic institutions and for non-commercial purposes. Certain types of commercial use such as building closed-source apps and devices based on ZeroTier or offering ZeroTier network controllers and network management as a SaaS service require a commercial license. + +A small amount of third party code is also included in ZeroTier and is not subject to our BSL license. See [AUTHORS.md](https://github.com/zerotier/ZeroTierOne/blob/dev/AUTHORS.md) for a list of third party code, where it is included, and the licenses that apply to it. All of the third party code in ZeroTier is liberally licensed (MIT, BSD, Apache, public domain, etc.). + +### Getting Started + +Everything in the ZeroTier world is controlled by two types of identifier: 40-bit/10-digit *ZeroTier addresses* and 64-bit/16-digit *network IDs*. These identifiers are easily distinguished by their length. A ZeroTier address identifies a node or "device" (laptop, phone, server, VM, app, etc.) while a network ID identifies a virtual Ethernet network that can be joined by devices. + +ZeroTier addresses can be thought of as port numbers on an enormous planet-wide enterprise Ethernet smart switch supporting VLANs. Network IDs are VLAN IDs to which these ports may be assigned. A single port can be assigned to more than one VLAN. + +A ZeroTier address looks like `8056c2e21c` and a network ID looks like `8056c2e21c000001`. Network IDs are composed of the ZeroTier address of that network's primary controller and an arbitrary 24-bit ID that identifies the network on this controller. Network controllers are roughly analogous to SDN controllers in SDN protocols like [OpenFlow](https://en.wikipedia.org/wiki/OpenFlow), though as with the analogy between VXLAN and VL2 this should not be read to imply that the protocols or design are the same. You can use our convenient and inexpensive SaaS hosted controllers at [my.zerotier.com](https://my.zerotier.com/) or [run your own controller](controller/) if you don't mind messing around with JSON configuration files or writing scripts to do so. + +### Project Layout + +The base path contains the ZeroTier One service main entry point (`one.cpp`), self test code, makefiles, etc. + + - `artwork/`: icons, logos, etc. + - `attic/`: old stuff and experimental code that we want to keep around for reference. + - `controller/`: the reference network controller implementation, which is built and included by default on desktop and server build targets. + - `debian/`: files for building Debian packages on Linux. + - `doc/`: manual pages and other documentation. + - `ext/`: third party libraries, binaries that we ship for convenience on some platforms (Mac and Windows), and installation support files. + - `include/`: include files for the ZeroTier core. + - `java/`: a JNI wrapper used with our Android mobile app. (The whole Android app is not open source but may be made so in the future.) + - `node/`: the ZeroTier virtual Ethernet switch core, which is designed to be entirely separate from the rest of the code and able to be built as a stand-alone OS-independent library. Note to developers: do not use C++11 features in here, since we want this to build on old embedded platforms that lack C++11 support. C++11 can be used elsewhere. + - `osdep/`: code to support and integrate with OSes, including platform-specific stuff only built for certain targets. + - `rule-compiler/`: JavaScript rules language compiler for defining network-level rules. + - `service/`: the ZeroTier One service, which wraps the ZeroTier core and provides VPN-like connectivity to virtual networks for desktops, laptops, servers, VMs, and containers. + - `windows/`: Visual Studio solution files, Windows service code, and the Windows task bar app UI. + - `zeroidc/`: OIDC implementation used by ZeroTier service to log into SSO-enabled networks. (This part is written in Rust, and more Rust will be appearing in this repository in the future.) + +### Build and Platform Notes + +To build on Mac and Linux just type `make`. On FreeBSD and OpenBSD `gmake` (GNU make) is required and can be installed from packages or ports. For Windows there is a Visual Studio solution in `windows/`. + + - **Mac** + - Xcode command line tools for macOS 10.13 or newer are required. + - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. + - **Linux** + - The minimum compiler versions required are GCC/G++ 4.9.3 or CLANG/CLANG++ 3.4.2. (Install `clang` on CentOS 7 as G++ is too old.) + - Linux makefiles automatically detect and prefer clang/clang++ if present as it produces smaller and slightly faster binaries in most cases. You can override by supplying CC and CXX variables on the make command line. + - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. + - **Windows** + - Visual Studio 2022 on Windows 10 or newer. + - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. + - **FreeBSD** + - GNU make is required. Type `gmake` to build. + - `binutils` is required. Type `pkg install binutils` to install. + - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. + - **OpenBSD** + - There is a limit of four network memberships on OpenBSD as there are only four tap devices (`/dev/tap0` through `/dev/tap3`). + - GNU make is required. Type `gmake` to build. + - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. + +Typing `make selftest` will build a *zerotier-selftest* binary which unit tests various internals and reports on a few aspects of the build environment. It's a good idea to try this on novel platforms or architectures. + +### Running + +Running *zerotier-one* with `-h` option will show help. + +On Linux and BSD, if you built from source, you can start the service with: + + sudo ./zerotier-one -d + +On most distributions, macOS, and Windows, the installer will start the service and set it up to start on boot. + +A home folder for your system will automatically be created. + +The service is controlled via the JSON API, which by default is available at 127.0.0.1 port 9993. We include a *zerotier-cli* command line utility to make API calls for standard things like joining and leaving networks. The *authtoken.secret* file in the home folder contains the secret token for accessing this API. See [service/README.md](service/README.md) for API documentation. + +Here's where home folders live (by default) on each OS: + + * **Linux**: `/var/lib/zerotier-one` + * **FreeBSD** / **OpenBSD**: `/var/db/zerotier-one` + * **Mac**: `/Library/Application Support/ZeroTier/One` + * **Windows**: `\ProgramData\ZeroTier\One` (That's the default. The base 'shared app data' folder might be different if Windows is installed with a non-standard drive letter assignment or layout.) + +### Basic Troubleshooting + +For most users, it just works. + +If you are running a local system firewall, we recommend adding a rules permitting zerotier. If you installed binaries for Windows this should be done automatically. Other platforms might require manual editing of local firewall rules depending on your configuration. + +See the [documentation site](https://docs.zerotier.com/zerotier/troubleshooting) for more information. + +The Mac firewall can be found under "Security" in System Preferences. Linux has a variety of firewall configuration systems and tools. + +On CentOS check `/etc/sysconfig/iptables` for IPTables rules. For other distributions consult your distribution's documentation. You'll also have to check the UIs or documentation for commercial third party firewall applications like Little Snitch (Mac), McAfee Firewall Enterprise (Windows), etc. if you are running any of those. Some corporate environments might have centrally managed firewall software, so you might also have to contact IT. + +ZeroTier One peers will automatically locate each other and communicate directly over a local wired LAN *if UDP port 9993 inbound is open*. If that port is filtered, they won't be able to see each others' LAN announcement packets. If you're experiencing poor performance between devices on the same physical network, check their firewall settings. Without LAN auto-location peers must attempt "loopback" NAT traversal, which sometimes fails and in any case requires that every packet traverse your external router twice. + +Users behind certain types of firewalls and "symmetric" NAT devices may not be able to connect to external peers directly at all. ZeroTier has limited support for port prediction and will *attempt* to traverse symmetric NATs, but this doesn't always work. If P2P connectivity fails you'll be bouncing UDP packets off our relay servers resulting in slower performance. Some NAT router(s) have a configurable NAT mode, and setting this to "full cone" will eliminate this problem. If you do this you may also see a magical improvement for things like VoIP phones, Skype, BitTorrent, WebRTC, certain games, etc., since all of these use NAT traversal techniques similar to ours. + +If a firewall between you and the Internet blocks ZeroTier's UDP traffic, you will fall back to last-resort TCP tunneling to rootservers over port 443 (https impersonation). This will work almost anywhere but is *very slow* compared to UDP or direct peer to peer connectivity. + +Additional help can be found in our [knowledge base](https://zerotier.atlassian.net/wiki/spaces/SD/overview). + +### Prometheus Metrics + +Prometheus Metrics are available at the `/metrics` API endpoint. This endpoint is protected by an API key stored in `metricstoken.secret` to prevent unwanted information leakage. Information that could be gleaned from the metrics include joined networks and peers your instance is talking to. + +Access control is via the ZeroTier control interface itself and `metricstoken.secret`. This can be sent as a bearer auth token, via the `X-ZT1-Auth` HTTP header field, or appended to the URL as `?auth=`. You can see the current metrics via `cURL` with the following command: + + // Linux + curl -H "X-ZT1-Auth: $(sudo cat /var/lib/zerotier-one/metricstoken.secret)" http://localhost:9993/metrics + + // macOS + curl -H "X-XT1-Auth: $(sudo cat /Library/Application\ Support/ZeroTier/One/metricstoken.secret)" http://localhost:9993/metrics + + // Windows PowerShell (Admin) + Invoke-RestMethod -Headers @{'X-ZT1-Auth' = "$(Get-Content C:\ProgramData\ZeroTier\One\metricstoken.secret)"; } -Uri http://localhost:9993/metrics + +To configure a scrape job in Prometheus on the machine ZeroTier is running on, add this to your Prometheus `scrape_config`: + + - job_name: zerotier-one + honor_labels: true + scrape_interval: 15s + metrics_path: /metrics + static_configs: + - targets: + - 127.0.0.1:9993 + labels: + group: zerotier-one + node_id: $YOUR_10_CHARACTER_NODE_ID + authorization: + credentials: $YOUR_METRICS_TOKEN_SECRET + +If neither of these methods are desirable, it is probably possible to distribute metrics via [Prometheus Proxy](https://github.com/pambrose/prometheus-proxy) or some other tool. Note: We have not tested this internally, but will probably work with the correct configuration. + +Metrics are also available on disk in ZeroTier's working directory: + + // Linux + /var/lib/zerotier-one/metrics.prom + + // macOS + /Library/Application\ Support/ZeroTier/One/metrics.prom + + //Windows + C:\ProgramData\ZeroTier\One\metrics.prom + +#### Available Metrics + +| Metric Name | Labels | Metric Type | Description | +| --- | --- | --- | --- | +| zt_packet | packet_type, direction | Counter | ZeroTier packet type counts | +| zt_packet_error | error_type, direction | Counter | ZeroTier packet errors| +| zt_data | protocol, direction | Counter | number of bytes ZeroTier has transmitted or received | +| zt_num_networks | | Gauge | number of networks this instance is joined to | +| zt_network_multicast_groups_subscribed | network_id | Gauge | number of multicast groups networks are subscribed to | +| zt_network_packets | network_id, direction | Counter | number of incoming/outgoing packets per network | +| zt_peer_latency | node_id | Histogram | peer latency (ms) | +| zt_peer_path_count | node_id, status | Gauge | number of paths to peer | +| zt_peer_packets | node_id, direction | Counter | number of packets to/from a peer | +| zt_peer_packet_errors | node_id | Counter | number of incoming packet errors from a peer | + +If there are other metrics you'd like to see tracked, ask us in an Issue or send us a Pull Request! diff --git a/apps/zerotier-one/README.md b/apps/zerotier-one/README.md index 6ecc9a160..e3f3dfac7 100644 --- a/apps/zerotier-one/README.md +++ b/apps/zerotier-one/README.md @@ -1,180 +1,183 @@ # 使用说明 例子:容器管理界面连接容器终端,执行命令加入网络 + ``` zerotier-cli join [网络ID] ``` # 原始相关 -ZeroTier - Global Area Networking -====== +# ZeroTier - 全球区域网络 -*This document is written for a software developer audience. For information on using ZeroTier, see the: [Website](https://www.zerotier.com), [Documentation Site](https://docs.zerotier.com), and [Discussion Forum](https://discuss.zerotier.com).* +*本文件面向软件开发人员。有关使用 ZeroTier 的信息,请参见: [网站](https://www.zerotier.com) 、 [文档站点](https://docs.zerotier.com)和[讨论论坛](https://discuss.zerotier.com) 。* -ZeroTier is a smart programmable Ethernet switch for planet Earth. It allows all networked devices, VMs, containers, and applications to communicate as if they all reside in the same physical data center or cloud region. +ZeroTier 是一款智能可编程以太网交换机,适用于地球。它允许所有网络设备、虚拟机、容器和应用程序仿佛都位于同一个物理数据中心或云区域中进行通信。 -This is accomplished by combining a cryptographically addressed and secure peer to peer network (termed VL1) with an Ethernet emulation layer somewhat similar to VXLAN (termed VL2). Our VL2 Ethernet virtualization layer includes advanced enterprise SDN features like fine grained access control rules for network micro-segmentation and security monitoring. +这通过结合一种加密地址和安全的点对点网络(称为 VL1)以及一种类似于 VXLAN 的以太网仿真层(称为 VL2)来实现。我们的 VL2 以太网虚拟化层包括精细粒度的访问控制规则等先进的企业级 SDN 功能,用于网络微分割和安全监控。 -All ZeroTier traffic is encrypted end-to-end using secret keys that only you control. Most traffic flows peer to peer, though we offer free (but slow) relaying for users who cannot establish peer to peer connections. +所有 ZeroTier 流量均使用您控制的秘密密钥进行端到端加密。大多数流量以点对点方式流动,尽管我们为无法建立点对点连接的用户提供免费(但较慢)的中继服务。 -The goals and design principles of ZeroTier are inspired by among other things the original [Google BeyondCorp](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43231.pdf) paper and the [Jericho Forum](https://en.wikipedia.org/wiki/Jericho_Forum) with its notion of "deperimeterization." +ZeroTier 的目标和设计原则受到诸如原始的 [Google BeyondCorp](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43231.pdf) 论文和 [Jericho Forum](https://en.wikipedia.org/wiki/Jericho_Forum) 及其“去边界化”概念的影响。 -Visit [ZeroTier's site](https://www.zerotier.com/) for more information and [pre-built binary packages](https://www.zerotier.com/download/). Apps for Android and iOS are available for free in the Google Play and Apple app stores. +访问 [ZeroTier 的网站](https://www.zerotier.com/)获取更多信息和[预构建的二进制包](https://www.zerotier.com/download/) 。Android 和 iOS 的应用程序可以在 Google Play 和 Apple 应用商店免费下载。 -ZeroTier is licensed under the [BSL version 1.1](https://mariadb.com/bsl11/). See [LICENSE.txt](https://github.com/zerotier/ZeroTierOne/blob/dev/LICENSE.txt) and the [ZeroTier pricing page](https://www.zerotier.com/pricing) for details. ZeroTier is free to use internally in businesses and academic institutions and for non-commercial purposes. Certain types of commercial use such as building closed-source apps and devices based on ZeroTier or offering ZeroTier network controllers and network management as a SaaS service require a commercial license. +ZeroTier 采用 [BSL 版本 1.1](https://mariadb.com/bsl11/) 许可。详情请参见 [LICENSE.txt](https://github.com/zerotier/ZeroTierOne/blob/dev/LICENSE.txt) 和 [ZeroTier 的定价页面](https://www.zerotier.com/pricing) 。ZeroTier 在企业内部和学术机构中免费使用,以及用于非商业用途。基于 ZeroTier 构建闭源应用程序和设备,或提供 ZeroTier 网络控制器和网络管理作为 SaaS 服务的某些商业用途需要商业许可。 -A small amount of third party code is also included in ZeroTier and is not subject to our BSL license. See [AUTHORS.md](https://github.com/zerotier/ZeroTierOne/blob/dev/AUTHORS.md) for a list of third party code, where it is included, and the licenses that apply to it. All of the third party code in ZeroTier is liberally licensed (MIT, BSD, Apache, public domain, etc.). +ZeroTier 中还包含少量第三方代码,这些代码不受我们的 BSL 许可约束。请参见 [AUTHORS.md](https://github.com/zerotier/ZeroTierOne/blob/dev/AUTHORS.md),了解第三方代码的列表、它们的位置以及适用的许可协议。ZeroTier 中的所有第三方代码均采用宽松许可(MIT、BSD、Apache、公共领域等)。 -### Getting Started +### 快速入门 -Everything in the ZeroTier world is controlled by two types of identifier: 40-bit/10-digit *ZeroTier addresses* and 64-bit/16-digit *network IDs*. These identifiers are easily distinguished by their length. A ZeroTier address identifies a node or "device" (laptop, phone, server, VM, app, etc.) while a network ID identifies a virtual Ethernet network that can be joined by devices. +在 ZeroTier 的世界中,一切均由两种类型的标识符控制:40 位/10 位的 *ZeroTier 地址*和 64 位/16 位的*网络 ID*。这些标识符通过长度很容易区分。ZeroTier 地址标识一个节点或“设备”(如笔记本电脑、手机、服务器、虚拟机、应用程序等),而网络 ID 标识一个可以由设备加入的虚拟以太网网络。 -ZeroTier addresses can be thought of as port numbers on an enormous planet-wide enterprise Ethernet smart switch supporting VLANs. Network IDs are VLAN IDs to which these ports may be assigned. A single port can be assigned to more than one VLAN. +ZeroTier 地址可以被视为一个巨大的全球企业级以太网智能交换机上的端口号,该交换机支持 VLAN。网络 ID 是这些端口可以分配的 VLAN ID。一个端口可以分配给一个以上的 VLAN。 -A ZeroTier address looks like `8056c2e21c` and a network ID looks like `8056c2e21c000001`. Network IDs are composed of the ZeroTier address of that network's primary controller and an arbitrary 24-bit ID that identifies the network on this controller. Network controllers are roughly analogous to SDN controllers in SDN protocols like [OpenFlow](https://en.wikipedia.org/wiki/OpenFlow), though as with the analogy between VXLAN and VL2 this should not be read to imply that the protocols or design are the same. You can use our convenient and inexpensive SaaS hosted controllers at [my.zerotier.com](https://my.zerotier.com/) or [run your own controller](controller/) if you don't mind messing around with JSON configuration files or writing scripts to do so. +一个 ZeroTier 地址看起来像 \``8056c2e21c`\`,而一个网络 ID 看起来像 \``8056c2e21c000001`\`。网络 ID 由该网络主控制器的 ZeroTier 地址和一个任意的 24 位 ID 组成,该 ID 用于标识该控制器上的网络。网络控制器大致类似于 SDN 协议(如 OpenFlow)中的 SDN 控制器,尽管像 VXLAN 与 VL2 之间的类比一样,这不应被解读为协议或设计相同。你可以使用我们方便且经济实惠的基于云的服务(SaaS)托管控制器,访问地址为 [my.zerotier.com](https://my.zerotier.com/),或者 [自行运行控制器](controller/) ,如果你愿意处理 JSON 配置文件或编写脚本来实现。 -### Project Layout +### 项目布局 -The base path contains the ZeroTier One service main entry point (`one.cpp`), self test code, makefiles, etc. +基础路径包含 ZeroTier One 服务的主要入口点(`one.cpp`)、自我测试代码、Makefile 等。 - - `artwork/`: icons, logos, etc. - - `attic/`: old stuff and experimental code that we want to keep around for reference. - - `controller/`: the reference network controller implementation, which is built and included by default on desktop and server build targets. - - `debian/`: files for building Debian packages on Linux. - - `doc/`: manual pages and other documentation. - - `ext/`: third party libraries, binaries that we ship for convenience on some platforms (Mac and Windows), and installation support files. - - `include/`: include files for the ZeroTier core. - - `java/`: a JNI wrapper used with our Android mobile app. (The whole Android app is not open source but may be made so in the future.) - - `node/`: the ZeroTier virtual Ethernet switch core, which is designed to be entirely separate from the rest of the code and able to be built as a stand-alone OS-independent library. Note to developers: do not use C++11 features in here, since we want this to build on old embedded platforms that lack C++11 support. C++11 can be used elsewhere. - - `osdep/`: code to support and integrate with OSes, including platform-specific stuff only built for certain targets. - - `rule-compiler/`: JavaScript rules language compiler for defining network-level rules. - - `service/`: the ZeroTier One service, which wraps the ZeroTier core and provides VPN-like connectivity to virtual networks for desktops, laptops, servers, VMs, and containers. - - `windows/`: Visual Studio solution files, Windows service code, and the Windows task bar app UI. - - `zeroidc/`: OIDC implementation used by ZeroTier service to log into SSO-enabled networks. (This part is written in Rust, and more Rust will be appearing in this repository in the future.) +* `artwork/`:图标、徽标等。 +* `attic/`:旧的文件和实验代码,我们希望保留这些文件以供参考。 +* `controller/`: 默认的网络控制器实现,会在桌面版和服务器版的构建目标中构建并包含进去。 +* `debian/`: 用于在 Linux 上构建 Debian 软件包的文件。 +* `doc/`: 手册页和其他文档。 +* `ext/`: 第三方库,方便在某些平台(Mac 和 Windows)上安装的二进制文件,以及安装支持文件。 +* `include/`: ZeroTier 核心的包含文件。 +* `java/`: 用于与我们的 Android 移动应用配合的 JNI 封装器。(整个 Android 应用目前不是开源的,但将来可能会开源。) +* `node/`: ZeroTier 虚拟以太网交换机的核心代码,设计为完全独立于其他代码,并能够构建为独立于操作系统的库。开发人员注意:不要在此使用 C++11 特性,因为我们希望此代码能够在缺乏 C++11 支持的旧嵌入式平台上构建。C++11 可以在其他地方使用。 +* `osdep/`: 支持和集成操作系统的代码,包括仅针对某些目标构建的平台特定代码。 +* `rule-compiler/`: JavaScript 规则语言编译器,用于定义网络级别规则。 +* `service/`: ZeroTier One 服务,封装了 ZeroTier 核心,并为桌面、笔记本、服务器、虚拟机和容器提供了类似 VPN 的虚拟网络连接。 +* `windows/`: Visual Studio 解决方案文件、Windows 服务代码以及 Windows 任务栏应用程序 UI。 +* `zeroidc/`: ZeroTier 服务用于登录 SSO 网络的 OIDC 实现。(这部分是用 Rust 编写的,未来该仓库中还将出现更多的 Rust 代码。) -### Build and Platform Notes +### 构建和平台注意事项 -To build on Mac and Linux just type `make`. On FreeBSD and OpenBSD `gmake` (GNU make) is required and can be installed from packages or ports. For Windows there is a Visual Studio solution in `windows/`. +要在 Mac 和 Linux 上构建,请输入 \``make`\`。在 FreeBSD 和 OpenBSD 上需要 \``gmake`\`(GNU make),可以从包或端口安装。对于 Windows,可以在 \``windows/`\` 目录中找到 Visual Studio 解决方案。 - - **Mac** - - Xcode command line tools for macOS 10.13 or newer are required. - - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. - - **Linux** - - The minimum compiler versions required are GCC/G++ 4.9.3 or CLANG/CLANG++ 3.4.2. (Install `clang` on CentOS 7 as G++ is too old.) - - Linux makefiles automatically detect and prefer clang/clang++ if present as it produces smaller and slightly faster binaries in most cases. You can override by supplying CC and CXX variables on the make command line. - - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. - - **Windows** - - Visual Studio 2022 on Windows 10 or newer. - - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. - - **FreeBSD** - - GNU make is required. Type `gmake` to build. - - `binutils` is required. Type `pkg install binutils` to install. - - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. - - **OpenBSD** - - There is a limit of four network memberships on OpenBSD as there are only four tap devices (`/dev/tap0` through `/dev/tap3`). - - GNU make is required. Type `gmake` to build. - - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. +* **Mac** + * macOS 10.13 或更新版本的 Xcode 命令行工具是必需的。 + * 如果构建时启用了 SSO,则需要针对 x86\_64 和 ARM64 目标的 Rust。 +* **Linux** + * 所需的最小编译器版本为 GCC/G++ 4.9.3 或 CLANG/CLANG++ 3.4.2。(在 CentOS 7 上安装 `clang`,因为 G++ 过于陈旧。) + * Linux makefile 会自动检测并优先使用 clang/clang++,因为大多数情况下它生成的二进制文件更小且略快。您可以通过在 make 命令行中提供 CC 和 CXX 变量来覆盖此设置。 + * x86\_64 和 ARM64 目标下的 Rust *如果构建时启用了 SSO*。 +* **Windows** + * Visual Studio 2022 在 Windows 10 或更新版本上。 + * x86\_64 和 ARM64 目标下的 Rust *如果构建时启用了 SSO*。 +* **FreeBSD** + * GNU make 是必需的。输入 `gmake` 来构建。 + * `binutils` 是必需的。输入 `pkg install binutils` 来安装。 + * x86\_64 和 ARM64 目标需要 Rust *如果构建时启用了 SSO*。 +* **OpenBSD** + * 在 OpenBSD 中,最多只能有四个网络成员身份,因为只有四个 tap 设备(`/dev/tap0` 至 `/dev/tap3`)。 + * 需要 GNU make。输入 `gmake` 来构建。 + * 对于 x86\_64 和 ARM64 目标,如果构建时启用了 SSO,则需要 Rust。 -Typing `make selftest` will build a *zerotier-selftest* binary which unit tests various internals and reports on a few aspects of the build environment. It's a good idea to try this on novel platforms or architectures. +输入 `make selftest` 将构建一个名为 *zerotier-selftest* 的二进制文件,该文件对各种内部进行单元测试,并报告构建环境的几个方面。在新的平台或架构上尝试这个命令是个好主意。 -### Running +### 运行 -Running *zerotier-one* with `-h` option will show help. +运行 \`*zerotier-one*\` 并使用 `-h` 选项可以显示帮助信息。 -On Linux and BSD, if you built from source, you can start the service with: +在 Linux 和 BSD 上,如果你是从源代码编译的,可以使用以下命令启动服务: - sudo ./zerotier-one -d +``` +sudo ./zerotier-one -d +``` -On most distributions, macOS, and Windows, the installer will start the service and set it up to start on boot. +在大多数发行版、macOS 和 Windows 上,安装程序会启动服务,并设置为开机自启动。 -A home folder for your system will automatically be created. +你的系统会自动创建一个家目录。 -The service is controlled via the JSON API, which by default is available at 127.0.0.1 port 9993. We include a *zerotier-cli* command line utility to make API calls for standard things like joining and leaving networks. The *authtoken.secret* file in the home folder contains the secret token for accessing this API. See [service/README.md](service/README.md) for API documentation. +服务通过 JSON API 进行控制,默认情况下 API 可在 127.0.0.1 端口 9993 访问。我们提供了一个 *zerotier-cli* 命令行工具,用于调用加入和退出网络等标准 API 调用。*authtoken.secret* 文件位于主文件夹中,包含访问此 API 的密钥。请参阅 [service/README.md](service/README.md) 获取 API 文档。 -Here's where home folders live (by default) on each OS: +这是每个操作系统中默认的主文件夹位置: - * **Linux**: `/var/lib/zerotier-one` - * **FreeBSD** / **OpenBSD**: `/var/db/zerotier-one` - * **Mac**: `/Library/Application Support/ZeroTier/One` - * **Windows**: `\ProgramData\ZeroTier\One` (That's the default. The base 'shared app data' folder might be different if Windows is installed with a non-standard drive letter assignment or layout.) +* **Linux**: `/var/lib/zerotier-one` +* **FreeBSD** / **OpenBSD**: `/var/db/zerotier-one` +* Mac: `/Library/Application Support/ZeroTier/One` +* **Windows**: `\ProgramData\ZeroTier\One`(这是默认位置。如果 Windows 安装时使用了非标准的驱动器字母分配或布局,基础的“共享应用数据”文件夹可能会不同。) -### Basic Troubleshooting +### 基本排查问题 -For most users, it just works. +对于大多数用户来说,它就是这么工作的。 -If you are running a local system firewall, we recommend adding a rules permitting zerotier. If you installed binaries for Windows this should be done automatically. Other platforms might require manual editing of local firewall rules depending on your configuration. +如果你正在运行本地系统防火墙,我们建议添加允许 zerotier 的规则。如果你在 Windows 上安装了二进制文件,这应该会自动完成。其他平台可能需要根据你的配置手动编辑本地防火墙规则。 -See the [documentation site](https://docs.zerotier.com/zerotier/troubleshooting) for more information. +更多信息请参见 [文档站点](https://docs.zerotier.com/zerotier/troubleshooting) 。 -The Mac firewall can be found under "Security" in System Preferences. Linux has a variety of firewall configuration systems and tools. +Mac 的防火墙可以在系统偏好设置中的“安全性”下找到。Linux 有不同的防火墙配置系统和工具。 -On CentOS check `/etc/sysconfig/iptables` for IPTables rules. For other distributions consult your distribution's documentation. You'll also have to check the UIs or documentation for commercial third party firewall applications like Little Snitch (Mac), McAfee Firewall Enterprise (Windows), etc. if you are running any of those. Some corporate environments might have centrally managed firewall software, so you might also have to contact IT. +在 CentOS 中检查 `/etc/sysconfig/iptables` 以查看 IPTables 规则。对于其他发行版,请参阅相应发行版的文档。如果你正在运行 Little Snitch(Mac)或 McAfee Firewall Enterprise(Windows)等商业第三方防火墙应用程序,还需要检查其 UI 或文档。某些企业环境可能使用集中管理的防火墙软件,因此你可能还需要联系 IT 部门。 -ZeroTier One peers will automatically locate each other and communicate directly over a local wired LAN *if UDP port 9993 inbound is open*. If that port is filtered, they won't be able to see each others' LAN announcement packets. If you're experiencing poor performance between devices on the same physical network, check their firewall settings. Without LAN auto-location peers must attempt "loopback" NAT traversal, which sometimes fails and in any case requires that every packet traverse your external router twice. +ZeroTier One 对等节点会自动相互定位并在本地有线局域网中直接通信 *如果 UDP 端口 9993 入站是开放的* 。如果该端口被过滤,它们将无法看到彼此的局域网公告包。如果你在同一物理网络中的设备之间遇到性能不佳的问题,请检查它们的防火墙设置。如果没有局域网自动定位,对等节点必须尝试“回环”NAT 穿越,这有时会失败,并且无论如何,每包都需要经过你的外部路由器两次。 -Users behind certain types of firewalls and "symmetric" NAT devices may not be able to connect to external peers directly at all. ZeroTier has limited support for port prediction and will *attempt* to traverse symmetric NATs, but this doesn't always work. If P2P connectivity fails you'll be bouncing UDP packets off our relay servers resulting in slower performance. Some NAT router(s) have a configurable NAT mode, and setting this to "full cone" will eliminate this problem. If you do this you may also see a magical improvement for things like VoIP phones, Skype, BitTorrent, WebRTC, certain games, etc., since all of these use NAT traversal techniques similar to ours. +某些类型的防火墙和“对称”NAT 设备背后的用户可能无法直接连接到外部节点。ZeroTier 支持有限的端口预测功能,并会尝试穿越对称 NAT,但这并不总是有效。如果 P2P 连接失败,UDP 数据包将通过我们的中继服务器进行转发,导致性能变慢。一些 NAT 路由器具有可配置的 NAT 模式,将其设置为“全锥型”可以解决这个问题。这样做后,您还可能在 VoIP 电话、Skype、BitTorrent、WebRTC、某些游戏等方面看到神奇的性能提升,因为所有这些应用都使用了与我们类似的 NAT 穿越技术。 -If a firewall between you and the Internet blocks ZeroTier's UDP traffic, you will fall back to last-resort TCP tunneling to rootservers over port 443 (https impersonation). This will work almost anywhere but is *very slow* compared to UDP or direct peer to peer connectivity. +如果您与互联网之间的防火墙阻止了 ZeroTier 的 UDP 流量,系统将退回到最后的 TCP 隧道,通过端口 443(https 冒充)连接到根服务器。这种方法几乎可以在任何地方工作,但与 UDP 或直接 P2P 连接相比,速度非常慢。 -Additional help can be found in our [knowledge base](https://zerotier.atlassian.net/wiki/spaces/SD/overview). +您可以在我们的[知识库](https://zerotier.atlassian.net/wiki/spaces/SD/overview)中获得额外帮助。 ### Prometheus Metrics -Prometheus Metrics are available at the `/metrics` API endpoint. This endpoint is protected by an API key stored in `metricstoken.secret` to prevent unwanted information leakage. Information that could be gleaned from the metrics include joined networks and peers your instance is talking to. +Prometheus 指标可在 `/metrics` API 端点获取。该端点通过存储在 `metricstoken.secret` 中的 API 密钥进行保护,以防止意外信息泄露。从这些指标中可以获取到的信息包括你的实例正在与其通信的已连接网络和节点。 -Access control is via the ZeroTier control interface itself and `metricstoken.secret`. This can be sent as a bearer auth token, via the `X-ZT1-Auth` HTTP header field, or appended to the URL as `?auth=`. You can see the current metrics via `cURL` with the following command: +访问控制通过 ZeroTier 控制接口本身和 `metricstoken.secret` 实现。可以将此密钥作为 bearer 认证令牌发送,通过 `X-ZT1-Auth` HTTP 头部字段,或者附加到 URL 中作为 `?auth=`。你可以通过 `cURL` 命令查看当前的指标: - // Linux - curl -H "X-ZT1-Auth: $(sudo cat /var/lib/zerotier-one/metricstoken.secret)" http://localhost:9993/metrics +``` +// Linux +curl -H "X-ZT1-Auth: $(sudo cat /var/lib/zerotier-one/metricstoken.secret)" http://localhost:9993/metrics - // macOS - curl -H "X-XT1-Auth: $(sudo cat /Library/Application\ Support/ZeroTier/One/metricstoken.secret)" http://localhost:9993/metrics +// macOS +curl -H "X-XT1-Auth: $(sudo cat /Library/Application\ Support/ZeroTier/One/metricstoken.secret)" http://localhost:9993/metrics - // Windows PowerShell (Admin) - Invoke-RestMethod -Headers @{'X-ZT1-Auth' = "$(Get-Content C:\ProgramData\ZeroTier\One\metricstoken.secret)"; } -Uri http://localhost:9993/metrics +// Windows PowerShell (Admin) +Invoke-RestMethod -Headers @{'X-ZT1-Auth' = "$(Get-Content C:\ProgramData\ZeroTier\One\metricstoken.secret)"; } -Uri http://localhost:9993/metrics +``` -To configure a scrape job in Prometheus on the machine ZeroTier is running on, add this to your Prometheus `scrape_config`: +要在运行 ZeroTier 的机器上配置 Prometheus 的抓取作业,将以下内容添加到你的 Prometheus `scrape_config` 中: - - job_name: zerotier-one - honor_labels: true - scrape_interval: 15s - metrics_path: /metrics - static_configs: - - targets: - - 127.0.0.1:9993 - labels: - group: zerotier-one - node_id: $YOUR_10_CHARACTER_NODE_ID - authorization: - credentials: $YOUR_METRICS_TOKEN_SECRET +``` +- job_name: zerotier-one + honor_labels: true + scrape_interval: 15s + metrics_path: /metrics + static_configs: + - targets: + - 127.0.0.1:9993 + labels: + group: zerotier-one + node_id: $YOUR_10_CHARACTER_NODE_ID + authorization: + credentials: $YOUR_METRICS_TOKEN_SECRET +``` -If neither of these methods are desirable, it is probably possible to distribute metrics via [Prometheus Proxy](https://github.com/pambrose/prometheus-proxy) or some other tool. Note: We have not tested this internally, but will probably work with the correct configuration. +如果这两种方法都不合适,可能可以通过 [Prometheus Proxy](https://github.com/pambrose/prometheus-proxy) 或其他工具来分发指标。注意:我们尚未在内部测试过这一点,但应该在正确配置的情况下可以工作。 -Metrics are also available on disk in ZeroTier's working directory: +Metrics 也会存储在 ZeroTier 工作目录的磁盘上: - // Linux - /var/lib/zerotier-one/metrics.prom +// Linux /var/lib/zerotier-one/metrics.prom - // macOS - /Library/Application\ Support/ZeroTier/One/metrics.prom +// macOS /Library/Application Support/ZeroTier/One/metrics.prom - //Windows - C:\ProgramData\ZeroTier\One\metrics.prom +// Windows C:\\ProgramData\\ZeroTier\\One\\metrics.prom -#### Available Metrics +#### 可用指标 -| Metric Name | Labels | Metric Type | Description | -| --- | --- | --- | --- | -| zt_packet | packet_type, direction | Counter | ZeroTier packet type counts | -| zt_packet_error | error_type, direction | Counter | ZeroTier packet errors| -| zt_data | protocol, direction | Counter | number of bytes ZeroTier has transmitted or received | -| zt_num_networks | | Gauge | number of networks this instance is joined to | -| zt_network_multicast_groups_subscribed | network_id | Gauge | number of multicast groups networks are subscribed to | -| zt_network_packets | network_id, direction | Counter | number of incoming/outgoing packets per network | -| zt_peer_latency | node_id | Histogram | peer latency (ms) | -| zt_peer_path_count | node_id, status | Gauge | number of paths to peer | -| zt_peer_packets | node_id, direction | Counter | number of packets to/from a peer | -| zt_peer_packet_errors | node_id | Counter | number of incoming packet errors from a peer | +| 指标名称 | 标签 | 指标类型 | 描述 | +| --- | --- | --- | --- | +| zt\_packet | packet\_type, direction | Counter | ZeroTier 包类型计数 | +| ZeroTier 包错误 | 错误类型, 方向 | Counter | ZeroTier 包错误 | +| zt\_data | protocol, direction | Counter | ZeroTier 传输或接收的字节数 | +| zt\_num\_networks | | Gauge | 此实例加入的网络数量 | +| zt\_network\_multicast\_groups\_subscribed | 网络 ID | Gauge | 网络订阅的组播组数量 | +| 组播网络包 | 网络 ID, 方向 | Counter | 每网络的入站/出站数据包数量 | +| zt\_peer\_latency | node\_id | Histogram | 对等延迟 (ms) | +| zt\_peer\_path\_count | node\_id, 状态 | Gauge | 到对等体的路径数量 | +| zt\_peer\_packets | 节点 ID, 方向 | Counter | 与对等节点的数据包数量 | +| zt\_peer\_packet\_errors | node\_id | Counter | 来自对等节点的入站数据包错误数量 | -If there are other metrics you'd like to see tracked, ask us in an Issue or send us a Pull Request! +如果您希望跟踪其他指标,请在 Issue 中告诉我们或向我们提交 Pull Request! \ No newline at end of file diff --git a/apps/zerotier-one/README_en.md b/apps/zerotier-one/README_en.md new file mode 100644 index 000000000..6ecc9a160 --- /dev/null +++ b/apps/zerotier-one/README_en.md @@ -0,0 +1,180 @@ +# 使用说明 + +例子:容器管理界面连接容器终端,执行命令加入网络 +``` +zerotier-cli join [网络ID] +``` + +# 原始相关 + +ZeroTier - Global Area Networking +====== + +*This document is written for a software developer audience. For information on using ZeroTier, see the: [Website](https://www.zerotier.com), [Documentation Site](https://docs.zerotier.com), and [Discussion Forum](https://discuss.zerotier.com).* + +ZeroTier is a smart programmable Ethernet switch for planet Earth. It allows all networked devices, VMs, containers, and applications to communicate as if they all reside in the same physical data center or cloud region. + +This is accomplished by combining a cryptographically addressed and secure peer to peer network (termed VL1) with an Ethernet emulation layer somewhat similar to VXLAN (termed VL2). Our VL2 Ethernet virtualization layer includes advanced enterprise SDN features like fine grained access control rules for network micro-segmentation and security monitoring. + +All ZeroTier traffic is encrypted end-to-end using secret keys that only you control. Most traffic flows peer to peer, though we offer free (but slow) relaying for users who cannot establish peer to peer connections. + +The goals and design principles of ZeroTier are inspired by among other things the original [Google BeyondCorp](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43231.pdf) paper and the [Jericho Forum](https://en.wikipedia.org/wiki/Jericho_Forum) with its notion of "deperimeterization." + +Visit [ZeroTier's site](https://www.zerotier.com/) for more information and [pre-built binary packages](https://www.zerotier.com/download/). Apps for Android and iOS are available for free in the Google Play and Apple app stores. + +ZeroTier is licensed under the [BSL version 1.1](https://mariadb.com/bsl11/). See [LICENSE.txt](https://github.com/zerotier/ZeroTierOne/blob/dev/LICENSE.txt) and the [ZeroTier pricing page](https://www.zerotier.com/pricing) for details. ZeroTier is free to use internally in businesses and academic institutions and for non-commercial purposes. Certain types of commercial use such as building closed-source apps and devices based on ZeroTier or offering ZeroTier network controllers and network management as a SaaS service require a commercial license. + +A small amount of third party code is also included in ZeroTier and is not subject to our BSL license. See [AUTHORS.md](https://github.com/zerotier/ZeroTierOne/blob/dev/AUTHORS.md) for a list of third party code, where it is included, and the licenses that apply to it. All of the third party code in ZeroTier is liberally licensed (MIT, BSD, Apache, public domain, etc.). + +### Getting Started + +Everything in the ZeroTier world is controlled by two types of identifier: 40-bit/10-digit *ZeroTier addresses* and 64-bit/16-digit *network IDs*. These identifiers are easily distinguished by their length. A ZeroTier address identifies a node or "device" (laptop, phone, server, VM, app, etc.) while a network ID identifies a virtual Ethernet network that can be joined by devices. + +ZeroTier addresses can be thought of as port numbers on an enormous planet-wide enterprise Ethernet smart switch supporting VLANs. Network IDs are VLAN IDs to which these ports may be assigned. A single port can be assigned to more than one VLAN. + +A ZeroTier address looks like `8056c2e21c` and a network ID looks like `8056c2e21c000001`. Network IDs are composed of the ZeroTier address of that network's primary controller and an arbitrary 24-bit ID that identifies the network on this controller. Network controllers are roughly analogous to SDN controllers in SDN protocols like [OpenFlow](https://en.wikipedia.org/wiki/OpenFlow), though as with the analogy between VXLAN and VL2 this should not be read to imply that the protocols or design are the same. You can use our convenient and inexpensive SaaS hosted controllers at [my.zerotier.com](https://my.zerotier.com/) or [run your own controller](controller/) if you don't mind messing around with JSON configuration files or writing scripts to do so. + +### Project Layout + +The base path contains the ZeroTier One service main entry point (`one.cpp`), self test code, makefiles, etc. + + - `artwork/`: icons, logos, etc. + - `attic/`: old stuff and experimental code that we want to keep around for reference. + - `controller/`: the reference network controller implementation, which is built and included by default on desktop and server build targets. + - `debian/`: files for building Debian packages on Linux. + - `doc/`: manual pages and other documentation. + - `ext/`: third party libraries, binaries that we ship for convenience on some platforms (Mac and Windows), and installation support files. + - `include/`: include files for the ZeroTier core. + - `java/`: a JNI wrapper used with our Android mobile app. (The whole Android app is not open source but may be made so in the future.) + - `node/`: the ZeroTier virtual Ethernet switch core, which is designed to be entirely separate from the rest of the code and able to be built as a stand-alone OS-independent library. Note to developers: do not use C++11 features in here, since we want this to build on old embedded platforms that lack C++11 support. C++11 can be used elsewhere. + - `osdep/`: code to support and integrate with OSes, including platform-specific stuff only built for certain targets. + - `rule-compiler/`: JavaScript rules language compiler for defining network-level rules. + - `service/`: the ZeroTier One service, which wraps the ZeroTier core and provides VPN-like connectivity to virtual networks for desktops, laptops, servers, VMs, and containers. + - `windows/`: Visual Studio solution files, Windows service code, and the Windows task bar app UI. + - `zeroidc/`: OIDC implementation used by ZeroTier service to log into SSO-enabled networks. (This part is written in Rust, and more Rust will be appearing in this repository in the future.) + +### Build and Platform Notes + +To build on Mac and Linux just type `make`. On FreeBSD and OpenBSD `gmake` (GNU make) is required and can be installed from packages or ports. For Windows there is a Visual Studio solution in `windows/`. + + - **Mac** + - Xcode command line tools for macOS 10.13 or newer are required. + - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. + - **Linux** + - The minimum compiler versions required are GCC/G++ 4.9.3 or CLANG/CLANG++ 3.4.2. (Install `clang` on CentOS 7 as G++ is too old.) + - Linux makefiles automatically detect and prefer clang/clang++ if present as it produces smaller and slightly faster binaries in most cases. You can override by supplying CC and CXX variables on the make command line. + - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. + - **Windows** + - Visual Studio 2022 on Windows 10 or newer. + - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. + - **FreeBSD** + - GNU make is required. Type `gmake` to build. + - `binutils` is required. Type `pkg install binutils` to install. + - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. + - **OpenBSD** + - There is a limit of four network memberships on OpenBSD as there are only four tap devices (`/dev/tap0` through `/dev/tap3`). + - GNU make is required. Type `gmake` to build. + - Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*. + +Typing `make selftest` will build a *zerotier-selftest* binary which unit tests various internals and reports on a few aspects of the build environment. It's a good idea to try this on novel platforms or architectures. + +### Running + +Running *zerotier-one* with `-h` option will show help. + +On Linux and BSD, if you built from source, you can start the service with: + + sudo ./zerotier-one -d + +On most distributions, macOS, and Windows, the installer will start the service and set it up to start on boot. + +A home folder for your system will automatically be created. + +The service is controlled via the JSON API, which by default is available at 127.0.0.1 port 9993. We include a *zerotier-cli* command line utility to make API calls for standard things like joining and leaving networks. The *authtoken.secret* file in the home folder contains the secret token for accessing this API. See [service/README.md](service/README.md) for API documentation. + +Here's where home folders live (by default) on each OS: + + * **Linux**: `/var/lib/zerotier-one` + * **FreeBSD** / **OpenBSD**: `/var/db/zerotier-one` + * **Mac**: `/Library/Application Support/ZeroTier/One` + * **Windows**: `\ProgramData\ZeroTier\One` (That's the default. The base 'shared app data' folder might be different if Windows is installed with a non-standard drive letter assignment or layout.) + +### Basic Troubleshooting + +For most users, it just works. + +If you are running a local system firewall, we recommend adding a rules permitting zerotier. If you installed binaries for Windows this should be done automatically. Other platforms might require manual editing of local firewall rules depending on your configuration. + +See the [documentation site](https://docs.zerotier.com/zerotier/troubleshooting) for more information. + +The Mac firewall can be found under "Security" in System Preferences. Linux has a variety of firewall configuration systems and tools. + +On CentOS check `/etc/sysconfig/iptables` for IPTables rules. For other distributions consult your distribution's documentation. You'll also have to check the UIs or documentation for commercial third party firewall applications like Little Snitch (Mac), McAfee Firewall Enterprise (Windows), etc. if you are running any of those. Some corporate environments might have centrally managed firewall software, so you might also have to contact IT. + +ZeroTier One peers will automatically locate each other and communicate directly over a local wired LAN *if UDP port 9993 inbound is open*. If that port is filtered, they won't be able to see each others' LAN announcement packets. If you're experiencing poor performance between devices on the same physical network, check their firewall settings. Without LAN auto-location peers must attempt "loopback" NAT traversal, which sometimes fails and in any case requires that every packet traverse your external router twice. + +Users behind certain types of firewalls and "symmetric" NAT devices may not be able to connect to external peers directly at all. ZeroTier has limited support for port prediction and will *attempt* to traverse symmetric NATs, but this doesn't always work. If P2P connectivity fails you'll be bouncing UDP packets off our relay servers resulting in slower performance. Some NAT router(s) have a configurable NAT mode, and setting this to "full cone" will eliminate this problem. If you do this you may also see a magical improvement for things like VoIP phones, Skype, BitTorrent, WebRTC, certain games, etc., since all of these use NAT traversal techniques similar to ours. + +If a firewall between you and the Internet blocks ZeroTier's UDP traffic, you will fall back to last-resort TCP tunneling to rootservers over port 443 (https impersonation). This will work almost anywhere but is *very slow* compared to UDP or direct peer to peer connectivity. + +Additional help can be found in our [knowledge base](https://zerotier.atlassian.net/wiki/spaces/SD/overview). + +### Prometheus Metrics + +Prometheus Metrics are available at the `/metrics` API endpoint. This endpoint is protected by an API key stored in `metricstoken.secret` to prevent unwanted information leakage. Information that could be gleaned from the metrics include joined networks and peers your instance is talking to. + +Access control is via the ZeroTier control interface itself and `metricstoken.secret`. This can be sent as a bearer auth token, via the `X-ZT1-Auth` HTTP header field, or appended to the URL as `?auth=`. You can see the current metrics via `cURL` with the following command: + + // Linux + curl -H "X-ZT1-Auth: $(sudo cat /var/lib/zerotier-one/metricstoken.secret)" http://localhost:9993/metrics + + // macOS + curl -H "X-XT1-Auth: $(sudo cat /Library/Application\ Support/ZeroTier/One/metricstoken.secret)" http://localhost:9993/metrics + + // Windows PowerShell (Admin) + Invoke-RestMethod -Headers @{'X-ZT1-Auth' = "$(Get-Content C:\ProgramData\ZeroTier\One\metricstoken.secret)"; } -Uri http://localhost:9993/metrics + +To configure a scrape job in Prometheus on the machine ZeroTier is running on, add this to your Prometheus `scrape_config`: + + - job_name: zerotier-one + honor_labels: true + scrape_interval: 15s + metrics_path: /metrics + static_configs: + - targets: + - 127.0.0.1:9993 + labels: + group: zerotier-one + node_id: $YOUR_10_CHARACTER_NODE_ID + authorization: + credentials: $YOUR_METRICS_TOKEN_SECRET + +If neither of these methods are desirable, it is probably possible to distribute metrics via [Prometheus Proxy](https://github.com/pambrose/prometheus-proxy) or some other tool. Note: We have not tested this internally, but will probably work with the correct configuration. + +Metrics are also available on disk in ZeroTier's working directory: + + // Linux + /var/lib/zerotier-one/metrics.prom + + // macOS + /Library/Application\ Support/ZeroTier/One/metrics.prom + + //Windows + C:\ProgramData\ZeroTier\One\metrics.prom + +#### Available Metrics + +| Metric Name | Labels | Metric Type | Description | +| --- | --- | --- | --- | +| zt_packet | packet_type, direction | Counter | ZeroTier packet type counts | +| zt_packet_error | error_type, direction | Counter | ZeroTier packet errors| +| zt_data | protocol, direction | Counter | number of bytes ZeroTier has transmitted or received | +| zt_num_networks | | Gauge | number of networks this instance is joined to | +| zt_network_multicast_groups_subscribed | network_id | Gauge | number of multicast groups networks are subscribed to | +| zt_network_packets | network_id, direction | Counter | number of incoming/outgoing packets per network | +| zt_peer_latency | node_id | Histogram | peer latency (ms) | +| zt_peer_path_count | node_id, status | Gauge | number of paths to peer | +| zt_peer_packets | node_id, direction | Counter | number of packets to/from a peer | +| zt_peer_packet_errors | node_id | Counter | number of incoming packet errors from a peer | + +If there are other metrics you'd like to see tracked, ask us in an Issue or send us a Pull Request! diff --git a/renovate.json b/renovate.json index 088d077bd..89b12ebd4 100644 --- a/renovate.json +++ b/renovate.json @@ -27,6 +27,11 @@ "matchCurrentVersion": "/^v8.*/", "allowedVersions": "/^v8.*/" }, + { + "matchPackageNames": ["kingwrcy/moments"], + "matchCurrentVersion": "<1", + "allowedVersions": "<1" + }, { "matchPackageNames": ["linuxserver/heimdall"], "allowedVersions": "<2021"