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

 

追伸

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

コメントを残す

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください