自托管社交媒体管理软件Mixpost

在这里插入图片描述

本文软件应网友 ilikeit 的要求而折腾;

什么是 Mixpost ?

Mixpost 是一款强大且多功能的社交媒体管理软件,旨在简化社交媒体操作并增强内容营销策略。可以让您轻松地在一个地方创建、安排、发布和管理社交媒体内容,没有任何限制或每月订阅费。

软件特点:

  • 简化的社交帐户管理: 将所有社交媒体帐户集中在一个地方,以实现更智能、更高效的管理。

  • 高级分析: 深入了解受众的行为和偏好。Mixpost 根据共享的数据为每个平台提供详细的分析。

  • 帖子版本和条件: 为每个社交网络定制您的内容,并自动对高性能帖子进行后续评论,以增强参与度和影响力。

  • 高效媒体库: 快速访问和重复使用图像、GIF 和视频等媒体文件,并与库存图像源集成以获取多样化内容。

  • 团队协作和工作区: 通过专用工作区促进团队协作。讨论想法、管理任务和监控绩效,所有这些都在一个集中的平台上完成。

  • 队列和日历管理: 建立自然的内容发布时间表,并通过易于使用的日历直观地展示您的策略。

  • 可定制的帖子模板: 通过可重复使用的帖子模板提高效率,非常适合保持整个社交媒体渠道的一致性。

  • 动态变量和主题标签组: 插入动态文本并战略性地组织主题标签,以提高帖子效果。

准备

Mixpost 只支持 SSL 协议,比如你访问 http://群晖IP:9020 会自动t跳转到 https://群晖IP:9020/mixpost/login,从而导致错误

在这里插入图片描述

最近 cloudflared 总是连不上,所以这次用了 tailscale + npm 来验证,这是个内网的方案,所以本文只有安装,不涉及功能

文章传送门:用自定义域名访问tailscale节点

反向代理

假设我们实际访问地址为: https://mixpost.xxsu.cf

域名局域网地址备注
mixpost.xxsu.cfhttp://192.168.0.197:9020Mixpost 的访问地址

npm 中的设置

SSL 都勾选了

安装

在群晖上以 Docker 方式安装。

mixpost 有三个版本,分别是 Mixpost LiteMixpost ProMixpost Enterprise,后两个都需要先申请 license

在注册表中搜索 mixpost ,选择第一个 inovector/mixpost,版本选择 latest

本文写作时, Lite 版的latest 版本对应为 v1.7.1

涉及到 3 个容器,采用 docker-compose 方式安装,参照了官方的文档:https://docs.mixpost.app/enterprise/installation/docker

env.txt

改名是为了方便在 Filestation 编辑修改

# The name of your application.  
APP_NAME=Mixpost  
  
# Key used to encrypt and decrypt sensitive data. Generate this using the following tool:  
# https://mixpost.app/tools/encryption-key-generator  
APP_KEY=base64:vrBakOK2znbnc+z9IegfB6yn9yKpXnNybSDJlw7Q9Tk=
  
# Debug mode setting. Set to `false` for production environments.  
APP_DEBUG=false
  
# Your app's domain or subdomain, without the 'http://' or 'https://' prefix.  
APP_DOMAIN=mixpost.xxsu.cf

# Full application URL is automatically configured; no modification required.  
APP_URL=https://${APP_DOMAIN}  
  
# MySQL connection setup.  
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=mixpost_db
DB_USERNAME=mixpost_user
DB_PASSWORD=mixpost_123456

# Specify the email address to be used for SSL certificate registration and notifications.  
# SSL_EMAIL=wbsu2003@gmail.com

变量都有说明,捡主要的说一下

另一种是直接留空,等容器启动后,进入容器后执行

# 生成应用程序密钥  
php artisan key:generate

相对来说,第一种更简单一些

更多环境变量的说明,请参考官方文档:https://docs.mixpost.app/lite/configuration/environment-variables

docker-compose.yml

