diff --git a/scripts/data/users.js b/scripts/data/users.js
new file mode 100644
index 0000000000000000000000000000000000000000..f678dc4d10096167762ac8c30bd43624922de1ff
--- /dev/null
+++ b/scripts/data/users.js
@@ -0,0 +1,55 @@
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const mongoose = require('mongoose');
+
+module.exports = {
+  data: [
+    {
+      pendingStructuresLink: [],
+      structuresLink: [
+        mongoose.Types.ObjectId('60059cf7dfb2ac4b00733db0'),
+        mongoose.Types.ObjectId('6001a48e16b08100062e4180'),
+      ],
+      phone: '06 06 06 06 06',
+      newEmail: null,
+      changeEmailToken: null,
+      role: 1,
+      resetPasswordToken: null,
+      surname: 'ADMIN',
+      name: 'Admin',
+      validationToken: null,
+      emailVerified: true,
+      email: 'admin@admin.com',
+      structureOutdatedMailSent: [],
+    },
+    {
+      structureOutdatedMailSent: [],
+      pendingStructuresLink: [],
+      structuresLink: [mongoose.Types.ObjectId('6001a48e16b08100062e4180')],
+      newEmail: null,
+      changeEmailToken: null,
+      role: 0,
+      resetPasswordToken: null,
+      validationToken: null,
+      emailVerified: true,
+      email: 'paula.dubois@mii.com',
+      name: 'Paula',
+      surname: 'DUBOIS',
+      phone: '06 07 08 09 10',
+    },
+    {
+      structureOutdatedMailSent: [],
+      pendingStructuresLink: [],
+      structuresLink: [mongoose.Types.ObjectId('6001a48e16b08100062e4180')],
+      newEmail: null,
+      changeEmailToken: null,
+      role: 0,
+      resetPasswordToken: null,
+      validationToken: null,
+      emailVerified: true,
+      email: 'jp@test.com',
+      name: 'Jean-Paul',
+      surname: 'DESCHAMPS',
+      phone: '06 11 11 11 11',
+    },
+  ],
+};
diff --git a/scripts/init-db.js b/scripts/init-db.js
new file mode 100644
index 0000000000000000000000000000000000000000..1389a9fad1f1a2f581404c1a3b527a844973bc70
--- /dev/null
+++ b/scripts/init-db.js
@@ -0,0 +1,68 @@
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const mongoose = require('mongoose');
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const userData = require('./data/users');
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const bcrypt = require('bcrypt');
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+require('dotenv').config({ path: '../.env' });
+
+/* connect to the database */
+const param =
+  'mongodb://' +
+  process.env.MONGO_NON_ROOT_USERNAME +
+  ':' +
+  process.env.MONGO_NON_ROOT_PASSWORD +
+  '@' +
+  process.env.MONGO_DB_HOST_AND_PORT +
+  '/ram';
+mongoose.connect(param, { useNewUrlParser: true, useUnifiedTopology: true }).catch((error) => console.log(error));
+// Make Mongoose use `findOneAndUpdate()`. Note that this option is `true`
+// by default, you need to set it to false.
+mongoose.set('useFindAndModify', false);
+
+function hashPassword() {
+  return bcrypt.hashSync(process.env.USER_PWD, process.env.SALT);
+}
+
+// define Schema
+var usersSchema = mongoose.Schema({
+  name: String,
+  surname: String,
+  email: String,
+  emailVerified: Boolean,
+  validationToken: String,
+  resetPasswordToken: String,
+  role: Number,
+  changeEmailToken: String,
+  newEmail: String,
+  structuresLink: [],
+  structureOutdatedMailSent: [],
+  pendingStructuresLink: [],
+  password: String,
+  phone: String,
+});
+
+// compile schema to model
+var User = mongoose.model('Users', usersSchema);
+
+/* drop users collections */
+mongoose.connection.dropCollection('users', function (err) {
+  /* show messages */
+  if (err) {
+    if (err.code === 26) console.log('-- Users collection does not exists --');
+    else throw err;
+  } else console.log('-- Users collection dropped --');
+
+  // Init passsword
+  console.log('-- Users password encryption based on .env --');
+  userData.data.forEach((user) => {
+    user.password = hashPassword();
+  });
+  // save model to database
+  User.create(userData.data, function (err, user) {
+    if (err) return console.error(err);
+    console.log('-- Users collection initialized --');
+    process.exit(1);
+  });
+});
diff --git a/template.env b/template.env
index fa2c9d0ae8b15dad61e8e27bf04059602c8c597c..54a211a951c1453d4215e6d28f3093d7026c279a 100644
--- a/template.env
+++ b/template.env
@@ -16,3 +16,4 @@ MAIL_TOKEN=<API token>
 APTIC_TOKEN=<APTIC API TOKEN>
 GHOST_PORT=<ghost port>
 GHOST_DB_PASSWORD=<ghost db password>
+USER_PWD=<test user password>