Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Add-in repository for Mono.Addins based applications

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 AppArmor
Octocat-spinner-32 Cydin Update the add-in repo after creating a new app version August 19, 2013
Octocat-spinner-32 CydinBuildService
Octocat-spinner-32 CydinService
Octocat-spinner-32 db
Octocat-spinner-32 Cydin.sln
Octocat-spinner-32 README
README
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.



Something went wrong with that request. Please try again.