mirror of
https://github.com/QYG2297248353/appstore-1panel.git
synced 2026-06-16 01:02:14 +08:00
@@ -0,0 +1,274 @@
|
||||
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
|
||||
@@ -0,0 +1,25 @@
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
|
||||
services:
|
||||
outline:
|
||||
image: outlinewiki/outline:0.77.3
|
||||
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:
|
||||
- /etc/1panel/envs/global.env
|
||||
- /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}
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
# setup-1 add default values
|
||||
CURRENT_DIR=$(pwd)
|
||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||
|
||||
# setup-2 remove empty values
|
||||
sed -i '/^.*=""/d' .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
||||
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
# setup-1 add default values
|
||||
CURRENT_DIR=$(pwd)
|
||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
||||
@@ -0,0 +1,76 @@
|
||||
# Outline
|
||||
|
||||
您团队的知识库
|
||||
|
||||

|
||||
|
||||
迷失在乱七八糟的文档中?无法确定谁有访问权限?同事在聊天中反复询问相同的信息?是时候整理团队知识了。
|
||||
|
||||
## 安装说明
|
||||
|
||||
### 参数 `加密密钥` 与 `工具密钥` 配置
|
||||
|
||||
`加密密钥` 与 `工具密钥` 为必填项,且必须为 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;
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,18 @@
|
||||
name: Outline
|
||||
title: 您团队的知识库
|
||||
description: 您团队的知识库
|
||||
additionalProperties:
|
||||
key: outline
|
||||
name: Outline
|
||||
tags:
|
||||
- WebSite
|
||||
- Storage
|
||||
- Local
|
||||
shortDescZh: 您团队的知识库
|
||||
shortDescEn: Your team's knowledge base
|
||||
type: website
|
||||
crossVersionUpdate: true
|
||||
limit: 0
|
||||
website: https://www.getoutline.com/
|
||||
github: https://github.com/outline/outline/
|
||||
document: https://docs.getoutline.com/
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
Reference in New Issue
Block a user