diff --git a/README.md b/README.md index 8b42291e..a6fecbfe 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,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/data/nginx/nginx.conf b/apps/mixpost/data/nginx/nginx.conf new file mode 100644 index 00000000..5610093a --- /dev/null +++ b/apps/mixpost/data/nginx/nginx.conf @@ -0,0 +1,32 @@ +map $http_x_forwarded_proto $fcgi_https { + default off; + https on; +} + +server { + listen 80; + root /var/www/html/public; + index index.php index.html; + client_max_body_size 200M; + + location / { + try_files $uri /index.php?$args; + } + + location ~ \.php$ { + try_files $uri =404; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; + + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + fastcgi_param HTTPS $fcgi_https; + fastcgi_read_timeout 1000; + proxy_set_header X-Real-IP $remote_addr; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + } +} \ No newline at end of file diff --git a/apps/mixpost/docker-compose.yml b/apps/mixpost/docker-compose.yml new file mode 100644 index 00000000..cb2524aa --- /dev/null +++ b/apps/mixpost/docker-compose.yml @@ -0,0 +1,66 @@ +version: "3.1" + +services: + mixpost: + image: inovector/mixpost:v1.1.3 + container_name: mixpost + environment: + - APP_NAME='Mixpost' + - APP_KEY='${MIXPOST_APP_KEY}' + - 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 + - ${APP_DATA_DIR}/data/nginx/nginx.conf:/etc/nginx/sites-enabled/default + ports: + - ${APP_PORT}:80 + depends_on: + - mixpost-mysql + - mixpost-redis + 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..06aebbec --- /dev/null +++ b/apps/mixpost/metadata/description.md @@ -0,0 +1,27 @@ +## Inital Setup + +An admin user will be created automatically. SSH into your Tipi server and run `docker logs mixpost 2>&1 | grep "Your password" ` to find out the password. + +You can log in to Mixpost at /mixpost using the admin user account created. + +## Inital User + +Username: admin@admin.com +Password: SSH into your Tipi server and run `docker logs mixpost 2>&1 | grep "Your password" ` + +## 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