diff --git a/package-lock.json b/package-lock.json
index 75e5fa9b5c291c5a746d1eb0ae0480326a05f9d8..b1bd16684cabe4bb7a091200657f823ed72e4f91 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -245,9 +245,9 @@
       "integrity": "sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA=="
     },
     "@types/node": {
-      "version": "9.4.7",
-      "resolved": "http://registry.npmjs.org/@types/node/-/node-9.4.7.tgz",
-      "integrity": "sha512-4Ba90mWNx8ddbafuyGGwjkZMigi+AWfYLSDCpovwsE63ia8w93r3oJ8PIAQc3y8U+XHcnMOHPIzNe3o438Ywcw=="
+      "version": "10.9.3",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-10.9.3.tgz",
+      "integrity": "sha512-DOzWZKUnmFYG0KUOs+9HEBju2QhBU6oM2zeluunQNt0vnJvnkHvtDNlQPZDkTrkC5pZrNx1TPqeL137zciXZMQ=="
     },
     "@types/passport": {
       "version": "0.3.5",
@@ -4168,14 +4168,12 @@
         "balanced-match": {
           "version": "1.0.0",
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "brace-expansion": {
           "version": "1.1.11",
           "bundled": true,
           "dev": true,
-          "optional": true,
           "requires": {
             "balanced-match": "^1.0.0",
             "concat-map": "0.0.1"
@@ -4190,20 +4188,17 @@
         "code-point-at": {
           "version": "1.1.0",
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "concat-map": {
           "version": "0.0.1",
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "console-control-strings": {
           "version": "1.1.0",
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "core-util-is": {
           "version": "1.0.2",
@@ -4320,8 +4315,7 @@
         "inherits": {
           "version": "2.0.3",
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "ini": {
           "version": "1.3.5",
@@ -4333,7 +4327,6 @@
           "version": "1.0.0",
           "bundled": true,
           "dev": true,
-          "optional": true,
           "requires": {
             "number-is-nan": "^1.0.0"
           }
@@ -4348,7 +4341,6 @@
           "version": "3.0.4",
           "bundled": true,
           "dev": true,
-          "optional": true,
           "requires": {
             "brace-expansion": "^1.1.7"
           }
@@ -4356,14 +4348,12 @@
         "minimist": {
           "version": "0.0.8",
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "minipass": {
           "version": "2.2.4",
           "bundled": true,
           "dev": true,
-          "optional": true,
           "requires": {
             "safe-buffer": "^5.1.1",
             "yallist": "^3.0.0"
@@ -4382,7 +4372,6 @@
           "version": "0.5.1",
           "bundled": true,
           "dev": true,
-          "optional": true,
           "requires": {
             "minimist": "0.0.8"
           }
@@ -4463,8 +4452,7 @@
         "number-is-nan": {
           "version": "1.0.1",
           "bundled": true,
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "object-assign": {
           "version": "4.1.1",
@@ -4476,7 +4464,6 @@
           "version": "1.4.0",
           "bundled": true,
           "dev": true,
-          "optional": true,
           "requires": {
             "wrappy": "1"
           }
@@ -4598,7 +4585,6 @@
           "version": "1.0.2",
           "bundled": true,
           "dev": true,
-          "optional": true,
           "requires": {
             "code-point-at": "^1.0.0",
             "is-fullwidth-code-point": "^1.0.0",
@@ -9715,6 +9701,19 @@
       "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
       "dev": true
     },
+    "ts-loader": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-4.5.0.tgz",
+      "integrity": "sha512-ihgVaSmgrX4crGV4n7yuoHPoCHbDzj9aepCZR9TgIx4SgJ9gdnB6xLHgUBb7bsFM/f0K6x9iXa65KY/Fu1Klkw==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.3.0",
+        "enhanced-resolve": "^4.0.0",
+        "loader-utils": "^1.0.2",
+        "micromatch": "^3.1.4",
+        "semver": "^5.0.1"
+      }
+    },
     "tslib": {
       "version": "1.9.3",
       "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
@@ -9750,6 +9749,12 @@
       "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
       "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
     },
+    "typescript": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.3.tgz",
+      "integrity": "sha512-kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg==",
+      "dev": true
+    },
     "uglify-js": {
       "version": "2.8.29",
       "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
diff --git a/package.json b/package.json
index bdd1bb6689c5ab89ae85bc9274d41c810e56de20..28ce1ad9df82ee24380d6b57b175fc063b07b39d 100644
--- a/package.json
+++ b/package.json
@@ -48,6 +48,7 @@
     "url-loader": "^0.6.2"
   },
   "devDependencies": {
+    "@types/node": "^10.9.3",
     "babel-eslint": "^8.2.6",
     "eslint": "^4.19.1",
     "eslint-config-standard": "^11.0.0",
@@ -58,6 +59,8 @@
     "eslint-plugin-standard": "^3.1.0",
     "jsdoc": "^3.5.5",
     "nodemon": "^1.18.3",
+    "ts-loader": "^4.5.0",
+    "typescript": "^3.0.3",
     "webpack": "^4.17.1",
     "webpack-cli": "^2.1.5",
     "webpack-node-externals": "^1.7.2"
diff --git a/src/index.js b/src/index.ts
similarity index 71%
rename from src/index.js
rename to src/index.ts
index d7929d9739ea580e9c23d5eb61d7231ce4b1e46b..84a371a01c42e96ded803418ec5613abb43f8cc1 100644
--- a/src/index.js
+++ b/src/index.ts
@@ -1,10 +1,9 @@
 /**
- * @file Lance le serveur configuré dans {@link server.js}
+ * @file Lance le serveur configuré dans {@link server.ts}
  * @author manifold
  */
 import app from './server';
 import colors from 'colors';
-import passport from 'passport';
 
 const port = process.env.PORT || 3000;
 
diff --git a/src/server.js b/src/server.ts
similarity index 98%
rename from src/server.js
rename to src/server.ts
index f931c3a1e181d96ba678fbb82c15b2294baa4b73..842bec39e5f16f2e0f1d7f7fad661b09a681770e 100644
--- a/src/server.js
+++ b/src/server.ts
@@ -32,8 +32,6 @@ import morgan from 'morgan';
 import path from 'path';
 import fs from 'fs';
 
-import './config_passport';
-
 
 const app = express(); // "The app object conventionally denotes the Express application" (https://expressjs.com/en/4x/api.html#app)
 
@@ -44,10 +42,9 @@ app.use(bodyParser.urlencoded({ //parses bodies of media type "application/x-www
 }));
 app.use(cookieParser()); //parses Cookie header and populate req.cookies with an object keyed by the cookie names. was necessary for express-session before its v1.5.0. on peut probablement l'enlever desormais.
 
-//GHETTO
 // Config de passport pour l'authentification ldap. 
 // Ne fait que *configurer* passport pour la strategie 'ldap' (pas d'incidence sur la strategie 'session' normalement)
-import './config_passport.js';
+import './config_passport';
 
 
 
@@ -136,7 +133,7 @@ app.use(cors(corsOptions));
  
 //GHETTO
 // Config de passport pour l'authentification ldap. Ne fait que *configurer* passport (aucun passport.authenticate() n'est appele, par exemple)
-import './config_passport.js';
+import './config_passport';
 
 //with custom callback:
 //http://www.passportjs.org/docs/authenticate/#custom-callback
@@ -203,11 +200,6 @@ app.post('/login',
 );
 */
 
-/**
- * FIN AUTHENTIFICATION POUR LES REQUETES DE CONNEXION VIA LDAP VENANT DU FRONT
- */
-
-
 /**
  * @desc API GRAPHQL
  */
@@ -293,9 +285,5 @@ app.get('/*',
     ((req, res, next) => res.redirect('/adminview'))
 );
 
-/**
- * FIN SETUP DE ADMINVIEW, L'INTERFACE ADMIN DES BDD
- */
-
 
 export default app;
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..7678ec4a63521742ca24276a977fa232ef7c218f
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,12 @@
+{
+    "compilerOptions": {
+        "module": "commonjs",
+        "esModuleInterop": true,
+        "target": "es6",
+        "moduleResolution": "node",
+        "sourceMap": true,
+        "outDir": "build",
+        "resolveJsonModule": true,
+    },
+    "include": ["src/**/*"]
+}
\ No newline at end of file
diff --git a/webpack.config.js b/webpack.config.js
index 47ae22d5d75574d81dfb3e76453e20a4d120b9af..8e59545677eb4518896b87a4cf3fd9dadec7954a 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -3,20 +3,14 @@ const nodeExternals = require('webpack-node-externals');
 const CopyWebpackPlugin = require('copy-webpack-plugin');
 
 const config = {
-    entry: './src/index.js',
+    entry: './src/index.ts',
 
     target: 'node',
     node: {
         __dirname: false
     },
     
-    output: {
-        path: path.resolve(__dirname, 'build'),
-        publicPath: '/assets/',
-        filename: 'bundle.js'
-    },
-
-    devtool: 'source-map',
+    //devtool: 'inline-source-map',
     
     externals: [nodeExternals()],
     
@@ -24,6 +18,10 @@ const config = {
         rules: [{
             test: /\.js$/,
             use: ['eslint-loader']
+        },{
+            test: /\.ts$/,
+            use: ['ts-loader'],
+            exclude: /node_modules/
         },{
             test: /\.css$/,
             use: ['style-loader', 'css-loader']
@@ -36,7 +34,9 @@ const config = {
             }
         }]
     },
-
+    resolve: {
+        extensions: ['.ts', '.js', '.json']
+    },
     plugins: [
         new CopyWebpackPlugin([{
             from: 'src/css',
@@ -46,7 +46,13 @@ const config = {
             to: 'views'
         }]
         )
-    ]
+    ],
+
+    output: {
+        path: path.resolve(__dirname, 'build'),
+        publicPath: '/assets/',
+        filename: 'bundle.js'
+    },
 };
 
 module.exports = config;
\ No newline at end of file