安装部署 Mastodon 长毛象去中心化微博系统

news2025/1/12 18:08:38

注意:本文采用的为 Docker Compose 方式安装部署。

在这里插入图片描述

首先选择你安装的版本,有以下两种推荐:

  • 官方版本: https://github.com/mastodon/mastodon
  • Glitch 版本: https://github.com/glitch-soc/mastodon

项目包含一个 Dockerfile 和一个 docker-compose.yml 文件(需要至少 docker-compose 版本 1.10.0)。

前提条件

  • 工作的基本(Linux)服务器,带有Nginx(或Apache2;不正式支持)。
  • 最近的稳定版本的 Docker。
  • 最近的稳定版本的 Docker-compose。

下载源码

克隆 Mastodon 仓库。

    git clone https://github.com/glitch-soc/mastodon
    cd mastodon 

构建镜像

  • 运行 docker-compose build。它会从Docker Hub中拉取正确的镜像。
  • 运行 chown -R 991:991 public 设置正确的文件所有者。
  • 运行 cp .env.production.sample .env.production 复制配置。您需要后续编辑此文件。

初始化

现在可以使用该命令生成配置:

docker-compose run --rm web rake mastodon:setup

这是一个交互式向导,将引导您完成基本和必要的选项,并生成新的应用程序密钥。在某一点,它将输出您的配置,请复制并粘贴该配置到 .env.production 文件中(注意将原来示例中默认的空值给删除)。

该向导将设置数据库模式和预先编译。完成后,您可以使用以下命令启动Mastodon:

docker-compose up -d

配置 Nginx

由于使用 Cloudflare 可以不用本地开 443,可以用如下配置:

map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}

server {
  listen 80;
  listen [::]:80;
  server_name log.lu www.log.lu;
  root /root/mastodon/public;
  # Useful for Let's Encrypt
  # location /.well-known/acme-challenge/ { allow all; }

  gzip on;
  gzip_disable "msie6";
  gzip_vary on;
  gzip_proxied any;
  gzip_comp_level 6;
  gzip_buffers 16 8k;
  gzip_http_version 1.1;
  gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
  client_max_body_size 64M;


  add_header Strict-Transport-Security "max-age=31536000";

  location / {
    try_files $uri @proxy;
  }

  location ~ ^/(emoji|packs|system/accounts/avatars|system/media_attachments/files) {
    add_header Cache-Control "public, max-age=31536000, immutable";
    try_files $uri @proxy;
  }
  
  location /sw.js {
    add_header Cache-Control "public, max-age=0";
    try_files $uri @proxy;
  }

  location @proxy {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Proxy "";
    proxy_pass_header Server;

    proxy_pass http://web:3000;
    proxy_buffering off;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;

    tcp_nodelay on;
  }

  location /api/v1/streaming {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Proxy "";

    proxy_pass http://web:4000;
    proxy_buffering off;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;

    tcp_nodelay on;
  }

  error_page 500 501 502 503 504 /500.html;
}

如果需要本地 SSL,可以参考这个配置: https://github.com/felx/mastodon-documentation/blob/master/Running-Mastodon/Production-guide.md#nginx-configuration

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/560932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

不同的去耦电容 阻抗VS频率

不同的去耦电容 阻抗VS频率 • 并联电容可以在一个较宽的频带内降低阻抗 • 小的去耦电容尽可能靠近电源引脚 为什么每个电源引脚都需要去耦 去耦电容总结 • 旁路电容离电容引脚尽可能的近 • SMT磁珠对于降低Ripple非常有效 • 高频时需要地平面 – 最小化寄生参数 • 使用…

记两道小明文攻击题

