Giter Site home page Giter Site logo

cydin's Introduction

ABOUT CYDIN
===========

Cydin is an ASP.NET add-in repository web site for Mono.Addins based
applications.

Add-in developers can publish their add-ins in a Cydin web site and make them
available to all users. The site works like a build bot: it pulls the source
code of add-ins from version control repositories, builds and packages them,
and then publishes them in an add-in repository, to which MonoDevelop will be
subscribed.

Cydin is composed by two services:

* The Cydin web site is the frontend to the repository. It allows users to
  create new add-in projects and register add-in sources, and to download
  existing add-ins.

* The Cydin build service is in charge of pulling the add-in source code,
  build the add-ins and publish them. This service can be installed in a
  different machine

DEPENDENCIES
============

The basic dependencies are:

* Mono 2.6 (Install mono-complete or equivalent packages to get everything)
* Mysql (tested with 5.1.46)

Cydin also depends on some open source libraries which are included as
binaries in the repository to make it easier to build the project.
Those libraries are:

* Contracts.dll (http://code.google.com/p/mono-soc-2010)
* DotNetOpenAuth (http://github.com/slluis/dotnetopenid)
* ICSharpCode.SharpZipLib (get it from Mono)
* log4net (http://logging.apache.org/log4net)
* Mono.Addins (http://monoaddins.codeplex.com)
* mysql.data (http://www.mysql.com/downloads/connector/net)
* ASP.NET MVC 2.0 (get it from Mono)

BUILDING
========

Open Cydin.sln in MonoDevelop and run the build command, or run xbuild in
the root project directory.

DATABASE SETUP
==============

The database script creation (create.sql) is available in the 'db' directory.
To setup the database you have to:

1) Create a new database in mysql
2) run the create.sql script on that database
3) In Cydin/Web.config, look for 'CommunityAddinRepoConnectionString'. In the
   connectionString attribute, set the address of the mysql server, the name
   of the database, and the database user and password for the connection.

If you want to use SQLite as a database backend instead, enable the CYDIN_ON_SQLITE
define and uncomment the corresponding connectionString line in Web.Config. To import
the initial schema, run 'sqlite3 -import ../db/create.sqlite sqlite.db' in Cydin
directory.

RUNNING THE WEB SITE
====================

To test the web site, start xsp2 in the Cydin directory, and then open
localhost:8080 in your browser, or just click on Run in MonoDevelop.
You'll have to follow some setup instructions the first time you access
the web site.

BUILD SERVICE SETUP
===================

The build service can run in the same server running the web site or in a
different server. To set up the service:

1) Build the CydinService project.

2) Copy the following assemblies to the server:
     CydinService.exe
     CydinBuildService.dll
     ICSharpCode.SharpZipLib.dll
     Mono.Addins.dll
     Mono.Addins.Setup.dll
     
3) Create a configuration file for the service

You need to create a configuration file "cyding.config" with the following
content:

<Settings>
	<WebSiteUrl>web-site-url</WebSiteUrl>
	<DataPath>path-to-data-files</DataPath>
</Settings>

Where 'web-site-url' is the url of the Cydin web site, and
'path-to-data-files' is an absolute or relative path to a directory
where the service has to store the source code it downloads and builds.
The DataPath element is optional and defaults to "Files".

Here is an example of configuration file:

<Settings>
	<WebSiteUrl>http://localhost:8080</WebSiteUrl>
	<DataPath>Files</DataPath>
</Settings>

The configuration file must be named cydin.config, and can be placed:
* in the working directory from where the service is started
* in /etc
* in ~/.config

4) Start the service by running 'mono CydinService.exe'

5) Validate the build service connection. In the Cydin web site, go to
   the site administration page and click on the Build Service tab.
   Click on 'Change Service' and authorize the service connection
   when it shows up.

APPARMOR SETUP
==============

The build service can be sandboxed using AppArmor. This is a basic guide
about how AppArmor can be configured to work with Cydin.

1) Enable AppSupport by setting the AppArmorSandbox property to 'true'
   in the cyding.config configuration file.

2) Create an AppArmor profile called 'cydin'. The AppArmor directory
   included in the cydin code contains a profile that can be used as a
   template. This template depends on a generic 'mono' profile also
   included in that directory.

3) Install the profile in /etc/apparmor.d. If you use the mono profile,
   install it in /etc/apparmor.d/abstractions.

4) Make sure apparmor is running by executing 'rcapparmor start'

Some projects may fail to build if they depend on tools which are not
authorised in the cydin profile. Access violations detected by
AppArmor are logged in /var/log/audit/audit.log. For logging to work,
the packaged 'audit' and 'auditd' need to be installed.



cydin's People

Contributors

garuma avatar mailaender avatar robpvn avatar slluis avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.