mirror of
https://github.com/arch3rPro/1Panel-Appstore.git
synced 2026-05-01 19:28:40 +08:00
feat(apipark): 添加 APIPark v1.9.6-beta 的初始配置和部署文件
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
version: 2
|
||||
#certificate: # 证书存放根目录
|
||||
# dir: /etc/apinto/cert
|
||||
client:
|
||||
advertise_urls: # open api 服务的广播地址
|
||||
- http://172.18.65.22:9400
|
||||
listen_urls: # open api 服务的监听地址
|
||||
- http://0.0.0.0:9400
|
||||
#certificate: # 证书配置,允许使用ip的自签证书
|
||||
# - cert: server.pem
|
||||
# key: server.key
|
||||
gateway:
|
||||
advertise_urls: # 转发服务的广播地址
|
||||
- http://172.18.65.22:8099
|
||||
- https://172.18.65.22:8099
|
||||
listen_urls: # 转发服务的监听地址
|
||||
- https://0.0.0.0:8099
|
||||
- http://0.0.0.0:8099
|
||||
peer: # 集群间节点通信配置信息
|
||||
listen_urls: # 节点监听地址
|
||||
- http://0.0.0.0:9401
|
||||
advertise_urls: # 节点通信广播地址
|
||||
- http://172.18.65.22:9401
|
||||
#certificate: # 证书配置,允许使用ip的自签证书
|
||||
# - cert: server.pem
|
||||
# key: server.key
|
||||
@@ -0,0 +1,135 @@
|
||||
additionalProperties:
|
||||
formFields:
|
||||
- default: 18288
|
||||
edit: true
|
||||
envKey: PANEL_APP_PORT_HTTP
|
||||
required: true
|
||||
rule: paramPort
|
||||
type: number
|
||||
label:
|
||||
en: Web Port
|
||||
ja: Webポート
|
||||
ms: Port Web
|
||||
pt-br: Porta Web
|
||||
ru: Веб-порт
|
||||
ko: 웹 포트
|
||||
zh-Hant: Web 埠
|
||||
zh: Web 端口
|
||||
- default: apipark
|
||||
envKey: PANEL_DB_NAME
|
||||
random: true
|
||||
required: true
|
||||
rule: paramCommon
|
||||
type: text
|
||||
label:
|
||||
en: Database Name
|
||||
ja: データベース名
|
||||
ms: Nama Pangkalan Data
|
||||
pt-br: Nome do Banco de Dados
|
||||
ru: Имя базы данных
|
||||
ko: 데이터베이스 이름
|
||||
zh-Hant: 資料庫名稱
|
||||
zh: 数据库名
|
||||
- default: apipark
|
||||
envKey: PANEL_DB_ROOT_PASSWORD
|
||||
random: true
|
||||
required: true
|
||||
rule: paramComplexity
|
||||
type: password
|
||||
label:
|
||||
en: Database Root Password
|
||||
ja: データベースルートパスワード
|
||||
ms: Kata Laluan Root Pangkalan Data
|
||||
pt-br: Senha Root do Banco de Dados
|
||||
ru: Пароль root базы данных
|
||||
ko: 데이터베이스 루트 비밀번호
|
||||
zh-Hant: 資料庫 Root 密碼
|
||||
zh: 数据库 Root 密码
|
||||
- default: apipark
|
||||
envKey: PANEL_REDIS_ROOT_PASSWORD
|
||||
random: true
|
||||
required: true
|
||||
rule: paramComplexity
|
||||
type: password
|
||||
label:
|
||||
en: Redis Password
|
||||
ja: Redis パスワード
|
||||
ms: Kata Laluan Redis
|
||||
pt-br: Senha Redis
|
||||
ru: Пароль Redis
|
||||
ko: Redis 비밀번호
|
||||
zh-Hant: Redis 密碼
|
||||
zh: Redis 密码
|
||||
- default: admin123
|
||||
envKey: ADMIN_PASSWORD
|
||||
random: true
|
||||
required: true
|
||||
rule: paramComplexity
|
||||
type: password
|
||||
label:
|
||||
en: Admin Password
|
||||
ja: 管理者パスワード
|
||||
ms: Kata Laluan Pentadbir
|
||||
pt-br: Senha do Administrador
|
||||
ru: Пароль администратора
|
||||
ko: 관리자 비밀번호
|
||||
zh-Hant: 管理員密碼
|
||||
zh: 管理员密码
|
||||
- default: Key123qaz
|
||||
envKey: INFLUXDB_ADMIN_PASSWORD
|
||||
random: true
|
||||
required: true
|
||||
rule: paramComplexity
|
||||
type: password
|
||||
label:
|
||||
en: InfluxDB Admin Password
|
||||
ja: InfluxDB 管理者パスワード
|
||||
ms: Kata Laluan Pentadbir InfluxDB
|
||||
pt-br: Senha do Administrador InfluxDB
|
||||
ru: Пароль администратора InfluxDB
|
||||
ko: InfluxDB 관리자 비밀번호
|
||||
zh-Hant: InfluxDB 管理員密碼
|
||||
zh: InfluxDB 管理员密码
|
||||
- default: apipark-token
|
||||
envKey: INFLUXDB_TOKEN
|
||||
random: true
|
||||
required: true
|
||||
rule: paramCommon
|
||||
type: text
|
||||
label:
|
||||
en: InfluxDB Token
|
||||
ja: InfluxDB トークン
|
||||
ms: Token InfluxDB
|
||||
pt-br: Token InfluxDB
|
||||
ru: Токен InfluxDB
|
||||
ko: InfluxDB 토큰
|
||||
zh-Hant: InfluxDB 權杖
|
||||
zh: InfluxDB 令牌
|
||||
- default: "info"
|
||||
envKey: LOG_LEVEL
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: "DEBUG"
|
||||
value: "debug"
|
||||
- label: "INFO"
|
||||
value: "info"
|
||||
- label: "WARNING"
|
||||
value: "warning"
|
||||
- label: "ERROR"
|
||||
value: "error"
|
||||
- label: "FATAL"
|
||||
value: "fatal"
|
||||
- label: "PANIC"
|
||||
value: "panic"
|
||||
- label: "TRACE"
|
||||
value: "trace"
|
||||
label:
|
||||
en: Log Level
|
||||
ja: ログレベル
|
||||
ms: Tahap Log
|
||||
pt-br: Nível de Log
|
||||
ru: Уровень логирования
|
||||
ko: 로그 레벨
|
||||
zh-Hant: 日誌等級
|
||||
zh: 日志级别
|
||||
@@ -0,0 +1,259 @@
|
||||
services:
|
||||
apipark:
|
||||
image: apipark/apipark:v1.9.6-beta
|
||||
container_name: ${CONTAINER_NAME}
|
||||
restart: always
|
||||
depends_on:
|
||||
mysql:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
influxdb:
|
||||
condition: service_healthy
|
||||
nsq:
|
||||
condition: service_started
|
||||
environment:
|
||||
- MYSQL_USER_NAME=root
|
||||
- MYSQL_PWD=${PANEL_DB_ROOT_PASSWORD}
|
||||
- MYSQL_IP=mysql
|
||||
- MYSQL_PORT=3306
|
||||
- MYSQL_DB=${PANEL_DB_NAME}
|
||||
- ERROR_DIR=work/logs
|
||||
- ERROR_FILE_NAME=error.log
|
||||
- ERROR_LOG_LEVEL=${LOG_LEVEL}
|
||||
- ERROR_EXPIRE=7d
|
||||
- ERROR_PERIOD=day
|
||||
- REDIS_ADDR=redis:6379
|
||||
- REDIS_PWD=${PANEL_REDIS_ROOT_PASSWORD}
|
||||
- ADMIN_PASSWORD=${ADMIN_PASSWORD}
|
||||
- Init=true
|
||||
- InfluxdbToken=${INFLUXDB_TOKEN}
|
||||
- NSQ_ADDR=nsq:4150
|
||||
- NSQ_TOPIC_PREFIX=apipark
|
||||
ports:
|
||||
- "${PANEL_APP_PORT_HTTP}:8288"
|
||||
volumes:
|
||||
- ./data/apipark:/app/work
|
||||
networks:
|
||||
- 1panel-network
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
mysql:
|
||||
image: mysql:8.0.37
|
||||
container_name: ${CONTAINER_NAME}_mysql
|
||||
restart: always
|
||||
command:
|
||||
- "--character-set-server=utf8mb4"
|
||||
- "--collation-server=utf8mb4_unicode_ci"
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${PANEL_DB_ROOT_PASSWORD}
|
||||
- MYSQL_DATABASE=${PANEL_DB_NAME}
|
||||
- TZ=Asia/Shanghai
|
||||
expose:
|
||||
- "3306"
|
||||
volumes:
|
||||
- ./data/mysql:/var/lib/mysql
|
||||
networks:
|
||||
- 1panel-network
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
redis:
|
||||
image: redis:7.2.4
|
||||
container_name: ${CONTAINER_NAME}_redis
|
||||
restart: always
|
||||
command: redis-server --requirepass ${PANEL_REDIS_ROOT_PASSWORD} --appendonly no --logfile redis.log
|
||||
expose:
|
||||
- "6379"
|
||||
volumes:
|
||||
- ./data/redis:/data
|
||||
networks:
|
||||
- 1panel-network
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "-a", "${PANEL_REDIS_ROOT_PASSWORD}", "ping"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
influxdb:
|
||||
image: influxdb:2.6
|
||||
container_name: ${CONTAINER_NAME}_influxdb
|
||||
restart: always
|
||||
environment:
|
||||
- DOCKER_INFLUXDB_INIT_USERNAME=admin
|
||||
- DOCKER_INFLUXDB_INIT_PASSWORD=${INFLUXDB_ADMIN_PASSWORD}
|
||||
- DOCKER_INFLUXDB_INIT_ORG=apipark
|
||||
- DOCKER_INFLUXDB_INIT_BUCKET=apinto
|
||||
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=${INFLUXDB_TOKEN}
|
||||
- DOCKER_INFLUXDB_INIT_MODE=setup
|
||||
expose:
|
||||
- "8086"
|
||||
volumes:
|
||||
- ./data/influxdb:/var/lib/influxdb2
|
||||
networks:
|
||||
- 1panel-network
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8086/api/v2/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 60s
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
loki:
|
||||
image: grafana/loki:3.2.1
|
||||
container_name: ${CONTAINER_NAME}_loki
|
||||
restart: always
|
||||
user: root
|
||||
expose:
|
||||
- "3100"
|
||||
volumes:
|
||||
- ./data/loki:/tmp/loki
|
||||
entrypoint:
|
||||
- sh
|
||||
- -euc
|
||||
- |
|
||||
mkdir -p /mnt/config
|
||||
cat <<EOF > /mnt/config/loki-config.yaml
|
||||
---
|
||||
auth_enabled: false
|
||||
server:
|
||||
http_listen_port: 3100
|
||||
grpc_listen_port: 9096
|
||||
common:
|
||||
instance_addr: 127.0.0.1
|
||||
path_prefix: /tmp/loki
|
||||
storage:
|
||||
filesystem:
|
||||
chunks_directory: /tmp/loki/chunks
|
||||
rules_directory: /tmp/loki/rules
|
||||
replication_factor: 1
|
||||
ring:
|
||||
kvstore:
|
||||
store: inmemory
|
||||
query_range:
|
||||
results_cache:
|
||||
cache:
|
||||
embedded_cache:
|
||||
enabled: true
|
||||
max_size_mb: 100
|
||||
schema_config:
|
||||
configs:
|
||||
- from: 2020-10-24
|
||||
store: tsdb
|
||||
object_store: filesystem
|
||||
schema: v13
|
||||
index:
|
||||
prefix: index_
|
||||
period: 24h
|
||||
limits_config:
|
||||
max_query_length: 90d
|
||||
ruler:
|
||||
alertmanager_url: http://localhost:9093
|
||||
table_manager:
|
||||
retention_period: 90d
|
||||
EOF
|
||||
/usr/bin/loki -config.file=/mnt/config/loki-config.yaml
|
||||
networks:
|
||||
- 1panel-network
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
nsq:
|
||||
image: nsqio/nsq:latest
|
||||
container_name: ${CONTAINER_NAME}_nsq
|
||||
restart: always
|
||||
command: /nsqd --broadcast-address=nsq --lookupd-tcp-address=nsqlookupd:4160
|
||||
depends_on:
|
||||
- nsqlookupd
|
||||
expose:
|
||||
- "4150"
|
||||
- "4151"
|
||||
networks:
|
||||
- 1panel-network
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
nsqlookupd:
|
||||
image: nsqio/nsq:latest
|
||||
container_name: ${CONTAINER_NAME}_nsqlookupd
|
||||
restart: always
|
||||
command: /nsqlookupd
|
||||
expose:
|
||||
- "4160"
|
||||
- "4161"
|
||||
networks:
|
||||
- 1panel-network
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
grafana-init:
|
||||
image: busybox:latest
|
||||
container_name: ${CONTAINER_NAME}_grafana_init
|
||||
user: root
|
||||
command: |
|
||||
sh -c '
|
||||
chown -R 472:472 /var/lib/grafana
|
||||
chmod -R 755 /var/lib/grafana
|
||||
'
|
||||
volumes:
|
||||
- ./data/grafana:/var/lib/grafana
|
||||
networks:
|
||||
- 1panel-network
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana:11.3.2
|
||||
container_name: ${CONTAINER_NAME}_grafana
|
||||
restart: always
|
||||
user: "472:472"
|
||||
environment:
|
||||
- GF_PATHS_PROVISIONING=/etc/grafana/provisioning
|
||||
- GF_AUTH_ANONYMOUS_ENABLED=true
|
||||
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
|
||||
- GF_SECURITY_ADMIN_PASSWORD=${ADMIN_PASSWORD}
|
||||
- GF_INSTALL_PLUGINS=
|
||||
depends_on:
|
||||
- loki
|
||||
- grafana-init
|
||||
entrypoint:
|
||||
- sh
|
||||
- -euc
|
||||
- |
|
||||
mkdir -p /etc/grafana/provisioning/datasources
|
||||
cat <<EOF > /etc/grafana/provisioning/datasources/ds.yaml
|
||||
apiVersion: 1
|
||||
datasources:
|
||||
- name: Loki
|
||||
type: loki
|
||||
access: proxy
|
||||
url: http://loki:3100
|
||||
EOF
|
||||
/run.sh
|
||||
expose:
|
||||
- "3000"
|
||||
volumes:
|
||||
- ./data/grafana:/var/lib/grafana
|
||||
networks:
|
||||
- 1panel-network
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:3000/api/health || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
Executable
+32
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
# APIPark 初始化脚本
|
||||
# 确保数据目录具有正确的权限
|
||||
|
||||
echo "正在初始化 APIPark 数据目录权限..."
|
||||
|
||||
# 创建必要的数据目录
|
||||
mkdir -p ./data/apipark
|
||||
mkdir -p ./data/mysql
|
||||
mkdir -p ./data/redis
|
||||
mkdir -p ./data/influxdb
|
||||
mkdir -p ./data/loki
|
||||
mkdir -p ./data/grafana
|
||||
|
||||
# 设置 Grafana 目录权限 (用户 ID: 472)
|
||||
chown -R 472:472 ./data/grafana
|
||||
chmod -R 755 ./data/grafana
|
||||
|
||||
# 设置 MySQL 目录权限 (用户 ID: 999)
|
||||
chown -R 999:999 ./data/mysql
|
||||
|
||||
# 设置 InfluxDB 目录权限
|
||||
chown -R 1000:1000 ./data/influxdb
|
||||
|
||||
# 设置 Redis 目录权限 (用户 ID: 999)
|
||||
chown -R 999:999 ./data/redis
|
||||
|
||||
# 设置 Loki 目录权限 (root)
|
||||
chown -R 0:0 ./data/loki
|
||||
|
||||
echo "数据目录权限设置完成!"
|
||||
Reference in New Issue
Block a user