将下面的内容保存为 docker-compose.yml 文件

version: '3.1'

services:
    mixpost:
        image: inovector/mixpost:latest
        container_name: mixpost-app
        restart: unless-stopped
        env_file:
            - env.txt
        ports:
            - 9020:80
        volumes:
            - ./storage:/var/www/html/storage/app
            - ./logs:/var/www/html/storage/logs
        depends_on:
            - mysql
            - redis 
 
    mysql:
        #image: 'mysql/mysql-server:8.0'
        image: 'mysql:8.0'
        container_name: mixpost-mysql
        restart: unless-stopped
        # ports:
        #     - 3309:3306
        environment:
            MYSQL_DATABASE: ${DB_DATABASE}
            MYSQL_USER: ${DB_USERNAME}
            MYSQL_PASSWORD: ${DB_PASSWORD}
            MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
        volumes:
            - ./mysql:/var/lib/mysql
        healthcheck:
            test: ["CMD", "mysqladmin", "ping", "-p ${DB_PASSWORD}"]
            retries: 3
            timeout: 5s

    redis:
        image: 'redis:latest'
        container_name: mixpost-redis
        restart: unless-stopped
        command: redis-server --appendonly yes --replica-read-only no
        volumes:
            - ./redis:/data
        healthcheck:
            test: ["CMD", "redis-cli", "ping"]
            retries: 3
            timeout: 5s

为了省事,数据库老苏没用 mysql/mysql-server:8.0,而是用了机器中已有的 mysql:8.0,这两个镜像有什么区别?是否会导致问题,老苏也不是太清楚。如果不放心,建议还是更换成官方要求的镜像吧

然后执行下面的命令

# 新建文件夹 mixpost 和 子目录
mkdir -p /volume1/docker/mixpost/{logs,mysql,redis,storage}

# 进入 mixpost 目录
cd /volume1/docker/mixpost

# 修改目录权限
chmod -R 775 storage

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose --env-file env.txt up -d

运行

按我们前面 APP_DOMAIN 中的设置,在浏览器中输入 https://域名 就能看到登录界面

系统提供了一个默认用户

Email:admin@example.com
Password:changeme

如果你想用自己的用户名登录,可以执行下面的操作

# 进入容器  
docker exec --user root -it mixpost-app /bin/bash  

# 创建一个用户
php artisan mixpost-auth:create

登录成功后的主界面

ADD ACCOUNTS 添加社交账号

  • CONFIGURE SERVICES 设置第三方服务的凭证

  • Add account 设置 Mastodon

故障排除

如果出现异常情况

  • 首先应该查看容器的状态是否正常

  • 其次查看容器的日志

  • 最后要看看 laravel.log

Timed out

多容器启动时,比较容易出现超时,尤其是老苏这种机械硬盘的老机器

可以将 COMPOSE_HTTP_TIMEOUT 的值设大一点

# 默认值是 60
export COMPOSE_HTTP_TIMEOUT=1200

Internal error

登录后显示下面这种情况

经查 laravel.log ,显示是数据库 Connection refused,说明数据库没有连上,需要检查 DB_HOSTDB_PORT 等数据库的相关设置是否正确

登录失败

这个说明数据库连接没问题,但是数据库中没有相应的表单和记录,原因不清楚,可以进容器做 migrate

# 进入容器  
docker exec --user root -it mixpost-app /bin/bash  
  
# 运行数据库迁移  
php artisan migrate

老苏只能列一些自己遇到的问题,其他的请查阅官方的问题排查指南:https://docs.mixpost.app/troubleshooting/

参考文档

inovector/mixpost: Mixpost - Self-hosted social media management software (Buffer alternative)
地址:https://github.com/inovector/mixpost

Self-hosted, Open Source Social Media Management - Mixpost
地址:https://mixpost.app/

Mixpost: Comprehensive Self-hosted Social Media Management Software
地址:https://docs.mixpost.app/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨浦老苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值