From 4058193bab59eb290ea4825f6c86b97bc10c18c2 Mon Sep 17 00:00:00 2001 From: Ronald Loyko <108372764+ronaldloyko@users.noreply.github.com> Date: Wed, 19 Apr 2023 01:24:28 +0300 Subject: [PATCH] feat: add mixpost (#889) * add mixpost * fix: insert website to generate key --------- Co-authored-by: Ronald Loyko --- public/v4/apps/mixpost.yml | 112 ++++++++++++++++++++++++++++++++++++ public/v4/logos/mixpost.png | Bin 0 -> 20618 bytes 2 files changed, 112 insertions(+) create mode 100644 public/v4/apps/mixpost.yml create mode 100644 public/v4/logos/mixpost.png diff --git a/public/v4/apps/mixpost.yml b/public/v4/apps/mixpost.yml new file mode 100644 index 0000000..bfa3665 --- /dev/null +++ b/public/v4/apps/mixpost.yml @@ -0,0 +1,112 @@ +captainVersion: 4 +services: + $$cap_appname: + image: inovector/mixpost:$$cap_MIXPOST_VERSION + environment: + APP_NAME: $$cap_MIXPOST_APP_NAME + APP_KEY: $$cap_MIXPOST_APP_KEY + APP_URL: http://$$cap_appname.$$cap_root_domain + DB_DATABASE: $$cap_MYSQL_DATABASE + DB_USERNAME: $$cap_MYSQL_USER + DB_PASSWORD: $$cap_MYSQL_PASSWORD + REDIS_PASSWORD: $$cap_REDIS_PASSWORD + APP_ENV: $$cap_MIXPOST_APP_ENV + APP_DEBUG: $$cap_MIXPOST_APP_DEBUG + DB_HOST: srv-captain--$$cap_appname-db + REDIS_HOST: srv-captain--$$cap_appname-cache + depends_on: + - $$cap_appname-db + - $$cap_appname-cache + volumes: + - $$cap_appname-storage:/var/www/html/storage/app + - $$cap_appname-logs:/var/www/html/storage/logs + $$cap_appname-db: + caproverExtra: + notExposeAsWebApp: 'true' + image: mysql:$$cap_MYSQL_VERSION + environment: + MYSQL_ROOT_PASSWORD: $$cap_MYSQL_PASSWORD + MYSQL_DATABASE: $$cap_MYSQL_DATABASE + MYSQL_USER: $$cap_MYSQL_USER + MYSQL_PASSWORD: $$cap_MYSQL_PASSWORD + volumes: + - $$cap_appname-db:/var/lib/mysql + $$cap_appname-cache: + caproverExtra: + notExposeAsWebApp: 'true' + dockerfileLines: + - FROM redis:$$cap_REDIS_VERSION + - CMD redis-server --appendonly yes --replica-read-only no --requirepass "$$cap_REDIS_PASSWORD" + volumes: + - $$cap_appname-cache:/data +caproverOneClickApp: + displayName: Mixpost + description: Self-Hosted Social Media Management Software + isOfficial: true + documentation: https://mixpost.app + instructions: + start: |- + Easily create, schedule, publish, and manage social media content in one place, with no limits or monthly subscription fees. + It's the perfect social media management solution for bloggers, crafters and entrepreneurs. + end: |- + Mixpost has been successfully deployed! It might take few moments before it's fully started. + You can access the application at `http://$$cap_appname.$$cap_root_domain`. + Find the administrator login details in the logs. + variables: + - id: $$cap_MIXPOST_VERSION + label: Application | Version + description: Mixpost version. Check out their valid tags at https://hub.docker.com/r/inovector/mixpost + defaultValue: 'v1.1.3' + validRegex: /.{1,}/ + - id: $$cap_MYSQL_VERSION + label: Database | Version + description: MySQL version. Check out their valid tags at https://hub.docker.com/_/mysql/tags + defaultValue: '8.0.32' + validRegex: /.{1,}/ + - id: $$cap_REDIS_VERSION + label: Cache | Version + description: Redis version. Check out their valid tags at https://hub.docker.com/_/redis/tags + defaultValue: '7.0-alpine' + validRegex: /.{1,}/ + - id: $$cap_MIXPOST_APP_NAME + label: Application | Name + description: Name of the application. + defaultValue: Mixpost + validRegex: /.{1,}/ + - id: $$cap_MIXPOST_APP_KEY + label: Application | Key + description: |- + Base64 encoded application key for encryption. + Use `https://generate-random.org/laravel-key-generator?count=1` to generate a key. + defaultValue: base64:d3p4OHptbnFvZXA4bjlieW5wa284MmdlaTY3NjMxa3E= + validRegex: /^([^\s^\/])+$/ + - id: $$cap_MIXPOST_APP_ENV + label: Application | Environment + description: Application environment. Possible values are `local`, `production` and `testing`. + defaultValue: production + validRegex: /^(production|local|testing)$/ + - id: $$cap_MIXPOST_APP_DEBUG + label: Application | Debug Information + description: Whether to show debug information. + defaultValue: 'false' + validRegex: /^(true|false)$/ + - id: $$cap_REDIS_PASSWORD + label: Cache | Password + description: Password of the Redis instance. + defaultValue: $$cap_gen_random_hex(16) + validRegex: /^([^\s^\/])+$/ + - id: $$cap_MYSQL_DATABASE + label: Database | Name + description: Name of the MySQL database. + defaultValue: mixpost + validRegex: /^([^\s^\/])+$/ + - id: $$cap_MYSQL_USER + label: Database | User Name + description: Name of the MySQL user. + defaultValue: mixpost + validRegex: /^([^\s^\/])+$/ + - id: $$cap_MYSQL_PASSWORD + label: Database | User Password + description: Password of the MySQL user. + defaultValue: $$cap_gen_random_hex(16) + validRegex: /^([^\s^\/])+$/ diff --git a/public/v4/logos/mixpost.png b/public/v4/logos/mixpost.png new file mode 100644 index 0000000000000000000000000000000000000000..b4e6adedb30304a258f6fdf6a01b0e3d973dddbd GIT binary patch literal 20618 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