×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
これはmastodon adventar calendar21日目の記事です。他にも書きたかった人がいたろうにこんな素人が枠取ってしまって申し訳ありません。
自分のmastodonアカウントは 音ゲ丼にあります。
サーバー経験は皆無と書きましたが、少しだけあります。昔MinecraftPEサーバをCentOSで建ててました。(全部コピペコマンドで建てた(´・_・`))
iptablesの弄り方も知らなくて、ufwのインストール方法調べて一々インストールしてたガイジです。はい。firewalldはカス
なので、今回はCentOS7.5でサーバを建てたいと思います。firewalldの使い方必死に覚えました。
環境
CentOS 7.5(64bit)
このはたんのぶいぴーえす♡ 1Gプラン
docker使用
star domainでjpドメインとった
sparkpost使用
今回は身内サーバを建てます。(でも登録は自由)
失敗したあれこれ
途中でDBが崩壊
let's encryptの認証ファイルが取得できない
Conohaのテンプレート使ってみたらバージョン古すぎて使い物にならない
うん。正直無駄なことし過ぎた。このミスのせいでこのはちゃんに無駄に500円お布施しちゃった。まぁ可愛いから許す。ただ、DDoS受けたら「お兄ちゃんが攻撃受けちゃってる大変!お兄ちゃんは私のものなんだから!誰にも渡さないもん...」って言うて全通信遮断するの許して
更なる挫折劇を見たい方は 末代鯖のアカウントをさかのぼって頂ければだいたい分かります。
実践編
leaf47様のサイトを参考に作りました。
忍者ブログはソースコード埋込みをするにはかなり手間がかかるのでこの書き方になります、申し訳ないです
*まずはDNSレコード設定
こんな感じで
#まずはユーザー作成
#sudoの許可
#nginxをCentOS仕様でインストール
これができたらやっとこさインストール。
ここから一般ユーザーに切り替えてdockerをインストール。
次にdocker-composeのインストール
ここでmastodonのインストール
ここから色々編集していきます。
余談ですがここでこれより先に書いてた内容が吹っ飛んでもうやだマリカチャンカワイイヤッターってなってたのは内緒
.env.productionの整備
dockerのビルド
記録できたら、.env.productionでさっきxxxって書いてたとこに上から順に記入していってください。
ここでプリコンパイル&起動
...とは行きません。このままだとアクセスできないので、色々設定していきます。
let's encryptで証明書取得
nginxのデフォルトファイルをなかったことにする
nginxの設定ファイル編集
ここで保存...ん?なんか変だ!(わかる人にしかわからないネタ)
...は?もうマヂ無理…ミュゼカしょ...ルールヲマモッテタノシクミュゼカ!
調べて見たら、変なcomitがあったせいで、使えなくなったらしいです。
githubのこのコミットを見て、212〜218行目で-になってるとこをmastodon.confに追加しないとダメみたいです。このコミット入れたヤツぶん殴ったるからなとか思ったんだけどアイコンの狐可愛くてなにもできない
あとエラー起こらないでね、っていうおまじない
まぁなんとか完成!
こうして完成したのが、私の丼なのです。
よし、やろうっておもってから1ヶ月かかりましたね...いやぁ、コピペマンの自分には難しかった...,mastodonに今一番思うことは、
につきます。
まぁでもそこまで簡単にしてしまうと、学校裏インスタンスとかできて社会問題になってしまう(名推理)
とにかく楽しようとconohaのテンプレートとか使ってみたのですが、バージョンが古くて使い物にならず。このはちゃんやっぱり鬼畜じゃないか結局は今回の件で学んだことは、急がば回れですね。
あと個人用インスタンス作っても結局は末代だとか、音ゲ丼だとか眺めてるので正直使わないし1ヶ月以内にサービス終了してそうですね()
まぁゆるーく頑張ってみようと思います
自分のmastodonアカウントは 音ゲ丼にあります。
サーバー経験は皆無と書きましたが、少しだけあります。昔MinecraftPEサーバをCentOSで建ててました。(全部コピペコマンドで建てた(´・_・`))
iptablesの弄り方も知らなくて、ufwのインストール方法調べて一々インストールしてたガイジです。はい。firewalldはカス
なので、今回はCentOS7.5でサーバを建てたいと思います。firewalldの使い方必死に覚えました。
環境
CentOS 7.5(64bit)
このはたんのぶいぴーえす♡ 1Gプラン
docker使用
star domainでjpドメインとった
sparkpost使用
今回は身内サーバを建てます。(でも登録は自由)
失敗したあれこれ
途中でDBが崩壊
let's encryptの認証ファイルが取得できない
Conohaのテンプレート使ってみたらバージョン古すぎて使い物にならない
うん。正直無駄なことし過ぎた。このミスのせいでこのはちゃんに無駄に500円お布施しちゃった。まぁ可愛いから許す。ただ、DDoS受けたら「お兄ちゃんが攻撃受けちゃってる大変!お兄ちゃんは私のものなんだから!誰にも渡さないもん...」って言うて全通信遮断するの許して
更なる挫折劇を見たい方は 末代鯖のアカウントをさかのぼって頂ければだいたい分かります。
実践編
leaf47様のサイトを参考に作りました。
忍者ブログはソースコード埋込みをするにはかなり手間がかかるのでこの書き方になります、申し訳ないです
*まずはDNSレコード設定
こんな感じで
#まずはユーザー作成
#useradd mastodon
#passwd mastodon
#sudoの許可
#usermod -G wheel mastodon
#nginxをCentOS仕様でインストール
# vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1
これができたらやっとこさインストール。
# yum -y install nginx
ここから一般ユーザーに切り替えてdockerをインストール。
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum makecache fast
$ sudo yum install docker-ce
$ sudo systemctl start docker
$ sudo systemctl enable docker
$ sudo usermod -aG docker $USER
次にdocker-composeのインストール
$ sudo -i
# curl -L "https://github.com/docker/compose/releases/download/1.11.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# exit
ここでmastodonのインストール
$ git clone https://github.com/tootsuite/mastodon
$ cd mastodon/
ここから色々編集していきます。
こんな感じでアンコメントしていってください。
$ vi docker-compose.yml
ーーーーーーーーー
db:
restart: always
image: postgres:alpine
### Uncomment to enable DB persistance
volumes:
- ./postgres:/var/lib/postgresql/data
redis:
restart: always
image: redis:alpine
### Uncomment to enable REDIS persistance
volumes:
- ./redis:/data
余談ですがここでこれより先に書いてた内容が吹っ飛んでもうやだマリカチャンカワイイヤッターってなってたのは内緒
.env.productionの整備
$ cp .env.production.sample .env.productionSMTP整備は今回は省きます。
$ vi .env.production
# Federation
LOCAL_DOMAIN=mstdn.ler.jp ←自分のドメインに置き換え
LOCAL_HTTPS=true ←httpsを使用しないならtrue
# Application secrets
# Generate each with the `rake secret` task (`docker-compose run --rm web rake secret` if you use docker compose)
PAPERCLIP_SECRET=x ← あとで書き換える
SECRET_KEY_BASE=xx ← あとで書き換える
OTP_SECRET=xxx ← あとで書き換える
dockerのビルド
$ docker-compose buildrun~の方は、3快実行し、その都度でてきた暗号を記録しましょう!
$ docker-compose run --rm web rake secret
記録できたら、.env.productionでさっきxxxって書いてたとこに上から順に記入していってください。
ここでプリコンパイル&起動
$ docker-compose run --rm web rails db:migrateこれでmastodonが起動したよ!俺やったよ!やったね!たえちゃん!インスタンスが増えるよ!
$ docker-compose run --rm web rails assets:precompile
$ docker-compose up -d
...とは行きません。このままだとアクセスできないので、色々設定していきます。
let's encryptで証明書取得
$ sudo yum install certbotこのあとは指示に従って入力してね♪お兄ちゃんっ♪
$ sudo systemctl stop nginx
$ sudo certbot certonly --standalone -d mstdn.ler.jp
nginxのデフォルトファイルをなかったことにする
$ sudo mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.orig
nginxの設定ファイル編集
$ sudo vi /etc/nginx/conf.d/mastodon.conf
-----
server {
listen 80;
listen [::]:80;
server_name mstdn.ler.jp; ← 取得したドメインに書き換える
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name mstdn.ler.jp; ← 取得したドメインに書き換える
~~~~~~~~
root /home/mastodon/mastodon/public; ←自分のmastodonのpublicディレクトリに書き換え
ここで保存...ん?なんか変だ!(わかる人にしかわからないネタ)
...は?もうマヂ無理…ミュゼカしょ...ルールヲマモッテタノシクミュゼカ!
調べて見たら、変なcomitがあったせいで、使えなくなったらしいです。
githubのこのコミットを見て、212〜218行目で-になってるとこをmastodon.confに追加しないとダメみたいです。このコミット入れたヤツぶん殴ったるからなとか思ったんだけどアイコンの狐可愛くてなにもできない
あとエラー起こらないでね、っていうおまじない
sudo chown -R 991:991 public/systemこれをしてなかったせいで、こうなりました
まぁなんとか完成!
こうして完成したのが、私の丼なのです。
よし、やろうっておもってから1ヶ月かかりましたね...いやぁ、コピペマンの自分には難しかった...,mastodonに今一番思うことは、
につきます。
まぁでもそこまで簡単にしてしまうと、学校裏インスタンスとかできて社会問題になってしまう(名推理)
とにかく楽しようとconohaのテンプレートとか使ってみたのですが、バージョンが古くて使い物にならず。このはちゃんやっぱり鬼畜じゃないか結局は今回の件で学んだことは、急がば回れですね。
あと個人用インスタンス作っても結局は末代だとか、音ゲ丼だとか眺めてるので正直使わないし1ヶ月以内にサービス終了してそうですね()
まぁゆるーく頑張ってみようと思います
PR
コメント