= Introduction = Opengnsys is a free software application for managing and deploy operative systems. Opengnsys is made up of various components: the server, the clients and the repositories. See the [wiki:Version2#Architecture architecture page] for more details. This documents details the installation , configuration and deployment of the different services running in those three components. = Opengnsys Server = The server runs two services: the administration web interface, and the server daemon. Both are written in Python and using web.py, sharing a database they use for persistence and as communication channel between them. == Dependencies == You need to execute Opengnsys server services (the '''admin interface''' and the '''daemon''') in a UNIX-like operative system as Linux. By default we use Sqlite as the database backend, but you can use any other databases that web.py and Sqlalchemy frameworks support. == Arch Linux == To install the dependencies of Opengnsys server services in Arch Linux, execute as root: {{{ pacman -S community/python-sqlalchemy python-pip python-ldap easy_install wsgilog pip install formalchemy }}} == Debian / Ubuntu == To install the dependencies of Opengnsys web interface in Debian or Ubuntu, execute as root: {{{ apt-get install python-sqlalchemy python-pip python-ldap easy_install wsgilog pip install formalchemy }}} == Setup == The server services use a database for persistence. By default it uses an Sqlite database, but you can change the configuration of the database editing the file config.py. After doing this, you have to execute the setup script which creates the tables in the database and generates the translations for the supported languages. In order to know how to configure the database using mysql, postgres, oracle orany other database we support, take a look at [http://www.sqlalchemy.org/docs/05/dbengine.html#create-engine-url-arguments] Execute the setup script: {{{ ./setup.sh }}} == SSL Setup == Opengnsys uses secure connections between server, repositories and clients. This is done using SSL certificates certified by a CA (Certificate Authority). Note that it only checks that the certificate is valid and the certificate is trusted. You can see in ssslsockets_example how to create your own CA, create certificates and sign them. Across the Opengnsys platform, the SSL connections are always verified on both ends: both the client and the server. You can configure in the config file (config.py) the path to the private key of the server certificate, the path to the public key, and the path to the public key of the CA certificate. By default we include example files for each of them in the web/ssl directory, and those are the files configured to be used in the default config file. This is done for convenience, but if you want security you should create/use your own. == Launch the server == To execute the web interface, execute: $ ./admin.py The web server will be launched at http://localhost:8080. If you want to launch the server at a different port, use: $ ./admin.py Note that any port less than 1024 will need superuser privileged to be executed.