diff --git a/.env.backup b/.env.backup
new file mode 100644
index 0000000000000000000000000000000000000000..afacc139b86e7db30487d21b82da3b6e8974a52c
--- /dev/null
+++ b/.env.backup
@@ -0,0 +1,39 @@
+APP_NAME=PMO-TALENT
+APP_ENV=local
+APP_KEY=base64:SjrUlEGB06+kb35tBEob7OC2dQfa5TrODCprpqNHsr8=
+APP_DEBUG=true
+APP_URL=http://localhost
+
+LOG_CHANNEL=stack
+
+DB_CONNECTION=mysql
+DB_HOST=127.0.0.1
+DB_PORT=3306
+DB_DATABASE=ppl
+DB_USERNAME=mysql
+DB_PASSWORD=speakingmysql
+
+BROADCAST_DRIVER=log
+CACHE_DRIVER=file
+SESSION_DRIVER=file
+SESSION_LIFETIME=120
+QUEUE_DRIVER=sync
+
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+MAIL_DRIVER=smtp
+MAIL_HOST=smtp.gmail.com
+MAIL_PORT=587
+MAIL_USERNAME=
+MAIL_PASSWORD=
+MAIL_ENCRYPTION=tls
+
+PUSHER_APP_ID=
+PUSHER_APP_KEY=
+PUSHER_APP_SECRET=
+PUSHER_APP_CLUSTER=mt1
+
+MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
+MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
diff --git a/.env.testing b/.env.testing
new file mode 100644
index 0000000000000000000000000000000000000000..22aecb2fe209888914849748e0679a6fe052642f
--- /dev/null
+++ b/.env.testing
@@ -0,0 +1,10 @@
+APP_ENV=testing
+APP_DEBUG=true
+APP_KEY=base64:SjrUlEGB06+kb35tBEob7OC2dQfa5TrODCprpqNHsr8=
+APP_URL=http://pplk2b.if.itb.ac.id
+
+DB_HOST=mysql
+DB_DATABASE=ppl
+DB_USERNAME=root
+DB_PASSWORD=ppl2018
+
diff --git a/.gitlab-ci.sh b/.gitlab-ci.sh
new file mode 100644
index 0000000000000000000000000000000000000000..189da1106959701edf18ece5e9f400ab05af4466
--- /dev/null
+++ b/.gitlab-ci.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# Install dependencies only for Docker.
+[[ ! -e /.dockerenv ]] && exit 0
+set -xe
+
+# Update packages and install composer and PHP dependencies.
+apt-get update -yqq
+apt-get install git libcurl4-gnutls-dev libicu-dev libmcrypt-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libpq-dev libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev -yqq
+
+# Compile PHP, include these extensions.
+docker-php-ext-install mbstring mcrypt pdo_mysql curl json intl gd xml zip bz2 opcache
+
+# Install Composer and project dependencies.
+curl -sS https://getcomposer.org/installer | php
+php composer.phar install
+
+# Copy over testing configuration.
+cp .env.testing .env
+
+# Generate an application key. Re-cache.
+php artisan key:generate
+php artisan config:cache
+
+# Run database migrations.
+php artisan migrate --seed
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a41d5472da30daf6ba5db053a1980210d20d93b6
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,34 @@
+before_script:
+  - bash .gitlab-ci.sh
+
+variables:
+  MYSQL_DATABASE: ppl
+  MYSQL_ROOT_PASSWORD: ppl2018
+
+phpunit:php5.5:mysql5.6:
+  image: php:5.5
+  services:
+    - mysql:5.6
+  script:
+    - php vendor/bin/phpunit --colors
+
+phpunit:php5.6:mysql5.6:
+  image: php:5.6
+  services:
+    - mysql:5.6
+  script:
+    - php vendor/bin/phpunit --colors
+
+phpunit:php5.5:mysql5.7:
+  image: php:5.5
+  services:
+    - mysql:5.7
+  script:
+    - php vendor/bin/phpunit --colors
+
+phpunit:php5.6:mysql5.7:
+  image: php:5.6
+  services:
+    - mysql:5.7
+  script:
+    - php vendor/bin/phpunit --colors