1
0
Fork 0

Update Apps

This commit is contained in:
pooneyy 2025-06-17 22:14:50 +08:00
parent fde1f66d67
commit 7f0fcd8a35
134 changed files with 9589 additions and 3968 deletions

View File

@ -1,276 +1,174 @@
 
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="doc/adguard_home_darkmode.svg">
<img alt="AdGuard Home" src="https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/doc/adguard_home_lightmode.svg" width="300px">
</picture>
</p>
<h3 align="center">Privacy protection center for you and your devices</h3>
<p align="center">
Free and open source, powerful network-wide ads & trackers blocking DNS
server.
</p>
<p align="center">
<a href="https://adguard.com/">AdGuard.com</a> |
<a href="https://github.com/AdguardTeam/AdGuardHome/wiki">Wiki</a> |
<a href="https://reddit.com/r/Adguard">Reddit</a> |
<a href="https://twitter.com/AdGuard">Twitter</a> |
<a href="https://t.me/adguard_en">Telegram</a>
<br/><br/>
<a href="https://codecov.io/github/AdguardTeam/AdGuardHome?branch=master">
<img src="https://img.shields.io/codecov/c/github/AdguardTeam/AdGuardHome/master.svg" alt="Code Coverage"/>
</a>
<a href="https://goreportcard.com/report/AdguardTeam/AdGuardHome">
<img src="https://goreportcard.com/badge/github.com/AdguardTeam/AdGuardHome" alt="Go Report Card"/>
</a>
<a href="https://hub.docker.com/r/adguard/adguardhome">
<img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/adguard/adguardhome.svg?maxAge=604800"/>
</a>
<br/>
<a href="https://github.com/AdguardTeam/AdGuardHome/releases">
<img src="https://img.shields.io/github/release/AdguardTeam/AdGuardHome/all.svg" alt="Latest release"/>
</a>
<a href="https://snapcraft.io/adguard-home">
<img alt="adguard-home" src="https://snapcraft.io/adguard-home/badge.svg"/>
</a>
</p>
<br/>
<p align="center">
<img src="https://cdn.adtidy.org/public/Adguard/Common/adguard_home.gif" width="800"/>
</p>
<hr/>
![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)
AdGuard Home 是一种网络范围内的软件,用于屏蔽广告和跟踪。设置完成后,它会覆盖你家中的所有设备,无需任何客户端软件。
它作为 DNS 服务器运行,将跟踪域名重定向到“黑洞”,从而防止您的设备连接到这些服务器。它基于我们用于公共 AdGuard DNS 服务器的软件,并且两者共享大量代码。
* [开始使用](#getting-started)
* [自动安装Unix](#automated-install-linux-and-mac)
* [替代方法](#alternative-methods)
* [指南](#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 与其他解决方案进行比较](#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)
### [自动化安装Unix](#automated-install-linux-and-mac)
## <a href="#getting-started" id="getting-started" name="getting-started">Getting Started</a>
### <a href="#automated-install-linux-and-mac" id="automated-install-linux-and-mac" name="automated-install-linux-and-mac">Automated install (Unix)</a>
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 <channel>` to use specified channel;
* `-r` to reinstall AdGuard Home;
* `-u` to uninstall AdGuard Home;
* `-v` for verbose output.
* `-c <channel>` 使用指定的渠道;
* `-r` 重新安装 AdGuard Home;
* `-u` 卸载 AdGuard Home;
* `-v` 显示详细输出。
Note that options `-r` and `-u` are mutually exclusive.
注意,选项 `-r``-u` 互斥。
### [替代方法](#alternative-methods)
#### [手动安装](#manual-installation)
### <a href="#alternative-methods" id="alternative-methods" name="alternative-methods">Alternative methods</a>
请阅读我们 Wiki 上的 **[入门指南](https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started)** 文章,了解如何手动安装 AdGuard Home以及如何配置设备使用它。
#### <a href="#manual-installation" id="manual-installation" name="manual-installation">Manual installation</a>
#### [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 镜像。
#### <a href="#docker" id="docker" name="docker">Docker</a>
#### [Snap Store](#snap-store)
You can use our official Docker image on [Docker Hub].
如果您正在运行 **Linux**,可以通过 [Snap Store](https://snapcraft.io/adguard-home) 安全且方便地安装 AdGuard Home。
#### <a href="#snap-store" id="snap-store" name="snap-store">Snap Store</a>
### [指南](#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)
### <a href="#guides" id="guides" name="guides">Guides</a>
### [这与公共 AdGuard DNS 服务器有何不同?](#comparison-adguard-dns)
See our [Wiki][wiki].
运行自己的 AdGuard Home 服务器可以让你做到远不止使用公共 DNS 服务器所能做的。这是一个完全不同的层次。你自己试试看:
[wiki]: https://github.com/AdguardTeam/AdGuardHome/wiki
* 选择服务器具体拦截和允许的内容。
* 监控网络活动。
* 添加您自己的自定义过滤规则。
### <a href="#api" id="api" name="api">API</a>
* **最重要的是,这是您自己的服务器,也只有您能掌控。**
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/
### [AdGuard Home 与 Pi-Hole 有何不同?](#comparison-pi-hole)
到目前为止AdGuard Home 与 Pi-Hole 很多方面都有相似之处。两者都使用所谓的“DNS 漏洞利用”方法来屏蔽广告和追踪器,并且都允许用户自定义屏蔽内容。
我们不会止步于此。DNS 漏洞利用可以作为一个不错的起点,但这仅仅是个开始。
## <a href="#comparison" id="comparison" name="comparison">Comparing AdGuard Home to other solutions</a>
AdGuard Home 提供了许多开箱即用的功能,无需安装和配置额外的软件。我们希望它简单到即使是普通用户也能在最少的努力下完成设置。
### <a href="#comparison-adguard-dns" id="comparison-adguard-dns" name="comparison-adguard-dns">How is this different from public AdGuard DNS servers?</a>
\*\*免责声明:\*\* 列出的一些功能可以通过安装额外的软件或通过使用 SSH 终端手动重新配置 Pi-Hole 组成的一部分工具来添加。然而,在我们看来,这不能合法地算作 Pi-Hole 的功能。
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:
| 功能 | 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 权限运行 | ✅ | ❌ |
* Choose what exactly the server blocks and permits.
### [AdGuard Home 与传统广告拦截器有何不同](#comparison-adblock)
* Monitor your network activity.
视情况而定。
* Add your own custom filtering rules.
DNS 黑洞能够拦截大量广告,但缺乏传统广告拦截器的灵活性和功能。你可以通过阅读 [这篇文章](https://adguard.com/blog/adguard-vs-adaway-dns66.html) 来了解这两种方法之间的差异,该文章将 AdGuard for Android一种传统广告拦截器与主机级别广告拦截器在功能上几乎与基于 DNS 的拦截器相同)进行了比较。这种级别的保护对一些用户来说已经足够。
* **Most importantly, it's your own server, and you are the only one who's in
control.**
此外,使用基于 DNS 的阻塞器还可以帮助在智能电视、智能音箱或其他类型的物联网设备(在这些设备上无法安装传统广告拦截器)上阻止广告、跟踪和分析请求。
### [已知限制](#comparison-limitations)
以下是一些 DNS 级别阻塞器无法阻止的示例:
### <a href="#comparison-pi-hole" id="comparison-pi-hole" name="comparison-pi-hole">How does AdGuard Home compare to Pi-Hole</a>
* YouTube、Twitch 的广告;
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.
* Facebook、Twitter、Instagram 的赞助帖子。
<aside>
We're not going to stop here. DNS sinkholing is not a bad starting point, but
this is just the beginning.
</aside>
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.
本质上,任何与内容共享域的广告都无法被 DNS 级别的阻塞器拦截。
**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.
未来是否有处理这种情况的可能性DNS 从来都不足以做到这一点。我们唯一的办法是使用内容阻塞代理,就像我们在独立的 AdGuard 应用程序中所做的那样。未来我们将为 AdGuard Home 带来这一功能支持。不幸的是,即使在这种情况下,仍然会有无法拦截或需要相当复杂配置的情况。
| Feature | AdGuard&nbsp;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] | ✅ | ❌ |
## [如何从源代码构建](#how-to-build)
[wiki-noroot]: https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started#running-without-superuser
### [前提条件](#prerequisites)
运行 \`make init\` 来准备开发环境。
你需要以下内容来构建 AdGuard Home
### <a href="#comparison-adblock" id="comparison-adblock" name="comparison-adblock">How does AdGuard Home compare to traditional ad blockers</a>
* Go v1.19 或更新版本;
* Node.js v10.16.2 或更高版本;
* npm v6.14 或更高版本;
* yarn v1.22.5 或更高版本。
It depends.
### [构建](#building)
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).
### <a href="#comparison-limitations" id="comparison-limitations" name="comparison-limitations">Known limitations</a>
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
## <a href="#how-to-build" id="how-to-build" name="how-to-build">How to build from source</a>
### <a href="#prerequisites" id="prerequisites" name="prerequisites">Prerequisites</a>
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.
### <a href="#building" id="building" name="building">Building</a>
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` 了解其他命令。
#### <a href="#building-cross" id="building-cross" name="building-cross">Building for a different platform</a>
#### [为不同的平台进行构建](#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'
```
#### <a href="#preparing-releases" id="preparing-releases" name="preparing-releases">Preparing releases</a>
#### [准备发布](#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) 。
#### <a href="#docker-image" id="docker-image" name="docker-image">Docker image</a>
#### [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].
#### <a href="#debugging-the-frontend" id="debugging-the-frontend" name="debugging-the-frontend">Debugging the frontend</a>
参见 [`build-docker` 目标文档](https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-dockersh-build-a-multi-architecture-docker-image) 。
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.
#### [前端调试](#debugging-the-frontend)
1. In a separate terminal, run:
当您需要调试前端而无需每次重新编译生产版本,例如检查您的标签在表单中会如何显示时,可以运行前端构建开发环境。
1. 在另一个终端中运行:
```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.
2. 运行 `AdGuardHome` 二进制文件并添加 `--local-frontend` 标志,这将指示 AdGuard Home 忽略内置前端文件并使用 `./build/` 目录中的文件。
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
3. 现在,您在 `./client/` 目录中所做的任何更改都应该重新编译并在 Web UI 中可用。请确保禁用浏览器缓存,以确保您实际获取到重新编译的版本。
## [贡献](#contributing)
## <a href="#contributing" id="contributing" name="contributing">Contributing</a>
欢迎您 fork 本仓库,进行更改并 [提交拉取请求](https://github.com/AdguardTeam/AdGuardHome/pulls) 。不过请确保遵循我们的 [代码规范](https://github.com/AdguardTeam/CodeGuidelines/) 。
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.
请注意,我们不期望人们同时对程序的 UI 部分和后端部分进行贡献。理想情况下后端部分如配置、API 和功能本身应首先实现。UI 部分可以在不同的 pull request 中由不同的人稍后实现。
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.
### [测试不稳定版本](#test-unstable-versions)
[guide]: https://github.com/AdguardTeam/CodeGuidelines/
[pr]: https://github.com/AdguardTeam/AdGuardHome/pulls
您可以使用两种更新渠道:
* `beta`: AdGuard Home 的 beta 版本。较为稳定的版本,通常每两周或更频繁地发布一次。
* `edge`: AdGuard Home 开发分支的最新版本。此渠道每天都会推送新更新。
有三种方式可以安装不稳定版本:
### <a href="#test-unstable-versions" id="test-unstable-versions" name="test-unstable-versions">Test unstable versions</a>
1. [Snap Store](https://snapcraft.io/adguard-home): 查找 `beta``edge` 渠道。
There are two update channels that you can use:
2. [Docker Hub](https://hub.docker.com/r/adguard/adguardhome): 查找 `beta``edge` 标签。
* `beta`: beta versions of AdGuard Home. More or less stable versions,
usually released every two weeks or more often.
3. 独立构建。使用自动化安装脚本,或在维基上查找可用的构建 [on the Wiki](https://github.com/AdguardTeam/AdGuardHome/wiki/Platforms)。
* `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
### [报告问题](#reporting-issues)
### <a href="#reporting-issues" id="reporting-issues" name="reporting-issues">Report issues</a>
如果遇到任何问题或有建议,请访问 [此页面](https://github.com/AdguardTeam/AdGuardHome/issues) 并点击“新建问题”按钮。
If you run into any problem or have a suggestion, head to [this page][iss] and
click on the “New issue” button.
### [帮助进行翻译](#translate)
[iss]: https://github.com/AdguardTeam/AdGuardHome/issues
如果您想帮助翻译 AdGuard Home请了解我们在 [知识库](https://kb.adguard.com/en/general/adguard-translations) 中关于翻译 AdGuard 产品的更多信息。您可以在 [CrowdIn 上的 AdGuardHome 项目](https://crowdin.com/project/adguard-applications/en#/adguard-home) 中贡献自己的力量。
### [其他](#help-other)
另一种贡献方式是查找标记为 `help wanted` 的问题,询问该问题是否可以参与,并提交修复漏洞或实现新功能的 PR。
## [使用 AdGuard Home 的项目](#uses)
* [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/) 开发。
## [致谢](#acknowledgments)
### <a href="#translate" id="translate" name="translate">Help with translations</a>
如果没有以下人员的帮助,这款软件是不可能实现的:
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
### <a href="#help-other" id="help-other" name="help-other">Other</a>
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
## <a href="#uses" id="uses" name="uses">Projects that use AdGuard Home</a>
<!--
TODO(a.garipov): Use reference links.
-->
* [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/).
## <a href="#acknowledgments" id="acknowledgments" name="acknowledgments">Acknowledgments</a>
<!--
TODO(a.garipov): Use reference links.
-->
This software wouldn't have been possible without:
* [Go](https://golang.org/dl/) and its libraries:
* [Go](https://golang.org/dl/) 及其库:
* [gcache](https://github.com/bluele/gcache)
* [miekg's dns](https://github.com/miekg/dns)
* [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/) and its libraries:
* And many more Node.js packages.
* [Node.js](https://nodejs.org/) 和其库:
* 和许多更多的 Node.js 包。
* [React.js](https://reactjs.org)
* [Tabler](https://github.com/tabler/tabler)
* [whotracks.me data](https://github.com/cliqz-oss/whotracks.me)
* [whotracks.me 数据](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.
你可能之前见过这里提到了 [CoreDNS](https://coredns.io),但我们已经停止在 AdGuard Home 中使用它。
For the full list of all Node.js packages in use, please take a look at
[`client/package.json`][src-packagejson] file.
要查看所有使用的 Node.js 包的完整列表,请查看 [`client/package.json`](https://github.com/AdguardTeam/AdGuardHome/blob/master/client/package.json) 文件。
[CoreDNS]: https://coredns.io
[src-packagejson]: https://github.com/AdguardTeam/AdGuardHome/blob/master/client/package.json
## [隐私](#privacy)
## <a href="#privacy" id="privacy" name="privacy">Privacy</a>
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 可能发送的所有详细信息,请参阅*完整的隐私政策* ,其中包含了所有理论上可能被发送的内容。

View File

@ -0,0 +1,529 @@
&nbsp;
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="doc/adguard_home_darkmode.svg">
<img alt="AdGuard Home" src="https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/doc/adguard_home_lightmode.svg" width="300px">
</picture>
</p>
<h3 align="center">Privacy protection center for you and your devices</h3>
<p align="center">
Free and open source, powerful network-wide ads & trackers blocking DNS
server.
</p>
<p align="center">
<a href="https://adguard.com/">AdGuard.com</a> |
<a href="https://github.com/AdguardTeam/AdGuardHome/wiki">Wiki</a> |
<a href="https://reddit.com/r/Adguard">Reddit</a> |
<a href="https://twitter.com/AdGuard">Twitter</a> |
<a href="https://t.me/adguard_en">Telegram</a>
<br/><br/>
<a href="https://codecov.io/github/AdguardTeam/AdGuardHome?branch=master">
<img src="https://img.shields.io/codecov/c/github/AdguardTeam/AdGuardHome/master.svg" alt="Code Coverage"/>
</a>
<a href="https://goreportcard.com/report/AdguardTeam/AdGuardHome">
<img src="https://goreportcard.com/badge/github.com/AdguardTeam/AdGuardHome" alt="Go Report Card"/>
</a>
<a href="https://hub.docker.com/r/adguard/adguardhome">
<img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/adguard/adguardhome.svg?maxAge=604800"/>
</a>
<br/>
<a href="https://github.com/AdguardTeam/AdGuardHome/releases">
<img src="https://img.shields.io/github/release/AdguardTeam/AdGuardHome/all.svg" alt="Latest release"/>
</a>
<a href="https://snapcraft.io/adguard-home">
<img alt="adguard-home" src="https://snapcraft.io/adguard-home/badge.svg"/>
</a>
</p>
<br/>
<p align="center">
<img src="https://cdn.adtidy.org/public/Adguard/Common/adguard_home.gif" width="800"/>
</p>
<hr/>
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)
## <a href="#getting-started" id="getting-started" name="getting-started">Getting Started</a>
### <a href="#automated-install-linux-and-mac" id="automated-install-linux-and-mac" name="automated-install-linux-and-mac">Automated install (Unix)</a>
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 <channel>` 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.
### <a href="#alternative-methods" id="alternative-methods" name="alternative-methods">Alternative methods</a>
#### <a href="#manual-installation" id="manual-installation" name="manual-installation">Manual installation</a>
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.
#### <a href="#docker" id="docker" name="docker">Docker</a>
You can use our official Docker image on [Docker Hub].
#### <a href="#snap-store" id="snap-store" name="snap-store">Snap Store</a>
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
### <a href="#guides" id="guides" name="guides">Guides</a>
See our [Wiki][wiki].
[wiki]: https://github.com/AdguardTeam/AdGuardHome/wiki
### <a href="#api" id="api" name="api">API</a>
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/
## <a href="#comparison" id="comparison" name="comparison">Comparing AdGuard Home to other solutions</a>
### <a href="#comparison-adguard-dns" id="comparison-adguard-dns" name="comparison-adguard-dns">How is this different from public AdGuard DNS servers?</a>
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.**
### <a href="#comparison-pi-hole" id="comparison-pi-hole" name="comparison-pi-hole">How does AdGuard Home compare to Pi-Hole</a>
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.
<aside>
We're not going to stop here. DNS sinkholing is not a bad starting point, but
this is just the beginning.
</aside>
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&nbsp;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
### <a href="#comparison-adblock" id="comparison-adblock" name="comparison-adblock">How does AdGuard Home compare to traditional ad blockers</a>
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).
### <a href="#comparison-limitations" id="comparison-limitations" name="comparison-limitations">Known limitations</a>
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
## <a href="#how-to-build" id="how-to-build" name="how-to-build">How to build from source</a>
### <a href="#prerequisites" id="prerequisites" name="prerequisites">Prerequisites</a>
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.
### <a href="#building" id="building" name="building">Building</a>
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.
#### <a href="#building-cross" id="building-cross" name="building-cross">Building for a different platform</a>
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'
```
#### <a href="#preparing-releases" id="preparing-releases" name="preparing-releases">Preparing releases</a>
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].
#### <a href="#docker-image" id="docker-image" name="docker-image">Docker image</a>
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].
#### <a href="#debugging-the-frontend" id="debugging-the-frontend" name="debugging-the-frontend">Debugging the frontend</a>
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
## <a href="#contributing" id="contributing" name="contributing">Contributing</a>
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
### <a href="#test-unstable-versions" id="test-unstable-versions" name="test-unstable-versions">Test unstable versions</a>
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
### <a href="#reporting-issues" id="reporting-issues" name="reporting-issues">Report issues</a>
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
### <a href="#translate" id="translate" name="translate">Help with translations</a>
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
### <a href="#help-other" id="help-other" name="help-other">Other</a>
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
## <a href="#uses" id="uses" name="uses">Projects that use AdGuard Home</a>
<!--
TODO(a.garipov): Use reference links.
-->
* [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/).
## <a href="#acknowledgments" id="acknowledgments" name="acknowledgments">Acknowledgments</a>
<!--
TODO(a.garipov): Use reference links.
-->
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
## <a href="#privacy" id="privacy" name="privacy">Privacy</a>
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

View File

@ -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"

View File

@ -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”链接。

52
apps/als/README_en.md Normal file
View File

@ -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.

View File

@ -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
* 定期和及时的应用程序更新
* 简单的用户映射PGIDPUID
* 自定义基本图像与 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-&lt;version tag&gt; |
| arm64 | ✅ | arm64v8-&lt;version tag&gt; |
| 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 DockerDinD设置以便在隔离环境中使用 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 加速应用。仅支持开源驱动程序 IEIntelAMDGPURadeonATINouveau |
### 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 `<external>:<internal>` 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.
容器镜像是使用运行时传递的参数配置的(比如上面的那些)。这些参数用冒号分隔,分别表示 `<external><internal>`。例如,`-p 808080` 将从容器内部暴露端口 `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.
我们的大多数图像都是静态的版本化的需要图像更新和容器重建来更新内部的应用程序。但也有例外如。nextcloudplex我们不建议也不支持在容器内更新应用程序。请参阅上面的[应用程序设置](#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)
### 镜像更新通知- DiunDocker 镜像更新通知)
- 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.
* **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**\-初始版本。

View File

@ -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-&lt;version tag&gt; |
| arm64 | ✅ | arm64v8-&lt;version tag&gt; |
| 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 `<external>:<internal>` 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.

View File

@ -1,98 +1,87 @@
<img align="right" width="100" src="https://avatars.githubusercontent.com/u/100565733?s=200" alt="Lsky Pro Logo"/>
![Lsky Pro Logo](https://avatars.githubusercontent.com/u/100565733?s=200)
<h1 align="left"><a href="https://www.lsky.pro">Lsky Pro</a></h1>
# [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) &middot;
[文档](https://docs.lsky.pro) &middot;
[社区](https://github.com/lsky-org/lsky-pro/discussions) &middot;
[演示](https://pic.vv1234.cn) &middot;
[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))
> 有任何想法、建议、或分享,请移步 [社区](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 的开发和更新等,都是作者在业余时间独立开发,并免费开源使用,如果您认可我的作品,并且觉得对你有所帮助我愿意接受来自各方面的捐赠😃。
<table width="100%">
<tr>
<th>支付宝</th>
<th>微信</th>
</tr>
<tr>
<td><img alt="看不见图片请使用科学上网" src="https://raw.githubusercontent.com/lsky-org/lsky-pro/82988ebe2edd32264d609b26bf9132b3dce7c39e/public/static/app/images/demo/alipay.png"></td>
<td><img alt="看不见图片请使用科学上网" src="https://raw.githubusercontent.com/lsky-org/lsky-pro/82988ebe2edd32264d609b26bf9132b3dce7c39e/public/static/app/images/demo/wechat.jpeg"></td>
</tr>
</table>
### 🤩 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.

View File

@ -0,0 +1,98 @@
<img align="right" width="100" src="https://avatars.githubusercontent.com/u/100565733?s=200" alt="Lsky Pro Logo"/>
<h1 align="left"><a href="https://www.lsky.pro">Lsky Pro</a></h1>
☁ 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) &middot;
[文档](https://docs.lsky.pro) &middot;
[社区](https://github.com/lsky-org/lsky-pro/discussions) &middot;
[演示](https://pic.vv1234.cn) &middot;
[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 的开发和更新等,都是作者在业余时间独立开发,并免费开源使用,如果您认可我的作品,并且觉得对你有所帮助我愿意接受来自各方面的捐赠😃。
<table width="100%">
<tr>
<th>支付宝</th>
<th>微信</th>
</tr>
<tr>
<td><img alt="看不见图片请使用科学上网" src="https://raw.githubusercontent.com/lsky-org/lsky-pro/82988ebe2edd32264d609b26bf9132b3dce7c39e/public/static/app/images/demo/alipay.png"></td>
<td><img alt="看不见图片请使用科学上网" src="https://raw.githubusercontent.com/lsky-org/lsky-pro/82988ebe2edd32264d609b26bf9132b3dce7c39e/public/static/app/images/demo/wechat.jpeg"></td>
</tr>
</table>
### 🤩 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.

View File

@ -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/)
## 更多信息
Matomo 与竞争对手有何不同之处:
* 您拥有自己的网站分析数据: 由于 Matomo 安装在您的服务器上,数据存储在您自己的数据库中,您可以使用强大的 Matomo 分析 API 获取所有统计数据。
* Matomo 是一款自由软件,可以轻松配置以尊重访客的隐私。
* 现代、易于使用的用户界面:您可以完全自定义仪表板,拖放小部件等。
* Matomo 的功能是内置在插件中的:您可以添加新功能并移除不需要的功能。您可以自己构建网络分析插件,或者聘请顾问将自定义功能集成到 Matomo 中。
* 活跃的国际开源社区,拥有超过 200,000 名活跃用户(跟踪更多网站!)
* 高级网络分析功能,如电子商务跟踪、目标跟踪、活动跟踪、自定义变量、电子邮件报告、自定义细分编辑器、地理位置、实时访问和地图, [以及其他更多功能!](https://matomo.org/feature-overview/)
## More information
更多文档和信息请参见 [https://matomo.org](https://matomo.org)。
What makes Matomo unique from the competition:
* 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.
* 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 dont 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!
我们共同打造世界上最优秀的开源分析平台!

View File

@ -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 的国际化(点击展开)
<details>
<summary>Help us expand and improve Internationalization on this API (Click to expand)</summary>
<h3>Help us expand and improve Internationalization on this API</h3>
### 帮助我们扩展和改进此 API 的国际化
<p><b>Note:</b> We are trying to follow the browser's language tags, which are formally defined in <a href="https://datatracker.ietf.org/doc/html/rfc5646">RFC 5646</a>, which rely on the <a href="https://en.wikipedia.org/wiki/ISO_639">ISO 639</a> standard (quite often the <a href="https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes">639-1 code list</a>) for <a href="https://en.wikipedia.org/wiki/Language_code">language codes</a> to be used.</p>
注意:我们正在尝试遵循浏览器的语言标签,这些标签在 RFC 5646 中正式定义,它们依赖于 ISO 639 标准(通常是 639-1 代码列表)来使用语言代码。
<p>We would love it if you helped this project by taking a look at our <a href="https://github.com/wh-iterabb-it/meowfacts/issues/175">Call for Contributors</a> to see if you can make a contribution that helps us be more inclusive and support more languages. </p>
</details>
我们非常希望您能通过查看我们的《贡献者招募》来帮助我们,看看您是否能够做出贡献,让我们更加包容并支持更多语言。
### 文档
### 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)
<div align="center">
<p>
<a href="https://app.swaggerhub.com/apis-docs/wh-iterabb-it/meowfacts/1.0.0">
<img width="200" height="72" src="https://raw.githubusercontent.com/swagger-api/swagger.io/wordpress/images/assets/SW-logo-clr.png" />
</a>
</p>
<p>
<a href="https://rapidapi.com/wh-iterabb-it-wh-iterabb-it-default/api/meowfacts/">
<img width="200" height="52" src="https://rapidapi.com/static-assets/default/dark-logo-78e48dc1-ca3f-4d67-a6f5-74032f439c8b.svg" />
</a>
</p>
<p>
<a href="https://meow-facts.netlify.app/">
<img width="200" height="52" src="https://img.shields.io/badge/Community_Documentation-FFFFFF.svg?logo=bookstack&logoColor=blue&style=for-the-badge" />
</a>
</p>
</div>
[![](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/)
[![](https://img.shields.io/badge/Community_Documentation-FFFFFF.svg?logo=bookstack&logoColor=blue&style=for-the-badge)](https://meow-facts.netlify.app/)
## Local Development
## 本地开发
### 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或者只是喜欢猫请向以下地址捐款
<div align="center">
<p>This api is dedicated to pistachio; she brought me great comfort in dire times. Words can't describe the debt I owe to her. </p>
<img width="500" height="500" alt="My cat, Sleeping on her back on a table, she did this everywhere because the fan would cool her belly." src="https://i.imgur.com/2EGh2Bp.jpg" />
<p>If you enjoy this api, or just love cats, please donate to:</p>
<p><a href="https://www.animalprojectnyc.org/">NYC Animal Project Website</a></p>
<p><a href="https://www.paypal.me/animalproject">NYC Animal Project Paypal Link</a></p>
[纽约动物项目网站](https://www.animalprojectnyc.org/)
<p align="justify"><strong>NYC Animal Project</strong> 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.</p>
[纽约动物项目 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.</p>
</div>
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.</p>
</div>
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.</p>
</div>
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.</p>
</div>

View File

@ -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
<iframe style="width:100%; height:1000px;" id="miniPaint" src="https://viliusle.github.io/miniPaint/" allow="camera"></iframe>
## 功能
## 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
<a align="center" href="https://github.com/viliusle/miniPaint/graphs/contributors">
<img src="https://contrib.rocks/image?repo=viliusle/miniPaint" />
</a>
要在其他页面中嵌入此应用,请使用以下 HTML 代码:
```
<iframe style="width:100%; height:1000px;" id="miniPaint" src="https://viliusle.github.io/miniPaint/" allow="camera"></iframe>
```
## 构建说明
详见 [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) 联系我们。

View File

@ -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:
<iframe style="width:100%; height:1000px;" id="miniPaint" src="https://viliusle.github.io/miniPaint/" allow="camera"></iframe>
## Build instructions
See [Wiki > Build instructions](https://github.com/viliusle/miniPaint/wiki/Build-instructions)
## Wiki
See [Wiki](https://github.com/viliusle/miniPaint/wiki)
## Contributors
<a align="center" href="https://github.com/viliusle/miniPaint/graphs/contributors">
<img src="https://contrib.rocks/image?repo=viliusle/miniPaint" />
</a>
## License
MIT License
## Support
Please use the GitHub issues for support, features, issues or use mail www.viliusl@gmail.com for contacts.

View File

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -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"

View File

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@ -6,88 +6,66 @@
不用在意,执行以下命令,将文件夹改成普通用户身份,再重建应用即可。
- 路径注意按需修改
* 路径注意按需修改
```
chown -R 1000:1000 /opt/1panel/apps/local/navidrome/navidrome/data
```
# 原始相关
<a href="https://www.navidrome.org"><img src="https://github.com/navidrome/navidrome/raw/master/resources/logo-192x192.png" alt="Navidrome logo" title="navidrome" align="right" height="60px" /></a>
[![Navidrome logo](https://github.com/navidrome/navidrome/raw/master/resources/logo-192x192.png "navidrome")](https://www.navidrome.org)
# Navidrome Music Server &nbsp;[![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**
* 处理非常 **庞大的音乐库**
* 几乎可以 **流式传输任何音频格式**
* 读取并使用你所有精心整理的**元数据**
* 支持**合辑** (各种艺术家专辑)和**盒装集** (多碟专辑)
* **多用户** ,每个用户有自己的播放次数、播放列表、收藏等...
* 资源占用非常**低**
* 多平台,运行在 macOS、Linux 和 Windows 上。还提供了 Docker 镜像
* 适用于所有主要平台的可直接使用的二进制文件,包括 Raspberry Pi
* 自动监控您的库文件夹,检测更改后导入新文件并重新加载新元数据
* 可自定义主题,现代且响应式的 Web 界面,基于 Material UI
* 兼容所有 Subsonic/Madsonic/Airsonic [客户端](https://www.navidrome.org/docs/overview/#apps)
* 实时转码。可以按用户/播放器设置。 **支持 Opus 编码**
* 已翻译成多种语言
## 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/)
所有文档可以在项目网站上找到:[https://www.navidrome.org/docs](https://www.navidrome.org/docs)。以下是些有用的直接链接:
## Screenshots
* [概览](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/)
<p align="left">
<img height="550" src="https://raw.githubusercontent.com/navidrome/navidrome/master/.github/screenshots/ss-mobile-login.png">
<img height="550" src="https://raw.githubusercontent.com/navidrome/navidrome/master/.github/screenshots/ss-mobile-player.png">
<img height="550" src="https://raw.githubusercontent.com/navidrome/navidrome/master/.github/screenshots/ss-mobile-album-view.png">
<img width="550" src="https://raw.githubusercontent.com/navidrome/navidrome/master/.github/screenshots/ss-desktop-player.png">
</p>
## 截图
![](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)

View File

@ -0,0 +1,93 @@
# 使用说明
容器以普通用户身份运行的,
但是默认面板创建应用时,可能会将所需的数据文件夹设定身份为`root`,导致首次运行异常。
不用在意,执行以下命令,将文件夹改成普通用户身份,再重建应用即可。
- 路径注意按需修改
```
chown -R 1000:1000 /opt/1panel/apps/local/navidrome/navidrome/data
```
# 原始相关
<a href="https://www.navidrome.org"><img src="https://github.com/navidrome/navidrome/raw/master/resources/logo-192x192.png" alt="Navidrome logo" title="navidrome" align="right" height="60px" /></a>
# Navidrome Music Server &nbsp;[![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
<p align="left">
<img height="550" src="https://raw.githubusercontent.com/navidrome/navidrome/master/.github/screenshots/ss-mobile-login.png">
<img height="550" src="https://raw.githubusercontent.com/navidrome/navidrome/master/.github/screenshots/ss-mobile-player.png">
<img height="550" src="https://raw.githubusercontent.com/navidrome/navidrome/master/.github/screenshots/ss-mobile-album-view.png">
<img width="550" src="https://raw.githubusercontent.com/navidrome/navidrome/master/.github/screenshots/ss-desktop-player.png">
</p>

View File

@ -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 dont 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) <year>, <your name> (<your email address>)
```
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/)

163
apps/nextcloud/README_en.md Normal file
View File

@ -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 dont 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) <year>, <your name> (<your email address>)
```
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/)

View File

@ -1,70 +1,55 @@
# 使用说明
控制台默认账户密码
```
Email: admin@example.com
Password: changeme
```
# 原始相关
<p align="center">
<img src="https://nginxproxymanager.com/github.png">
<br><br>
<img src="https://img.shields.io/badge/version-2.10.3-green.svg?style=for-the-badge">
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
<img src="https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge">
</a>
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
<img src="https://img.shields.io/docker/pulls/jc21/nginx-proxy-manager.svg?style=for-the-badge">
</a>
</p>
![](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 终止的反向代理,并且必须简单到连猴子都能操作。这个目标没有改变。虽然可能有高级选项,但它们是可选的,项目应该尽可能简单,以便降低入门门槛。
<a href="https://www.buymeacoffee.com/jc21" target="_blank"><img src="http://public.jc21.com/github/by-me-a-coffee.png" alt="Buy Me A Coffee" style="height: 51px !important;width: 217px !important;" ></a>
[![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)
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)

View File

@ -0,0 +1,122 @@
# 使用说明
控制台默认账户密码
```
Email: admin@example.com
Password: changeme
```
# 原始相关
<p align="center">
<img src="https://nginxproxymanager.com/github.png">
<br><br>
<img src="https://img.shields.io/badge/version-2.10.3-green.svg?style=for-the-badge">
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
<img src="https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge">
</a>
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
<img src="https://img.shields.io/docker/pulls/jc21/nginx-proxy-manager.svg?style=for-the-badge">
</a>
</p>
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.
<a href="https://www.buymeacoffee.com/jc21" target="_blank"><img src="http://public.jc21.com/github/by-me-a-coffee.png" alt="Buy Me A Coffee" style="height: 51px !important;width: 217px !important;" ></a>
## 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)

View File

@ -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
* 无 JavaScript 或广告
* 所有请求都通过后端进行,客户端从不直接与 Twitter 交流
* 防止 Twitter 追踪您的 IP 或 JavaScript 指纹
* 使用 Twitter 的非官方 API无需速率限制或开发者账户
* 轻量级(对于[@nim_lang](https://nitter.net/nim_lang)60KB 比 twitter.com 的 784KB 少)
* RSS 源
* 主题
* 移动支持(响应式设计)
* AGPLv3 授权,不允许有专有实例

20
apps/nitter/README_en.md Normal file
View File

@ -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

View File

@ -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 <https://github.com/linuxserver/docker-digikam#keyboard-layouts> |
| 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)

283
apps/obsidian/README_en.md Normal file
View File

@ -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 <https://github.com/linuxserver/docker-digikam#keyboard-layouts> |
| 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: <your nginx proxy manager network>
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)

View File

@ -1,83 +1,72 @@
<div class='d-none'>
> **注意**
>
> 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</span>
> 2. We develop OneDev at <a href="https://code.onedev.io/onedev/server">code.onedev.io</a> for sake of dogfooding. All issues and pull requests should be submitted there
# 自托管 Git 服务器,附带看板和 CI/CD
</div>
## [快速入门](https://docs.onedev.io) | [安装指南](https://docs.onedev.io/category/installation-guide) | [全部文档](https://docs.onedev.io)
<div align="center">
<h1>Self-hosted Git Server with Kanban and CI/CD</h1>
## 开箱即用的符号搜索和导航
<h2>
<a href="https://docs.onedev.io">Quickstart</a>
| <a href="https://docs.onedev.io/category/installation-guide">Installation Guide</a>
| <a href="https://docs.onedev.io">All Documentation</a>
</h2>
当然IDE 在这方面做得很好,但很多时候我们需要在旧提交中搜索(调查发布版本的问题等),而在 IDE 中切换提交可能会很麻烦且速度慢。
<p style="margin-bottom: 20px;">
</div>
它通过使用 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. 
得益于 ANTLROneDev 配备了针对项目、提交、问题、构建和拉取请求的复杂查询语言,具有直观的自动补全和提示功能。例如,它使我们的客户能够找到他们当前运行版本和最新版本之间的已修复问题,并使我们能够找到所有涉及特定模块的提交,等等。
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://yourkit.com) supports this project by providing a free open source license of their excellent Java profiler
[YourKit](https://yourkit.com) 通过提供他们出色的 Java Profiler 的免费开源许可支持这个项目

140
apps/onedev/README_en.md Normal file
View File

@ -0,0 +1,140 @@
<div class='d-none'>
> **Note**
> 1. Do not worry about security advisories above. They are fixed as soon as discovered and published to notify users</span>
> 2. We develop OneDev at <a href="https://code.onedev.io/onedev/server">code.onedev.io</a> for sake of dogfooding. All issues and pull requests should be submitted there
</div>
<div align="center">
<h1>Self-hosted Git Server with Kanban and CI/CD</h1>
<h2>
<a href="https://docs.onedev.io">Quickstart</a>
| <a href="https://docs.onedev.io/category/installation-guide">Installation Guide</a>
| <a href="https://docs.onedev.io">All Documentation</a>
</h2>
<p style="margin-bottom: 20px;">
</div>
## 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

View File

@ -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 开发相关的问题。

View File

@ -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).

View File

@ -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/).
Open WebUI 是一个可扩展、功能丰富且用户友好的独立部署 WebUI设计用于完全离线运行。它支持多种 LLM 运行器,包括 Ollama 和 OpenAI 兼容的 API。如需更多信息请务必查看我们的 [Open WebUI 文档](https://docs.openwebui.com/) 。

View File

@ -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这里就是您应该去的地方。

View File

@ -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.

View File

@ -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:
| <div style="width:285px">**Feature**</div> | **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 等顶级公司获得面试和录用通知。这已经被证明有效,并受到招聘人员和招聘经理的青睐。 |
OpenResumes 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
## 技术栈
| <div style="width:140px">**Category**</div> | <div style="width:100px">**Choice**</div> | **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) | Reacts 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 PDFs 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`
| <div style="width:115px">**Page Route**</div> | **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 resumes 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
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 在线版本

View File

@ -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:
| <div style="width:285px">**Feature**</div> | **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
OpenResumes 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
| <div style="width:140px">**Category**</div> | <div style="width:100px">**Choice**</div> | **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) | Reacts 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 PDFs 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`)
| <div style="width:115px">**Page Route**</div> | **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 resumes 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

View File

@ -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环境。

View File

@ -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.

View File

@ -1,45 +1,35 @@
<div align="center">
[![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)
</div>
* * *
------
为您的用户提供默认安全工具。
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)编写和维护的开源软件,得到了一些杰出贡献者的帮助。没有组织、公司或邪恶议程。

View File

@ -0,0 +1,45 @@
<div align="center">
[![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)
</div>
------
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.

View File

@ -1,98 +1,73 @@
# 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
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:
1. 在合适的目录下创建一个虚拟环境。最后一个参数是环境的名称;可以根据需要更改:
```bash
$ python3 -m venv venv
```
2. Now activate the virtual environment:
2. 现在激活虚拟环境:
```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:
3. pgAdmin 使用的一些组件需要非常新的版本的 *pip*,因此请将其更新到最新版本:
```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:
4. 确保 PostgreSQL 安装的 bin/目录在路径中(以便在构建 psycopg3 时可以找到 pg\_config并安装所需的包
```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:
如果你计划运行回归测试,还需要安装 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:
5. 为 pgAdmin 创建一个本地配置文件。编辑$PGADMIN4\_SRC/web/config\_local.py并添加任何所需的配置选项以 config.py 文件为参考 - config\_local.py 中任何重复的设置将覆盖 config.py 中的设置)。典型的开发配置可能如下:
```python
from config import *
@ -127,45 +102,32 @@ simple - adapt as required for your distribution:
)
```
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:
6. 在服务器模式下,配置数据库的初始设置是交互式的,而在桌面模式下是非交互式的。你可以通过运行以下命令来运行它:
```bash
(venv) $ python3 $PGADMIN4_SRC/web/setup.py
```
or by starting pgAdmin 4:
或者启动 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.
此时,你可以在命令行中以服务器或桌面模式运行 pgAdmin 4并通过终端中显示的 URL 从 web 浏览器访问它。
# Building the Web Assets
在 Windows 上设置环境稍微复杂一些,详情请参见 *pkg/win32/README.txt*
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.
# 构建 Web 资产
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:
pgAdmin 依赖于多个第三方 Javascript 库。这些库连同它自己的 Javascript 代码、SCSS/CSS 代码和图片需要被打包成一个“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 *\<dir name>_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。您还可以在主题目录中添加一个预览图片文件名为 *<dir name>\_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**.
如果您想报告 pgAdmin 的安全问题,请发送邮件至 **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、pgAgent 和 pgAdmin 网站的设计或代码中发现的安全问题。不应用于提问安全相关的问题。
# Project info
# 项目信息
A GitHub project for pgAdmin 4 can be found at the address below:
pgAdmin 4 的 GitHub 项目可以在以下地址找到:
https://github.com/pgadmin-org/pgadmin4
[https://github.com/pgadmin-org/pgadmin4](https://github.com/pgadmin-org/pgadmin4)
Please submit any changes as Pull Requests against the *master* branch of the
*pgadmin-org/pgadmin4* repository.
请将任何更改提交为针对 *master* 分支的 Pull Requests。 请在 *pgadmin-org/pgadmin4* 仓库中提交更改。
If you wish to discuss pgAdmin 4, or contribute to the project, please use the
pgAdmin Hackers mailing list:
如果您想讨论 pgAdmin 4或为该项目做贡献请使用 pgAdmin Hackers 邮件列表:
pgadmin-hackers@postgresql.org
[pgadmin-hackers@postgresql.org](mailto:pgadmin-hackers@postgresql.org)

286
apps/pgadmin4/README_en.md Normal file
View File

@ -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 *\<dir name>_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

View File

@ -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 ##
<img align="right" width="25%" src="https://www.photoprism.app/user/pages/01.home/03._screenshots/iphone-maps-hybrid-540px.png">
## 快速入门
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 donts" 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 国际许可协议》下可用;可能还适用其他条款。*

View File

@ -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 ##
<img align="right" width="25%" src="https://www.photoprism.app/user/pages/01.home/03._screenshots/iphone-maps-hybrid-540px.png">
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 donts" 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.*

View File

@ -1,135 +1,122 @@
<img src="https://github.com/photoview/photoview/raw/master/screenshots/photoview-logo.svg" height="92px" alt="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
## 赞助商
<table>
<tr>
<td>
<a href="https://github.com/ericerkz">
<img src="https://avatars.githubusercontent.com/u/79728329?v=4" height="auto" width="100" style="border-radius:50%"><br/>
<b>@ericerkz</b>
</a>
</td>
<td>
<a href="https://github.com/robin-moser">
<img src="https://avatars.githubusercontent.com/u/26254821?v=4" height="auto" width="100" style="border-radius:50%"><br/>
<b>@robin-moser</b>
</a>
</td>
<td>
<a href="https://github.com/Revorge">
<img src="https://avatars.githubusercontent.com/u/32901816?v=4" height="auto" width="100" style="border-radius:50%"><br/>
<b>@Revorge</b>
</a>
</td>
<td>
<a href="https://github.com/deexno">
<img src="https://avatars.githubusercontent.com/u/50229919?v=4" height="auto" width="100" style="border-radius:50%"><br/>
<b>@deexno</b>
</a>
</td>
<td>
<a href="https://github.com/FKrauss">
<img src="https://avatars.githubusercontent.com/u/4820683?v=4" height="auto" width="100" style="border-radius:50%"><br/>
<b>@FKrauss</b>
</a>
</td>
<td>
<a href="https://github.com/jupblb">
<img src="https://avatars.githubusercontent.com/u/3370617?v=4" height="auto" width="100" style="border-radius:50%"><br/>
<b>@jupblb</b>
</a>
</td>
</table>
<table data-immersive-translate-walked="b3c9fbac-a639-4f50-892e-9b53bd2befa6"><tbody data-immersive-translate-walked="b3c9fbac-a639-4f50-892e-9b53bd2befa6"><tr data-immersive-translate-walked="b3c9fbac-a639-4f50-892e-9b53bd2befa6"><td data-immersive-translate-walked="b3c9fbac-a639-4f50-892e-9b53bd2befa6">@ericerkz</td><td data-immersive-translate-walked="b3c9fbac-a639-4f50-892e-9b53bd2befa6">@robin-moser</td><td data-immersive-translate-walked="b3c9fbac-a639-4f50-892e-9b53bd2befa6">@Revorge</td><td data-immersive-translate-walked="b3c9fbac-a639-4f50-892e-9b53bd2befa6">@deexno</td><td data-immersive-translate-walked="b3c9fbac-a639-4f50-892e-9b53bd2befa6">@FKrauss</td><td data-immersive-translate-walked="b3c9fbac-a639-4f50-892e-9b53bd2befa6">@jupblb</td></tr></tbody></table>

209
apps/photoview/README_en.md Normal file
View File

@ -0,0 +1,209 @@
<img src="https://github.com/photoview/photoview/raw/master/screenshots/photoview-logo.svg" height="92px" alt="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
<table>
<tr>
<td>
<a href="https://github.com/ericerkz">
<img src="https://avatars.githubusercontent.com/u/79728329?v=4" height="auto" width="100" style="border-radius:50%"><br/>
<b>@ericerkz</b>
</a>
</td>
<td>
<a href="https://github.com/robin-moser">
<img src="https://avatars.githubusercontent.com/u/26254821?v=4" height="auto" width="100" style="border-radius:50%"><br/>
<b>@robin-moser</b>
</a>
</td>
<td>
<a href="https://github.com/Revorge">
<img src="https://avatars.githubusercontent.com/u/32901816?v=4" height="auto" width="100" style="border-radius:50%"><br/>
<b>@Revorge</b>
</a>
</td>
<td>
<a href="https://github.com/deexno">
<img src="https://avatars.githubusercontent.com/u/50229919?v=4" height="auto" width="100" style="border-radius:50%"><br/>
<b>@deexno</b>
</a>
</td>
<td>
<a href="https://github.com/FKrauss">
<img src="https://avatars.githubusercontent.com/u/4820683?v=4" height="auto" width="100" style="border-radius:50%"><br/>
<b>@FKrauss</b>
</a>
</td>
<td>
<a href="https://github.com/jupblb">
<img src="https://avatars.githubusercontent.com/u/3370617?v=4" height="auto" width="100" style="border-radius:50%"><br/>
<b>@jupblb</b>
</a>
</td>
</table>

View File

@ -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.
**图小小 (Pic Smaller)** 是一个极其易用的在线图片压缩工具。其用户界面直观,并支持压缩配置。同时,由于它是纯粹的本地压缩,没有任何服务器端逻辑,因此完全安全。

View File

@ -2,141 +2,107 @@
需要按需配置应用目录下`data`文件夹里的`prometheus.yml`,以自定义更多功能。
# 原始相关
<h1 align="center" style="border-bottom: none">
<a href="//prometheus.io" target="_blank"><img alt="Prometheus" src="https://raw.githubusercontent.com/prometheus/prometheus/main/documentation/images/prometheus-logo.svg"></a><br>Prometheus
</h1>
# [![Prometheus](https://raw.githubusercontent.com/prometheus/prometheus/main/documentation/images/prometheus-logo.svg)](//prometheus.io)
普罗米修斯
<p align="center">Visit <a href="//prometheus.io" target="_blank">prometheus.io</a> for the full documentation,
examples and guides.</p>
访问 [prometheus.io](//prometheus.io) 获取完整的文档、示例和指南。
<div align="center">
[![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/)项目,是一个系统和服务监控系统。它以给定的时间间隔从配置的目标收集指标,评估规则表达式,显示结果,并可以在观察到指定条件时触发警报。
</div>
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 <http://localhost:9090/>.
Prometheus 现在可以通过 [http//localhost9090/](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) 。

View File

@ -0,0 +1,197 @@
# 使用说明
需要按需配置应用目录下`data`文件夹里的`prometheus.yml`,以自定义更多功能。
# 原始相关
<h1 align="center" style="border-bottom: none">
<a href="//prometheus.io" target="_blank"><img alt="Prometheus" src="https://raw.githubusercontent.com/prometheus/prometheus/main/documentation/images/prometheus-logo.svg"></a><br>Prometheus
</h1>
<p align="center">Visit <a href="//prometheus.io" target="_blank">prometheus.io</a> for the full documentation,
examples and guides.</p>
<div align="center">
[![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)
</div>
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 <http://localhost:9090/>.
### 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

View File

@ -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))
<img width="300" height="104" src="https://5856039.fs1.hubspotusercontent-na1.net/hub/5856039/hubfs/dockerhub/casting-buttons/Qbittorrent.png"/>](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)
<img width="767" height="418" src="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.
* [Issue Tracker GitHub](https://github.com/kasmtech/workspaces-issues/issues "GitHub Support"): 社区问题报告

View File

@ -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).
<img width="300" height="104" src="https://5856039.fs1.hubspotusercontent-na1.net/hub/5856039/hubfs/dockerhub/casting-buttons/Qbittorrent.png"/>](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/).
<img width="767" height="418" src="https://5856039.fs1.hubspotusercontent-na1.net/hubfs/5856039/dockerhub/qbittorrent.png"/>
## 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.

View File

@ -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、WWWHTTP 协议)和 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) 开发。

54
apps/remmina/README_en.md Normal file
View File

@ -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).

View File

@ -1,82 +1,77 @@
------------------------------------------------------------------------
<img src="https://raw.githubusercontent.com/searxng/searxng/master/src/brand/searxng.svg" alt="SearXNGlogo" width="15%">
------------------------------------------------------------------------
尊重隐私、可 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/) <a href="https://docs.searxng.org/"><img src="https://raw.githubusercontent.com/searxng/searxng/master/src/brand/searxng-wordmark.svg" alt="SearXNGlogo" width="1.4%"></a>
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`\`。

82
apps/searxng/README_en.md Normal file
View File

@ -0,0 +1,82 @@
------------------------------------------------------------------------
<img src="https://raw.githubusercontent.com/searxng/searxng/master/src/brand/searxng.svg" alt="SearXNGlogo" width="15%">
------------------------------------------------------------------------
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/) <a href="https://docs.searxng.org/"><img src="https://raw.githubusercontent.com/searxng/searxng/master/src/brand/searxng-wordmark.svg" alt="SearXNGlogo" width="1.4%"></a>
------------------------------------------------------------------------
# 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`.

View File

@ -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
The different components of SeaTable community edition are released under different licenses:
SeaTable 社区版的不同组件采用不同的许可证:
* dtable-web: Apache License v2
* dtable-events: Apache License v2
* dtable-server: Proprietary License
* dtable-server: 专有许可
* 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.
* 源代码稍后将上传到 GitHub。如果你感兴趣它们目前包含在 Docker 镜像中。
## Reporting issues
Please report issues in the forum: https://forum.seatable.io/
## 报告问题
请在论坛中报告问题:\[https://forum.seatable.io/\](https://forum.seatable.io/)

View File

@ -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/

View File

@ -1,37 +1,33 @@
# Slash
# 斜杠
<img align="right" src="./resources/logo.png" height="64px" alt="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 还支持团队共享链接库,以便于协作。
<p>
<a href="https://discord.gg/QZqUuUAhDV"><img alt="Discord" src="https://img.shields.io/badge/discord-chat-5865f2?logo=discord&logoColor=f5f5f5" /></a>
<a href="https://hub.docker.com/r/yourselfhosted/slash"><img alt="Docker pull" src="https://img.shields.io/docker/pulls/yourselfhosted/slash.svg" /></a>
<a href="https://github.com/boojack/slash/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/boojack/slash?logo=github" /></a>
</p>
[![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).
了解更多,请参阅 [Slash 浏览器扩展程序](https://github.com/boojack/slash/blob/main/docs/install-browser-extension.md) 。

37
apps/slash/README_en.md Normal file
View File

@ -0,0 +1,37 @@
# Slash
<img align="right" src="./resources/logo.png" height="64px" alt="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.
<p>
<a href="https://discord.gg/QZqUuUAhDV"><img alt="Discord" src="https://img.shields.io/badge/discord-chat-5865f2?logo=discord&logoColor=f5f5f5" /></a>
<a href="https://hub.docker.com/r/yourselfhosted/slash"><img alt="Docker pull" src="https://img.shields.io/docker/pulls/yourselfhosted/slash.svg" /></a>
<a href="https://github.com/boojack/slash/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/boojack/slash?logo=github" /></a>
</p>
![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).

View File

@ -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=<user-id>
```
- 2. 容器管理页面连接容器终端执行的方式
* 2. 容器管理页面连接容器终端执行的方式
```
# 邮箱方式
slink user:activate --email=admin@localhost.com
```
```
# uuid 方式
slink user:activate --uuid=<user-id>
```
- 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、作品集、博客等。

47
apps/slink/README_en.md Normal file
View File

@ -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=<user-id>
```
- 2. 容器管理页面连接容器终端执行的方式
```
# 邮箱方式
slink user:activate --email=admin@localhost.com
```
```
# uuid 方式
slink user:activate --uuid=<user-id>
```
- 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.

View File

@ -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
* 创建和压缩数据库文件
* 创建、定义、修改和删除表
* 创建、定义和删除索引
* 浏览、编辑、添加和删除记录
* 搜索记录
* 将记录作为文本导入和导出
* 从/到 CSV 文件导入和导出表格
* 从/到 SQL 转储文件导入/导出数据库
* 执行 SQL 查询并检查结果
* 检查应用程序发出的所有 SQL 命令的日志
* 根据表或查询数据绘制简单的图表

View File

@ -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

View File

@ -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

View File

@ -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
```

View File

@ -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. **防止数据丢失**
## 直播平台支持列表
保护用户的数据至关重要。我们采取一切合理措施以避免损坏用户的文件。
| 平台 | 录制 | 弹幕 | 链接格式 |
|---------|----|----|-----------------------------------------------|
| 抖音 | ✅ | ✅ | `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/{直播间}` |
2. **抵御攻击者**
## 安装说明
再次强调,保护用户的数据至关重要。无论我们还有哪些其他目标,我们绝不能让用户的数据容易被未经授权的第三方窃听或篡改。
> 默认账户
>
> 用户名stream-rec
>
> 密码stream-rec 或 `登录密码 (初始化)` 配置
3. **易于使用**
### 必须修改配置
Syncthing 应该易于接近、易于理解且包容性强。
+ `WebSocket API 地址`
4. **自动运行**
默认值:`ws://stream-rec-backend:12555/live/update`
用户交互仅在必要时才应被要求。
需要获取:
5. **普遍可用**
+ 宿主机 IP 地址
+ 配置项 `API 端口`, 默认值:`12555`
Syncthing 应在每台常见计算机上运行。我们深知最新技术并非每个人都能获得。
填写格式:`ws://{宿主机 IP 地址}:{API 端口}/live/update`
6. **个人用户**
### 可修改配置
Syncthing 主要是为了赋予个人用户安全、安全且易于使用的文件同步能力。
+ `NextAuth 服务器地址`
7. **其他一切**
默认值:`http://localhost:15275/`
有很多我们关心的事情没有列在上面。只要这些价值不与上述目标相冲突,优化它们是可以接受的。
需要获取:
+ 宿主机 IP 地址
+ 配置项 `WebUI 端口`, 默认值:`15275`
## 快速入门
填写格式:`http://{宿主机 IP 地址}:{WebUI 端口}/`
请参阅[入门指南](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) 。
+ `API 地址`
## Docker
当前部署方式为 前后端合并部署,请勿强制修改参数值
要在 Docker 中运行 Syncthing请参阅 [Docker README](https://github.com/syncthing/syncthing/blob/main/README-Docker.md)
---
## 投票表决功能/bug
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
我们鼓励您就您关心的问题进行投票。这有助于团队了解用户遇到的最大痛点,并可能影响接下来的工作重点。
## 联系方式
最好的联系点是论坛。如果您发现了一个显然是 bug 的问题,请在 GitHub 问题跟踪器中报告它。
## 构建
从源代码构建 Syncthing 很简单。在从发布版本提取源代码包或通过 git 检出代码后,您只需运行 \`go run build.go\`,二进制文件将创建在 \`./bin\` 目录中。有关构建过程的更多细节,请参阅相关指南。
## 已签名的发布版本
从 v0.10.15 版本起,发布的二进制文件使用密钥 D26E6ED000654A3E 进行 GPG 签名,该密钥可在 [https://syncthing.net/security.html](https://syncthing.net/security.html) 和大多数密钥服务器上获取。
此外,还内置了一个自动更新机制(在某些分发渠道中被禁用),该机制使用编译时嵌入的 ECDSA 签名。macOS 二进制文件也已正确代码签名。
## 文档
请参阅 Syncthing 的 [文档站点](https://docs.syncthing.net/) [\[源代码\]](https://github.com/syncthing/docs)。
所有代码均采用 [MPLv2 License](https://github.com/syncthing/syncthing/blob/main/LICENSE) 许可。

View File

@ -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)

View File

@ -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. **防止数据丢失**
## 直播平台支持列表
保护用户的数据至关重要。我们采取一切合理措施以避免损坏用户的文件。
| 平台 | 录制 | 弹幕 | 链接格式 |
|---------|----|----|-----------------------------------------------|
| 抖音 | ✅ | ✅ | `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/{直播间}` |
2. **抵御攻击者**
## 安装说明
再次强调,保护用户的数据至关重要。无论我们还有哪些其他目标,我们绝不能让用户的数据容易被未经授权的第三方窃听或篡改。
> 默认账户
>
> 用户名stream-rec
>
> 密码stream-rec 或 `登录密码 (初始化)` 配置
3. **易于使用**
### 必须修改配置
Syncthing 应该易于接近、易于理解且包容性强。
+ `WebSocket API 地址`
4. **自动运行**
默认值:`ws://stream-rec-backend:12555/live/update`
用户交互仅在必要时才应被要求。
需要获取:
5. **普遍可用**
+ 宿主机 IP 地址
+ 配置项 `API 端口`, 默认值:`12555`
Syncthing 应在每台常见计算机上运行。我们深知最新技术并非每个人都能获得。
填写格式:`ws://{宿主机 IP 地址}:{API 端口}/live/update`
6. **个人用户**
### 可修改配置
Syncthing 主要是为了赋予个人用户安全、安全且易于使用的文件同步能力。
+ `NextAuth 服务器地址`
7. **其他一切**
默认值:`http://localhost:15275/`
有很多我们关心的事情没有列在上面。只要这些价值不与上述目标相冲突,优化它们是可以接受的。
需要获取:
+ 宿主机 IP 地址
+ 配置项 `WebUI 端口`, 默认值:`15275`
## 快速入门
填写格式:`http://{宿主机 IP 地址}:{WebUI 端口}/`
请参阅[入门指南](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) 。
+ `API 地址`
## Docker
当前部署方式为 前后端合并部署,请勿强制修改参数值
要在 Docker 中运行 Syncthing请参阅 [Docker README](https://github.com/syncthing/syncthing/blob/main/README-Docker.md)
---
## 投票表决功能/bug
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
我们鼓励您就您关心的问题进行投票。这有助于团队了解用户遇到的最大痛点,并可能影响接下来的工作重点。
## 联系方式
最好的联系点是论坛。如果您发现了一个显然是 bug 的问题,请在 GitHub 问题跟踪器中报告它。
## 构建
从源代码构建 Syncthing 很简单。在从发布版本提取源代码包或通过 git 检出代码后,您只需运行 \`go run build.go\`,二进制文件将创建在 \`./bin\` 目录中。有关构建过程的更多细节,请参阅相关指南。
## 已签名的发布版本
从 v0.10.15 版本起,发布的二进制文件使用密钥 D26E6ED000654A3E 进行 GPG 签名,该密钥可在 [https://syncthing.net/security.html](https://syncthing.net/security.html) 和大多数密钥服务器上获取。
此外,还内置了一个自动更新机制(在某些分发渠道中被禁用),该机制使用编译时嵌入的 ECDSA 签名。macOS 二进制文件也已正确代码签名。
## 文档
请参阅 Syncthing 的 [文档站点](https://docs.syncthing.net/) [\[源代码\]](https://github.com/syncthing/docs)。
所有代码均采用 [MPLv2 License](https://github.com/syncthing/syncthing/blob/main/LICENSE) 许可。

View File

@ -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)

View File

@ -1,79 +1,66 @@
[![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`
> 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.
> 注意:如果您在非 amd64 架构(例如树莓派)上构建,请确保为 Node 定义最大 RAM。否则构建将失败。
```yml
version: "3"
@ -94,13 +81,14 @@ or by editing it in the [.env](.env) file. See also the
restart: unless-stopped
```
- browse to http://localhost:8080
* 浏览到 [http://localhost:8080](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
* 使用 `yarn test` 运行所有样式、代码风格和单元测试
* 使用 `yarn fix` 修复代码风格

View File

@ -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

View File

@ -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. **防止数据丢失**
Protecting the user's data is paramount. We take every reasonable
precaution to avoid corrupting the user's files.
保护用户的数据至关重要。我们采取一切合理措施以避免损坏用户的文件。
2. **Secure Against Attackers**
2. **抵御攻击者**
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**
3. **易于使用**
Syncthing should be approachable, understandable and inclusive.
Syncthing 应该易于接近、易于理解且包容性强。
4. **Automatic**
4. **自动运行**
User interaction should be required only when absolutely necessary.
用户交互仅在必要时才应被要求。
5. **Universally Available**
5. **普遍可用**
Syncthing should run on every common computer. We are mindful that the
latest technology is not always available to any given individual.
Syncthing 应在每台常见计算机上运行。我们深知最新技术并非每个人都能获得。
6. **For Individuals**
6. **个人用户**
Syncthing is primarily about empowering the individual user with safe,
secure and easy to use file synchronization.
Syncthing 主要是为了赋予个人用户安全、安全且易于使用的文件同步能力。
7. **Everything Else**
7. **其他一切**
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.
请参阅[入门指南](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) 。
## 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) 许可。

View File

@ -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

View File

@ -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. **防止数据丢失**
Protecting the user's data is paramount. We take every reasonable
precaution to avoid corrupting the user's files.
保护用户的数据至关重要。我们采取一切合理措施以避免损坏用户的文件。
2. **Secure Against Attackers**
2. **抵御攻击者**
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**
3. **易于使用**
Syncthing should be approachable, understandable and inclusive.
Syncthing 应该易于接近、易于理解且包容性强。
4. **Automatic**
4. **自动运行**
User interaction should be required only when absolutely necessary.
用户交互仅在必要时才应被要求。
5. **Universally Available**
5. **普遍可用**
Syncthing should run on every common computer. We are mindful that the
latest technology is not always available to any given individual.
Syncthing 应在每台常见计算机上运行。我们深知最新技术并非每个人都能获得。
6. **For Individuals**
6. **个人用户**
Syncthing is primarily about empowering the individual user with safe,
secure and easy to use file synchronization.
Syncthing 主要是为了赋予个人用户安全、安全且易于使用的文件同步能力。
7. **Everything Else**
7. **其他一切**
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.
请参阅[入门指南](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) 。
## 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) 许可。

114
apps/syncthing/README_en.md Normal file
View File

@ -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

View File

@ -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.
WireGuard 是 Jason A. Donenfeld 的注册商标。

View File

@ -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.

View File

@ -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)
* [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))
* 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 License](https://github.com/bnoordhuis/gyp/blob/master/LICENSE))
* Ninja ([Apache License 2.0](https://github.com/ninja-build/ninja/blob/master/COPYING))
* 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 codec ([BSD License](http://www.opus-codec.org/license/))
* 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 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))
* 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)

View File

@ -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

View File

@ -1,25 +1,20 @@
<div alt style="text-align: center; transform: scale(.5);">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/tldraw/tldraw/main/assets/github-hero-dark-draw.png" />
<img alt="tldraw" src="https://raw.githubusercontent.com/tldraw/tldraw/main/assets/github-hero-light-draw.png" />
</picture>
</div>
![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) 获取快速帮助和支持。

Some files were not shown because too many files have changed in this diff Show More