感谢回复!
1. 默认头像图片加载不出来的问题:
清除本地数据,重新部署多次,使用反向代理访问以及内网IP端口访问,结果一样,加载默认头像网络报错如下:
2. 自定义logo加载不出来的问题:
上传前seahub-data目录的文件:
上传后seahub-data目录的文件:
加载logo报错
logo信息:
-
删除表中添加的python脚本时,同样弹窗显示“没有权限。请尝试重新登录。
该问题已解决。
原因是旧版的说明文档没有更新,旧版没有启动脚本的参数以及相关配置。旧版的文档和文件:文档+++文件
-
关于配置文件精简的问题也已解决。同样是由于旧版的说明文档没有更新导致的疑问,新版文档已经说明的很清晰。
5. 新的问题1:
新建脚本,脚本类型为python,内容为print("Hello World!"),点击运行后python-starter新建了一个python-runner容器,各个python容器的日志和文件看起来都正常,但是脚本却是一直在运行中,没有停止,也没有结果,此时若要停止该compose stack,必须手动停止新建的python-runner容器。compose文件附在文末,现象截图如下:
6. 新的问题2:
新建了onlyoffice容器,文档里说明的是onlyoffice容器在seatable compose的内外部署均可,只需要在dtable_web_settings.py中增加以下四行配置:
ENABLE_ONLYOFFICE = True
ONLYOFFICE_APIJS_URL = "https://onlyoffice/web-apps/apps/api/documents/api.js"
ONLYOFFICE_FILE_EXTENSION = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods', 'csv', 'ppsx', 'pps')
ONLYOFFICE_JWT_SECRET = '8Zp2X7c3V6b5N1m6K4j8H2g0F2d7S5a9'
如果是和seatable一起部署,且通过域名反向代理在公网访问seatable,那请问ONLYOFFICE_APIJS_URL中填写的https://onlyoffice是http://加onlyoffice compose 服务名加端口吗?还是说也需要把onlyoffice服务通过域名反向代理到公网,在公网能访问到,在这里填写完整公网url才行?
我尝试了在这里填写公网反向代理域名加端口(形如https://ofc.stb.com:5689/xxx),打开seatable表格中的office文件时,和之前没有区别,没有预览只有下载。
此外,如果是和seatable一起部署,onlyoffice的网络需要使用哪几个,frontend-net和backend-seatable-net都需要吗?
7. 新的问题3:
新建了seatable-ai容器,按照配置新增了环境变量,seatable自动化任务界面有了运行AI的选项,但是在触发任务后,任务日志显示运行成功,表格却并没有变化。查看日志发现是数据库没有权限,猜想是seatable-ai容器和seatable-scheduler容器一样需要手动创建数据库并手动授权,但是这个文档里并没有说明。
模版文件在:AI模版,文档里说明与seatable一起部署时是共用seatable数据库,但是该模版里采用的变量名比如SEATABLE_MYSQL_DB_PASSWD、SEATABLE_MYSQL_DB_NAME与seatable模版里的并不相同,且SEATABLE_MYSQL_DB_NAME默认值是dtable_db,也是共用seatable的dtable_db库吗?
此外,如果是和seatable一起部署,seatable-ai的网络需要使用哪几个,frontend-net和backend-seatable-net都需要吧?
期待回复······
附:compose文件
services:
seatable-server:
image: ${SEATABLE_IMAGE:-seatable/seatable-developer:latest}
restart: unless-stopped
container_name: seatable
ports:
- ${SEATABLE_PORT:-5038}:80
- ${SEATABLE_SSL_PORT:-5039}:443
volumes:
- ${SEATABLE_VOLUMES:-/opt/seatable/seatable-data}:/shared
environment:
- SEATABLE_MYSQL_DB_HOST=${SEATABLE_MYSQL_DB_HOST:-db}
- SEATABLE_MYSQL_DB_PORT=${SEATABLE_MYSQL_DB_PORT:-3306}
- SEATABLE_MYSQL_DB_USER=${SEATABLE_MYSQL_DB_USER:-seatable}
- SEATABLE_MYSQL_DB_PASSWORD=${SEATABLE_MYSQL_DB_PASSWORD:?Var not set}
- INIT_SEATABLE_MYSQL_ROOT_PASSWORD=${INIT_SEATABLE_MYSQL_ROOT_PASSWORD:-}
- SEATABLE_MYSQL_DB_DTABLE_DB_NAME=${SEATABLE_MYSQL_DB_DTABLE_DB_NAME:-dtable_db}
- SEATABLE_MYSQL_DB_CCNET_DB_NAME=${SEATABLE_MYSQL_DB_CCNET_DB_NAME:-ccnet_db}
- SEATABLE_MYSQL_DB_SEAFILE_DB_NAME=${SEATABLE_MYSQL_DB_SEAFILE_DB_NAME:-seafile_db}
- SEATABLE_SERVER_PROTOCOL=${SEATABLE_SERVER_PROTOCOL:-https}
- SEATABLE_SERVER_HOSTNAME=${SEATABLE_SERVER_HOSTNAME:?Var not set}
- SEATABLE_SERVER_LETSENCRYPT=${SEATABLE_SERVER_LETSENCRYPT:-False}
- SEATABLE_ADMIN_EMAIL=${INIT_SEATABLE_ADMIN_EMAIL:-}
- SEATABLE_ADMIN_PASSWORD=${INIT_SEATABLE_ADMIN_PASSWORD:-}
- TIME_ZONE=${TIME_ZONE}
- JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Var not set}
- REDIS_HOST=${REDIS_HOST:-redis}
- REDIS_PORT=${REDIS_PORT:-6379}
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
- ENABLE_PYTHON_SCRIPT=${ENABLE_PYTHON_SCRIPT:-true}
- PYTHON_SCHEDULER_AUTH_TOKEN=${PYTHON_SCHEDULER_AUTH_TOKEN}
- PYTHON_SCHEDULER_URL=${PYTHON_SCHEDULER_URL:-http://python-scheduler}
- ENABLE_SEATABLE_AI=${ENABLE_SEATABLE_AI:-true}
- SEATABLE_AI_SERVER_URL=${SEATABLE_AI_SERVER_URL:-http://seatable-ai:8888}
#- ENABLE_SEADOC=${ENABLE_SEADOC:-false}
#- SEADOC_SERVER_URL=${SEATABLE_SERVER_PROTOCOL:-}://${SEATABLE_SERVER_HOSTNAME:-}/sdoc-server
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
networks:
- frontend-net
- backend-seatable-net
db:
image: ${SEATABLE_DB_IMAGE:-mariadb:10.11}
restart: unless-stopped
container_name: seatable-mysql
environment:
- MYSQL_ROOT_PASSWORD=${INIT_SEATABLE_MYSQL_ROOT_PASSWORD:-}
- MYSQL_LOG_CONSOLE=true
- MARIADB_MYSQL_LOCALHOST_USER=1
- MARIADB_MYSQL_LOCALHOST_GRANTS=USAGE
- MARIADB_AUTO_UPGRADE=1
volumes:
- ${SEATABLE_MYSQL_VOLUMES:-/opt/seatable/mysql-data}:/var/lib/mysql
networks:
- backend-seatable-net
healthcheck:
test:
- CMD
- /usr/local/bin/healthcheck.sh
- --connect
- --mariadbupgrade
- --innodb_initialized
interval: 20s
start_period: 30s
timeout: 5s
retries: 10
redis:
image: ${SEATABLE_REDIS_IMAGE:-redis:5.0.7}
restart: unless-stopped
container_name: seatable-redis
networks:
- backend-seatable-net
python-scheduler:
image: ${SEATABLE_SCHEDULER_IMAGE:-seatable/seatable-python-scheduler:latest}
restart: unless-stopped
container_name: python-scheduler
environment:
- TIME_ZONE=${TIME_ZONE}
- DB_HOST=${SEATABLE_MYSQL_DB_HOST:-db}
- DB_PORT=${SEATABLE_MYSQL_DB_PORT:-3306}
- DB_USER=${SEATABLE_MYSQL_DB_USER:-seatable}
- DB_PASSWD=${SEATABLE_MYSQL_DB_PASSWORD:?Var not set}
- DATABASE_NAME=${SEATABLE_MYSQL_DB_SCHEDULER_NAME:-scheduler}
- PYTHON_SCHEDULER_AUTH_TOKEN=${PYTHON_SCHEDULER_AUTH_TOKEN:?Var not set}
- SEATABLE_SERVER_URL=${SEATABLE_SERVER_PROTOCOL}://${SEATABLE_SERVER_HOSTNAME}
- PYTHON_STARTER_URL=${PYTHON_STARTER_URL:-http://python-starter:8080}
- PYTHON_SCHEDULER_LOG_LEVEL=${PYTHON_SCHEDULER_LOG_LEVEL:-WARNING}
- DELETE_LOG_DAYS=${DELETE_LOG_DAYS:-30}
- PYTHON_PROCESS_TIMEOUT=${PYTHON_PROCESS_TIMEOUT:-900}
- PYTHON_SCHEDULER_SCRIPT_WORKERS=${PYTHON_SCHEDULER_SCRIPT_WORKERS:-5}
- LOG_TO_STDOUT=${SEATABLE_PYTHON_PIPELINE_LOG_TO_STDOUT:-false}
volumes:
- ${PYTHON_SCHEDULER_LOGS_DIR:-/tmp}:/opt/scheduler/logs
extra_hosts:
- host.docker.internal:host-gateway
networks:
- frontend-net
- backend-scheduler-net
- backend-seatable-net
depends_on:
db:
condition: service_healthy
healthcheck:
test:
- CMD-SHELL
- pgrep -f 'python3 scheduler.py' && pgrep -f 'python3 flask_server.py'
interval: 20s
retries: 3
start_period: 20s
timeout: 10s
python-starter:
image: ${SEATABLE_STARTER_IMAGE:-seatable/seatable-python-starter:latest}
restart: unless-stopped
container_name: python-starter
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${PYTHON_TRANSFER_DIRECTORY_DIR:-/tmp}:${PYTHON_TRANSFER_DIRECTORY_PATH:-/tmp}
- ${PYTHON_STARTER_LOGS_DIR:-/tmp}:/opt/seatable-python-starter/logs
environment:
- TIME_ZONE=${TIME_ZONE}
- PYTHON_SCHEDULER_URL=${PYTHON_SCHEDULER_URL:-http://python-scheduler}
- PYTHON_TRANSFER_DIRECTORY=${PYTHON_TRANSFER_DIRECTORY_PATH:-/tmp}
- PYTHON_RUNNER_IMAGE=${SEATABLE_RUNNER_IMAGE:-seatable/seatable-python-runner:latest}
- PYTHON_STARTER_LOG_LEVEL=${PYTHON_STARTER_LOG_LEVEL:-WARNING}
- PYTHON_PROCESS_TIMEOUT=${PYTHON_PROCESS_TIMEOUT:-900}
- PYTHON_STARTER_THREAD_COUNT=${PYTHON_STARTER_THREAD_COUNT:-10}
- PYTHON_STARTER_USE_ALTERNATIVE_FILE_SERVER_ROOT=${PYTHON_STARTER_USE_ALTERNATIVE_FILE_SERVER_ROOT:-}
- PYTHON_STARTER_ALTERNATIVE_FILE_SERVER_ROOT=${PYTHON_STARTER_ALTERNATIVE_FILE_SERVER_ROOT:-}
- PYTHON_RUNNER_OUTPUT_LIMIT=${PYTHON_RUNNER_OUTPUT_LIMIT:-1000000}
- PYTHON_RUNNER_CONTAINER_MEMORY=${PYTHON_RUNNER_CONTAINER_MEMORY:-2g}
- PYTHON_RUNNER_CONTAINER_CPUS=${PYTHON_RUNNER_CONTAINER_CPUS:-}
- PYTHON_RUNNER_OTHER_OPTIONS=${PYTHON_RUNNER_OTHER_OPTIONS:-}
- LOG_TO_STDOUT=${SEATABLE_PYTHON_PIPELINE_LOG_TO_STDOUT:-false}
networks:
- frontend-net
- backend-scheduler-net
python-runner:
image: ${SEATABLE_RUNNER_IMAGE:-seatable/seatable-python-runner:latest}
#restart: unless-stopped
container_name: python-runner
networks:
- runner-net
- backend-scheduler-net
- backend-seatable-net
seatable-office:
image: ${SEATABLE_OFFICE_IMAGE:-onlyoffice/documentserver:latest}
container_name: seatable-office
restart: unless-stopped
ports:
- ${SEATABLE_OFFICE_PORT:-8686}:80
environment:
- TZ=${TIME_ZONE}
- JWT_ENABLED=true
- ALLOW_PRIVATE_IP_ADDRESS=true
- JWT_SECRET=${SEATABLE_OFFICE_JWT}
networks:
- frontend-net
- backend-seatable-net
seatable-ai:
image: ${SEATABLE_AI_IMAGE:-seatable/seatable-ai:6.0.8}
container_name: seatable-ai
restart: unless-stopped
environment:
- DB_HOST=${SEATABLE_MYSQL_DB_HOST:-db}
- DB_PORT=${SEATABLE_MYSQL_DB_PORT:-3306}
- DB_USER=${SEATABLE_MYSQL_DB_USER:-root}
- DB_PASSWD=${SEATABLE_MYSQL_DB_PASSWORD:-}
- DB_NAME=${SEATABLE_MYSQL_DB_DTABLE_DB_NAME:-dtable_db}
- REDIS_HOST=${REDIS_HOST:-redis}
- REDIS_PORT=${REDIS_PORT:-6379}
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
- SEATABLE_AI_LLM_TYPE=deepseek
- SEATABLE_AI_LLM_KEY=2xxcxxxxxxxxxxxxxxxxxxxx7
- SEATABLE_AI_LLM_MODEL=deepseek-chat
volumes:
- ${SEATABLE_AI_VOLUMES}:/shared
ports:
- ${SEATABLE_AI_PORT:-8888}:8888
networks:
- frontend-net
- backend-seatable-net
networks:
frontend-net:
name: frontend-net
backend-seatable-net:
name: backend-seatable-net
backend-scheduler-net:
name: backend-scheduler-net
runner-net:
name: runner-net