From 5c6854d9e0c59913f67dfae72b491d14e9b81a1c Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Thu, 22 Apr 2021 19:47:04 +0700 Subject: [PATCH] feat: add Seatable (#402) --- public/v4/apps/seatable.yml | 101 +++++++++++++++++++++++++++++++++++ public/v4/logos/seatable.png | Bin 0 -> 19868 bytes 2 files changed, 101 insertions(+) create mode 100644 public/v4/apps/seatable.yml create mode 100644 public/v4/logos/seatable.png diff --git a/public/v4/apps/seatable.yml b/public/v4/apps/seatable.yml new file mode 100644 index 0000000..9bd3675 --- /dev/null +++ b/public/v4/apps/seatable.yml @@ -0,0 +1,101 @@ +captainVersion: 4 +services: + $$cap_appname-db: + image: 'mariadb:$$cap_mariadb_version' + environment: + MYSQL_ROOT_PASSWORD: $$cap_mariadb_root_passwd + volumes: + - '$$cap_appname-db-data:/var/lib/mysql' + networks: + - seatable-net + caproverExtra: + notExposeAsWebApp: 'true' + + $$cap_appname-memcached: + image: 'memcached:$$cap_memcached_version' + entrypoint: memcached -m 256 + networks: + - seatable-net + caproverExtra: + notExposeAsWebApp: 'true' + + $$cap_appname-redis: + image: 'redis:$$cap_redis_version' + networks: + - seatable-net + caproverExtra: + notExposeAsWebApp: 'true' + + $$cap_appname: + volumes: + - '$$cap_appname-data:/shared' + environment: + DB_HOST: srv-captain--$$cap_appname-db + DB_ROOT_PASSWD: $$cap_mariadb_root_passwd + SEATABLE_SERVER_LETSENCRYPT: 'False' + SEATABLE_SERVER_HOSTNAME: $$cap_appname.$$cap_root_domain + TIME_ZONE: $$cap_timezone + depends_on: + - $$cap_appname-db + - $$cap_appname-memcached + - $$cap_appname-redis + networks: + - seatable-net + caproverExtra: + dockerfileLines: + - FROM seatable/seatable:$$cap_seatable_version + - EXPOSE 80 + - RUN apt-get -y install expect + - RUN mkdir -p /shared + - RUN /etc/my_init.d/01_init.sh + - ENTRYPOINT /shared/seatable/scripts/seatable.sh init && /shared/seatable/scripts/seatable.sh init-sql && /shared/seatable/scripts/seatable.sh start && /sbin/my_init -- /templates/enterpoint.sh + +caproverOneClickApp: + variables: + - id: $$cap_seatable_version + label: SeaTable Version + defaultValue: 1.8.0 + description: 'Check out their docker page for the valid tags https://hub.docker.com/r/seatable/seatable/tags?page=1&ordering=last_updated' + - id: $$cap_memcached_version + label: Memcached Version + defaultValue: 1.5.6 + - id: $$cap_redis_version + label: Redis Version + defaultValue: 5.0.7 + - id: $$cap_mariadb_version + label: MariaDB Version + defaultValue: 10.5 + - id: $$cap_mariadb_root_passwd + label: MariaDB Root Password + defaultValue: $$cap_gen_random_hex(16) + - id: $$cap_timezone + label: Time zone + defaultValue: Etc/UTC + description: List of tz database time zones https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + + instructions: + start: >- + Simple like Excel, powerful like a database + SeaTable is the new flexible way for teams to work on tasks, projects or ideas. + It looks like Excel, but it has so much more to offer. + For more info visit https://seatable.io/ + + Requirements: SeaTable DE requires 4 cores and 8GB RAM + end: |- + SeaTable has been successfully deployed! + + -------------------------------------------- + + Before you proceed, please create admin user + docker exec -it $(docker ps --filter name='srv-captain--$$cap_appname.1' -q) /shared/seatable/scripts/seatable.sh superuser + + -------------------------------------------- + + App is available as http://$$cap_appname.$$cap_root_domain + displayName: SeaTable + isOfficial: false + description: >- + SeaTable is the new flexible way for teams to work on tasks, projects or ideas. + documentation: >- + This docker-compose is taken from + https://manual.seatable.io/docker/Developer-Edition/Deploy%20SeaTable-DE%20with%20Docker/ diff --git a/public/v4/logos/seatable.png b/public/v4/logos/seatable.png new file mode 100644 index 0000000000000000000000000000000000000000..757f077fe35866f29a85caf923ddade0896ba3f8 GIT binary patch literal 19868 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 literal 0 HcmV?d00001