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

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

什么是 Mixpost ?

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

软件特点:

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

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

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

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

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

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

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

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

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

准备

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

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

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

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

反向代理

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

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

在 npm 中的设置

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

SSL 都勾选了

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

安装

在群晖上以 Docker 方式安装。

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

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

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

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

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

涉及到 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

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

  • APP_DOMAIN:填入我们在前面设置的域名
  • APP_KEY:有两种方式生成,一种是直接访问 https://mixpost.app/tools/encryption-key-generator ,将生成的 key 替换到 APP_KEY
自托管社交媒体管理软件Mixpost

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

# 生成应用程序密钥  
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://域名 就能看到登录界面

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

系统提供了一个默认用户

Email:admin@example.com
Password:changeme

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

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

# 创建一个用户
php artisan mixpost-auth:create
自托管社交媒体管理软件Mixpost

登录成功后的主界面

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

ADD ACCOUNTS 添加社交账号

自托管社交媒体管理软件Mixpost
  • CONFIGURE SERVICES 设置第三方服务的凭证
自托管社交媒体管理软件Mixpost
  • Add account 设置 Mastodon
自托管社交媒体管理软件Mixpost

故障排除

如果出现异常情况

  • 首先应该查看容器的状态是否正常
自托管社交媒体管理软件Mixpost
  • 其次查看容器的日志

  • 最后要看看 laravel.log

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

Timed out

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

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

可以将 COMPOSE_HTTP_TIMEOUT 的值设大一点

# 默认值是 60
export COMPOSE_HTTP_TIMEOUT=1200

Internal error

登录后显示下面这种情况

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

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

登录失败

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

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

# 进入容器  
docker exec --user root -it mixpost-app /bin/bash  
  
# 运行数据库迁移  
php artisan migrate
自托管社交媒体管理软件Mixpost

老苏只能列一些自己遇到的问题,其他的请查阅官方的问题排查指南: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/

@所有人:写文不易,如果你都看到了这里,请点个在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

原文始发于微信公众号(各种折腾):自托管社交媒体管理软件Mixpost

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/296673.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!