diff --git a/config/install/jenkins.settings.yml b/config/install/jenkins.settings.yml
new file mode 100644
index 0000000..dec81a7
--- /dev/null
+++ b/config/install/jenkins.settings.yml
@@ -0,0 +1 @@
+base_url: 'http://localhost:8080'
diff --git a/jenkins.admin.inc b/jenkins.admin.inc
index acf8ce2..5efcb8a 100644
--- a/jenkins.admin.inc
+++ b/jenkins.admin.inc
@@ -14,7 +14,7 @@ function jenkins_settings($form, &$form_state) {
     '#type' => 'textfield',
     '#title' => t('Jenkins server URL'),
     '#description' => t('HTTP auth credentials can be included in the URL, like so "http://user:pass@example.com:8080". Note: The value isn\'t encrypted when stored'),
-    '#default_value' => variable_get('jenkins_base_url', 'http://localhost:8080'),
+    '#default_value' => \Drupal::config('jenkins.settings')->get('base_url'),
     '#required' => TRUE,
   );
 
@@ -57,7 +57,10 @@ function jenkins_settings_validate($form, &$form_state) {
  * Jenkins settings form submit handler.
  */
 function jenkins_settings_submit($form, &$form_state) {
-  variable_set('jenkins_base_url', $form_state['values']['jenkins_base_url']);
+  $config = \Drupal::service('config.factory')->getEditable('jenkins.settings');
+
+  $config->set('base_url', $form_state['values']['jenkins_base_url']);
+  $config->save();
   // Lifted from system_settings_form_submit().
   drupal_set_message(t('The configuration options have been saved.'));
 }
@@ -66,7 +69,7 @@ function jenkins_settings_submit($form, &$form_state) {
  * Jenkins connection test button submit handler.
  */
 function jenkins_settings_test_submit($form, &$form_state) {
-  $current = variable_get('jenkins_base_url');
+  $current = \Drupal::config('jenkins.settings')->get('base_url');
   drupal_set_message(t('Drupal was able to connect to @url.', array('@url' => $form_state['values']['jenkins_base_url'])));
   if ($form_state['values']['jenkins_base_url'] != $current) {
     drupal_set_message(t('New URL value has not been saved. Please use the "Save" button to save the value permenantly.'), 'warning');
diff --git a/jenkins.install b/jenkins.install
deleted file mode 100644
index 818e337..0000000
--- a/jenkins.install
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @file
- * Jenkins module installation functions.
- */
-
-/**
- * Implements hook_uninstall().
- */
-function jenkins_uninstall() {
-  variable_del('jenkins_base_url');
-}
diff --git a/jenkins.module b/jenkins.module
index 2fdc055..adba0a0 100644
--- a/jenkins.module
+++ b/jenkins.module
@@ -116,7 +116,7 @@ function jenkins_get_build_info_from_queue_id($queue_id) {
     'build_id' => 0,
   );
 
-  $url = variable_get('jenkins_base_url', 'http://localhost:8080') . "/queue/item/{$queue_id}/api/json";
+  $url = \Drupal::config('jenkins.settings')->get('base_url') . "/queue/item/{$queue_id}/api/json";
 
   $reply = drupal_http_request($url, array('max_redirects' => 0));
   if (200 != $reply->code) {
@@ -435,7 +435,7 @@ function jenkins_is_job_name_valid($name) {
  *    TRUE if the request was successful.
  */
 function jenkins_request($path, &$response = NULL, $query = array(), $method = 'GET', $data = NULL, $headers = array()) {
-  $url = variable_get('jenkins_base_url', 'http://localhost:8080') . $path;
+  $url = \Drupal::config('jenkins.settings')->get('base_url') . $path;
   $options = array(
     'method' => $method,
     'max_redirects' => 0,
