baikal/INSTALL.md

365 lines
12 KiB
Markdown
Raw Normal View History

2012-11-08 20:26:10 -05:00
# INSTALLING Baïkal
This document is a part of the Baïkal project. Baïkal is an open
source lightweight CalDAV and CardDAV server released under the GNU GPL. Baïkal
2013-07-07 10:29:54 -04:00
is copyright (c) 2013 by Jérôme Schneider.
2012-11-08 20:26:10 -05:00
2012-12-21 08:58:09 -05:00
Baïkal homepage is http://baikal-server.com
2012-11-08 20:26:10 -05:00
This document describes the system requirements for Baïkal and the
installation routine.
# 1 - System requirements
2013-07-07 10:49:37 -04:00
Baïkal is based on PHP 5.3.1+, and uses a SQLite3 or MySQL with PHP PDO. This
2012-11-08 20:26:10 -05:00
document does not cover the installation of these requirements.
## 1.1 - System requirements for FTP-driven hosting
The following configuration is the minimum required:
- an hosted webserver running apache 2 and PHP 5.3.0
2013-07-07 10:49:37 -04:00
- PHP 5.3.1 or newer with the following extensions:
2012-11-08 20:26:10 -05:00
- PDO and SQLite3 or MySQL
2013-07-07 10:49:37 -04:00
- DOM (php-xml)
2012-11-08 20:26:10 -05:00
Some extensions can be optionally compiled into PHP. A list of loaded
extensions can be checked using the phpinfo() function.
- 30 MB of disk space
## 1.2 - System requirements for dedicated server hosting
The following configuration is the minimum required:
2014-01-10 19:20:40 -05:00
- an Apache2 web server capable of running PHP, and accessible through a
2012-11-08 20:26:10 -05:00
dedicated subdomain (something like "dav.mydomainname.com")
NOTE: this document only covers sub-domain based installations. Other
installations modes are possible, though not documented (yet).
- root access to a command line on this server
NOTE: tools to create and manage users are command line only. Web-based
interfaces will be produced in the future.
2013-07-07 10:49:37 -04:00
- PHP 5.3.1 or newer with the following extensions:
2012-11-08 20:26:10 -05:00
- PDO and SQLite3 or MySQL
2013-07-07 10:49:37 -04:00
- DOM (php-xml)
2012-11-08 20:26:10 -05:00
Some extensions can be optionally compiled into PHP. A list of loaded
extensions can be checked using the phpinfo() function.
- 30 MB of disk space
# 2 - Obtaining Baïkal
To get Baïkal, navigate to the following location:
2012-12-21 08:58:09 -05:00
http://baikal-server.com
2012-11-08 20:26:10 -05:00
# 3 - Installation
## 3.1 - Installing Baïkal on a FTP-driven hosting
To install Baïkal on a FTP-driven hosting:
* Download the "Baikal Flat package for FTP"
* Unzip the package on you computer
* Send the unzipped package on the remote host via FTP
* (optional) Rename the Baïkal folder to whatever you want
* Navigate to the HTTP URL where you just uploaded Baïkal
* Follow the instructions of the initialization web tool
## 3.2 - Installing Baïkal on a dedicated host
### 3.2.1 Using the Baïkal "regular package"
2012-11-08 20:26:10 -05:00
#### 3.2.1.1 - Unpacking files
To install Baïkal on a dedicated host, download the "Regular package".
2012-11-08 20:26:10 -05:00
Unpack the source package outside of the web site root
directory on your server. The location must be accessible to the web server.
Usually, it will be something like /var/www/
```sh
# a. Enter the directory where the websites are stored
$ root:~> cd /var/www
```
2012-11-08 20:26:10 -05:00
Unpacking will produce a directory with a name like baikal-x.y.z, where x.y.z
correspond to the Baïkal version. For example, the Baïkal 0.2.0 source package
will create a directory named baikal-0.2.0
```sh
# b. Unpack the package using:
$ root:/var/www> tar xzf baikal-0.2.0.tgz
```
2012-11-08 20:26:10 -05:00
Rename the untar'd directory to the name of your baikal dedicated subdomain.
```sh
# c. Rename the directory to match your domain (good practice)
$ root:/var/www> mv baikal-0.2.0 dav.mydomain.com
2012-11-08 20:26:10 -05:00
# d. Enter the new Baïkal directory
$ root:/var/www> cd dav.mydomain.com
```
2012-11-08 20:26:10 -05:00
In order to grant Apache access to the files of your Baïkal installation,
you'll have to grant the user running the apache process r+w permissions on
the Baïkal files. In our example, we will suppose the linux username/usergroup
running Apache is www-data:www-data
```sh
# e. Change permissions on the files
$ root:/var/www/dav.mydomain.com> chown www-data:www-data Specific -Rf
```
2012-11-08 20:26:10 -05:00
#### 3.2.1.2 - Setting up a Web Server
2012-11-08 20:26:10 -05:00
Baikal must be bound to a domain/subdomain in order to run properly.
This package provides default virtualhost configuration files for Apache 2 and for nginx in
Specific/virtualhosts/
To enable your host to run Baikal, you'll have to add the Baikal virtualhost
to your Web Server environment.
##### Setting up the Apache virtualhost
2012-11-08 20:26:10 -05:00
In our example, we will assume that the apache2 configuration directory is: `/etc/apache2`
2012-11-08 20:26:10 -05:00
```sh
# a. Enter the Apache2 configuration directory
$ root:/var/www> cd /etc/apache2
# b. Enter the sites-available directory
$ root:/etc/apache2> cd sites-available
2012-11-08 20:26:10 -05:00
# c. Symlink the Baikal virtualhost file to this directory
$ root:/etc/apache2/sites-available> ln -s /var/www/dav.mydomain.com/Specific/virtualhosts/baikal.apache2
2012-11-08 20:26:10 -05:00
# d. Customize the virtualhost config file
$ root:/etc/apache2/sites-available> nano baikal.apache2
2012-11-08 20:26:10 -05:00
# e. In baikal.apache2, replace references to dav.mydomain.com with your own domain name
2012-11-08 20:26:10 -05:00
# f. Activate the new virtualhost
$ root:/etc/apache2/sites-available> cd ../sites-enabled
$ root:/etc/apache2/sites-enabled> ln -s ../sites-available/baikal.apache2
2012-11-08 20:26:10 -05:00
# h. Restart apache
$ root:/etc/apache2/sites-enabled> /etc/init.d/apache2 restart
```
2012-11-08 20:26:10 -05:00
##### Setting up the nginx virtualhost
2012-11-08 20:26:10 -05:00
In our example, we will assume that the nginx configuration directory is: `/etc/nginx`
2012-11-08 20:26:10 -05:00
```sh
# a. Enter the nginx configuration directory
$ root:/var/www> cd /etc/nginx
2012-11-08 20:26:10 -05:00
# b. Enter the sites-available directory
$ root:/etc/nginx> cd sites-available
2012-11-08 20:26:10 -05:00
# c. Symlink the Baikal virtualhost file to this directory
$ root:/etc/nginx/sites-available> ln -s /var/www/dav.mydomain.com/Specific/virtualhosts/baikal.nginx
2012-11-08 20:26:10 -05:00
# d. Customize the virtualhost config file
$ root:/etc/nginx/sites-available> nano baikal.nginx
2012-11-08 20:26:10 -05:00
# e. In baikal.nginx, replace references to dav.mydomain.com with your own domain name
2012-11-08 20:26:10 -05:00
# f. Activate the new virtualhost
$ root:/etc/nginx/sites-available> cd ../sites-enabled
$ root:/etc/nginx/sites-enabled> ln -s ../sites-available/baikal.nginx
2012-11-08 20:26:10 -05:00
# h. Restart nginx
$ root:/etc/nginx/sites-enabled> /etc/init.d/nginx restart
```
2013-07-07 10:49:37 -04:00
#### 3.2.1.3 - Setting up Baïkal
2012-11-08 20:26:10 -05:00
In a web browser, navigate to http://dav.mydomain.com and follow the instructions of the initialization web tool
2014-01-10 19:20:40 -05:00
### 3.2.2 Using Baïkal "Bleeding-edge" version for developers (requires git and composer)
Baïkal "Bleeding-edge" is using composer to install its dependencies. Please check that you have git and composer installed on your system before going any further.
```sh
# a. Checkout the Baïkal source code
$ root:/var/www> git clone https://github.com/jeromeschneider/Baikal.git dav.mydomain.com
# b. Enter the new dav.mydomain.com directory
$ root:/var/www> cd dav.mydomain.com
```
In order to grant Apache access to the files of your Baïkal installation,
you'll have to grant the user running the apache process `r+w` permissions on
the Baïkal files. In our example, we will suppose the linux username/usergroup
running Apache is `www-data:www-data`
```sh
# c. Install Baïkal dependencies using composer
$ root:/var/www/dav.mydomain.com> composer install
# d. Change permissions on the files
$ root:/var/www/dav.mydomain.com> chown www-data:www-data . -Rf
```
2014-01-10 19:20:40 -05:00
You now have to declare Baïkal in your webserver. You may follow instructions in **"3.2.1.2 - Setting up a Web Server"** above to do so.
2012-11-08 20:26:10 -05:00
# 4 - Accessing the Baïkal Web Admin
Navigate to http://dav.mydomain.com/admin/
# 5 - Connecting your CalDAV / CardDAV client to Baïkal
## 5.1 - Apple Calendar (OS X):
Note: Calendar is called iCal on older OS X versions.
2012-11-08 20:26:10 -05:00
Add a new CalDAV account:
* In Preferences... > Accounts click the `+` button
* Follow the wizard:
* Account Type: CalDAV
* User Name: the username you just created (in our example, jerome)
* Password: the password you just defined
* Server Address: http://dav.mydomain.com/cal.php/principals/jerome (replace domain and username)
* Change the account description if you want
2012-11-08 20:26:10 -05:00
## 5.2 - Apple Calendar (iOS):
Add a new CalDAV account:
2012-11-08 20:26:10 -05:00
* In Settings > Mail, Contacts, Calendar > Add Account > Other
* Tap Add CalDAV Account under CALENDARS
* Configure your account:
* Server: http://dav.mydomain.com/cal.php/principals/jerome (replace domain and username)
* User Name: the username you just created (in our example, jerome)
* Password: the password you just defined
* Description: optional, whatever you want
* Tap Next
## 5.3 - Apple Contacts (OS X):
2012-11-08 20:26:10 -05:00
Note: Contacts is called Address Book on older OS X versions.
2012-11-08 20:26:10 -05:00
Add a new CardDAV account:
* In Preferences... > Accounts click the `+` button
* Follow the wizard:
* Account Type: CardDAV
* User name: the username you just created (in our example, jerome)
* Password: the password you just defined
* Server address: http://dav.mydomain.com/card.php/addressbooks/jerome/default (replace domain and username)
* Change the account description if you want
2012-11-08 20:26:10 -05:00
## 5.4 - Apple Contacts (iOS):
Add a new CardDAV account:
* in Settings > Mail, Contacts, Calendar > Add Account > Other
* Tap Add CardDAV Account under CONTACTS
* Configure your account:
* Server: dav.mydomain.com/card.php (note: no http:// nor https://, and no trailing slash)
* User Name: the username you just created (in our example, jerome)
* Password: the password you just defined
* Description: optional, whatever you want
* Tap Next
It can take a little while as iOS seems to look for a secure connection first. It will show a popup when it doesn't find any certificates. Accept this when you are **not** using Baikal over SSL.
2012-11-08 20:26:10 -05:00
2013-11-29 03:21:37 -05:00
## 5.5 - Thunderbird/SOGo connector:
Add a new CardDAV account:
2013-11-29 03:21:37 -05:00
* Install "SOGo Connector Thunderbird extension" (http://sogo.nu/downloads/frontends.html)
* Navigate to "Address book" > "New" > "Remote address book"
* paste this URL: http://dav.mydomain.com/card.php/addressbooks/username/default/ of and replace the domain name, and the username with the correct values
* When asked, provide user/password; your CardDAV account should be up and running
* **Important notes**: some users reported that, for SOGo to work, you have to host your baikal on a **https** line, and keep usernames simple (no '@' in the username or any non ascii-alphanumeric char)
2013-10-21 14:37:44 -04:00
## 5.6 - Thunderbird/Lightning:
2012-11-08 20:26:10 -05:00
Add a new CalDAV account:
2013-11-29 03:21:37 -05:00
* Navigate to "Lightning" > "New account" > "On the network" > "URL"
* paste this URL: http://dav.mydomain.com/cal.php/calendars/username/default of and replace the domain name, and the username with the correct values
* When asked, provide user/password; your CalDAV account should be up and running
2012-11-08 20:26:10 -05:00
## 5.7 BlackBerry OS10
Add a new CalDAV account:
* in Settings > Accounts > Add Account > Advanced
* Select "CalDAV"
* Username: the username you just created
* Password: the password you just defined
* Server Address: `dav.mydomain.com/cal.php/calendars/username/default` and replace domain and username with the correct values
Add a new CardDAV account:
* in Settings > Accounts > Add Account > Advanced
* Select "CardDAV"
* Username: the username you just created
* Password: the password you just defined
* Email Address: an email address you want this CardDAV account to be assigned to
* Server Address: `dav.mydomain.com/card.php/addressbooks/username/default` and replace domain and username with the correct values
__Important notes:__
2014-01-03 10:37:51 -05:00
* Make sure you've configured Baikal to use `basic` as authentication mechanism.
* Its required to use SSL for CardDAV!
2012-11-08 20:26:10 -05:00
# 6 - You're done
2013-07-07 10:49:37 -04:00
You may now create new calendars, new events, new contact (: Enjoy.
2012-11-08 20:26:10 -05:00
# 7 - Troubleshooting
Please read TROUBLESHOOTING.md in this folder.
# 8 - User contributed quick & dirty install guides
2014-02-02 06:14:00 -05:00
## Ubuntu 12.04 - James Lay & Frederic Hemberger
2014-02-02 06:14:00 -05:00
```sh
cd /var/www
sudo chown -R www-data:www-data baikal
mysql -u root -p #password#
```
2014-02-02 06:14:00 -05:00
```mysql
CREATE DATABASE baikal;
GRANT DELETE, INSERT, SELECT, UPDATE ON baikal.* TO 'baikal'@'localhost' IDENTIFIED BY '#password#';
exit
```
2014-02-02 06:14:00 -05:00
```sh
mysql -u root -p #password# -D baikal < /var/www/baikal/Core/Resources/Db/MySQL/db.sql
sudo touch /var/www/baikal/Specfic/ENABLE_INSTALL
sudo chown www-data /var/www/baikal/Specific/ENABLE_INSTALL
sudo vi /etc/apache2/sites-available/baikal
```
```plain
<VirtualHost *:80>
ServerName baikal
DocumentRoot /var/www/baikal
ErrorLog /var/logsbaikal.error_log
TransferLog /var/log/baikal.access_log
LogLevel warn
<Directory "/var/www/baikal">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
```
2014-02-02 06:14:00 -05:00
```sh
sudo ln -s /etc/apache2/sites-available/baikal /etc/apache2/sites-enabled
sudo service apache2 restart
```
Point your browser to http://hostname/baikal and there you go.