Redmine
是一套好用的軟體專案管理系統。有多好用呢?請 Google 一下就知道了。
為了建立屬於自己專屬的 Redmine,我設法在 Heroku
部署 Redmine 1.1-stable。雖然網路上有許多教學,但剛剛參考了這一篇
,遇到一些問題。所以我把步驟寫下來。這篇文章的內容是整合 Heroku 的部署文件及 Redmine 的安裝文件
。
Update
: 隔天我找到一篇很詳盡的 Step by Step
,包括 Amazon S3。
前置作業
Heroku 是 Ruby Web application hosting,所以你的系統內要有 Ruby Runtime
。同時也得安裝 Rubygems
。Heroku 是以 Git
版本控制系統來管理程式原始碼的,當然要安裝 Git。
然後是必要的 Gems,以下會使用到 Bundler
這個方便的 per-application gem 管理工具(其實還有別的,但靠它就可以安裝別的了)。要部署 Ruby 網頁應用程式到 Heroku ,首先當然要去辦 Heroku 帳號,並安裝 Heroku 專屬的 gem。濃縮成一行指令就是:
gem install bundler heroku
詳情請參考 Heroku 的 Getting Started 文件
。
取得 Redmine 原始碼
Redmine 是採用 SVN 版本控制系統,下載方式請參考 Redmine 的說明
。目前最新的穩定版是 1.1-stable,所以我根據官網上面寫的指令,將 Redmine 1.1-stable 抓下來:
svn co http://redmine.rubyforge.org/svn/branches/1.1-stable redmine-1.1
這會把 Redmine 1.1-stable 的原始碼 checkout 到 redmine-1.1
這個資料夾中。
設定 Redmine
新增 Gemfile 以自動安裝所需的 Gem
Gemfile
是 Bundler 用來辯識所需要的 Gems 的檔案設定檔,也可以讓 Heroku 在程式碼被 push 到 remote 時,自動安裝 Gemfile
裡所指定的 Gems。在 Heroku 的應用與操作方法詳見官網說明
。
新增檔案 Gemfile
,內容如下:
source :gemcutter
gem 'rails', '2.3.5'
gem 'i18n', '0.4.2'
然後執行
bundle install
可能會要求你輸入當前使用者密碼。
這樣子就會把 Rails 2.3.5 及其 dependencies 、i18n 0.4.2 這些 gems 安裝起來,並且產生Gemfile.lock
檔案。
建立 session_store.rb
session_store.rb
是用來定義 Rails Session 參數,與登入機制有關,但因為牽涉到 Cookie 產生的參數,所以不會放進 repository 中,我們要自己產生。方法是
rake generate_session_store
本機 Database 設定
雖然是部署到 Heroku,本機資料庫是什麼樣子應該無所謂,但因為其中一個 Migration 會建立 public/plugin_assets/README
,沒有這個檔案的話,Heroku 的 Migration 會出錯,因為 Heroku 不允許檔案系統的操作。所以我們先自己建好,再一併放進 Git repository 中,以防出錯。
首先要設定本機資料庫,先從範例檔複製出來:
cp config/database.yml.example config/database.yml
再修改 config/database.yml
,使其僅保留 development
的設定(Heroku 會自行連接 Database):
development:
adapter: sqlite3
database: db/development.db
完成後,初始化本機的 Database :
rake db:migrate
建立 Git Repository
如前文所述,Heroku 採用 Git 管理部署到雲端的程式碼,所以要讓 Git 管理 Redmine 的程式碼才行。
修改 Git 監視的檔案類型
在建立 Git repository 之前,先修改一下 .gitignore
檔案(讓 Git 永遠忽略符合指定 pattern 的檔案),刪除兩行:
/config/initializers/session_store.rb
/public/plugin_assets
然後加入這一行:
.svn
以上的異動說明如下:
-
session_store.rb
,SVN tree 中沒這個檔案,在上文已經自行產生,必須讓它被部署到 Heroku ,應用程式才能運作。
-
public/plugin_assets
,SVN tree 中沒這個資料夾,在上文已經自行產生,往後安裝 Plug-in 的時候會用到,但因為我們只能在本機操作 Plug-in 的新增與刪除,不能在 Heroku 操作,所以這個資料夾當然也要給 Git 監視。
-
.svn
是 SVN 記錄 local checkout 某資料夾的 metadata 所使用,為了保留往後可以從 Redmine SVN repository 新版程式的方便,這裡不予刪除,但因為它不屬於 Git 所管理的範圍,所以要把它加入 .gitignore
中。
建立 Git repository
執行
git init
git add .
git commit -m 'initial commit'
到此為止,Redmine 已經準備好可以送上 Heroku 的雲端伺服器了。
部署到 Heroku
新增 Heroku App
執行
heroku create
會由 Heroku 挑一個名字給你,並且告訴你該 App 的網址為何。如果你要指定名字的話,就是
heroku create dance-okok
這樣會建立名為 dance-okok
的 Heroku application,前提是這個名字沒有別人用走。
將程式碼送上 Heroku
git push heroku master
於是你的程式碼就送到 Heroku 的伺服器了,並且會根據 Gemfile
中的描述,將必備的 Gems 安裝在 Heroku 給你的虛擬空間裡面。
在 Heroku 中初始化資料庫
雖然在前文中,已經初始化本機資料庫了,但畢竟在 Heroku 上的資料庫還是空的,所以一樣要初始化:
heroku rake db:migrate
至此,Redmine 的部署已經完成了。請用瀏覽器連至剛剛得到的網址,如果有指定名字的話,像前面的 dance-okok
,就會是 http://dance-okok.heroku.com/
。
預設的管理員帳號 admin
,密碼 admin
。
後續設定
Redmine 的官方說明文件中,還要求載入預設資料 (rake redmine:load_default_data
),不過我試了發現 Heroku 會產生錯誤,似乎是因為透過鍵盤選語言的時候,Heroku 不允許我和遠端的 console 互動,所以吃了一記 nil
。
幸好 Redmine 初次進入管理介面時,會偵測有無載入預設資料,你可以登入 Redmine 的後台(以管理員登入,按一下左上角的 Administration),它會問你要不要載入預設資料,還能選語言。
接著是如何讓 Redmine 支援 SSL,及強制進入 SSL
(嚴格檢查通訊協定)。
from: http://blog.yorkxin.org/2011/03/08/redmine-1-1-on-heroku/
分享到:
相关推荐
通过以上分析,我们可以看到`node-heroku-cloudwatch-drain`在实现过程中融合了WebSocket通信、日志处理、云服务API调用等多个技术点。理解和掌握这部分源码,对于提升Node.js开发者在云环境下的日志管理能力具有...
Heroku-Docker 是迁移到 Docker 镜像上的 Heroku 项目。对那些想方设法将现有的Heroku项目迁移到Docker,又无须从头开始重新构建的人来说,这是个不二的选择。这个简单的小项目拿来现有的Heroku应用程序后,可以从...
2016最新windows版本工具heroku-toolbelt.exe
赫鲁库·雷米诺·特鲁克(heroku-redmine-trunk) Heroku上的Redmine行李箱 Docker映像为 。 安装的插件是 无需密码即可登录 用于日常自我更新的 使用进行更好的日志记录
Redmine(在Heroku上) 该存储库是 (一个开放源代码项目管理应用程序)的一个分支,旨在对其进行修改,以便无需更改即可直接将其直接部署到Heroku,只需使用下面的按钮即可。 如何在Heroku上部署Redmine 单击此...
$ heroku create --buildpack https://github.com/mgmco/heroku-buildpack-nginx.git $ git push heroku master ... -----> Heroku receiving push -----> Fetching custom buildpack ... 或向现有的Heroku...
2017最新的heroku-windows-x64
Heroku Toolbelt; heroku-cli-x64安装包;Windows系统64bit
heroku-buildpack-python, 用于 python 应用的官方 Heroku buildpack : 这是官方的Heroku buildpack插件,由 Pipenv插件。 pip 和其他优秀软件提供支持。推荐的网页框架包括英镑 Django 和英镑 。 推荐的web服务器为...
总结来说,jcabi-heroku-maven-plugin-0.7.18.zip和moji.zip这两个开源项目为Java开发者提供了在Heroku平台上部署应用以及利用MogileFS分布式存储的便利工具,它们展示了Java生态系统中强大的开源力量和灵活的开发...
heroku-buildpack-apt 在编译和运行时添加对基于apt的依赖关系的支持。 增加了通过Aptfile :repo:指定自定义存储库的Aptfile (请参见下面的示例)。 用法 此buildpack不能单独使用,而应与Heroku的结合使用。 ...
然后,通过npm全局安装`node-heroku-cloudwatch-drain`: ``` npm install -g node-heroku-cloudwatch-drain ``` 2. **连接Heroku和CloudWatch**: 在使用此工具之前,你需要创建一个AWS账户并设置AWS CLI的...
Heroku-ci-徽章 为您的存储库的自述文件获取一个Heroku CI徽章。 要求 一个Heroku应用 为该应用程序配置的 在该管道中使用 脚步 1.将此应用程序部署到您的帐户 在设置过程中,将要求您填写两个环境变量: HEROKU_...
heroku-buildpack-ember-cli-deploy 注意:此buildpack是一个实验性OSS项目。 如果您在Heroku反馈中有Ember.js,请。 除非您手动手工否则您可能希望使用 。介绍这是一个 ,处理构建和应用程序的逻辑。 它可以利用...
用于Node.js构建的Heroku Buildpack ...# add heroku-bp-node-build heroku buildpacks:add --index 2 https://github.com/carloluis/heroku-bp-node-build 从app.json清单进行配置: { " buildpacks " : [ {
CI / CD GitHub Actions管道在Heroku上部署Generate-Tiny-URL Flask 你好, 非常感谢您的到来。 在此存储库中,您具有一个Flask应用程序,用于生成微小的URL。 该应用程序本身是非常基本的,这里的主要兴趣是用于...
Heroku Multi Procfile构建包 tl;...$ heroku buildpacks:add -a example-1 heroku-community/multi-procfile $ heroku buildpacks:add -a example-2 heroku-community/multi-procfile $ heroku co
heroku-deno-getting开始 构建包 本地运行 确保已安装和 。 $ git clone https://github.com/chibat/heroku-deno-getting-started.git $ cd heroku-deno-getting-started $ deno run --allow-...
HerokuBuildpack测试用于通过进行测试的示例应用程序用法要创建一个应用程序,请运行以下命令: $ git clone https://github.com/HashNuke/heroku-buildpack-elixir-test.git$ cd heroku-buildpack-elixir-test$ ...
heroku-buildpack-chromaprint 关于 Buildpack 在上运行 。 安装 使用heroku-buildpack-multi来应用多个 buildpack。 $ heroku create --buildpack https://github.com/ddollar/heroku-buildpack-multi $ cat ....