diff --git a/tests/test_skyreach.py b/tests/test_skyreach.py
new file mode 100755
index 0000000000000000000000000000000000000000..0e9a9f4b02645d0aaee4e3347a7d476890f1837c
--- /dev/null
+++ b/tests/test_skyreach.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+'''
+Check that the skyreach server is reachable.
+'''
+import os
+import re
+import requests
+import sys
+
+
+# SkyReach APT file test
+apt_source = '/etc/apt/sources.list.d/skyreach.list'
+if not os.path.exists(apt_source):
+    print('The file "%s" does not exists.' % apt_source)
+    sys.exit(1)
+
+with open(apt_source, 'r') as fo:
+    content = fo.read()
+
+# content hould be something like:
+# # skyreach repo
+# deb https://panel.ubicast.eu packaging/apt/s0000000000000000000000000000000/
+
+expected = r'^deb (http[s]{0,1}://[A-Za-z0-9\.\-\_]+) packaging/apt/([A-Za-z0-9]+)/$'
+url = None
+api_key = None
+if content:
+    for line in content.split('\n'):
+        m = re.match(expected, line)
+        if m:
+            url, api_key = m.groups()
+
+if not url or not api_key:
+    print('The file "%s" is not correct: skyreach url not found.' % apt_source)
+    sys.exit(1)
+print('SkyReach url is %s and API key is %s.' % (url, api_key))
+
+# Test SkyReach responses
+req = requests.get(url)
+if not req.ok:
+    print('Request to %s failed (%s):' % (url, req.status_code))
+    print(req.text)
+else:
+    print('Request to %s: OK.' % url)
+
+apt_url = '%s/packaging/apt/%s/Packages' % (url, api_key)
+req = requests.get(apt_url)
+if not req.ok:
+    print('Request to %s failed (%s):' % (apt_url, req.status_code))
+    print(req.text)
+else:
+    print('Request to %s: OK.' % apt_url)