Description:
merge
Commit status:
[Not Reviewed]
References:
merge algo
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r737:d8bb239a84f8 - - 3 files changed: 13 inserted, 24 deleted

@@ -1,147 +1,145
1 1 == Installation
2 2
3 3 Installing cafe-grader can be done in the following steps.
4 4
5 5 1. Set up database. We need MySQL 5 database name, username and password.
6 6 2. Install RVM. cafe-grader runs on Ruby on Rails and the best way to install it is to use RVM.
7 7 3. Install necessary package for the system
8 8 4. Install cafe-grader from github
9 9 5. Deploy cafe-grader on apache with Phusion Passenger
10 10
11 11 Very important!!! All commands should be run from a normal user.
12 12
13 13 The detail of each step are provided as follows.
14 14
15 15 === 1. Install MySQL 5
16 16
17 17 Install MySQL server for the server.
18 18
19 19 cafe@grader:~$ sudo apt install mysql-server
20 20
21 21 Next, we will connect to mysql as root and set up the database. You can choose your DATABASENAME, USERNAME and PASSWORD as you wish.
22 22
23 23 cafe@grader:~$ sudo mysql -u root
24 24
25 25 mysql> create database DATABASENAME;
26 26 Query OK, 1 row affected (0.00 sec)
27 27
28 28 mysql> grant all privileges on DATABASENAME.* to USERNAME@localhost identified by 'PASSWORD';
29 29 Query OK, 0 rows affected, 1 warning (0.00 sec)
30 30
31 31 mysql> flush privileges;
32 32 Query OK, 0 rows affected (0.00 sec)
33 33
34 34 === 2. Install RVM
35 35
36 36 Since Ubuntu has dedicated package for RVM we will use that. Just follow instruction given in https://github.com/rvm/ubuntu_rvm. For your convenience, the step are reproduced here.
37 37
38 38 First, we install necessary package for installing RVM.
39 39
40 40 cafe@grader:~$ sudo apt install software-properties-common
41 41
42 42 Second, we add the custom PPA, update the system and install RVM.
43 43
44 44 cafe@grader:~$ sudo apt-add-repository -y ppa:rael-gc/rvm
45 45 cafe@grader:~$ sudo apt-get update
46 46 cafe@grader:~$ sudo apt-get install rvm
47 47
48 48 This is very important. You have to logout and login again since RVM change a lots of system.
49 49
50 50 If you are using GUI version of Ubuntu, be sure to have Gnome Terminal (or any other terminal you are using) perform login every time. This can be done by mark the check box "Run command as a login shell" in Gnome terminal or by adding --login to bash.
51 51
52 52 === 3. Install necessary package
53 53
54 - cafe@grader:~$ sudo apt install libmysqlclient-dev default-jdk unzip nodejs php7.2-cli apache2 dirmngr gnupg apache2-dev
55 -
56 - curl build-essential
54 + cafe@grader:~$ sudo apt install libmysqlclient-dev default-jdk unzip nodejs php-cli apache2 dirmngr gnupg apache2-dev
57 55
58 56 === 4. Install cafe-grader
59 57
60 58 First, ensure that RVM is installed correctly.
61 59
62 60 cafe@grader:~$ rvm
63 61
64 62 If you get a result similar to this.
65 63
66 64 Command 'rvm' not found, but there are 21 similar ones.
67 65
68 66 It is very likely that you have not re-login or you are using bash without --login. Please do so and re-read the installation of RVM on Ubuntu https://github.com/rvm/ubuntu_rvm again.
69 67
70 68 Next, we will let the install script do the work of installing cafe-grader. Please prepare the DATABASENAME, USERNAME and PASSWORD as the script will ask for that. Make sure that you run the script from the home directory of the user.
71 69
72 70 cafe@grader:~$ wget https://github.com/cafe-grader-team/cafe-grader-judge-scripts/raw/master/installer/install.sh
73 71 cafe@grader:~$ . ./install.sh
74 72
75 73 After installation is finished, grader is ready to run in development mode via WEBrick. We will try that by the following command which will start a grader accessible via http://localhost:3000/. You can try logging in to the system and verify that it is actually work.
76 74
77 75 cafe@grader:~/cafe_grader/web$ rails s
78 76
79 77 If Everything is OK, stop the WEBrick by Ctrl-C.
80 78
81 79 We are almost done. The last step is to set up apache and Phusion so that cafe-grader is served by apache.
82 80
83 81 === 5. Deploy cafe-grader on Phusion passenger via apache
84 82
85 83 This will install a Passenger mod for apache. You can start by visiting https://www.phusionpassenger.com/library/walkthroughs/deploy/ruby/ownserver/apache/oss/install_passenger_main.html and fllow through the guide. We have reproduce the step here for Ubuntu 18.04. For other version, please select the appropriate one on the previous link.
86 84
87 85 The deploy is divided into two parts: Installing Passenger and deploying the app.
88 86
89 87 ==== 5.1. Installing Passenger as a mod for apache via PPA and enable it.
90 88
91 89 cafe@grader:~$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
92 90 cafe@grader:~$ sudo apt-get install -y apt-transport-https ca-certificates
93 91 cafe@grader:~$ sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger bionic main > /etc/apt/sources.list.d/passenger.list'
94 92 cafe@grader:~$ sudo apt-get update
95 93 cafe@grader:~$ sudo apt-get install -y libapache2-mod-passenger
96 94 cafe@grader:~$ sudo a2enmod passenger
97 95
98 96
99 97 cafe@grader:~$ sudo apache2ctl restart
100 98
101 99 Finally, we should check that passenger is installed correctly. Run the following command and fix anything as suggested by the command.
102 100
103 101 cafe@grader:~$ sudo /usr/bin/passenger-config validate-install
104 102
105 103 ==== 5.2. Deploying the app. First, we determine the exact location of our ruby that is installed via RVM.
106 104
107 105 cafe@grader:~$ passenger-config about ruby-command
108 106 passenger-config was invoked through the following Ruby interpreter:
109 107 Command: /home/cafe/.rvm/gems/ruby-2.3.7/wrappers/ruby
110 108 Version: ruby 2.3.7p456 (2018-03-28 revision 63024) [x86_64-linux]
111 109 To use in Apache: PassengerRuby /home/cafe/.rvm/gems/ruby-2.3.7/wrappers/ruby
112 110 To use in Nginx : passenger_ruby /home/cafe/.rvm/gems/ruby-2.3.7/wrappers/ruby
113 111 To use with Standalone: /home/cafe/.rvm/gems/ruby-2.3.7/wrappers/ruby /usr/bin/passenger start
114 112
115 113 Then, take note of the path after "Command". For this guide, it is /home/cafe/.rvm/gems/ruby-2.3.7/wrappers/ruby
116 114
117 115 Assuming that cafe-grader is installed at /home/cafe/cafe_grader, we will edit the Apache's site config file /etc/apache2/site-enabled/000-default.conf as follow.
118 116
119 117 <VirtualHost *:80>
120 118 #ServerName www.example.com
121 119
122 120 ServerAdmin webmaster@localhost
123 121 # dont forget to change the document root
124 122 DocumentRoot /home/cafe/cafe_grader/web/public
125 123
126 124 ErrorLog ${APACHE_LOG_DIR}/error.log
127 125 CustomLog ${APACHE_LOG_DIR}/access.log combined
128 126
129 127 # add Passenger
130 128 PassengerRuby /home/cafe/.rvm/gems/ruby-2.3.7/wrappers/ruby
131 129
132 130 # our cafe-grader app
133 131 <Directory /home/cafe/cafe_grader/web/public>
134 132 Allow from all
135 133 Options -MultiViews
136 134 Require all granted
137 135 </Directory>
138 136 </VirtualHost>
139 137
140 138
141 139 Be noted that we make 3 modifications: 1) change DocumentRoot, 2) add PassengerRuby option and add 3) Directory directive
142 140 As the last step, we restart apache again and the site is ready to be used.
143 141
144 142 cafe@grader:~$ sudo apache2ctl restart
145 143
146 144 Now it is done, you can login to the grader with user 'root' and password 'ioionrails'
147 145
@@ -1,35 +1,36
1 1 = user_title_bar(@user)
2 2
3 3 %h1 Your account settings
4 4
5 5 -#%p
6 6 -#You can edit your alias and e-mails. Just click on the text and edit it.
7 7
8 - %table.uinfo
8 + %table.table.table-bordered{:style => "width:30%"}
9 9 %tr
10 - %th.uinfo Login
11 - %td.uinfo= @user.login
10 + %th Login
11 + %td= @user.login
12 12 %tr
13 - %th.uinfo Full name
14 - %td.uinfo= @user.full_name
13 + %th Full name
14 + %td= @user.full_name
15 15 -#%tr
16 16 -#%th.uinfo Alias
17 17 -#%td.uinfo= in_place_editor_field :user, 'alias_for_editing', {}, :rows => 1
18 18 -#%tr
19 19 -#%th.uinfo E-mail
20 20 -#%td.uinfo= in_place_editor_field :user, 'email_for_editing', {}, :rows => 1
21 21 %tr
22 - %th.uinfo Password
23 - %td.uinfo
22 + %th Password
23 + %td
24 24 = form_tag :action => 'chg_passwd', :method => 'post' do
25 25 %table
26 26 %tr
27 - %td= password_field_tag 'passwd'
27 + %td
28 + %input{:type => "password", :class => "form-control", :name => "passwd", :id => "passwd"}
28 29 %td (new)
29 30 %tr
30 - %td= password_field_tag 'passwd_verify'
31 + %td
32 + %input{:type => "password", :class => "form-control", :name => "passwd_verify", :id => "passwd_verify"}
31 33 %td (verify)
32 34 %tr
33 35 %td{:colspan => "2"}
34 - = submit_tag 'change password'
35 -
36 + %input{:type => "button", :class => "btn btn-default", :name => "commit", :value => "Change Password"}
You need to be logged in to leave comments. Login now