home.social

#运维 — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #运维, aggregated by home.social.

  1. 今天下午,我的 Pixelfed 实例突然无法 fetch 外站的帖子和通知;折腾了一会无法解决,决定从 Pixelfed-Glitch 切换到原版 Pixelfed,期间 Chuckya(Fork Of Mastodon:Glitch-soc)也“莫名其妙”down 掉了。

    具体原因:Pixelfed 和 Chuckya 都在 caddy_net 里给数据库起名叫 db,Docker 的内部 DNS 乱了,导致 Mastodon 连接到了 Pixelfed 的 DB(这个问题也出现在 Chuckya 的 Tor 上,需要指定 chuckya-web-1 解决)。

    建议:
    如果使用caddy-docker-proxy而且使用同一个caddy_net,不要在 docker-compose.yml 里直接用 db 或 redis 这样的通用名,使用 pixelfed-db、pixelfed-redis、chuckya-db、chuckya-redis 更好。

    头像消失:
    发现头像消失了,原因是 Pixelfed 默认把本站图片、视频、外站头像存储在 S3:

    本站图片视频:r2:bucket pixelfed/public/m/_v2/.../.../xxx.
    外站头像:r2:bucket pixelfed/cache/avatars/id/xxx.jpg

    本站用户头像则存储在本地磁盘。路径也有区别:

    Pixelfed-Glitch:docker-compose-state/data/pixelfed/storage/app/public/avatars
    Pixelfed:storage/app/public/avatars

    所以迁移实例需要运行同步:

    rsync -av /旧实例根路径/docker-compose-state/data/pixelfed/storage/app/public/avatars/* /新实例根路径/storage/app/public/avatars/

    强制全站 S3 存储:
    因为 Pixelfed 默认不允许 filesystem 直接修改,如果一定要将所有文件全部放在 S3,需要在 .env 开启:
    DANGEROUSLY_SET_FILESYSTEM_DRIVER=s3
    原因:

    docker compose exec pixelfed grep FILESYSTEM config/filesystems.php
    'default' => env('DANGEROUSLY_SET_FILESYSTEM_DRIVER', 'local'),

    此时头像会出现在r2:bucket pixelfed/public/avatars/id/xxx.jpg
    验证输出 s3 即代表切换成功:

    docker compose exec pixelfed php artisan tinker --execute="echo config('filesystems.default')"

    #S3 #Mastodon #运维 #Docker #Caddy #Pixelfed #Filesystem #DNS #Chuckya #migration

  2. #公告 #运维
    Island 岛屿备用域名已更新
    请大家在站点内公告栏处获取
    原备用域名已作废。

  3. 新版mastodon添加了支持数据库加密,需要编译前运行 RAILS_ENV=production bin/rails db:encryption:init 命令生成
    ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY
    ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT
    ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY
    后在 .env.production文件中添加。然后才能编译。

    并且至少还需要添加TRUSTED_PROXY_IP= 127.0.0.1 和其他反向代理IP才能正常运行。
    docs.joinmastodon.org/admin/co
    #长毛象站长联谊会 #运维

  4. #长毛象站长联谊会 #运维

    @board 由于一条帖写不下,这里再开一条。

    目前已知的问题有:新 Mastodon 实例通过 mastodon:setup 创建后,管理员账号不会自动批准,需要用户使用指令,

    tootctl modify <用户名> --approved

    以上便是这次补丁主要的更新,顺便附上此更新原文的连接:github.com/mastodon/mastodon/r

  5. #长毛象站长联谊会 #运维

    @board v4.2.8 更新带来了新的安全补丁,建议各位站长及时更新。

    主要添加的功能有,站点会在管理员离线一周后,自动将站点切换至审核注册模式。当站点在环境变量种使用了 EMAIL_DOMAIN_ALLOWLIST(邮件白名单) 时此功能不会启用。该功能也可以通过在环境变量中设置 DISABLE_AUTOMATIC_SWITCHING_TO_APPROVED_REGISTRATIONS=true 关闭。个人建议不使用第三方工具管理站点的管理员将此功能保持开启,或是通过设置EMAIL_DOMAIN_ALLOWLIST(邮件白名单)的方式关闭。

    另外,新 Mastodon 实例创建后会默认关闭注册,需要通过指令 tootctl settings registrations open 开启,这也包括了之前从未修改过注册模式的站长(注册模式为默认)。

    以及来自官方对于此次问题给出的解决方法有:

    - 手动审核新用户注册
    - 屏蔽已知 SPAM 严重的邮件方(比如 any.pink)
    - 设置 hCaptcha 等验证方式

  6. #长毛象站长联谊会 #spam #运维
    各位站长们大家好!针对近期的SPAM,我写了一个小patch根据SPAM的某些特征(包含 荒らし.com、@多名用户)以阻止spam流入

    与目前其他的措施所不同,这个patch可以防止SPAM在推送时流入实例(但不能防止如直接从搜索栏粘贴SPAM推文从而使Mastodon拉取嘟文等极端情况),从而减轻站长处理Report、封禁用户等一系列流程(某种程度上也意味着来源实例无法发现Spam)。

    希望能对站长们有所帮助!

    github.com/dragonfly-club/mast

  7. #公告 #运维
    Island 岛屿备用域名已更新
    请大家在站点内公告栏处获取
    原备用域名已作废。