From cf38239744d960c20bb13c1143e47774cf13ae0b Mon Sep 17 00:00:00 2001 From: givanz Date: Sat, 24 Aug 2024 23:24:52 +0300 Subject: [PATCH] Add Vvveb CMS --- public/v4/apps/vvveb-only.yml | 58 +++++++++++++++++++++++++++++ public/v4/apps/vvveb.yml | 65 +++++++++++++++++++++++++++++++++ public/v4/logos/vvveb-only.png | Bin 0 -> 10551 bytes public/v4/logos/vvveb.png | Bin 0 -> 10551 bytes 4 files changed, 123 insertions(+) create mode 100644 public/v4/apps/vvveb-only.yml create mode 100644 public/v4/apps/vvveb.yml create mode 100644 public/v4/logos/vvveb-only.png create mode 100644 public/v4/logos/vvveb.png diff --git a/public/v4/apps/vvveb-only.yml b/public/v4/apps/vvveb-only.yml new file mode 100644 index 000000000..2a3b838be --- /dev/null +++ b/public/v4/apps/vvveb-only.yml @@ -0,0 +1,58 @@ +captainVersion: 4 +services: + $$cap_appname-vvveb: + image: vvveb/vvvebcms:$$cap_vvveb_version + volumes: + - $$cap_appname-vvveb-data:/var/www/html + restart: always + environment: + DB_ENGINE: $$cap_db_type + DB_HOST: $$cap_db_host + DB_DATABASE: $$cap_db_name + DB_USER: $$cap_db_user + DB_PASSWORD: $$cap_db_pass +caproverOneClickApp: + variables: + - id: $$cap_db_type + label: Database Type + defaultValue: mysqli + description: You can either choose mysqli, sqlite or pgsql. It is case sensitive. SQLite does not need further database configuration. + validRegex: /^(mysqli|sqlite|pgsql)$/ + - description: Database host + defaultValue: srv-captain--xxx + id: $$cap_db_host + label: Database Host + - description: Database name + defaultValue: vvveb + id: $$cap_db_name + label: DB Name + - id: $$cap_db_user + label: Database user + defaultValue: vvvebuser + - id: $$cap_db_pass + label: Database password + description: '' + validRegex: /.{1,}/ + defaultValue: $$cap_gen_random_hex(16) + - id: $$cap_vvveb_version + label: Vvveb Version + defaultValue: 'php8.3-fpm-alpine' + description: Check out their Docker page for the valid tags https://hub.docker.com/r/vvveb/vvvebcms/tags + validRegex: /^([^\s^\/])+$/ + instructions: + start: >- + Powerful and easy to use cms to build websites, blogs or ecommerce stores.. + + Enter your Vvveb Configuration parameters and click on next. A Vvveb container will be created for you. The process will take about a minute to finish. + + Note: This app is intended for advanced users who'd like to have a central DB in a single container for multiple Vvveb instances. You should start by configuring your DB first and then comeback with all the DB Information. + end: >- + Vvveb is deployed and available as $$cap_appname-vvveb . + + IMPORTANT: It will take up to 1 minute for Vvveb to be ready. Before that, you might see a 502 error page. + + Remember that this app will not create a Database by itself. You need to provide all that information. + displayName: Vvveb CMS - No Database + isOfficial: true + description: This will create a Vvveb CMS instance only. You will need to create and configure the database information manually. Intended for advanced users. + documentation: Taken from https://hub.docker.com/r/vvveb/vvvebcms. diff --git a/public/v4/apps/vvveb.yml b/public/v4/apps/vvveb.yml new file mode 100644 index 000000000..c2eb4904d --- /dev/null +++ b/public/v4/apps/vvveb.yml @@ -0,0 +1,65 @@ +captainVersion: 4 +services: + $$cap_appname-db: + image: $$cap_db_type:$$cap_database_version + volumes: + - $$cap_appname-db-data:/var/lib/mysql + restart: always + environment: + MYSQL_ROOT_PASSWORD: $$cap_db_pass + MYSQL_DATABASE: vvveb + MYSQL_USER: $$cap_db_user + MYSQL_PASSWORD: $$cap_db_pass + caproverExtra: + notExposeAsWebApp: 'true' + $$cap_appname-vvveb: + depends_on: + - $$cap_appname-db + image: vvveb/vvvebcms:$$cap_vvveb_version + volumes: + - $$cap_appname-vvveb-data:/var/www/html + restart: always + environment: + DB_HOST: srv-captain--$$cap_appname-db + DB_USER: $$cap_db_user + DB_PASSWORD: $$cap_db_pass + DB_ENGINE: mysqli #sqlite,pgsql +caproverOneClickApp: + variables: + - id: $$cap_db_user + label: Database user + defaultValue: vvvebuser + validRegex: /^([a-zA-Z0-9])+$/ + - id: $$cap_db_pass + label: Database password + description: '' + validRegex: /^(\w|[^\s"'\\])+$/ + defaultValue: $$cap_gen_random_hex(16) + - id: $$cap_vvveb_version + label: Vvveb Version + defaultValue: 'php8.3-fpm-alpine' + description: Check out their Docker page for the valid tags https://hub.docker.com/r/vvveb/vvvebcms/tags + validRegex: /^([^\s^\/])+$/ + - id: $$cap_db_type + label: Database Type + defaultValue: mysql + description: You can either choose mariadb or mysql, you need to change the version according to which DB is selected. It is case sensitive. + validRegex: /^(mysql|mariadb)$/ + - id: $$cap_database_version + label: Database Version, default is MySQL + defaultValue: '8.4.2' + description: Check out the Docker pages for the valid tags https://hub.docker.com/r/library/mysql/tags/ or https://hub.docker.com/_/mariadb?tab=tags + validRegex: /^([^\s^\/])+$/ + instructions: + start: >- + Powerful and easy to use cms to build websites, blogs or ecommerce stores.. + + Enter your Vvveb CMS Configuration parameters and click on next. A MySQL (database) and a Vvveb container will be created for you. The process will take about a minute to finish. + end: > + Vvveb CMS is deployed and available as $$cap_appname-vvveb . + + IMPORTANT: It will take up to 1 minute for Vvveb CMS to be ready. Before that, you might see a 502 error page. + displayName: Vvveb CMS + isOfficial: true + description: Vvveb is a content management system based on PHP and MySQL that is usually used with the MySQL or MariaDB database + documentation: Taken from https://hub.docker.com/r/vvveb/vvvebcms diff --git a/public/v4/logos/vvveb-only.png b/public/v4/logos/vvveb-only.png new file mode 100644 index 0000000000000000000000000000000000000000..227c75a8d6edb2c39ce900815af542ea81fd4171 GIT binary patch literal 10551 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