diff --git a/apps/outline/0.83.0/data.yml b/apps/outline/0.83.0/data.yml deleted file mode 100644 index c2e78f0..0000000 --- a/apps/outline/0.83.0/data.yml +++ /dev/null @@ -1,274 +0,0 @@ -additionalProperties: - formFields: - - child: - default: "" - envKey: PANEL_REDIS_SERVICE - required: true - type: service - default: redis - envKey: PANEL_REDIS_TYPE - labelZh: Redis 服务 (前置检查) - labelEn: Redis Service (Pre-check) - required: true - type: apps - values: - - label: Redis - value: redis - - child: - default: "" - envKey: PANEL_POSTGRES_SERVICE - required: true - type: service - default: postgresql - envKey: PANEL_POSTGRES_TYPE - labelZh: Postgres 服务 (前置检查) - labelEn: Postgres Service (Pre-check) - required: true - type: apps - values: - - label: PostgreSQL - value: postgresql - - default: "/home/outline" - edit: true - envKey: OUTLINE_ROOT_PATH - labelZh: 数据持久化路径 - labelEn: Data persistence path - required: true - type: text - - default: 3000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelZh: WebUI 端口 - labelEn: WebUI port - required: true - rule: paramPort - type: number - - default: "fbad4f5da794acbc10f060cdfcf8673300f3302d87f076d7f6e781d4840e9c3d" - edit: true - envKey: SECRET_KEY - labelZh: 加密密钥 - labelEn: Secret Key - required: true - type: password - - default: "b2be1c54acbfe6d965bda01e63195cc815e4743a6fb5ba5f82eae916d98989b5" - edit: true - envKey: UTILS_SECRET - labelZh: 工具密钥 - labelEn: Utils Secret - required: true - type: password - - default: "http://127.0.0.1:3000" - edit: true - envKey: URL - labelZh: 域名 - labelEn: Domain - required: true - rule: paramExtUrl - type: text - - default: "" - edit: true - envKey: CDN_URL - labelZh: CDN 域名 - labelEn: CDN Domain - required: false - type: text - - default: "https://iframe.ly/api/iframely" - edit: true - envKey: IFRAMELY_URL - labelZh: iFramely 地址 - labelEn: iFramely URL - required: true - rule: paramExtUrl - type: text - - default: "" - edit: true - envKey: IFRAMELY_API_KEY - labelZh: iFramely 密钥 - labelEn: iFramely API Key - required: false - type: text - - default: "127.0.0.1" - edit: true - envKey: DB_HOSTNAME - labelZh: 数据库 主机地址 - labelEn: Database Host - required: true - type: text - - default: 5432 - edit: true - envKey: DB_PORT - labelZh: 数据库 端口 - labelEn: Database Port - required: true - rule: paramPort - type: number - - default: "outline" - edit: true - envKey: DB_USERNAME - labelZh: 数据库 用户名 - labelEn: Database User - required: true - type: text - - default: "" - edit: true - envKey: DB_PASSWORD - labelZh: 数据库 密码 - labelEn: Database Password - random: true - required: true - rule: paramComplexity - type: password - - default: "outline" - edit: true - envKey: DB_DATABASE_NAME - labelZh: 数据库 名称 - labelEn: Database Name - required: true - type: text - - default: "redis://localhost:6379" - edit: true - envKey: REDIS_URL - labelZh: Redis 链接 - labelEn: Redis URL - required: true - type: text - - default: "" - edit: true - envKey: SLACK_CLIENT_ID - labelZh: Slack 客户端 ID (鉴权) - labelEn: Slack Client ID (Auth) - required: false - type: text - - default: "" - edit: true - envKey: SLACK_CLIENT_SECRET - labelZh: Slack 客户端密钥 (鉴权) - labelEn: Slack Client Secret (Auth) - required: false - type: password - - default: "" - edit: true - envKey: GOOGLE_CLIENT_ID - labelZh: Google 客户端 ID (鉴权) - labelEn: Google Client ID (Auth) - required: false - type: text - - default: "" - edit: true - envKey: GOOGLE_CLIENT_SECRET - labelZh: Google 客户端密钥 (鉴权) - labelEn: Google Client Secret (Auth) - required: false - type: password - - default: "" - edit: true - envKey: DISCORD_CLIENT_ID - labelZh: Discord 客户端 ID (鉴权) - labelEn: Discord Client ID (Auth) - required: false - type: text - - default: "" - edit: true - envKey: DISCORD_CLIENT_SECRET - labelZh: Discord 客户端密钥 (鉴权) - labelEn: Discord Client Secret (Auth) - required: false - type: password - - default: "" - edit: true - envKey: DISCORD_SERVER_ID - labelZh: Discord 服务端 ID (鉴权) - labelEn: Discord Server ID (Auth) - required: false - type: text - - default: "" - edit: true - envKey: DISCORD_SERVER_ROLES - labelZh: Discord 服务端角色 (鉴权) - labelEn: Discord Server Roles (Auth) - required: false - type: text - - default: "" - edit: true - envKey: SMTP_HOST - labelZh: SMTP 主机 - labelEn: SMTP Host - required: false - type: text - - default: 465 - edit: true - envKey: SMTP_PORT - labelZh: SMTP 端口 - labelEn: SMTP Port - required: false - type: number - - default: "" - edit: true - envKey: SMTP_USERNAME - labelZh: SMTP 用户名 - labelEn: SMTP Username - required: false - type: text - - default: "" - edit: true - envKey: SMTP_PASSWORD - labelZh: SMTP 密码 - labelEn: SMTP Password - required: false - type: password - - default: "" - edit: true - envKey: SMTP_FROM_EMAIL - labelZh: SMTP 发件人 - labelEn: SMTP From Email - required: false - type: text - - default: "" - edit: true - envKey: SLACK_VERIFICATION_TOKEN - labelZh: Slack 验证令牌 (Slack 集成) - labelEn: Slack Verification Token (Slack Integration) - required: false - type: text - - default: "" - edit: true - envKey: SLACK_APP_ID - labelZh: Slack 应用ID (Slack 集成) - labelEn: Slack App ID (Slack Integration) - required: false - type: text - - default: "" - edit: true - envKey: GITHUB_CLIENT_ID - labelZh: GitHub 客户端 ID (GitHub 集成) - labelEn: GitHub Client ID (GitHub Integration) - required: false - type: text - - default: "" - edit: true - envKey: GITHUB_CLIENT_SECRET - labelZh: GitHub 客户端密钥 (GitHub 集成) - labelEn: GitHub Client Secret (GitHub Integration) - required: false - type: password - - default: "" - edit: true - envKey: GITHUB_APP_NAME - labelZh: GitHub 应用名称 (GitHub 集成) - labelEn: GitHub App Name (GitHub Integration) - required: false - type: text - - default: "" - edit: true - envKey: GITHUB_APP_ID - labelZh: GitHub 应用ID (GitHub 集成) - labelEn: GitHub App ID (GitHub Integration) - required: false - type: text - - default: "" - edit: true - envKey: GITHUB_APP_PRIVATE_KEY - labelZh: GitHub 应用私钥 (GitHub 集成) - labelEn: GitHub App Private Key (GitHub Integration) - required: false - type: password diff --git a/apps/outline/0.83.0/docker-compose.yml b/apps/outline/0.83.0/docker-compose.yml deleted file mode 100644 index 17fd032..0000000 --- a/apps/outline/0.83.0/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -networks: - 1panel-network: - external: true - -services: - outline: - image: outlinewiki/outline:0.83.0 - container_name: ${CONTAINER_NAME} - labels: - createdBy: "Apps" - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:3000 - volumes: - - ${OUTLINE_ROOT_PATH}/data:/var/lib/outline/data - env_file: - - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env} - - ${APP_ENV_FILE:-/etc/1panel/envs/outline/outline.env} - - ${ENV_FILE:-/etc/1panel/envs/default.env} - environment: - - DATABASE_URL=postgres://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}/${DB_DATABASE_NAME} diff --git a/apps/outline/0.83.0/envs/default.env b/apps/outline/0.83.0/envs/default.env deleted file mode 100644 index ddd3301..0000000 --- a/apps/outline/0.83.0/envs/default.env +++ /dev/null @@ -1 +0,0 @@ -ENV_FILE=.env diff --git a/apps/outline/0.83.0/envs/global.env b/apps/outline/0.83.0/envs/global.env deleted file mode 100644 index c5f9a92..0000000 --- a/apps/outline/0.83.0/envs/global.env +++ /dev/null @@ -1 +0,0 @@ -TZ=Asia/Shanghai diff --git a/apps/outline/0.83.0/envs/outline.env b/apps/outline/0.83.0/envs/outline.env deleted file mode 100644 index 1e366c0..0000000 --- a/apps/outline/0.83.0/envs/outline.env +++ /dev/null @@ -1,224 +0,0 @@ -# –––––––––––––––– REQUIRED –––––––––––––––– - -NODE_ENV=production - -# Generate a hex-encoded 32-byte random key. You should use `openssl rand -hex 32` -# in your terminal to generate a random value. -SECRET_KEY=generate_a_new_key - -# Generate a unique random key. The format is not important but you could still use -# `openssl rand -hex 32` in your terminal to produce this. -UTILS_SECRET=generate_a_new_key - -# For production point these at your databases, in development the default -# should work out of the box. -DATABASE_URL=postgres://user:pass@localhost:5432/outline -DATABASE_CONNECTION_POOL_MIN= -DATABASE_CONNECTION_POOL_MAX= -# Uncomment this to disable SSL for connecting to Postgres -PGSSLMODE=disable - -# For redis you can either specify an ioredis compatible url like this -REDIS_URL=redis://localhost:6379 -# or alternatively, if you would like to provide additional connection options, -# use a base64 encoded JSON connection option object. Refer to the ioredis documentation -# for a list of available options. -# Example: Use Redis Sentinel for high availability -# {"sentinels":[{"host":"sentinel-0","port":26379},{"host":"sentinel-1","port":26379}],"name":"mymaster"} -# REDIS_URL=ioredis://eyJzZW50aW5lbHMiOlt7Imhvc3QiOiJzZW50aW5lbC0wIiwicG9ydCI6MjYzNzl9LHsiaG9zdCI6InNlbnRpbmVsLTEiLCJwb3J0IjoyNjM3OX1dLCJuYW1lIjoibXltYXN0ZXIifQ== - -# URL should point to the fully qualified, publicly accessible URL. If using a -# proxy the port in URL and PORT may be different. -URL=http://127.0.0.1:3000 -PORT=3000 - -# See [documentation](docs/SERVICES.md) on running a separate collaboration -# server, for normal operation this does not need to be set. -COLLABORATION_URL= - -# Specify what storage system to use. Possible value is one of "s3" or "local". -# For "local", the avatar images and document attachments will be saved on local disk. -FILE_STORAGE=local - -# If "local" is configured for FILE_STORAGE above, then this sets the parent directory under -# which all attachments/images go. Make sure that the process has permissions to create -# this path and also to write files to it. -FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/data - -# Maximum allowed size for the uploaded attachment. -FILE_STORAGE_UPLOAD_MAX_SIZE=262144000 - -# Override the maximum size of document imports, generally this should be lower -# than the document attachment maximum size. -FILE_STORAGE_IMPORT_MAX_SIZE= - -# Override the maximum size of workspace imports, these can be especially large -# and the files are temporary being automatically deleted after a period of time. -FILE_STORAGE_WORKSPACE_IMPORT_MAX_SIZE= - -# To support uploading of images for avatars and document attachments in a distributed -# architecture an s3-compatible storage can be configured if FILE_STORAGE=s3 above. -AWS_ACCESS_KEY_ID=get_a_key_from_aws -AWS_SECRET_ACCESS_KEY=get_the_secret_of_above_key -AWS_REGION=xx-xxxx-x -AWS_S3_ACCELERATE_URL= -AWS_S3_UPLOAD_BUCKET_URL=http://s3:4569 -AWS_S3_UPLOAD_BUCKET_NAME=bucket_name_here -AWS_S3_FORCE_PATH_STYLE=true -AWS_S3_ACL=private - -# –––––––––––––– AUTHENTICATION –––––––––––––– - -# Third party signin credentials, at least ONE OF EITHER Google, Slack, -# or Microsoft is required for a working installation or you'll have no sign-in -# options. - -# To configure Slack auth, you'll need to create an Application at -# => https://api.slack.com/apps -# -# When configuring the Client ID, add a redirect URL under "OAuth & Permissions": -# https:///auth/slack.callback -SLACK_CLIENT_ID=get_a_key_from_slack -SLACK_CLIENT_SECRET=get_the_secret_of_above_key - -# To configure Google auth, you'll need to create an OAuth Client ID at -# => https://console.cloud.google.com/apis/credentials -# -# When configuring the Client ID, add an Authorized redirect URI: -# https:///auth/google.callback -GOOGLE_CLIENT_ID= -GOOGLE_CLIENT_SECRET= - -# To configure Microsoft/Azure auth, you'll need to create an OAuth Client. See -# the guide for details on setting up your Azure App: -# => https://wiki.generaloutline.com/share/dfa77e56-d4d2-4b51-8ff8-84ea6608faa4 -AZURE_CLIENT_ID= -AZURE_CLIENT_SECRET= -AZURE_RESOURCE_APP_ID= - -# To configure generic OIDC auth, you'll need some kind of identity provider. -# See documentation for whichever IdP you use to acquire the following info: -# Redirect URI is https:///auth/oidc.callback -OIDC_CLIENT_ID= -OIDC_CLIENT_SECRET= -OIDC_AUTH_URI= -OIDC_TOKEN_URI= -OIDC_USERINFO_URI= -OIDC_LOGOUT_URI= - -# Specify which claims to derive user information from -# Supports any valid JSON path with the JWT payload -OIDC_USERNAME_CLAIM=preferred_username - -# Display name for OIDC authentication -OIDC_DISPLAY_NAME=OpenID Connect - -# Space separated auth scopes. -OIDC_SCOPES=openid profile email - -# To configure the GitHub integration, you'll need to create a GitHub App at -# => https://github.com/settings/apps -# -# When configuring the Client ID, add a redirect URL under "Permissions & events": -# https:///api/github.callback -GITHUB_CLIENT_ID= -GITHUB_CLIENT_SECRET= -GITHUB_APP_NAME= -GITHUB_APP_ID= -GITHUB_APP_PRIVATE_KEY= - -# To configure Discord auth, you'll need to create a Discord Application at -# => https://discord.com/developers/applications/ -# -# When configuring the Client ID, add a redirect URL under "OAuth2": -# https:///auth/discord.callback -DISCORD_CLIENT_ID= -DISCORD_CLIENT_SECRET= - -# DISCORD_SERVER_ID should be the ID of the Discord server that Outline is -# integrated with. -# Used to verify that the user is a member of the server as well as server -# metadata such as nicknames, server icon and name. -DISCORD_SERVER_ID= - -# DISCORD_SERVER_ROLES should be a comma separated list of role IDs that are -# allowed to access Outline. If this is not set, all members of the server -# will be allowed to access Outline. -# DISCORD_SERVER_ID and DISCORD_SERVER_ROLES must be set together. -DISCORD_SERVER_ROLES= - -# –––––––––––––––– OPTIONAL –––––––––––––––– - -# Base64 encoded private key and certificate for HTTPS termination. This is only -# required if you do not use an external reverse proxy. See documentation: -# https://wiki.generaloutline.com/share/1c922644-40d8-41fe-98f9-df2b67239d45 -SSL_KEY= -SSL_CERT= - -# If using a Cloudfront/Cloudflare distribution or similar it can be set below. -# This will cause paths to javascript, stylesheets, and images to be updated to -# the hostname defined in CDN_URL. In your CDN configuration the origin server -# should be set to the same as URL. -CDN_URL= - -# Auto-redirect to https in production. The default is true but you may set to -# false if you can be sure that SSL is terminated at an external loadbalancer. -FORCE_HTTPS=false - -# Have the installation check for updates by sending anonymized statistics to -# the maintainers -ENABLE_UPDATES=true - -# How many processes should be spawned. As a reasonable rule divide your servers -# available memory by 512 for a rough estimate -WEB_CONCURRENCY=1 - -# You can remove this line if your reverse proxy already logs incoming http -# requests and this ends up being duplicative -DEBUG=http - -# Configure lowest severity level for server logs. Should be one of -# error, warn, info, http, verbose, debug and silly -LOG_LEVEL=info - -# For a complete Slack integration with search and posting to channels the -# following configs are also needed, some more details -# => https://wiki.generaloutline.com/share/be25efd1-b3ef-4450-b8e5-c4a4fc11e02a -# -SLACK_VERIFICATION_TOKEN=your_token -SLACK_APP_ID=A0XXXXXXX -SLACK_MESSAGE_ACTIONS=true - -# Optionally enable Sentry (sentry.io) to track errors and performance, -# and optionally add a Sentry proxy tunnel for bypassing ad blockers in the UI: -# https://docs.sentry.io/platforms/javascript/troubleshooting/#using-the-tunnel-option) -SENTRY_DSN= -SENTRY_TUNNEL= - -# To support sending outgoing transactional emails such as "document updated" or -# "you've been invited" you'll need to provide authentication for an SMTP server -SMTP_HOST= -SMTP_PORT= -SMTP_USERNAME= -SMTP_PASSWORD= -SMTP_FROM_EMAIL= -SMTP_REPLY_EMAIL= -SMTP_TLS_CIPHERS= -SMTP_SECURE=true - -# The default interface language. See translate.getoutline.com for a list of -# available language codes and their rough percentage translated. -DEFAULT_LANGUAGE=zh_CN - -# Optionally enable rate limiter at application web server -RATE_LIMITER_ENABLED=true - -# Configure default throttling parameters for rate limiter -RATE_LIMITER_REQUESTS=1000 -RATE_LIMITER_DURATION_WINDOW=60 - -# Iframely API config -# https://iframe.ly/api/oembed -# https://iframe.ly/api/iframely -IFRAMELY_URL=https://iframe.ly/api/iframely -# IFRAMELY_API_KEY= diff --git a/apps/outline/0.83.0/scripts/init.sh b/apps/outline/0.83.0/scripts/init.sh deleted file mode 100644 index 4c7fbfc..0000000 --- a/apps/outline/0.83.0/scripts/init.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -if [ -f .env ]; then - source .env - - # setup-1 add default values - CURRENT_DIR=$(pwd) - sed -i '/^ENV_FILE=/d' .env - sed -i '/^GLOBAL_ENV_FILE=/d' .env - sed -i '/^APP_ENV_FILE=/d' .env - echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env - echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env - echo "APP_ENV_FILE=${CURRENT_DIR}/envs/outline.env" >> .env - - # setup-2 remove empty values - sed -i '/^.*=""/d' .env - - # setup-3 update directory permissions - mkdir -p "$OUTLINE_ROOT_PATH" - mkdir -p "$OUTLINE_ROOT_PATH/data" - - chown -R 1001:1001 "$OUTLINE_ROOT_PATH" - chmod -R 1777 "$OUTLINE_ROOT_PATH" - - echo "Check Finish." - -else - echo "Error: .env file not found." -fi diff --git a/apps/outline/0.83.0/scripts/uninstall.sh b/apps/outline/0.83.0/scripts/uninstall.sh deleted file mode 100644 index c86c4fb..0000000 --- a/apps/outline/0.83.0/scripts/uninstall.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -if [ -f .env ]; then - source .env - - echo "Check Finish." - -else - echo "Error: .env file not found." -fi diff --git a/apps/outline/0.83.0/scripts/upgrade.sh b/apps/outline/0.83.0/scripts/upgrade.sh deleted file mode 100644 index 4c7fbfc..0000000 --- a/apps/outline/0.83.0/scripts/upgrade.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -if [ -f .env ]; then - source .env - - # setup-1 add default values - CURRENT_DIR=$(pwd) - sed -i '/^ENV_FILE=/d' .env - sed -i '/^GLOBAL_ENV_FILE=/d' .env - sed -i '/^APP_ENV_FILE=/d' .env - echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env - echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env - echo "APP_ENV_FILE=${CURRENT_DIR}/envs/outline.env" >> .env - - # setup-2 remove empty values - sed -i '/^.*=""/d' .env - - # setup-3 update directory permissions - mkdir -p "$OUTLINE_ROOT_PATH" - mkdir -p "$OUTLINE_ROOT_PATH/data" - - chown -R 1001:1001 "$OUTLINE_ROOT_PATH" - chmod -R 1777 "$OUTLINE_ROOT_PATH" - - echo "Check Finish." - -else - echo "Error: .env file not found." -fi diff --git a/apps/outline/README.md b/apps/outline/README.md deleted file mode 100644 index 7145c3b..0000000 --- a/apps/outline/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# Outline - -您团队的知识库 - -![Outline](https://file.lifebus.top/imgs/outline_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) - -## 安装说明 - -### 参数 `加密密钥` 与 `工具密钥` 配置 - -`加密密钥` 与 `工具密钥` 为必填项,且必须为 32 位长度的字符串。 - -可在终端使用 `openssl` 生成 - -```sh -openssl rand -hex 32 -``` - -### 参数 `Redis 链接` 配置 - -由于Redis特殊性,需要按照格式填写,格式如下: - -格式:`redis://[:password@]host[:port][/database][?option=value]` - -``` -# 无密码 -redis://127.0.0.1:6379 - -# 有密码 password -redis://password@127.0.0.1:6379 - -# 有用户名 username,有密码 password -redis://username:password@127.0.0.1:6379 - -# 有密码,指定数据库 1 -redis://password@127.0.0.1:6379/1 - -# 有密码,指定数据库,指定超时时间 -redis://password@127.0.0.1:6379/1?timeout=10 - -# 有密码,指定数据库,指定超时时间,指定连接池大小 -redis://password@127.0.0.1:6379/1?timeout=10&pool_size=10 -``` - -同时,支持使用 `ioredis://` 协议,格式如下: - -> 示例: -> `ioredis://eyJzZW50aW5lbHMiOlt7Imhvc3QiOiJzZW50aW5lbC0wIiwicG9ydCI6MjYzNzl9LHsiaG9zdCI6InNlbnRpbmVsLTEiLCJwb3J0IjoyNjM3OX1dLCJuYW1lIjoibXltYXN0ZXIifQ==` -> -> 对应的解码后的内容为: -> {"sentinels":[{"host":"sentinel-0","port":26379},{"host":"sentinel-1","port":26379}],"name":"mymaster"} - -格式:`ioredis://Base64({})` - -## 反向代理 - -> Nginx - -```nginx - location / { - proxy_pass http://localhost:3000/; - - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "Upgrade"; - proxy_set_header Host $host; - - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $host; - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Scheme $scheme; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_redirect off; - } -``` - ---- - -![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/outline/data.yml b/apps/outline/data.yml deleted file mode 100644 index 8e94fc9..0000000 --- a/apps/outline/data.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Outline -tags: - - 工具 - - 知识库 - - 自托管 -title: 一个基于React和Node.js构建的快速协作知识库 -description: 面向成长型团队的最快知识库,界面美观,实时协作,功能丰富,兼容 Markdown -additionalProperties: - key: outline - name: Outline - tags: - - Tool - shortDescZh: 一个基于React和Node.js构建的快速协作知识库 - shortDescEn: A fast, collaborative, knowledge base for your team built using React and Node.js. - description: - zh: 面向成长型团队的最快知识库,界面美观,实时协作,功能丰富,兼容 Markdown - en: The fastest knowledge base for growing teams. Beautiful, realtime collaborative, feature packed, and markdown compatible. - type: tool - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://www.getoutline.com/ - github: https://github.com/outline/outline/ - document: https://docs.getoutline.com/ diff --git a/apps/outline/logo.png b/apps/outline/logo.png deleted file mode 100644 index 215ab1c..0000000 Binary files a/apps/outline/logo.png and /dev/null differ