ãããžã§ã¯ãã«é¢äžãã人ã
ã®æ°ãå¢å ããã«ã€ããŠãã©ãããããã圌ãã®æŽ»åãããå¹ççã«æŽçã管çããå¿
èŠãçããŸãã åæ段éã§ã¯ããã®ç®çã§GoogleããŒãã«ã䜿çšãããŠããŸãããããããã®æ©èœã¯å¶éãããŠãããæ°ããã¬ãã«ã«ç§»è¡ããããšããèŠæããããŸããã æé ãªäŸ¡æ Œã®ãããžã§ã¯ã管çã·ã¹ãã ã®ç 究ã¯ããªãŒãã³ãœãŒã¹ã·ã¹ãã ã®äžã§ã
Redmineã¯æãå
é²çã§ãããç¬èªã®ã·ã¹ãã ãããããã€ãã®ç¹ã§åªããŠããããšã瀺ããŸããã
å®éãRedmineã«ã¯åªããæ©èœããããŸããè€æ°ã®ãããžã§ã¯ãã®ç®¡çããšã©ãŒã®è¿œè·¡ããªããžããªãšã®çµ±åãã³ãããã®ä¿®æ£æžã¿ãã°ãšãã°ã¬ããŒãã®ã³ãããã®çžäºåç
§ãåãããžã§ã¯ãã§ã®ç°ãªããŠãŒã¶ãŒããŒã«ã®å²ãåœãŠãªã©ã§ãã ãã ããã€ã³ã¹ããŒã«æé ã¯ããªãè€éã§ãããéåžžã«äŸ¿å©ãªæ©èœã®äžã«ã¯ãå°ãæ¹è¯ãããããã©ã°ã€ã³ã䜿çšãããããå¿
èŠããããã®ããããŸãã 以äžã®ã¬ã€ããããããžã§ã¯ãã§Redmineã䜿çšããã人ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
ã³ã³ããŒãã³ã
ãããžã§ã¯ã管çã·ã¹ãã Redmine
â
å
¬åŒãµã€ãäž»ãªæ©èœïŒ
- ããã€ãã®ãããžã§ã¯ã
- ã€ãã³ã远跡ã·ã¹ãã ïŒãã°ãæ©èœïŒ
- ãããžã§ã¯ãããšã«ç°ãªããŠãŒã¶ãŒããŒã«ïŒãããŒãžã£ãŒãéçºè
ãã¬ããŒã¿ãŒïŒ
- åãããžã§ã¯ãã®ãã¥ãŒã¹ãããã¥ã¡ã³ãããã¡ã€ã«ãWikiããã©ãŒã©ã ã®ãµããŒã
- ããŒãžã§ã³ç®¡çã·ã¹ãã ïŒSVNãGitãMercurialïŒãšã®çµ±å
- ã€ãã³ãéç¥ãã¡ãŒã«ã§éä¿¡
- æéã远跡ããæ©èœ
MercurialããŒãžã§ã³ç®¡çã·ã¹ãã
â
å
¬åŒãµã€ãã¯ãã¹ãã©ãããã©ãŒã ã®åæ£ããŒãžã§ã³ç®¡çã·ã¹ãã ã
ãŸãå¿
èŠ
WebãµãŒããŒããã³ããŒã¿ããŒã¹ç®¡çã·ã¹ãã ã
Mysqlããã³
Apacheã§äœ¿çšãããŸãã
èšçœ®
æ瀺ã¯ãæçšã§ã¯ãããéåžžã«æ代é
ãã®æ瀺ã«åºã¥ããŠããŸãã
Ubuntu Server 10.04ã«Mercurialããã³Subversionã䜿çšããŠRedmine 1.2.xãã€ã³ã¹ããŒã«ããæ¹æ³ ã
å
¬åŒã®ã€ã³ã¹ããŒã«æé ã䜿çšããŸãã
Redmineã€ã³ã¹ããŒã«ã¬ã€ã ã
Ubuntu Server 16.04ãããªã€ã³ã¹ããŒã«ããããµãŒããŒãæ¢ã«ãããšä»®å®ããŸãã 詳现ãªæé ã§ã¯ãå¶åŸ¡ã·ã¹ãã ãšè£å©ãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«ã«ã€ããŠèª¬æããŸãã
ããã§ã¯å§ããŸãããã æåã«LAMPãµãŒããŒãã€ã³ã¹ããŒã«ããŸãã
$ sudo tasksel install lamp-server
ã€ã³ã¹ããŒã«äžã«ãMySQLããŒã¿ããŒã¹ã®
rootãŠãŒã¶ãŒã®ãã¹ã¯ãŒããå
¥åããå¿
èŠããããŸãïŒãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®rootãã¹ã¯ãŒããšæ··åããªãã§ãã ããïŒã
MySQLããŒã¿ããŒã¹ãš
ãããæäœãã
redmineãŠãŒã¶ãŒãäœæããŸãã [ãã¹ã¯ãŒã]ã®ä»£ããã«ãç®çã®ãŠãŒã¶ãŒãã¹ã¯ãŒããæ¿å
¥ããŸãã
$ mysql -u root -p ( root MySQL) > create database redmine character set utf8; > create user 'redmine'@'localhost' identified by '[password]'; > grant all privileges on redmine.* to 'redmine'@'localhost'; > exit
Redmineã
www.redmine.org/projects/redmine/wiki/DownloadãŸãã¯ããŒã ããããŠã³ããŒãããŸã
$ wget http://www.redmine.org/releases/redmine-3.3.3.tar.gz
Redmineã/ usr / share / redmineãã£ã¬ã¯ããªã«è§£åããŸãã configãµããã£ã¬ã¯ããªãèŠã€ããŠãconfig / database.yml.exampleãconfig / database.ymlã«ã³ããŒããŸãã ãã®åŸãããŒã¿ããŒã¹ã®æ¬çªã¢ãŒããèšå®ããããã«ãã¡ã€ã«ãç·šéããŸãã
$ sudo cp /usr/share/redmine/config/database.yml.example /usr/share/redmine/config/database.yml $ sudo nano /usr/share/redmine/config/database.yml
ããã¹ããå
¥åãããã¡ã€ã«ãä¿åããŸãïŒctrl + xïŒïŒ
production: adapter: mysql2 database: redmine host: localhost username: redmine password: "[password]" encoding: utf8
å¿
èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
$ sudo apt install ruby ruby-dev build-essential libmysqlclient-dev
Bundlerãã€ã³ã¹ããŒã«ããŸãã
$ gem install bundler
ããã§ãRedmineã«å¿
èŠãªgemãã€ã³ã¹ããŒã«ã§ããŸãã
$ cd /usr/share/redmine $ bundle install --without development test rmagick
RailsãCookieå
ã®ããŒã¿ãæå·åããããã«äœ¿çšããã©ã³ãã ããŒãäœæããŸãã
$ cd /usr/share/redmine $ bundle exec rake generate_secret_token
次ã«ãããŒã¿ããŒã¹æ§é ãäœæããŸãïŒ/ usr / share / redmineã§å®è¡ïŒïŒ
$ RAILS_ENV=production bundle exec rake db:migrate $ RAILS_ENV=production bundle exec rake redmine:load_default_data
å¿
èŠãªã¢ã¯ã»ã¹æš©ãèšå®ããŸãã
$ cd /usr/share/redmine $ sudo chown -R www-data:www-data files log tmp public/plugin_assets $ sudo chmod -R 755 files log tmp public/plugin_assets
å¿
èŠã«å¿ããŠãWEBrick WebãµãŒããŒã䜿çšããŠRedmineã®ã€ã³ã¹ããŒã«ããã¹ãã§ããŸãã
$ sudo -u www-data bundle exec rails server webrick -e production
WEBrickãèµ·åãããšããã©ãŠã¶ã®
http://localhost:3000/
Redmineã®éå§ããŒãžãå©çšå¯èœã«ãªããŸãã
Apacheçµ±å
Passengerãã€ã³ã¹ããŒã«ããŸãã
$ sudo apt-get install libapache2-mod-passenger
Redmineãããªãã¯ãã£ã¬ã¯ããªã«ã·ã³ããªãã¯ãªã³ã¯ãè¿œå ããŸãã
$ sudo ln -s /usr/share/redmine/public /var/www/redmine
ããã©ã«ãã§PassengerãŠãŒã¶ãŒãèšå®ããå¿
èŠããããŸãããã®ããã«ãã¡ã€ã«ãç·šéããŸãïŒ
$ sudo nano /etc/apache2/mods-available/passenger.conf
次ã®è¡ãè¿œå ããŠä¿åããå¿
èŠããããŸãïŒctrl + xïŒïŒ
PassengerDefaultUser www-data
ãã®çµæããã¡ã€ã«ã¯æ¬¡ã®ããã«ãªããŸãã
<IfModule mod_passenger.c> PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini PassengerDefaultRuby /usr/bin/ruby PassengerDefaultUser www-data </IfModule>
次ã«ãapacheçšã®redmine.confæ§æãã¡ã€ã«ãäœæããŸãã
$ sudo nano /etc/apache2/sites-available/redmine.conf
次ã®ããã¹ããè¿œå ããŠä¿åããŸãïŒctrl + xïŒïŒ
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www ServerName myservername RewriteEngine on RewriteRule ^/$ /redmine [R] <Directory /var/www/redmine> RailsBaseURI /redmine PassengerResolveSymlinksInDocumentRoot on </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined </VirtualHost>
Passengerã¢ãžã¥ãŒã«ãšRewiteã¢ãžã¥ãŒã«ãæ¥ç¶ããŸãã
$ sudo a2enmod passenger $ sudo a2enmod rewrite
ããã©ã«ãã®Webãµã€ããç¡å¹ã«ããredmineãæå¹ã«ããŸãã
$ sudo a2dissite 000-default $ sudo a2ensite redmine
/ tmp / cache Redmineã«ã¢ã¯ã»ã¹èš±å¯ãèšå®ããŸãã
sudo chmod 777 /usr/share/redmine/tmp/cache
Apacheãåèµ·åããŸãã
$ sudo service apache2 reload
ããã§ããæ°ã«å
¥ãã®ãã©ãŠã¶ãéããŠ
http://[my site or ip]/redmine
ãŸãã¯åã«
http://[my site or ip]
ã Redmineã·ã¹ãã ã®éå§ããŒãžã衚瀺ãããŸãã
Mercurialãã€ã³ã¹ããŒã«ãã
ããã±ãŒãžãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã
$ sudo apt-get install mercurial libapache2-mod-perl2 libapache-dbi-perl libdbd-mysql-perl
ãããžã§ã¯ããªããžããªãä¿åãããã£ã¬ã¯ããªãäœæããŸãã
$ sudo mkdir -p /var/hg/
次ã«ãhttpãããã³ã«ãä»ããŠãªããžããªã«ã¢ã¯ã»ã¹ã§ããããã«ããŸãã ãããè¡ãã«ã¯ãcgiã¹ã¯ãªãããäœæããŸãã
$ sudo nano /var/hg/hgwebdir.cgi
次ã®ããã¹ããè¿œå ããŠä¿åããŸãã
次ã«ãhgweb.configãã¡ã€ã«ãäœæããå¿
èŠããããŸãã
$ sudo nano /var/hg/hgweb.config
次ã®ã³ã³ãã³ããè¿œå ããŠä¿åããŸãã
[paths] /=/var/hg/** [web] allow_push = * push_ssl = false allowbz2 = yes allowgz = yes allowzip = yes
ãã¡ã€ã«ã®ã¢ã¯ã»ã¹èš±å¯ãèšå®ããŸãã
$ sudo chown -R www-data:www-data /var/hg/* $ sudo chmod gu+x /var/hg/hgwebdir.cgi
次ã«ãApacheã®confãã¡ã€ã«ãäœæããå¿
èŠããããŸãã
$ sudo nano /etc/apache2/conf-available/hg.conf
次ã®ã³ã³ãã³ããè¿œå ããŠä¿åããŸãã
PerlLoadModule Apache2::Redmine ScriptAliasMatch ^/hg/(.*) /var/hg/hgwebdir.cgi/$1 <Directory /var/hg> Options +ExecCGI </Directory> <Location /hg> AuthType Basic AuthName "Mercurial" Require valid-user AuthUserFile /dev/null #Redmine auth PerlAccessHandler Apache::Authn::Redmine::access_handler PerlAuthenHandler Apache::Authn::Redmine::authen_handler RedmineDSN "DBI:mysql:database=redmine;host=127.0.0.1" RedmineDbUser "redmine" RedmineDbPass "[password]" </Location>
ããã§ããªã³ã¯ãäœæããå¿
èŠããããŸãïŒ
$ sudo ln -s /etc/apache2/conf-available/hg.conf /etc/apache2/conf-enabled/ $ sudo ln -s /usr/share/redmine/extra/svn/Redmine.pm /usr/lib/x86_64-linux-gnu/perl5/5.22/Apache2/
CGIã¢ãžã¥ãŒã«ãæå¹ã«ããŠãApacheãåèµ·åããŸãã
$ sudo a2enmod cgi $ sudo service apache2 reload
ãªããžããªã¯
http://[my site or ip]/hg/*
ã§å©çšã§ããŸãã ããšãã°ããããžã§ã¯ããããžã§ã¯ãã®å Žåãã¢ãã¬ã¹ã¯
http://[my site or ip]/hg/project
ãŸãã ãããžã§ã¯ããããžã§ã¯ãã«ãµããããžã§ã¯ãsubproject1ãããå Žåããã®ãªããžããªã¯
http://[my site or ip]/hg/project/subproject1
ã§å©çšã§ããŸãã
ãªããžããªã®ã¯ããŒã³ãäœæããã«ã¯ã次ãè¡ãå¿
èŠããããŸãã
$ hg clone http://[my site or ip]/hg/project
è€è£œããããããžã§ã¯ããå
¬éãããŠããªãå ŽåïŒRedmine Webã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠãããžã§ã¯ãèšå®ã§èšå®ïŒããŠãŒã¶ãŒåãšãã¹ã¯ãŒããå
¥åããå¿
èŠããããŸãã
æ¿èªã¯ãããžã§ã¯ãã§å®è¡ãããŸãã ã¢ã¯ã»ã¹ã§ããã®ã¯ããããžã§ã¯ãåå è
ïŒãããŒãžã£ãŒãšéçºè
ïŒã®ã¿ã§ãã
Redmine Webã€ã³ã¿ãŒãã§ãŒã¹ã§ãªããžããªãäœæããå Žåã
/ var / hg / projectnameãªã©ããã®ãã¹ãæå®ããå¿
èŠããããŸãã
/ var / hgå
ã®ãªããžããªã¯ããããžã§ã¯ãããšã«æåã§äœæããã³ãã³ãïŒ
hg init
ïŒã§åæåããå¿
èŠããããŸãã
æ°ãããªããžããªãäœæããããå¿
èŠãªã¢ã¯ã»ã¹æš©ãããããšã確èªããå¿
èŠããããŸãã
$ sudo chown -R www-data:www-data /var/hg/[repository name]
ååãšããŠããªããžããªã®äœæãèªååããããšãå¯èœã§ãã ããã«ã€ããŠã¯ã
Ubuntu Server 10.04ã§ã®Mercurialããã³Subversionã§ã®Redmine 1.2.xã®ã€ã³ã¹ããŒã«æ¹æ³ãåç
§ããŠ
ãã ãããã³ãããéç¥ãã¡ãŒã«ã§éä¿¡
Redmineã¯ãããŸããŸãªã€ãã³ãïŒãã°/æ©èœã®å¯¿åœã®å€æŽãªã©ïŒã®éç¥ããµããŒãããŠããŸãã ãã®æ©èœã䜿çšããã«ã¯ãé»åã¡ãŒã«ã¡ãã»ãŒãžã®éä¿¡æ¹æ³ãèšå®ããã ãã§ãã ããã¯/usr/share/redmine/config/configuration.ymlãã¡ã€ã«ã§è¡ããããã®ãã¡ã€ã«ã«ã¯ããŸããŸãªæ§æã®ãã³ãã¬ãŒããå«ãŸããŠããŸãã ç®çã®ã³ã¡ã³ãã解é€ããŠç·šéããå¿
èŠããããŸãã
ããšãã°ã次ã®ããã«ïŒ
email_delivery: delivery_method: :smtp smtp_settings: address: "10.11.12.13" port: 25 authentification: :none enable_starttls_auto: false openssl_verify_mode: 'none'
configuration.ymlãã¡ã€ã«ã®åã»ã¯ã·ã§ã³ã¯2ã€ã®ã¹ããŒã¹åã·ãããããŠããããšã«æ³šæããŠãã ããã ããã¯éèŠã§ãã
åºæ¬çãªéç¥ã¯ãé»åã¡ãŒã«ã®éä¿¡æ¹æ³ãæå®ããåŸã«å©çšå¯èœã«ãªããŸãã ãã ãããªããžããªã®å€æŽãéç¥ããã«ã¯ãå€éšãã©ã°ã€ã³ã䜿çšããå¿
èŠããããŸãã
github.com/lpirl/redmine_diff_emailããããŠã³ããŒãã§ããŸãã
ãã®ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããŸãã ãããè¡ãã«ã¯ããã©ã°ã€ã³ã®å
容ã/ usr / share / redmine / plugins / redmine_diff_emailãã£ã¬ã¯ããªã«ã³ããŒããŸãã ãã©ã°ã€ã³ã®ã€ã³ã¹ããŒã«æé ã«åŸã£ãŠããã¡ã€ã«/usr/share/redmine/app/views/repositories/_form.html.erbãå€æŽããŸãã
å
ã®ãã©ã°ã€ã³ã¯ãå€ãããŒãžã§ã³ã®redmineã§åäœããŸãã redmine-3.3ã®å Žåããã¡ã€ã«ã«å€æŽãå ããå¿
èŠããããŸã
/usr/share/redmine/plugins/redmine_diff_email/db/migrate/002_add_repositories_is_diff_email_attached.rb ãã¡ã€ã«ã®å
容ã¯æ¬¡ã®ããã«ãªããŸãã
class AddRepositoriesIsDiffEmailAttached < ActiveRecord::Migration def self.up add_column :repositories, :is_diff_email_attached, :boolean, :default => false, :null => false Repository.update_all(["is_diff_email_attached = ?", true]) Repository.update_all(["is_diff_email = ?", true]) end def self.down remove_column :repositories, :is_diff_email_attached end end
ãã®åŸã/ usr / share / redmineãã£ã¬ã¯ããªã§ãã³ãã³ããå®è¡ããŠããŒã¿ããŒã¹ãæŽæ°ããŸãã
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
Redmineã®åèµ·åïŒ
$ sudo service apache2 reload
ãã©ã°ã€ã³ãæ£ããã€ã³ã¹ããŒã«ããããšã
管çâãã©ã°ã€ã³ã®ãã©ã°ã€ã³ãªã¹ãã«
Redmine Diff Emailãã©ã°ã€ã³ã衚瀺ãããRedmine
SomeProjectâãèšå®ãã¿ãâããªããžããªãã¿ãâãç·šéã Webã€ã³ã¿ãŒãã§ãŒã¹ã«éç¥èšå®ã衚瀺ãããŸãã
ããã«ãRedmineããªããžããªã®å€æŽãèªåçã«è¿œè·¡ããã«ã¯ãè¿œå ã®æé ãå®è¡ããå¿
èŠããããŸãã ãŸããWSããªããžããªãŒã管çããAPIããŒãçæã§ããããã«ããå¿
èŠããããŸãã æ¹æ³ïŒ
* Redmine Webã€ã³ã¿ãŒãã§ãŒã¹ã®ç®¡çã¡ãã¥ãŒã§ãèšå®ãéžæããŸã
* [ãªããžããª]ã¿ãã«ç§»åããŸã
*ããªããžããªç®¡çã®WSãæå¹ã«ããããæå¹ã«ãã
*ãªã³ã¯ãããŒã®çæããã¯ãªãã¯ããŸã
* [ä¿å]ãã¿ã³ã§å€æŽãä¿åãã
次ã«ãã¹ã¯ãªãããäœæããŸãã
$ sudo nano /var/hg/fetch_changes
次ã®ããã¹ããè¿œå ããŠä¿åããŸãïŒïŒ[APIããŒ]ãAPIããŒã§çæããããã®ã«çœ®ãæããå¿
èŠããããŸãïŒ
äœæããããã¡ã€ã«ã®èš±å¯ãèšå®ããŸãã
$ sudo chown www-data:www-data /var/hg/fetch_changes $ sudo chmod ug+x /var/hg/fetch_changes
/var/hg/hgweb.configã«[hooks]ã»ã¯ã·ã§ã³ãè¿œå ããŠãåã³ãããåŸã«fetch_changesã¹ã¯ãªãããå®è¡ãããããã«ããŸãã
[hooks] changegroup = /var/hg/fetch_changes
ããã§ããªããžããªãå€æŽããããšãRedmineã¯èªåçã«ãããžã§ã¯ãåå è
ã«éç¥ãéä¿¡ããŸãã