Version at: 23/03/2014, 20:30 vs. version at: 23/03/2014, 20:30
11#How to Prepare a Development Environment for Tatoeba Using a Pre-made Virtual Machine
22
33## Installing the VM
44* Grab the vm file [http://mirrors.bouah.net/pub/tatoeba/Tatovm/](http://mirrors.bouah.net/pub/tatoeba/Tatovm/)
55
66* Untar the file:
77
88 * On Windows:
99
1010 * Download both the vbox and the gz file
1111
1212 * Use 7zip [http://www.7-zip.org/] to extract Tatovm.vmdk file from the gz file (using the "Extract here" item from the right-click menu)
1313
1414 * On Linux: use file-roller or from the terminal, type:
1515
1616 tar -xvf vmfile
1717
1818* Get and install VirtualBox [https://www.virtualbox.org/wiki/Downloads]
1919
2020* Load the VM files in VirtualBox:
2121
2222 From the GUI: **Machine -> Add**, then browse to the location of the .vbox file
2323
2424 From the command line: VBoxManage registervm /path/to/vm.vbox
2525
2626## Accessing the VM
2727* The default http port is 8080 and the default SSH port is 4242.
2828
2929* On Windows, you may want to download [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) as your SSH GUI.
3030
3131* To SSH into the machine, use the username **tatoeba** and password **tatoeba**:
3232
3333 ssh -p 4242 tatoeba@127.0.0.1
3434
3535* Now you can see the website running in your browser by pointing it to the following address:
3636
3737 127.0.0.1:8080
3838
3939* Steps such as installing packages require superuser privileges. Prior to such steps, execute:
4040
4141 su -
4242
4343 Type in the password **tatovm** when prompted.
4444
4545 After performing your operation, execute "exit" to end superuser access.
4646
4747* The MySQL user is **root** and password is **tatoeba** in case you need to do operations directly on the table or import more data.
4848
4949
5050##Performing Additional Configuration Steps
5151
5252These steps will eventually be folded into a new VM, but for now, they must be performed after the VM is installed.
5353
5454* Optional: add the following to .bashrc:
5555
5656 export TERM=xterm-256color
5757
5858* Log in as superuser (see above) and execute these commands:
5959
6060 apt-get update
6161
6262 apt-get install git
6363
6464 apt-get install php5-curl
6565
66 apt-get install bzr
66 apt-get install bzr *(used with UI translations)*
6767
6868 apt-get install libpq5 *(used with Sphinx)*
6969
7070 apt-get install poedit *(used with UI translations)*
7171
7272 apt-get install flac *(used with audio)*
7373
7474 apt-get install lame *(used with audio)*
7575
7676 apt-get install imagemagick *(used for images uploaded to profile)*
7777
7878 apt-get install php5-imagick *(used for images uploaded to profile)*
7979
8080* The current VM was assembled shortly before we made the transition from a Subversion repository on Assembla to a Git repository on GitHub, so execute the following steps to update your code from the new repository:
8181
8282 * Log in as superuser.
8383
8484 * Rename /var/http/tatoeba to /var/http/tatoeba-bak .
8585
8686 * Execute this line:
8787 chmod 0777 /var/http
8888
8989 * Log out as superuser (important).
9090
9191 * In the /var/http directory, pull the code from the [GitHub Tatoeba repository](https://github.com/Tatoeba/tatoeba2) as follows:
9292
9393 git clone https://github.com/Tatoeba/tatoeba2.git /var/http/tatoeba
9494
9595 * If you will be committing code, configure your user.name and user.email. (You can do this retroactively after your first commit, but it's better to do it beforehand.) For instance, if your username at GitHub is ghuser, and your e-mail address is address@example.com, you'll execute:
9696
9797 git config --global user.name "ghuser"
9898
9999 git config --global user.email address@example.com
100100
101101 * Your new directory /var/http/tatoeba should have the same directory structure as the old /var/http/tatoeba-bak. You can now delete /var/http/tatoeba-bak .
102102
103103* Execute SQL scripts as follows:
104104
105105 mysql -u root -ptatoeba tatoeba < /var/http/tatoeba/docs/database/updates/2013-05-31.sql
106106
107107 mysql -u root -ptatoeba tatoeba < /var/http/tatoeba/docs/database/updates/2013-08-13.sql
108108
109109 mysql -u root -ptatoeba tatoeba < /var/http/tatoeba/docs/database/scripts/create\_fill\_langStats.sql
110110
111111* Log into mysql (with "mysql -u root -ptatoeba tatoeba"). Execute the following statement:
112112
113113 SELECT MAX(id) FROM sentences;
114114
115115Based on the return value (for example, 2976558), execute a statement like the following:
116116
117117 DELETE FROM sentences_translations WHERE translation_id > 2976558 OR sentence_id > 2976558;
118118
119119 The statement deletes dangling links that point to sentences whose IDs are higher than the maximum that is actually in the database. If you do not execute this statement, the new sentences that you add may match these dangling pointers and end up having incorrect links.
120120
121121* As superuser, make tmp/cache and its subfolders writable:
122122
123123 chmod 0777 /var/http/tatoeba/app/tmp/cache/
124124
125125 chmod 0777 /var/http/tatoeba/app/tmp/cache/*
126126
127127 chmod 0777 /var/http/tatoeba/app/webroot/img/profiles_36
128128
129129 chmod 0777 /var/http/tatoeba/app/webroot/img/profiles_128
130130
131131* As superuser, restart apache:
132132
133133 /etc/init.d/apache2 restart
134134
135135* You may find it useful at this point to back up your databases so that you can return them to their virgin state. Make a directory (for instance, /backup ; this may require root permission) and then execute a command such as this one:
136136
137137 mysqldump -u root -ptatoeba -A > /backup/all_dbs.sql
138138
139139## Install and Configure Sphinx Search
140140
141141Follow the instructions under [Installing and Configuring Sphinx Search](install-sphinx).
142142
143143## Customizing Your Installation
144144* There are three ways to access the codebase via your favorite editor in the comfort of your host computer:
145145
146146 * Mount a drive over SSH:
147147
148148 * On Windows: download NetDrive [www.netdrive.net] and use the aforementioned credentials and port
149149
150150 * On Linux: install SSHFS and then mount it using:
151151
152152 sshfs tatoeba@127.0.0.1:4242 /path/to/mountpoint
153153
154154 * Mount a drive over WebDAV:
155155
156156 * On Windows: use NetDrive. The user and password are **tatoeba**, and the port is 8080.
157157
158158 * On Linux: use your favorite file manager with WebDAV support, or install cadaver and connect using the above credentials.
159159
160160 * Mount a shared file (slow and not recommended):
161161
162162 * Set up Guest additions [https://help.ubuntu.com/community/VirtualBox/GuestAdditions]
163163
164164 * In the GUI select Devices -> Shared Folders -> Add
165165
166166 * Browse to the folder you want to share from your host and select it
167167
168168 * Select the Make permanent option
169169
170170 * Now mount the shared file on the guest system:
171171
172172 mount -t vboxfs /media/sharefoldername /path/to/mountpoint
173173
174174* You can also install a graphical environment (GNOME or any other development environment) to work directly from the VM:
175175
176176 apt-get install task-gnome-desktop
177177
178178##Logging Into Tatoeba on the VM
179179
180180The users provided by default are:
181181
182182 admin
183183
184184 corpus_maintainer
185185
186186 advanced_contributor
187187
188188 contributor
189189
190190 inactive
191191
192192 spammer
193193
194194The default password for each user is '123456'.
195195
196196In addition, you can register new users.
diff view generated by jsdifflib

Version at: 23/03/2014, 20:30

#How to Prepare a Development Environment for Tatoeba Using a Pre-made Virtual Machine

## Installing the VM
* Grab the vm file [http://mirrors.bouah.net/pub/tatoeba/Tatovm/](http://mirrors.bouah.net/pub/tatoeba/Tatovm/)

* Untar the file:

   * On Windows: 

        * Download both the vbox and the gz file

        * Use 7zip [http://www.7-zip.org/] to extract Tatovm.vmdk file from the gz file (using the "Extract here" item from the right-click menu)

   * On Linux: use file-roller or from the terminal, type:

   tar -xvf vmfile

* Get and install VirtualBox [https://www.virtualbox.org/wiki/Downloads]

* Load the VM files in VirtualBox:

  From the GUI: **Machine -> Add**, then browse to the location of the .vbox file

  From the command line: VBoxManage registervm /path/to/vm.vbox

## Accessing the VM
* The default http port is 8080 and the default SSH port is 4242.

* On Windows, you may want to download [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) as your SSH GUI.

* To SSH into the machine, use the username **tatoeba** and password **tatoeba**:

   ssh -p 4242 tatoeba@127.0.0.1

* Now you can see the website running in your browser by pointing it to the following address:

   127.0.0.1:8080

* Steps such as installing packages require superuser privileges. Prior to such steps, execute:

   su -   

   Type in the password **tatovm** when prompted.

   After performing your operation, execute "exit" to end superuser access.

* The MySQL user is **root** and password is **tatoeba** in case you need to do operations directly on the table or import more data.


##Performing Additional Configuration Steps

These steps will eventually be folded into a new VM, but for now, they must be performed after the VM is installed. 

* Optional: add the following to .bashrc:

    export TERM=xterm-256color

* Log in as superuser (see above) and execute these commands:

    apt-get update

    apt-get install git

    apt-get install php5-curl

    apt-get install bzr

    apt-get install libpq5  *(used with Sphinx)*

    apt-get install poedit *(used with UI translations)*

    apt-get install flac *(used with audio)*

    apt-get install lame *(used with audio)*

    apt-get install imagemagick *(used for images uploaded to profile)*

    apt-get install php5-imagick *(used for images uploaded to profile)*

* The current VM was assembled shortly before we made the transition from a Subversion repository on Assembla to a Git repository on GitHub, so execute the following steps to update your code from the new repository:

    * Log in as superuser.

    * Rename /var/http/tatoeba to /var/http/tatoeba-bak .

    * Execute this line: 
   chmod 0777 /var/http

    * Log out as superuser (important).
 
    * In the /var/http directory, pull the code from the [GitHub Tatoeba repository](https://github.com/Tatoeba/tatoeba2) as follows:

    git clone https://github.com/Tatoeba/tatoeba2.git /var/http/tatoeba

    * If you will be committing code, configure your user.name and user.email. (You can do this retroactively after your first commit, but it's better to do it beforehand.) For instance, if your username at GitHub is ghuser, and your e-mail address is address@example.com, you'll execute:

        git config --global user.name "ghuser"

        git config --global user.email address@example.com

    * Your new directory /var/http/tatoeba should have the same directory structure as the old /var/http/tatoeba-bak. You can now delete /var/http/tatoeba-bak .

* Execute SQL scripts as follows:

    mysql -u root -ptatoeba tatoeba < /var/http/tatoeba/docs/database/updates/2013-05-31.sql

    mysql -u root -ptatoeba tatoeba < /var/http/tatoeba/docs/database/updates/2013-08-13.sql

    mysql -u root -ptatoeba tatoeba < /var/http/tatoeba/docs/database/scripts/create\_fill\_langStats.sql

* Log into mysql (with "mysql -u root -ptatoeba tatoeba"). Execute the following statement:

    SELECT MAX(id) FROM sentences;

Based on the return value (for example, 2976558), execute a statement like the following:

    DELETE FROM sentences_translations WHERE translation_id > 2976558 OR sentence_id > 2976558;

    The statement deletes dangling links that point to sentences whose IDs are higher than the maximum that is actually in the database. If you do not execute this statement, the new sentences that you add may match these dangling pointers and end up having incorrect links.

* As superuser, make tmp/cache and its subfolders writable:

   chmod 0777 /var/http/tatoeba/app/tmp/cache/

   chmod 0777 /var/http/tatoeba/app/tmp/cache/*

   chmod 0777 /var/http/tatoeba/app/webroot/img/profiles_36 

   chmod 0777 /var/http/tatoeba/app/webroot/img/profiles_128

* As superuser, restart apache:

   /etc/init.d/apache2 restart
 
* You may find it useful at this point to back up your databases so that you can return them to their virgin state. Make a directory (for instance, /backup ; this may require root permission) and then execute a command such as this one:

    mysqldump -u root -ptatoeba -A > /backup/all_dbs.sql

## Install and Configure Sphinx Search

Follow the instructions under [Installing and Configuring Sphinx Search](install-sphinx).
 
## Customizing Your Installation
* There are three ways to access the codebase via your favorite editor in the comfort of your host computer:

   * Mount a drive over SSH:

       * On Windows: download NetDrive [www.netdrive.net] and use the aforementioned credentials and port

       * On Linux: install SSHFS and then mount it using:

       sshfs tatoeba@127.0.0.1:4242 /path/to/mountpoint

    * Mount a drive over WebDAV:

        * On Windows: use NetDrive. The user and password are **tatoeba**, and the port is 8080.

        * On Linux: use your favorite file manager with WebDAV support, or install cadaver and connect using the above credentials.

    * Mount a shared file (slow and not recommended):

        * Set up Guest additions [https://help.ubuntu.com/community/VirtualBox/GuestAdditions]

        * In the GUI select Devices -> Shared Folders -> Add

        * Browse to the folder you want to share from your host and select it

        * Select the Make permanent option

        * Now mount the shared file on the guest system:

       mount -t vboxfs /media/sharefoldername /path/to/mountpoint

* You can also install a graphical environment (GNOME or any other development environment) to work directly from the VM:

  apt-get install task-gnome-desktop

##Logging Into Tatoeba on the VM

The users provided by default are:

    admin

    corpus_maintainer

    advanced_contributor

    contributor

    inactive

    spammer

The default password for each user is '123456'.

In addition, you can register new users.

version at: 23/03/2014, 20:30

#How to Prepare a Development Environment for Tatoeba Using a Pre-made Virtual Machine

## Installing the VM
* Grab the vm file [http://mirrors.bouah.net/pub/tatoeba/Tatovm/](http://mirrors.bouah.net/pub/tatoeba/Tatovm/)

* Untar the file:

   * On Windows: 

        * Download both the vbox and the gz file

        * Use 7zip [http://www.7-zip.org/] to extract Tatovm.vmdk file from the gz file (using the "Extract here" item from the right-click menu)

   * On Linux: use file-roller or from the terminal, type:

   tar -xvf vmfile

* Get and install VirtualBox [https://www.virtualbox.org/wiki/Downloads]

* Load the VM files in VirtualBox:

  From the GUI: **Machine -> Add**, then browse to the location of the .vbox file

  From the command line: VBoxManage registervm /path/to/vm.vbox

## Accessing the VM
* The default http port is 8080 and the default SSH port is 4242.

* On Windows, you may want to download [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) as your SSH GUI.

* To SSH into the machine, use the username **tatoeba** and password **tatoeba**:

   ssh -p 4242 tatoeba@127.0.0.1

* Now you can see the website running in your browser by pointing it to the following address:

   127.0.0.1:8080

* Steps such as installing packages require superuser privileges. Prior to such steps, execute:

   su -   

   Type in the password **tatovm** when prompted.

   After performing your operation, execute "exit" to end superuser access.

* The MySQL user is **root** and password is **tatoeba** in case you need to do operations directly on the table or import more data.


##Performing Additional Configuration Steps

These steps will eventually be folded into a new VM, but for now, they must be performed after the VM is installed. 

* Optional: add the following to .bashrc:

    export TERM=xterm-256color

* Log in as superuser (see above) and execute these commands:

    apt-get update

    apt-get install git

    apt-get install php5-curl

    apt-get install bzr *(used with UI translations)*

    apt-get install libpq5  *(used with Sphinx)*

    apt-get install poedit *(used with UI translations)*

    apt-get install flac *(used with audio)*

    apt-get install lame *(used with audio)*

    apt-get install imagemagick *(used for images uploaded to profile)*

    apt-get install php5-imagick *(used for images uploaded to profile)*

* The current VM was assembled shortly before we made the transition from a Subversion repository on Assembla to a Git repository on GitHub, so execute the following steps to update your code from the new repository:

    * Log in as superuser.

    * Rename /var/http/tatoeba to /var/http/tatoeba-bak .

    * Execute this line: 
   chmod 0777 /var/http

    * Log out as superuser (important).
 
    * In the /var/http directory, pull the code from the [GitHub Tatoeba repository](https://github.com/Tatoeba/tatoeba2) as follows:

    git clone https://github.com/Tatoeba/tatoeba2.git /var/http/tatoeba

    * If you will be committing code, configure your user.name and user.email. (You can do this retroactively after your first commit, but it's better to do it beforehand.) For instance, if your username at GitHub is ghuser, and your e-mail address is address@example.com, you'll execute:

        git config --global user.name "ghuser"

        git config --global user.email address@example.com

    * Your new directory /var/http/tatoeba should have the same directory structure as the old /var/http/tatoeba-bak. You can now delete /var/http/tatoeba-bak .

* Execute SQL scripts as follows:

    mysql -u root -ptatoeba tatoeba < /var/http/tatoeba/docs/database/updates/2013-05-31.sql

    mysql -u root -ptatoeba tatoeba < /var/http/tatoeba/docs/database/updates/2013-08-13.sql

    mysql -u root -ptatoeba tatoeba < /var/http/tatoeba/docs/database/scripts/create\_fill\_langStats.sql

* Log into mysql (with "mysql -u root -ptatoeba tatoeba"). Execute the following statement:

    SELECT MAX(id) FROM sentences;

Based on the return value (for example, 2976558), execute a statement like the following:

    DELETE FROM sentences_translations WHERE translation_id > 2976558 OR sentence_id > 2976558;

    The statement deletes dangling links that point to sentences whose IDs are higher than the maximum that is actually in the database. If you do not execute this statement, the new sentences that you add may match these dangling pointers and end up having incorrect links.

* As superuser, make tmp/cache and its subfolders writable:

   chmod 0777 /var/http/tatoeba/app/tmp/cache/

   chmod 0777 /var/http/tatoeba/app/tmp/cache/*

   chmod 0777 /var/http/tatoeba/app/webroot/img/profiles_36 

   chmod 0777 /var/http/tatoeba/app/webroot/img/profiles_128

* As superuser, restart apache:

   /etc/init.d/apache2 restart
 
* You may find it useful at this point to back up your databases so that you can return them to their virgin state. Make a directory (for instance, /backup ; this may require root permission) and then execute a command such as this one:

    mysqldump -u root -ptatoeba -A > /backup/all_dbs.sql

## Install and Configure Sphinx Search

Follow the instructions under [Installing and Configuring Sphinx Search](install-sphinx).
 
## Customizing Your Installation
* There are three ways to access the codebase via your favorite editor in the comfort of your host computer:

   * Mount a drive over SSH:

       * On Windows: download NetDrive [www.netdrive.net] and use the aforementioned credentials and port

       * On Linux: install SSHFS and then mount it using:

       sshfs tatoeba@127.0.0.1:4242 /path/to/mountpoint

    * Mount a drive over WebDAV:

        * On Windows: use NetDrive. The user and password are **tatoeba**, and the port is 8080.

        * On Linux: use your favorite file manager with WebDAV support, or install cadaver and connect using the above credentials.

    * Mount a shared file (slow and not recommended):

        * Set up Guest additions [https://help.ubuntu.com/community/VirtualBox/GuestAdditions]

        * In the GUI select Devices -> Shared Folders -> Add

        * Browse to the folder you want to share from your host and select it

        * Select the Make permanent option

        * Now mount the shared file on the guest system:

       mount -t vboxfs /media/sharefoldername /path/to/mountpoint

* You can also install a graphical environment (GNOME or any other development environment) to work directly from the VM:

  apt-get install task-gnome-desktop

##Logging Into Tatoeba on the VM

The users provided by default are:

    admin

    corpus_maintainer

    advanced_contributor

    contributor

    inactive

    spammer

The default password for each user is '123456'.

In addition, you can register new users.

Note

The lines in green are the lines that have been added in the new version. The lines in red are those that have been removed.