LoginSignup
0
1

TwitterがオワコンなのでMisskeyを自鯖で建てよう!

Posted at

概要

2023年、Twitterはイーロンの炎に包まれた!
TwitterAPIは枯れ、TweetDeckが裂け、全てのツイッタラーが消滅したように見えた。
だが、ツイ廃は死滅していなかった!

下準備

Misskeyを使うサーバを用意する

  • Indigoがオススメ

  • メモリ2GBプランなら月額814円で利用可能

独自ドメインを取得する

  • 自分の場合ムームードメインで取得

サーバ下準備

サーバを建てる

  1. Indigoの場合、インスタンス名は建てる時しか決めれないので注意
  2. 出来たらIPアドレスをコピーする

DNS設定

  1. 取得したドメインに、今回立てたインスタンスのIPを割り当てる

Linuxの基礎設定(Indigoを前提に説明)

  • 秘密鍵を指定し、IPアドレスで直接ログイン
  • $ ssh ubuntu@000.000.000.000 -i ~/.ssh/key/key

Userを作る

  • Ubuntuアカウントだと攻撃の可能性があがるため
sudo useradd hirarira
sudo passwd hirarira
usermod -aG hirarira admin

ssh設定

  • hirarira アカウントしかSSHで入れないようにする

  • $ vim /etc/ssh/sshd_config

    AllowUsers hirarira
    PermitRootLogin no
    port 2222
    
  • 必ず今繋いでるターミナルからはログアウトせず、別のターミナルからSSH出来ることを確認

    1. ダメな時締め出されちゃうので

GitHub設定

  • ssh-keygen でKeyを作る
  • GitHubのconfigのSSH and GPG Keysに公開鍵を登録しとく
  • ~/.ssh/config に以下を記述
Host github.com
        HostName github.com
        User git
        IdentityFile ~/.ssh/fafnir_github
  • $ ssh -T git@github.com でログインを確認

コンピュータ名を変更

sudo vim /etc/hostname
sudo hostnamectl set-hostname fafnir
sudo reboot

Dockerのインストール

  • $ apt-get install docker

Docker-compose のインストール

DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose

chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
docker compose version
  • 参考

Apacheの停止

  • IndigoはデフォルトでApacheが入っているので消す
  • $ sudo apt-get remove apache2

SSL証明書を用意する

  • みんな大好きLet's Encryptを利用
  • CertBotを入れる
    • CertBot入れる過程で普通のNginxも入るのでこっちは止めておく
    • コンテナ化しなくても普通のNginxに以下の設定入れるでも良し

Nginxコンテナを立てる

  • NginxコンテナでSSL証明書を配置して、433ポートから3000ポートに転送させる
  • /etc/nginx/keys/ に発行した証明書を配置
  • Nginxの default.conf はこんな感じで
server {
    listen       80;
    server_name  (SERVER HOST);
    return 301 https://$host$request_uri;
}

server {
  listen       443 ssl;
  server_name  (SERVER HOST);
  ssl_certificate     /etc/nginx/keys/fullchain.pem;
  ssl_certificate_key /etc/nginx/keys/privkey.pem;

  location /status {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
  }

  error_page   500 502 503 504  /50x.html;
  location = /50x.html {
    root   /usr/share/nginx/html;
  }
  
  location / {
    proxy_pass http://127.0.0.1:3000/;
  }
}


server {
  listen 80 default_server;
  listen 443;
  server_name (Server IP Address);
  return 444;
}

スワップ領域の解放

  • やらないとdocker compose buildの段階でフリーズする(メモリ2GBだと)
  • 手順はリンク先を参照

Misskeyコンテナを立てる

  • 公式がリファレンスを用意してくれてるので従う

  • .config/default.yml を編集
# Final accessible URL seen by a user.
url: https://example.tld/ # 運用するページのURLを設定
  • Build
sudo docker compose build
sudo docker compose run --rm web pnpm run init
  • 起動
sudo docker compose up -d
  • アクセスできることを確認する

詰まった点

  • 画像がアップロード出来ない
    • コンテナにrootでログインして共有フォルダのオーナーを misskey に変更
    • これで正しいやり方化は不明

まとめ

  • TweetDeckが復活したので急いでMisskey鯖立てなくても良かったかもしれん
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1