diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..3ac98724019bfc5da5b4405d651dde26cf2360a7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/vendor/
+/components/
+/composer.lock
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000000000000000000000000000000000000..c0b205aa2b51a4b3440046ef145eafbcea3c6c8c
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,59 @@
+{
+    "name": "irstea/file-upload-bundle",
+    "description": "Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.",
+    "license": "proprietary",
+    "authors": [
+        { "name": "Pôle Informatique Scientifique - Direction des Systèmes d'Information", "email": "dsi.poleis@lists.irstea.fr" },
+        { "name": "Guillaume Perréal" }
+    ],
+    "minimum-stability": "stable",
+    "homepage": "https://forge.irstea.fr/projects/irstea-file-upload-bundle",
+    "support": {
+        "email": "irstea-file-upload-bundle.support@lists.irsta.fr",
+        "issues": "https://forge.irstea.fr/projects/irstea-file-upload-bundle/issues",
+        "wiki": "https://forge.irstea.fr/projects/irstea-file-upload-bundle/wiki",
+        "source": "https://forge.irstea.fr/projects/irstea-file-upload-bundle/repository"
+    },
+    "autoload": {
+        "psr-4": { "Irstea\\FileUploadBundle\\": "./" }
+    },
+    "repositories": [
+        { "type": "composer", "url": "http://istest.lyon.cemagref.fr/satis" }
+    ],
+    "require": {
+        "php": ">=5.4",
+        "symfony/symfony": "2.6.*",
+        "doctrine/orm": "~2.2,>=2.2.3",
+        "doctrine/doctrine-bundle": "~1.2",
+        "twig/extensions": "~1.0",
+        "symfony/assetic-bundle": "~2.3",
+        "symfony/monolog-bundle": "~2.4",
+        "sensio/distribution-bundle": "~3.0",
+        "sensio/framework-extra-bundle": "~3.0",
+        "irstea/theme-bundle": "dev-master",
+        "white-october/pagerfanta-bundle": "~1.0",
+        "knplabs/knp-gaufrette-bundle": "0.1.*",
+        "rhumsaa/uuid": "~2.8",
+        "blueimp/jquery-file-upload": "~9.9",
+        "willdurand/js-translation-bundle": "~2.2"
+    },
+    "require-dev": {
+        "sensio/generator-bundle": "~2.3",
+        "phpunit/phpunit": "~4.5",
+        "phpmd/phpmd": "~2.2",
+        "squizlabs/php_codesniffer": "~2.3",
+        "cleentfaar/tissue": "dev-master",
+        "cleentfaar/tissue-bundle": "dev-master",
+        "cleentfaar/tissue-clamav-adapter": "dev-master"
+    },
+    "suggest": {
+        "cleentfaar/tissue": "dev-master",
+        "cleentfaar/tissue-bundle": "dev-master",
+        "cleentfaar/tissue-clamav-adapter": "dev-master"
+    },
+    "extra": {
+        "branch-alias": {
+            "dev-master": "1.0-dev"
+        }
+    }
+}
diff --git a/phpci.yml b/phpci.yml
new file mode 100755
index 0000000000000000000000000000000000000000..b164e16fb250da3f24533a87ae0fd98c57d7bb7a
--- /dev/null
+++ b/phpci.yml
@@ -0,0 +1,28 @@
+build_settings:
+  clone_depth: 1
+  verbose: true
+  ignore:
+    - vendor
+
+setup:
+  composer:
+    action: install
+    prefer_dist: true
+
+test:
+  php_parallel_lint:
+    directory: appli
+  php_unit: ~
+  php_loc: ~
+  php_cpd: ~
+    allow_failures: true
+  php_mess_detector:
+    rules:
+        - phpmd.xml
+    allow_failures: true
+
+complete:
+  email:
+    committer: true
+    addresses:
+      - guillaume.perreal@irstea.fr
diff --git a/phpmd.xml b/phpmd.xml
new file mode 100755
index 0000000000000000000000000000000000000000..bd97d4f36f7dc26b983649ee7663e048687a4e27
--- /dev/null
+++ b/phpmd.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<ruleset name="SYGADE PHPMD rule set"
+         xmlns="http://pmd.sf.net/ruleset/1.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
+         xsi:noNamespaceSchemaLocation=" http://pmd.sf.net/ruleset_xml_schema.xsd">
+
+    <rule ref="rulesets/codesize.xml/ExcessiveMethodLength" />
+    <rule ref="rulesets/codesize.xml/ExcessiveClassLength" />
+    <rule ref="rulesets/codesize.xml/ExcessiveParameterList" />
+
+    <rule ref="rulesets/controversial.xml" />
+    <rule ref="rulesets/unusedcode.xml" />
+
+    <rule ref="rulesets/design.xml/ExitExpression" />
+    <rule ref="rulesets/design.xml/EvalExpression" />
+    <rule ref="rulesets/design.xml/GotoStatement" />
+
+    <rule ref="rulesets/naming.xml/ShortVariable">
+        <properties>
+            <property name="exceptions" value="id,em" />
+        </properties>
+    </rule>
+    <rule ref="rulesets/naming.xml/LongVariable" />
+    <rule ref="rulesets/naming.xml/ShortMethodName" />
+    <rule ref="rulesets/naming.xml/ConstructorWithNameAsEnclosingClass" />
+    <rule ref="rulesets/naming.xml/ConstantNamingConventions" />
+    <rule ref="rulesets/naming.xml/BooleanGetMethodName" />
+
+</ruleset>
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
new file mode 100755
index 0000000000000000000000000000000000000000..19be9391765db4cab7f5cee640e49247a975ca63
--- /dev/null
+++ b/phpunit.xml.dist
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- http://phpunit.de/manual/4.1/en/appendixes.configuration.html -->
+<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
+         backupGlobals="false"
+         colors="true"
+         bootstrap="vendor/autoload.php"
+>
+    <testsuites>
+        <testsuite name="irstea/file-upload-bundle Test Suite">
+            <directory>Tests</directory>
+        </testsuite>
+    </testsuites>
+
+    <!--
+    <php>
+        <server name="KERNEL_DIR" value="/path/to/your/app/" />
+    </php>
+    -->
+
+    <filter>
+        <whitelist>
+            <directory>.</directory>
+            <exclude>
+                <directory>Resources</directory>
+                <directory>Tests</directory>
+            </exclude>
+        </whitelist>
+    </filter>
+</phpunit>