diff --git a/README.md b/README.md index eb654bac..dcde245e 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Monero Daemon](https://github.com/monero-project/monero/) - A network daemon for Monero: the secure, private, untraceable cryptocurrency - [Monero p2pool Daemon](https://github.com/SChernykh/p2pool) - Decentralized pool for Monero mining - [Monica](https://github.com/monicahq/monica) - A Personal Relationship Management tool to help you document your social life +- [Mixpost](https://github.com/inovector/mixpost) - Self-hosted social media management. Schedule and organize your social content. - [n8n](https://github.com/n8n-io/n8n) - Workflow Automation Tool - [Navidrome](https://github.com/navidrome/navidrome) - A selfhosted music server - [Nextcloud](https://github.com/nextcloud/server) - A safe home for all your data diff --git a/apps/mixpost/config.json b/apps/mixpost/config.json new file mode 100644 index 00000000..d95bcbc8 --- /dev/null +++ b/apps/mixpost/config.json @@ -0,0 +1,38 @@ +{ + "$schema": "../schema.json", + "name": "Mixpost", + "port": 8167, + "available": true, + "exposable": true, + "id": "mixpost", + "tipi_version": 1, + "version": "v1.1.3", + "categories": ["social", "utilities"], + "description": "Mixpost it's the coolest Self-hosted social media management software.", + "short_desc": "Self-hosted social media management. Schedule and organize your social content. ", + "author": "Inovector", + "source": "https://github.com/inovector/mixpost", + "form_fields": [ + { + "type": "random", + "label": "Mixpost SQL Password", + "min": 32, + "env_variable": "MIXPOST_MYSQL_PASSWORD" + }, + { + "type": "random", + "label": "Mixpost Redis Password", + "min": 32, + "env_variable": "MIXPOST_REDIS_PASSWORD" + }, + { + "type": "random", + "label": "Application key", + "required": false, + "min": 32, + "max": 32, + "env_variable": "MIXPOST_APP_KEY" + } + + ] +} diff --git a/apps/mixpost/docker-compose.yml b/apps/mixpost/docker-compose.yml new file mode 100644 index 00000000..8afbd518 --- /dev/null +++ b/apps/mixpost/docker-compose.yml @@ -0,0 +1,64 @@ +version: "3" + +services: + mixpost: + image: inovector/mixpost:v1.1.3 + container_name: mixpost + environment: + - APP_NAME='Mixpost' + - APP_KEY=${MIXPOST_APP_KEY} # Generate a base64 secret here: https://generate-random.org/laravel-key-generator?count=1 + - APP_URL=https://${APP_DOMAIN} + - DB_HOST=mixpost_mysql + - DB_DATABASE=mixpost + - DB_USERNAME=tipi + - DB_PASSWORD=${MIXPOST_MYSQL_PASSWORD} + - REDIS_HOST=mixpost_redis + - REDIS_PASSWORD=${MIXPOST_REDIS_PASSWORD} + restart: unless-stopped + volumes: + - ${APP_DATA_DIR}/data/mixpost-storage:/var/www/html/storage/app + - ${APP_DATA_DIR}/data/mixpost-logs:/var/www/html/storage/logs + ports: + - ${APP_PORT}:80 + depends_on: + - mixpost-db + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.mixpost.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.mixpost.entrypoints: websecure + traefik.http.routers.mixpost.service: mixpost + traefik.http.routers.mixpost.tls.certresolver: myresolver + traefik.http.services.mixpost.loadbalancer.server.port: 80 + + mixpost_mysql: + image: mysql/mysql-server:8.0 + container_name: mixpost_mysql + restart: unless-stopped + environment: + - MYSQL_ROOT_PASSWORD=${MIXPOST_MYSQL_PASSWORD} + - MYSQL_USER=tipi + - MYSQL_PASSWORD=${MIXPOST_MYSQL_PASSWORD} + - MYSQL_DATABASE=mixpost + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-p ${MIXPOST_MYSQL_PASSWORD}"] + retries: 3 + timeout: 5s + volumes: + - ${APP_DATA_DIR}/data/mysql:/var/lib/mysql + networks: + - tipi_main_network + + mixpost_redis: + image: 'redis:latest' + command: redis-server --appendonly yes --replica-read-only no --requirepass "${MIXPOST_REDIS_PASSWORD}" + volumes: + - '${APP_DATA_DIR}/data/redis:/data' + healthcheck: + test: ["CMD", "redis-cli", "ping"] + retries: 3 + timeout: 5s + networks: + - tipi_main_network + diff --git a/apps/mixpost/metadata/description.md b/apps/mixpost/metadata/description.md new file mode 100644 index 00000000..43fec64d --- /dev/null +++ b/apps/mixpost/metadata/description.md @@ -0,0 +1,22 @@ +## Inital Setup + +An admin user will be created automatically. SSH into your Tipi server and check mixpost container logs to find out the password. + +You can log in to Mixpost at /mixpost using the admin user account created. + +## Introduction + +Mixpost it's the coolest Self-hosted social media management software. + +This package is the Lite version of Mixpost Pro, and by integrating it into your Laravel project, you can 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. + +**Mixpost Pro is under development and will be released soon. Sign up to be notified when it's released [mixpost.app](https://mixpost.app/)** + +Join our community: + +- [Discord](https://discord.gg/5YdseZnK2Z) +- [Facebook Private Group](https://www.facebook.com/groups/inovector) + +[![](https://github.com/inovector/mixpost/raw/main/art/cover.png?v=3)](https://mixpost.app) diff --git a/apps/mixpost/metadata/logo.jpg b/apps/mixpost/metadata/logo.jpg new file mode 100644 index 00000000..2a7dc492 Binary files /dev/null and b/apps/mixpost/metadata/logo.jpg differ