2024-05-09 10:58:26 +08:00
<!DOCTYPE html>
< html lang = "zh-CN" >
<!DOCTYPE html>
< html lang = "zh-CN" >
< head >
< meta http-equiv = "content-type" content = "text/html; charset=UTF-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< meta name = "viewport" content = "width=device-width,initial-scale=1" >
< link rel = "icon" href = "/img/logo.png" >
< meta name = "author" content = "浪子" >
< meta name = "subtitle" content = "一个分享自己生活的博客" >
< meta name = "description" content = "曾梦想仗剑走天涯;因太胖放弃原计划." >
< meta name = "keywords" content = ",DIY,黑苹果,分享,自由" >
< link rel = "alternate" href = "/atom.xml " title = "提剑追梦" type = "application/atom+xml" >
< title > 快速部署misskey实例 | 提剑追梦< / title >
< link rel = "stylesheet" href = "/css/style.css" >
< link rel = "stylesheet" href = "/css/partial/dark.css" >
< link rel = "stylesheet" href = "/css/partial/highlight/atom-one-light.css" >
< link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" >
2024-05-09 11:25:52 +08:00
< link rel = "stylesheet" href = "https://cdnjs.sgcd.net/lxgw-wenkai-screen-webfont/lxgwwenkaigbscreen.css" >
2024-05-09 10:58:26 +08:00
< link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.css" >
< link rel = "stylesheet" href = "https://cdn.jsdelivr.net/gh/a2396837/CDN@latest/css/iconfont.css" >
< script src = "/js/todark.js" > < / script >
< meta name = "generator" content = "Hexo 6.3.0" > < / head >
< / html >
< div class = "nav index" style = "height: 60px;" >
< div class = "title animated fadeInDown" >
< div class = "layui-container" >
< div class = "nav-title" > < a href = "/" title = "提剑追梦" > 提剑追梦< / a > < / div >
< div class = "nav-list" >
< button > < span class = "" > < / span > < span style = "display: block;" > < / span > < span class = "" > < / span > < / button >
< ul class = "layui-nav" lay-filter = "" >
< li class = "layui-nav-item" >
< a href = "/ " >
< i class = " fab fa-fort-awesome " style = "color: rgb(255 107 107);" > < / i >
< span class = "layui-nav-item-name" > 首页< / span >
< / a >
< / li >
< li class = "layui-nav-item" >
< a href = "/archives/ " >
< i class = " fas fa-archive " style = "color: rgb(10 189 227);" > < / i >
< span class = "layui-nav-item-name" > 归档< / span >
< / a >
< / li >
< li class = "layui-nav-item" >
< a href = "/tags/ " >
< i class = " fas fa-hashtag " style = "color: rgb(254 202 87);" > < / i >
< span class = "layui-nav-item-name" > 标签< / span >
< / a >
< / li >
< li class = "layui-nav-item" >
2024-05-09 11:25:52 +08:00
< a href = "/fcircle/ " >
< i class = " fas fa-heart " style = "color: rgb(29 209 161);" > < / i >
< span class = "layui-nav-item-name" > 朋友圈< / span >
2024-05-09 10:58:26 +08:00
< / a >
< / li >
< li class = "layui-nav-item" >
< a href = "/links/ " >
< i class = " fab fa-weixin " style = "color: hsl(152deg 73% 45%);" > < / i >
< span class = "layui-nav-item-name" > 友链< / span >
< / a >
< / li >
< li class = "layui-nav-item" >
< a href = "/memos/ " >
< i class = " fas fa-coffee " style = "color:#31c7c1;" > < / i >
< span class = "layui-nav-item-name" > 说说< / span >
< / a >
< / li >
< li class = "layui-nav-item" >
2024-05-09 11:25:52 +08:00
< a href = "/about/ " >
< i class = " fab fa-grav " style = "color: rgb(154 106 247);" > < / i >
< span class = "layui-nav-item-name" > 关于< / span >
2024-05-09 10:58:26 +08:00
< / a >
< / li >
< li class = "layui-nav-item" id = "btn-toggle-dark" > 🌙< / li >
< span class = "layui-nav-bar" style = "left: 342px; top: 78px; width: 0px; opacity: 0;" > < / span >
< / ul >
< / div >
< / div >
< / div >
< / div >
< header class = "header" >
< div class = "logo" >
< a href = "/" > < img src = "https://img.imsun.org/avatar.jpg" onerror = this.onerror=null,this.src="/img/loading.gif" > < / a >
< / div >
< / div >
< div class = "motto" >
< span > 曾梦想仗剑走天涯< / span >
< / div >
< div class = "social" >
< a class = "social-icon" href = "https://github.com/jkjoy" target = "_blank" title = "Github" >
< i class = "iconfont icon-GitHub" aria-hidden = "true" > < / i >
< / a >
< a class = "social-icon" href = "mailto:jkjoy@163.com" target = "_blank" title = "Email" >
< i class = "iconfont icon-email" aria-hidden = "true" > < / i >
< / a >
< a class = "social-icon" href = "/atom.xml" target = "_blank" title = "rss" >
< i class = "iconfont icon-rss" aria-hidden = "true" > < / i >
< / a >
< / div >
< / header >
< article id = "post" >
< div class = "post-title" > 快速部署misskey实例< / div >
< div class = "post-meta" >
< div class = "post-meta-item date" >
< span title = "发表于 2023.10.11" > < i class = "far fa-calendar-alt" > < / i > 2023.10.11< / span >
< / div >
< div class = "post-meta-item updated" >
2024-06-18 11:51:31 +08:00
< span title = "更新于 2024.06.18" > < i class = "far fa-calendar-check" > < / i > 2024.06.18< / span >
2024-05-09 10:58:26 +08:00
< / div >
< div class = "post-meta-item categories" >
< i class = "fas fa-inbox article-meta__icon" > < / i > < a href = "/categories/%E5%88%86%E4%BA%AB/" > 分享< / a >
< / div >
< div class = "post-meta-item wordcount" >
< i class = "fas fa-pencil-alt" > < / i > < span class = "post-count" > 368 字< / span >
< i class = "far fa-clock" > < / i > < span class = "post-count" > 1 分钟< / span >
< / div >
< / div >
< div class = "content" >
2024-05-09 20:03:32 +08:00
< blockquote > < h3 > 自动摘要< / h3 >
ai: 这篇文章介绍了如何使用官方推荐的一键脚本在纯净的Ubuntu系统上安装MISSKEY, 并提供了双核心四线程的配置建议。文章详细说明了更新软件、使用一键脚本和更新MISSKEY脚本的步骤, 包括系统重启和特定软件包版本的更新方法。此外, 还讲解了如何使用Docker Compose部署MISSKEY, 包括环境准备、GIT仓库克隆、配置文件编辑、镜像构建、容器启动及设置反向代理的完整流程。
< / blockquote >
2024-05-09 10:58:26 +08:00
< div > < h2 id = "使用官方推荐一键脚本" > < a href = "#使用官方推荐一键脚本" class = "headerlink" title = "使用官方推荐一键脚本" > < / a > 使用官方推荐一键脚本< / h2 > < p > 使用纯净的Ubuntu系统安装,推荐配置双核心四线程.< / p >
< h3 id = "更新软件" > < a href = "#更新软件" class = "headerlink" title = "更新软件" > < / a > 更新软件< / h3 > < figure class = "highlight plaintext" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > sudo apt update; sudo apt full-upgrade -y; sudo reboot< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< h3 id = "一键脚本" > < a href = "#一键脚本" class = "headerlink" title = "一键脚本" > < / a > 一键脚本< / h3 > < figure class = "highlight plaintext" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< p > 按照提示输入内容< / p >
< h3 id = "更新misskey脚本" > < a href = "#更新misskey脚本" class = "headerlink" title = "更新misskey脚本" > < / a > 更新misskey脚本< / h3 > < p > 更新 Misskey 的脚本不会升级运行环境。 对于脚本的更新内容,另请参阅 “更新日志”< / p >
< figure class = "highlight plaintext" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< figure class = "highlight plaintext" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > sudo bash update.sh< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< ul >
< li > 使用 systemd 的小伙伴, 添加 -r 可以更新并重启系统。< / li >
< li > 使用 docker 的小伙伴, 可以特定软件包版本 repository:tag 来更新。< / li >
< / ul >
< h2 id = "使用docker-compose部署" > < a href = "#使用docker-compose部署" class = "headerlink" title = "使用docker compose部署" > < / a > 使用docker compose部署< / h2 > < h3 id = "环境" > < a href = "#环境" class = "headerlink" title = "环境" > < / a > 环境< / h3 > < ul >
< li > git< / li >
< li > docker< / li >
< li > nginx< / li >
< / ul >
< h3 id = "步骤" > < a href = "#步骤" class = "headerlink" title = "步骤" > < / a > 步骤< / h3 > < h4 id = "git克隆仓库" > < a href = "#git克隆仓库" class = "headerlink" title = "git克隆仓库" > < / a > git克隆仓库< / h4 > < figure class = "highlight plaintext" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > cd /opt< / span > < br > < span class = "line" > git clone -b master https://github.com/misskey-dev/misskey.git< / span > < br > < span class = "line" > cd misskey< / span > < br > < span class = "line" > git checkout master< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< h4 id = "复制配置文件:" > < a href = "#复制配置文件:" class = "headerlink" title = "复制配置文件:" > < / a > 复制配置文件:< / h4 > < figure class = "highlight plaintext" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > cp .config/example.yml .config/default.yml< / span > < br > < span class = "line" > cp .config/docker_example.env .config/docker.env< / span > < br > < span class = "line" > cp docker-compose.yml.example docker-compose.yml< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< h4 id = "编辑default-yml中" > < a href = "#编辑default-yml中" class = "headerlink" title = "编辑default.yml中" > < / a > 编辑default.yml中< / h4 > < p > < code > url< / code > 设置为实例域名< br > db:< code > host< / code > 设置为< code > db< / code > < br > redis:< code > host< / code > 设置为< code > redis< / code > < / p >
< h4 id = "构建镜像" > < a href = "#构建镜像" class = "headerlink" title = "构建镜像" > < / a > 构建镜像< / h4 > < figure class = "highlight plaintext" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > docker compose build< / span > < br > < span class = "line" > docker compose run --rm web yarn run init< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< p > 完成之后< / p >
< h4 id = "启动容器" > < a href = "#启动容器" class = "headerlink" title = "启动容器" > < / a > 启动容器< / h4 > < figure class = "highlight plaintext" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > docker compose up -d< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< h4 id = "反向代理" > < a href = "#反向代理" class = "headerlink" title = "反向代理" > < / a > 反向代理< / h4 > < p > 参考以下< / p >
< figure class = "highlight plaintext" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < span class = "line" > 7< / span > < br > < span class = "line" > 8< / span > < br > < span class = "line" > 9< / span > < br > < span class = "line" > 10< / span > < br > < span class = "line" > 11< / span > < br > < span class = "line" > 12< / span > < br > < span class = "line" > 13< / span > < br > < span class = "line" > 14< / span > < br > < span class = "line" > 15< / span > < br > < span class = "line" > 16< / span > < br > < span class = "line" > 17< / span > < br > < span class = "line" > 18< / span > < br > < span class = "line" > 19< / span > < br > < span class = "line" > 20< / span > < br > < span class = "line" > 21< / span > < br > < span class = "line" > 22< / span > < br > < span class = "line" > 23< / span > < br > < span class = "line" > 24< / span > < br > < span class = "line" > 25< / span > < br > < span class = "line" > 26< / span > < br > < span class = "line" > 27< / span > < br > < span class = "line" > 28< / span > < br > < span class = "line" > 29< / span > < br > < span class = "line" > 30< / span > < br > < span class = "line" > 31< / span > < br > < span class = "line" > 32< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > map $http_upgrade $connection_upgrade { < / span > < br > < span class = "line" > default upgrade;< / span > < br > < span class = "line" > ' ' close;< / span > < br > < span class = "line" > } < / span > < br > < span class = "line" > < / span > < br > < span class = "line" > proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off;< / span > < br > < span class = "line" > < / span > < br > < span class = "line" > server { < / span > < br > < span class = "line" > listen 80;< / span > < br > < span class = "line" > listen [::]:80;< / span > < br > < span class = "line" > server_name misskey.example.com;< / span > < br > < span class = "line" > client_max_body_size 0;< / span > < br > < span class = "line" > < / span > < br > < span class = "line" > location / { < / span > < br > < span class = "line" > proxy_pass http://127.0.0.1:3000;< / span > < br > < span class = "line" > proxy_set_header Host $host;< / span > < br > < span class = "line" > proxy_http_version 1.1;< / span > < br > < span class = "line" > proxy_redirect off;< / span > < br > < span class = "line" > < / span > < br > < span class = "line" > proxy_set_header X-Real-IP $remote_addr;< / span > < br > < span class = "line" > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;< / span > < br > < span class = "line" > proxy_set_header X-Forwarded-Proto https;< / span > < br > < span class = "line" > < / span > < br > < span class = "line" > proxy_set_header Upgrade $http_upgrade;< / span > < br > < span class = "line" > proxy_set_header Connection $connection_upgrade;< / span > < br > < span class = "line" > < / span > < br > < span class = "line" > proxy_cache cache1;< / span > < br > < span class = "line" > proxy_cache_lock on;< / span > < br > < span class = "line" > proxy_cache_use_stale updating;< / span > < br > < span class = "line" > add_header X-Cache $upstream_cache_status;< / span > < br > < span class = "line" > } < / span > < br > < span class = "line" > } < / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< / div >
< div class = "post-copyright" >
< div class = "copyright-item" >
< span > 作者: 浪子< / span >
< / div >
< div class = "copyright-item" >
< span > 链接: < a href = "https://blog.jkjoy.cn/posts/d29d6713.html" > https://blog.jkjoy.cn/posts/d29d6713.html< / a > < / span >
< / div >
< div class = "copyright-item" >
< span > 声明: 本博客所有文章除特别声明外,均采用许可协议 < a target = "_blank" rel = "noopener" href = "http://creativecommons.org/licenses/by-nc/4.0/" > CC-BY-NC-4.0< / a > 转载请注明出处!< / span >
< / div >
< / div >
< / div >
< div class = "share-reward" >
< div class = "share" >
< div class = "social-share" data-sites = "wechat,weibo,qq" > < / div >
< link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/social-share.js/dist/css/share.min.css" >
< script src = "https://cdn.jsdelivr.net/npm/social-share.js/dist/js/social-share.min.js" > < / script >
< / div >
< div class = "reward" >
< div style = "padding: 10px 0; margin-left: 20px; width: 90%; text-align: center;" >
< div class = "reward-content" >
< ul id = "donateBox" class = "list pos-a" >
< li id = "PayPal" > < a href = "https://paypal.me/jkjoy" target = "_blank" title = "贝宝" > 贝宝< / a > < / li >
< li id = "AliPay" title = "支付宝" > < img data-img = "https://blogcdn.loliko.cn/ali.png" onerror = this.onerror=null,this.src="/img/loading.gif" > < / img > < / li >
< li id = "WeChat" title = "微信" > < img date-img = "https://blogcdn.loliko.cn/wx.png" onerror = this.onerror=null,this.src="/img/loading.gif" > < / img > < / li >
< / ul >
< div id = "QRBox" class = "pos-f left-100" >
< div id = "MainBox" > < / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< div class = "post_tags" >
< i class = "fas fa-tag" > < / i > < a href = "/tags/%E9%83%A8%E7%BD%B2/" class = "tag" > 部署< / a >
< / div >
< div class = "post-nav" >
< div class = "post-nav-prev post-nav-item" >
< a href = "/posts/ebf565b6.html" > 使用Docker快速部署mastodon实例< i class = "fa fa-chevron-left" > < / i > < / a >
< / div >
< div class = "post-nav-next post-nav-item" >
< a href = "/posts/1adc954a.html" > 测试xiuno2Sforum中遇到的各种问题< i class = "fa fa-chevron-right" > < / i > < / a >
< / div >
< / div >
2024-05-09 16:55:10 +08:00
< h3 > < i class = "far fa-comment" > < / i > 评论< / h3 >
2024-05-09 11:25:52 +08:00
< div id = "tcomment" > < / div >
2024-05-12 11:16:02 +08:00
< script src = "/js/twikoo.all.min.js" > < / script >
2024-05-09 11:25:52 +08:00
< script >
twikoo.init({
envId: 'https://t.jkjoy.cn',
el: '#tcomment',
})
< / script >
2024-05-09 10:58:26 +08:00
< / article >
< a id = "gotop" href = "javascript:" title = "返回顶部" > < i class = "fa fa-arrow-up" > < / i > < / a >
< div id = "bottom-outer" >
< div id = "bottom-inner" >
© 2020 < i class = "fa fa-heart" id = "heart" > < / i > 浪子
< br >
Powered by
< a target = "_blank" rel = "noopener" href = "http://hexo.io" > hexo< / a > | Theme is < a target = "_blank" rel = "noopener" href = "https://github.com/a2396837/hexo-theme-blank/" > blank< / a >
< div class = "icp-info" >
2024-06-17 17:09:54 +08:00
< a href = "https://beian.miit.gov.cn/" target = "_blank" > 鄂ICP备16022970号-16< / a >
2024-05-09 10:58:26 +08:00
< / div >
< / div >
< / div >
< script src = "https://cdn.jsdelivr.net/npm/layui-src@2.5.5/dist/layui.min.js" > < / script >
< script src = "/js/script.js" > < / script >
< script src = "https://cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js" > < / script >
< script >
window.lazyLoadOptions = {
elements_selector: 'img',
threshold: 0
}
< / script >
< script src = "https://cdn.jsdelivr.net/npm/vanilla-lazyload/dist/lazyload.iife.min.js" > < / script >
< script >
var images = $('img').not('.nav-logo img').not('.card img').not($('a>img')).not('.reward-content img')
images.each(function (i, o) {
var lazyloadSrc = $(o).attr('data-src') ? $(o).attr('data-src') : $(o).attr('src')
$(o).wrap(`< a href = "${lazyloadSrc}" data-fancybox = "group" data-caption = "${$(o).attr('alt')}" class = "fancybox" > < / a > `)
})
< / script >
< script src = "https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.js" > < / script >
< script >
$().fancybox({
selector: '[data-fancybox]',
loop: true,
transitionEffect: 'slide',
protect: true,
buttons: ['slideShow', 'fullScreen', 'thumbs', 'close']
})
< / script >
< script >
jQuery(document).ready(function () {
var QRBox = $('#QRBox');
var MainBox = $('#MainBox');
var AliPayQR = 'https://blogcdn.loliko.cn/ali.png';
var WeChanQR = 'https://blogcdn.loliko.cn/wx.png';
function showQR(QR) {
if (QR) {
MainBox.css('background-image', 'url(' + QR + ')');
}
$('#donateBox').addClass('blur');
QRBox.fadeIn(300, function (argument) {
MainBox.addClass('showQR');
});
}
$('#donateBox>li').click(function (event) {
var thisID = $(this).attr('id');
if (thisID === 'AliPay') {
showQR(AliPayQR);
} else if (thisID === 'WeChat') {
showQR(WeChanQR);
}
});
MainBox.click(function (event) {
MainBox.removeClass('showQR').addClass('hideQR');
setTimeout(function (a) {
QRBox.fadeOut(300, function (argument) {
MainBox.removeClass('hideQR');
});
$('#DonateText,#donateBox,#github').removeClass('blur');
}, 600);
});
});
< / script >
< script src = "https://cdn.jsdelivr.net/npm/instant.page/instantpage.min.js" type = "module" defer > < / script >
< script src = "https://cdn.jsdelivr.net/npm/clipboard@2.0.4/dist/clipboard.min.js" > < / script >
< script >
!function (e, t, a) {
var initCopyCode = function(){
var copyHtml = '';
copyHtml += '< button class = "btn-copy" data-clipboard-snippet = "" > ';
copyHtml += ' < i class = "fa fa-clipboard" > < / i > < span > 复制< / span > ';
copyHtml += '< / button > ';
$(".highlight .code pre").before(copyHtml);
new ClipboardJS('.btn-copy', {
target: function(trigger) {
return trigger.nextElementSibling;
}
});
}
initCopyCode();
}(window, document);
< / script >
< script >
var btntop = $('#gotop');
btntop.on('click', function (e) {
e.preventDefault();
$('html, body').animate({ scrollTop: 0 }, '300');
});
var $table = $('.content table').not($('figure.highlight > table'))
$table.each(function () {
$(this).wrap('< div class = "table-wrap" > < / div > ')
})
< / script >
< / html >