Installing - gd-99/symbiogd GitHub Wiki

This page is a guide to install Symbiose on your own web server.

Requirements

See the README file for requirements.

Automatic installation

Run the following command:

curl -sS https://symbiose.github.io/symbiose-installer/installer.sh | sh

Manual installation

Downloading

Symbiose can be downloaded on Github. You can :

The second method is recommended because the webos is currently in beta.

If you have a SSH access on your server, you can clone the git repo :

git clone git://github.com/symbiose/symbiose.git
cd symbiose

Building (optionnal)

This step is optionnal, if you're hurried, you can skip it. ;-)

The web desktop can be built using Grunt. You will need to install dependencies (see http://gruntjs.com/getting-started#working-with-an-existing-grunt-project for more information):

npm install

You can build Symbiose in two modes:

  • Dynamic: default mode, enables all features available. You will need PHP in order to run the web desktop. To use this mode, run npm run-script build.
  • Standalone: output is just static HTML, CSS and JS files. You don't need any backend, but many features aren't available. To use this mode, run npm run-script standalone.

Generated files are in build/.

cd build

Copying files to the server

You can unzip the downloaded archive and send all files to the server, e.g. with FTP using Filezilla.

Warning ! For non-Apache users (e.g. Nginx, Lighttp...), you must adapt the configuration in the .htaccess file for security reasons (in particular, URL rewrite rules). You'll find some configuration examples in the root directory. You can use http://winginx.com/htaccess to convert .htaccess rules to nginx configuration. ;)

Then, you need to give read and write permissions on files to your web server user. For Apache, it's usually www-data, but some Linux distributions uses apache, www or http (to find out what user Apache is running as, execute ps aux | egrep '(apache|httpd)').

You can do it either by using ACL :

setfacl -R -m d:u:www-data:rwX,u:www-data:rwX .

If not available, you can install ACL: sudo apt-get install acl

or by defining apache as the owner of the files:

chown -R www-data .

Note: Although set a 0777 file permission mode will resolve all your permissions problems, it's generally considered as a bad practice and can potentially lead to security vulnerability.

Now, you should be able to load the webos with your favorite web browser.

Configuration

Users

By default, Symbiose includes two users :

  • demo (password : demo) - can update his files but can't do anything else.
  • admin (password : admin) - system administrator, he can do everything.

Warning, you must change the admin password!

You can add/remove users with the System preferences app.

Quotas, limits

By default, registration is opened to everyone and there is no quota for disk usage. You can edit these settings in the System preferences app.

E-mails

By default, Symbiose cannot send e-mails. If you want to enable this feature (e.g. to allow password resetting by e-mail), edit /etc/email.json and set enable to true:

{
	"enabled":true,
	"delay":60,
	"from":"Symbiose <[email protected]>"
}

delay is the minimal delay between two e-mails for each e-mail address, from is the e-mail sender.

WebSocket server

Symbiose can be configured to use a WebSocket server, which is faster than a classic Web server. Moreover, with a WebSocket server, you will be able to create/use an instant messaging app/Skype-like app/screencasting app like Empathy.

If you use a shared server, maybe you won't be able to start the WebSocket server. But if you have installed Symbiose on your own server (or your computer) or on a dedicated server, you can enable the WebSocket server in System preferences > WebSocket server > Configuration.

You will have also to change PHP sessions settings to store data on a Memcache server in order to let users have their own session. Edit the file /etc/sessions.json and change "handler":"native" to "handler":"memcache".

For more information on Memcache, see [Installing and configuring Memcache](Installing and configuring Memcache).

A PeerJS server is now included by default in Symbiose. It will allow users to use real-time communication apps. For more information about the PeerJS server, please [read this article](PeerJS server).

And then?

After that, you can :

  • [Add Google Drive support](Adding Google Drive support)
  • [Add Git support for file versionning](Git filesystem)
  • [Configure LDAP authentication](LDAP authentication)
  • [Configure user interfaces](User interfaces)
  • [More information on the Websocket server](Websocket server)
  • Add Broadway support (to use your GTK apps right in the web desktop)