前陣子看了幾篇 Linode 安利文,每月五鎂的機器好像就 Linode CP 值最高惹,管理界面雖然看起來陽春,使用起來倒挺有效率的。這幾天就把擺在 Vultr 上的自用服務 (Redmine,幾個 crontab 腳本) 搬到了 Linode 上。
除了單純的搬家外,部屬的 Redmine 也做了一些調整:
總之本篇除了是我的搬家筆記,還可以視為自架 Redmine 指南(大概啦)。
直接在 Linode 東京開了台 Ubuntu 的 Instance,然後 ssh 打密碼連進去。
請參考 apt-get update stuck: Connecting to security.ubuntu.com
首先當然就把系統的相依套件裝一裝,包含 tmux、postgres 資料庫等等。滿建議學習一下 tmux 的。可以開兩個 tab,一個 root 權限,一個一般權限,方便許多,不用一直切 su。
我不希望直接用 root 帳號跑起 Redmine 服務。總之就是安全性疑慮啦 XD。直接打 adduser
走完過程:
切到 deploy
帳號,把 redmine clone 下來,並把設定檔弄好:
使用 rbenv 裝 ruby,直接照著步驟跑:
裝 ruby:
用好棒棒的 pgcli
與本機 postgres 建立連線。上面 APT 套件裝完後應該就會自己跑起來了。
進去以後,建立使用者和資料庫:
以防密碼打錯這種奇妙事件發生,我們可以測試一下連線。打開 /etc/postgresql/9.5/main/pg_hba.conf
,找到下面加入這行:
這行開啟本地端的帳密授權登入。然後用 psql
連線本機測試:
成功連進去就 Ok 啦。
config/database.yml
填入資料庫帳密,把 mysql
相關的都註解掉(development 等等)複製以下檔案:
config/initializers/secret_token.rb
config/database.yml
config/configuration.yml
從 MySQL 搬家到 Postgres 的部分,因為都是同一個 App,Redmine 版本也只是小升沒有大型 migration,我直接利用yaml_db
套件,把資料庫 dump 出來成 yaml,然後在 load 就行了 😍 可以參考 yaml_db
套件 GitHub 說明。
先跑 RAILS_ENV=production bundle exec rake db:setup
建立資料庫,然後在 bundle exec rake db:data:load
把檔案載入進來。
在 Gemfile 加上 gem 'puma'
一行,然後跑 bundle install --without development test
安裝。再來編輯 config/puma.rb
貼上以下內容:
記得建立 pids
和 sockets
資料夾:
可以用以下指令試跑 Server:
用 root 權限編輯 /etc/systemd/system/redmine.service
:
跑起來:
編輯 /etc/nginx/sites-available/redmine
:
記得 soft link 回 /etc/nginx/sites-enabled/
底下:
重啟 nginx
:
打開瀏覽器連 IP 應該就能看到辣!