多维表格
登入成功后生成token (7*)
hmac中度安全可自定义(用户+时间),jwt高安全
baserow
teable国产开源多维表格(本地api缺功能)
NocoBase 与 NocoDB 数据与数据库
- NocoBase 不成熟全依赖插件
- NocoDB 还不支持商业数据库
nocoDB
比较实用并且开源开放.
部署
默认最新版本
docker run -d --name nocodb \
-v /opt/docker/nocodb:/usr/app/data/ \
-p 8123:8080 \
-e NC_ALLOW_LOCAL_HOOKS=true \
nocodb/nocodb:latest
# 0.250.2 最后一个 支持mssql
docker run -d --name nocodb250 \
-v /opt/docker/nocodb250:/usr/app/data/ \
-p 8250:8080 \
nocodb/nocodb:0.250.2
# 在项目设置中添加数据源
mssql://sa:wsf119900@192.168.0.121:1433/AIS20230131214054
NC_ALLOW_LOCAL_HOOKS=true
api 调取
先要添加验证
curl -v -X 'GET' \
'http://192.168.0.123:8123/api/v2/tables/mmlyxarwu3iw075/records?viewId=vwg9vr6elpccta6x&limit=25&shuffle=0&offset=0' \
-H 'accept: application/json' \
-H 'xc-token: _tuWJFjsFOBeHUqmR-FRlVNZiIOFHTtTmB1W-lp1'
nocoBase
需要安装latest-full版
部署
mkdir -p /opt/docke/nocobase/storage
docker run -d --name nocobase \
-p 13000:80 \
-e DB_DIALECT=sqlite \
-e DB_STORAGE=/app/nocobase/storage/database.sqlite \
-e INIT_APP_DATA=1 \
-e DEFAULT_LOCALE=zh-CN \
-e Asia/Shanghai \
-v /opt/docke/nocobase-data:/app/nocobase/storage \
registry.cn-shanghai.aliyuncs.com/nocobase/nocobase:latest-full
apt update && apt install sqlite3
docker-compose.yml
version: '3'
networks:
nocobase:
driver: bridge
services:
app:
image: registry.cn-shanghai.aliyuncs.com/nocobase/nocobase:latest-full
restart: always
networks:
- nocobase
depends_on:
- postgres
environment:
# 应用的密钥,用于生成用户 token 等
# 如果 APP_KEY 修改了,旧的 token 也会随之失效
# 可以是任意随机字符串,并确保不对外泄露
- APP_KEY=your-secret-key
# 数据库类型,支持 postgres, mysql, mariadb
- DB_DIALECT=postgres
# 数据库主机,可以替换为已有的数据库服务器 IP
- DB_HOST=postgres
# Database port
- DB_PORT=5432
# 数据库名
- DB_DATABASE=nocobase
# 数据库用户
- DB_USER=nocobase
# 数据库密码
- DB_PASSWORD=nocobase
# 时区
- TZ=Asia/Shanghai
volumes:
- /opt/docke/nocobase/storage
ports:
- '13000:80'
# init: true
# 如果使用已有数据库服务,可以不启动 postgres
postgres:
image: registry.cn-shanghai.aliyuncs.com/nocobase/postgres:16
restart: always
command: postgres -c wal_level=logical
environment:
POSTGRES_USER: nocobase
POSTGRES_DB: nocobase
POSTGRES_PASSWORD: nocobase
volumes:
- ./storage/db/postgres:/var/lib/postgresql/data
networks:
- nocobase
docker-compose up -d
nocobase 和 admin123
appFlowy
(极其初期)
docker-compose 部署 appflowyinc 给部署文档 包括地址
容器
podman (debian12)
#安装
apt install podman podman-compose podman-docker
#配置
mkdir -p ~/.config/containers
cat <<EOF >> ~/.config/containers/registries.conf
unqualified-search-registries = ["docker.io"]
EOF
#代理
curl -v --socks5 192.168.12.1:1080 www.google.com
export http_proxy="socks5://192.168.12.1:1080"
export https_proxy="socks5://192.168.12.1:1080"
export all_proxy="socks5://192.168.12.1:1080"
curl -v www.google.com
curl -v https://auth.docker.io/token
#面板
podman run -d --name podpanel --restart=always -p 8808:8080 -v /var/run/docker.sock:/var/run/docker.sock dpanel/dpanel:lite
ssl证书申请
可以公开目录给证书申请服务
docker run -d --name allinssl --net=host allinssl/allinssl:latest
http://ip:port/allinssl 用户名 allinssl
docker exec -it allinssl sh
./allinssl 6 #重置密码
导航页
homarr 螃蟹导航页
0.x系列
docker run --name homarr --restart unless-stopped -p 7575:7575 \
-v /vol1/docker-container/homarr/configs:/app/data/configs \
-v /vol1/docker-container/homarr/icons:/app/public/icons \
-d ghcr.io/ajnart/homarr:latest
homarr-labs 1.x系列
比较吃内存
version: "3.3"
services:
homarr-labs:
image: ghcr.io/homarr-labs/homarr:latest
container_name: homarr-labs
restart: unless-stopped
ports:
- "7575:7575"
volumes:
- /var/run/docker.sock:/run/docker.sock
- ./appdata:/appdata
environment:
- SECRET_ENCRYPTION_KEY=2aa5c8455f5060f8cc7219461545aa5764f3585970dfed38e56647102a9ffb4d
- TZ=Asia/Shanghai
- HOMARR_PORT=7575
生产一个随机串
openssl rand -hex 32
要加环境变量秘钥
消息通知
ntfy 支持安卓 (后台会断联)
version: '3.8'
services:
ntfy:
image: binwiederhier/ntfy:latest
container_name: ntfy
user: 0:0
environment:
- TZ=Asia/Shanghai
command:
- serve
volumes:
- ./ntfy/cache:/var/cache/ntfy
- ./ntfy/config:/etc/ntfy
ports:
- "3680:80"
restart: unless-stopped
本地ntfy服务 , 公网IP套ssl一层
建议挂在特稳定nas(yynas)
web代理
放在云端vps
caddy:
image: caddy:latest
container_name: caddy
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile # 配置文件
- ./caddy_data:/data # 重要:存放自动申请的证书
- ./caddy_config:/config
restart: unless-stopped
配置
touch Caddyfile
docker-compose up -d
v4vps.17121.top {
reverse_proxy z4nas.17121.top:3680
}
证书管理
allinssl/allinssl
docker run -d --name allinssl \
-p 80:80 -p 443:443 \
-v /opt/docker/allinssl/certs:/etc/nginx/certs \
-v /opt/docker/allinssl/config:/etc/nginx/conf.d \
allinssl/allinssl
消息通知
webhook + node-red(协议转换)
node-red轻应用
v 4.1.1
version: "3.3"
services:
node-red:
image: nodered/node-red:latest
container_name: node-red
user: "0:0" # 使用 root 用户和组 (UID:GID)
ports:
- "1880:1880"
environment:
- NODE_RED_ENABLE_PROJECTS=false
- TZ=Asia/Shanghai
volumes:
- node-red-data:/data
restart: unless-stopped
volumes:
node-red-data:
devices:
- /dev/ttyUSB0:/dev/ttyUSB0
- /dev/ttyACM0:/dev/ttyACM0
volumes:
- /opt/node-red-data:/data
restart: unless-stopped
时区问题
于系统时区无关 总是慢8小时
docker-compose -f ./n.yaml up -d
docker exec -it --user root node-red /bin/bash
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ls -lh /usr/share/zoneinfo/America/Vancouver
TZ=America/Vancouver
mqtt开源
需要创建配置文件
# 允许匿名连接
allow_anonymous true
# 监听端口
listener 1883
# 持久化设置
persistence true
persistence_location /mosquitto/data/
# 日志设置
log_dest file /mosquitto/log/mosquitto.log
log_type all
version: '3.3'
services:
mosquitto:
# 使用官方的 Mosquitto 镜像
image: eclipse-mosquitto:latest
container_name: mosquitto
restart: unless-stopped
# 端口映射: 将宿主机的 1883 端口映射到容器的 1883 端口
# 1883 是默认的 MQTT 端口
ports:
- "1883:1883"
# 如果需要支持 WebSocket,可以添加 9001 端口(需要在 mosquitto.conf 中配置)
- "9001:9001"
# 卷(Volume)挂载: 用于持久化配置、数据和日志
volumes:
# 挂载自定义配置文件
- /vol1/docker-run/mqtto/config:/mosquitto/config
# 挂载持久化数据目录
- /vol1/docker-run/mqtto/data:/mosquitto/data
独立pgsql
version: '3.3' # 适配指定的 3.3 版本
services:
# 公用数据库 - PostgreSQL 9.6
mypgsql:
image: postgres:9.6 # 固定 9.6 版本(官方镜像,兼容稳定)
container_name: pgsql96 # 容器名称
ports:
- "54320:5432" # 主机端口:容器端口(避免与本地 PostgreSQL 冲突)
environment:
# 核心身份认证配置(与原配置一致)
POSTGRES_USER: pgadmin
POSTGRES_DB: oq_db
POSTGRES_PASSWORD: oq.100200300
volumes:
# 数据持久化:将 PostgreSQL 数据目录映射到主机(防止容器删除数据丢失)
- /mnt/data/docker-data/mypgsql:/var/lib/postgresql/data
restart: always # 容器退出时自动重启(故障自愈)
docker-compose -f ./mypgsql.yaml up -d
postgresql://pgadmin:oq.100200300@192.168.0.123:54320/oq_db
pgadmin
指出pg15及以上
version: '3.3'
services:
pgadmin:
image: dpage/pgadmin4:8.10
container_name: pgadmin
restart: unless-stopped
ports:
- "5050:80"
environment:
PGADMIN_DEFAULT_EMAIL: "admin@admin.com"
PGADMIN_DEFAULT_PASSWORD: "YourSecurePassword123"
PGADMIN_CONFIG_SERVER_MODE: "False"
PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED: "False"
PGADMIN_CONFIG_WTF_CSRF_ENABLED: "False"
volumes:
- ./pgadmin-data:/var/lib/pgadmin
restart: always # 容器退出时自动重启(故障自愈)
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
PostgreSQL 15
version: '3.3' # 适配指定的 3.3 版本
services:
# 公用数据库 - PostgreSQL 15
mypgsql:
image: postgres:15-alpine # 或使用 postgres:15(推荐使用 alpine 版本更轻量)
container_name: pgsql15 # 容器名称
ports:
- "54315:5432" # 主机端口:容器端口(避免与本地 PostgreSQL 冲突)
environment:
# 核心身份认证配置(与原配置一致)
POSTGRES_USER: pgadmin
POSTGRES_DB: oq_db
POSTGRES_PASSWORD: oq.100200300
# PostgreSQL 15 推荐添加的配置
POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C"
volumes:
# 数据持久化:将 PostgreSQL 数据目录映射到主机
- ./pgdata:/var/lib/postgresql/data
# 可选:初始化脚本目录(用于初始化数据库)
# - ./init-scripts:/docker-entrypoint-initdb.d
restart: always # 容器退出时自动重启(故障自愈)
emqx
mkdir ./emqx_data && chmod 777 ./emqx_data
version: '3.3'
services:
emqx:
image: emqx/emqx:5.6.1
container_name: emqx
restart: always
ports:
- "1883:1883"
- "8083:8083"
- "8084:8084"
- "8883:8883"
- "18083:18083"
volumes:
- ./emqx_data:/opt/emqx/data
environment:
- EMQX_NODE_NAME=emqx@node1.emqx.io
- EMQX_CLUSTER__DISCOVERY_STRATEGY=static
http://localhost:18083
admin, public
导入测试数据
13 示例-超市数据.xlsx
聚合网盘
services:
openlist:
image: openlistteam/openlist:latest
container_name: openlist
restart: always
ports:
- 5244:5244
volumes:
- ./data:/opt/openlist/data
- ./share:/opt/openlist/share
docker exec -it openlist ./openlist admin random
网盘挂载
rclone config
rclone listremotes
rclone lsd openlist: #列出目录
rclone mount webdav_local: /mnt/webdav --daemon
rclone mount openlist: l: --daemon #依赖winfsp
Grafana/ 看板
mqtt数据源
tcp://10.86.25.7:1883