Docker離れしようと思って、一からサーバーを立てた
最近、自分自身がDockerに依存しすぎたと思うようになりました。
Dockerに頼りすぎて一からサーバーを建てるのが億劫になっては嫌だし、ちょうど自分用のRedmineとGiteaを建てようと思っていたので、この際Dockerを使わずにセットアップすることにしました。
サーバーはConoHaで建てました。このはちゃん最高なので、皆も使おう!(露骨な宣伝)(コーナーで差をつけろ)
OS
ArchLinux
CPU
1コア
メモリ
512MB
SSD
20GB
OSにArchLinuxを採用した理由としては、格安プランにつきSSDの容量が少ないからですカッコいいからです。
Nginxのセットアップ
今更Apacheなんか使わねぇよ!ということでNginx。
pacman -S nginx
設定ファイルは以下のようにしました。
user isaac; worker_processes 1;
events { worker_connections 1024; }
http { include mime.types;
sendfile on;
keepalive\_timeout 65;
server {
listen 80;
server\_name localhost;
location / {
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;
}
}
include /etc/nginx/conf.d/\*.conf; }
最後のinclude文を書くことで、サービスごとに設定ファイルを書いていく感じにしています。
Redmineのセットアップ
そもそもRedmineとは。
RedmineはRuby on Railsで開発されている、Webベースのプロジェクト管理ソフトウェアである。(Wikipedia)
RubyやらRailsやらは全く触ったことがないので不安でしたが、公式のガイドに則って進めれば大丈夫でした。ただ、確か一箇所引っかかる部分があって、Gemfileに書かれているrailsの部分を書き換えないと、DBのmigrate辺りでエラーが出て進めませんでした。多分ArchLinuxで入れたRubyのバージョンが新しすぎるせいです。参考
- gem “rails”, “4.2.7.1”
- gem “rails”, github: “rails/rails”, branch: “4-2-stable”
Webrickで正常に動作することを確認したら、恒久的に動くようにしましょう。調べてみるとunicornを使うと良いようです。コチラを参考にしました。Socketで動けば、あとはNginxで仲介させるだけです。
upstream unicorn { server unix:/home/isaac/redmine/tmp/unicorn.sock; }
server { listen 80; server_name task.i544c.me; return 301 https://$host$request_uri; }
server { listen 443 ssl http2; server_name task.i544c.me;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_certificate /etc/letsencrypt/live/task.i544c.me/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/task.i544c.me/privkey.pem;
error_log /var/log/nginx/error.log; root /home/isaac/redmine/public; try_files $uri/index.html $uri @unicorn;
location @unicorn { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://unicorn; } }
これでおk。
Giteaのセットアップ
そもそもGiteaとは。
Gitea は Go で書かれた軽量なコードホスティングサーバーである Gogs のコミュニティによるフォークです。(Arch Wiki)
こちらは、ArchLinuxのWikiを参考にしました。Gitea自体のセットアップは非常に簡単でしたが、gitユーザーのSSH接続に手間取りました…Permission denied (public key) です。権限周りは問題無し、ちゃんと鍵は合っていますし、何なんだろうと思っていたら、答えは非常に単純なものでした。Giteaインストール時に自動で作成されたらしいgitユーザーのホームディレクトリが別のところを向いていたのです…usermod -d /home/git git でホームディレクトリを修正すればよろしい。
あとはNginxを噛ませるだけです。
server { listen 80; server_name git.i544c.me; return 301 https://$host$request_uri; }
server { listen 443 ssl http2; server_name git.i544c.me;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_certificate /etc/letsencrypt/live/git.i544c.me/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/git.i544c.me/privkey.pem;
location / { proxy_pass http://localhost:3000; } }
そんなこんなで、無事にRedmineのtask.i544c.meと、Giteaのgit.i544c.meを建てることが出来ました!早速Redmineを使ってVEPします!
追伸
今回から下👇にリアクションボタンを設置しました!リアクション頂けると励みになるので、是非!