题一 题目描述: flag **************************** flag "asfajgfbiagbwe" p getPrime(2048) q getPrime(2048) m1 bytes_to_long(bytes(flag.encode()))e1e2 3087 n p*q print()flag1 pow(m1,e1,n) flag2 pow(m1,e2,n) print(flag1 str(fla…

MATLAB 搜索某一点的R邻域点 (13)

MATLAB 搜索某一点的R邻域点 (13) 前言一、算法介绍1.1 :无序点云的R邻域点搜索1.2 :有序点云的R邻域点搜索二、具体实现示例2.1 算法一 (含详细注释)2.2 算法二 (含详细注释)前言 在点云处理中,最基本的算法之一就是搜索某一点的近邻点,这在重叠区域确定,点云密度…

Spring Gateway使用JWT实现统一身份认证

在开发集群式或分布式服务时,鉴权是最重要的一步,为了方便对请求统一鉴权,一般都是会放在网关中进行处理。目前非常流行的一种方案是使用JWT,详细的使用说明,可以找相关的资料查阅,这里先不进行深入的引用了…

鲸图知识图谱平台,助力金融业务深度洞察(上)

导语 大数据时代的背景下,数据早就成为数字经济重要的生产资料。对数据的挖掘能力成为企业数字化转型的驱动力。就金融行业来说,如果经营和管理方式跟不上大数据时代的发展脚步就会使得数据价值无法得到充分发挥。知识图谱作为一个结合了知识存储、知识…

SpringCloud入门概述;微服务入门概述

微服务入门概述 入门概述微服务分布式微服务架构Spring Cloud技术栈spring cloud各个组件的使用服务注册服务调用服务降级服务网关服务配置服务总线 参考 入门概述 auther JaneOnly date 2022/11/6 前置课程需要: java8mavengitNginxmqspringboot2.0 微服务 微服务架构就是一…

【阅读笔记】概率预测之DeepAR(含Pytorch代码实现)

本文作为自己阅读论文后的总结和思考,不涉及论文翻译和模型解读,适合大家阅读完论文后交流想法,关于论文翻译可以查看参考文献。论文地址:https://arxiv.org/abs/1704.04110 DeepAR 一. 全文总结二. 研究方法三. 结论四. 创新点五…

软件设计师--考前查漏补缺

软件设计师 上午题一、计算机系统二、操作系统三、数据库技术四、计算机网络五、软件工程概论六、程序设计语言与编译原理七、数据结构与算法八、算法分析与设计九、其他:标准化与知识产权、英语 下午题一、结构化分析设计二、数据库分析技术三、面向对象分析技术四…

代码随想录算法训练营第十四天|二叉树的遍历

这里主要掌握两种遍历方法:递归法和迭代法 递归法: 1、确定递归函数的参数和返回值,这里参数就是节点和用于存放节点数值的vector。 2、确认终止条件,这里的终止条件是节点为空。 3、确定单层递归逻辑,根据前序、中序…

随身WIFI折腾日记(三)---Docker+ssh远程访问+青龙面板

四、安装Docker 安装完Docker以后,我们便可以一键部署一些服务上去了。 sudo curl -fsSL get.docker.com -o get-docker.sh # 下载安装脚本 \&& sudo sh get-docker.sh --mirror Aliyun # 执行安装脚本 \&& sudo systemctl enable docker # 加入开…

一篇文章弄懂卷积神经网络基础概念

文章目录 一篇文章弄懂卷积神经网络基础概念下采样和上采样卷积普通卷积空洞卷积转置卷积膨胀卷积和转置卷积的区别 池化最大池化平均池化 全连接 一篇文章弄懂卷积神经网络基础概念 卷积神经网络可以说是图像处理的天花板,也是当下图像处理在深度学习方面最热门的…

2023/5/23总结

super关键字 super关键字的用法和this 关键字的用法相似 this:代表本类对象的引用(this关键字指向调用该方法的对象一般我们是在当前类中使用this关键字,所以我们常说this代表本类对象的引用)super:代表父类存储空间的标识(可以理解为父类对象…

AGV/AMR控制器--仙工

AGV/AMR控制器--仙工 1 行业介绍1.1 控制器概念1.2 行业发展1.3 竞争格局 2 仙工控制器 SRC2.1 介绍2.2 优势标准化软硬件,适配多种运动模型超强适配性,适配各大品牌支持车型多样,应对场景复杂灵活应对非标需求 2.3 产品矩阵2.4 实施工具Robo…

CLIP使用教程

文章目录 前言注意使用其他示例 原理篇 前言 本文主要介绍如何调用Hugging Face中openai提供的CLIP API. 注意 如果碰到模型无法自动下载,可手动下载到本地,注意本地调用路径后缀加/。 下载config.json、preprocessor_config.json、pytorch_model.bi…

热乎的过万字GameFramework讲解笔记文档

往期文章分享 点击跳转>《导航贴》- Unity手册,系统实战学习点击跳转>《导航贴》- Android手册,重温移动开发 本文约15千字,新手阅读需要27分钟,复习需要12分钟 【收藏随时查阅不再迷路】 👉关于作者 众所周知&a…

YOLOv5改进系列(5)——替换主干网络之 MobileNetV3

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制 YOLOv5改进系列(2&#

【数据结构与算法篇】栈与队列(详解)附加Leetcode经典笔试题

​👻内容专栏:《数据结构与算法专栏》 🐨本文概括: 讲述数据结构栈与队列基本知识。 🐼本文作者:花 碟 🐸发布时间:2023.5.23 文章目录 一、栈1.栈的概念及结构2.栈的实现 二、有效的…

C++中的函数模板

目录 1. 什么是函数模板? 2. 如何定义函数模板? 3. 如何使用函数模板? 4. 函数模板与函数重载的区别是什么? 5. 函数模板与类模板有何异同点? 1. 什么是函数模板? - 函数模板是一种通用的函数描述&…

STM32的SPI外设

文章目录 1. STM32 的 SPI 外设简介2. STM32 的 SPI 架构剖析2.1 通讯引脚2.2 时钟控制逻辑2.3 数据控制逻辑2.4 整体控制逻辑 3. 通讯过程4. SPI 初始化结构体详解 1. STM32 的 SPI 外设简介 STM32 的 SPI 外设可用作通讯的主机及从机,支持最高的 SCK 时钟频率为 …

语义分割实战项目(从原理到代码环境配置)

MMsegmentation是一个基于PyTorch的图像分割工具库,它提供了多种分割算法的实现,包括语义分割、实例分割、轮廓分割等。MMsegmentation的目标是提供一个易于使用、高效、灵活且可扩展的平台,以便开发者可以轻松地使用最先进的分割算法进行研究和开发。 看下结果 MMsegmenta…