From c2d3cae73fddd7a7046e059ee597aa2e653373e6 Mon Sep 17 00:00:00 2001 From: fivemoons Date: Mon, 17 Nov 2025 18:34:37 +0800 Subject: [PATCH] add seatable 5.3.0 --- seatable/.env | 26 ++++++++++++ seatable/docker-compose.yml | 84 +++++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 seatable/.env create mode 100644 seatable/docker-compose.yml diff --git a/seatable/.env b/seatable/.env new file mode 100644 index 0000000..a1748fe --- /dev/null +++ b/seatable/.env @@ -0,0 +1,26 @@ +COMPOSE_FILE='docker-compose.yml' +COMPOSE_PATH_SEPARATOR=',' + + +SEATABLE_IMAGE=seatable/seatable-developer:5.3.0 + +SEATABLE_VOLUMES=/home/seatable/seatable-data +SEATABLE_MYSQL_VOLUMES=/home/seatable/mysql-data + +INIT_SEATABLE_MYSQL_ROOT_PASSWORD=vezcr4bb4l +SEATABLE_MYSQL_DB_HOST=db +SEATABLE_MYSQL_DB_PORT=3306 +SEATABLE_MYSQL_DB_USER=seatable +SEATABLE_MYSQL_DB_PASSWORD=rinzcjxd2d + +TIME_ZONE='Asia/Shanghai' + +JWT_PRIVATE_KEY= + +SEATABLE_SERVER_HOSTNAME=demo.example.com +SEATABLE_SERVER_PROTOCOL=http +SEATABLE_SERVER_LETSENCRYPT=False +SEATABLE_SSL_PORT= + +INIT_SEATABLE_ADMIN_EMAIL=a@a.com +INIT_SEATABLE_ADMIN_PASSWORD=Password123 diff --git a/seatable/docker-compose.yml b/seatable/docker-compose.yml new file mode 100644 index 0000000..14550b6 --- /dev/null +++ b/seatable/docker-compose.yml @@ -0,0 +1,84 @@ +services: + seatable-server: + image: ${SEATABLE_IMAGE:-seatable/seatable-developer:latest} + restart: unless-stopped + container_name: seatable + ports: + - 80:80 + - ${SEATABLE_SSL_PORT:-}: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} + - INIT_SEATABLE_MYSQL_ROOT_PASSWORD=${INIT_SEATABLE_MYSQL_ROOT_PASSWORD:-} + - SEATABLE_MYSQL_DB_USER=${SEATABLE_MYSQL_DB_USER:-seatable} + - SEATABLE_MYSQL_DB_PASSWORD=${SEATABLE_MYSQL_DB_PASSWORD:?Variable is not set or empty} + - 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_HOSTNAME=${SEATABLE_SERVER_HOSTNAME:?Variable is not set or empty} + - SEATABLE_SERVER_PROTOCOL=${SEATABLE_SERVER_PROTOCOL:-http} + - 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} + - REDIS_HOST=${REDIS_HOST:-redis} + - REDIS_PORT=${REDIS_PORT:-6379} + - REDIS_PASSWORD=${REDIS_PASSWORD:-} + - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty} + - ENABLE_PYTHON_SCRIPT=${ENABLE_PYTHON_SCRIPT:-false} + - PYTHON_SCHEDULER_URL=${PYTHON_SCHEDULER_URL:-http://python-scheduler} + - PYTHON_SCHEDULER_AUTH_TOKEN=${PYTHON_SCHEDULER_AUTH_TOKEN:-} + - REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt + - 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 + +networks: + frontend-net: + name: frontend-net + backend-seatable-net: + name: backend-seatable-net \ No newline at end of file