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します!

 

追伸

今回から下👇にリアクションボタンを設置しました!リアクション頂けると励みになるので、是非!