diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..38007303002642b6ab727de55469fe45ff20321d
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,91 @@
+stages:
+  - build
+
+before_script:
+  # activate backports *for buster*
+  - echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list
+  - apt-get -y update
+  - apt-get -y install git make meson gcc clang libgtk-3.0 libhandy-0.0 libsoup2.4 libsecret-1-0 libsecret-1-dev
+  # install myhtml manually
+  - git clone https://github.com/lexborisov/myhtml
+  - cd myhtml && make && make install && make install && cp *.pc /usr/lib/pkgconfig/ && cd ..
+
+.build: &build_steps
+    echo "BUILD_OPTS=${BUILD_OPTS}" &&
+    export LC_ALL=C.UTF-8 &&
+    meson ${BUILD_OPTS} . _build  &&
+    ninja -C _build
+
+build-debian-gcc:
+  image: debian:buster
+  tags:
+    - debian
+  stage: build
+  variables:
+    BUILD_OPTS: -Dgtk_doc=true -Db_coverage=true --werror
+  script:
+    - *build_steps
+
+build-debian-clang:
+  image: debian:buster
+  tags:
+    - debian
+  stage: build
+  variables:
+    BUILD_OPTS: -Dgtk_doc=true -Db_coverage=true --werror
+    CC: clang
+  script:
+    - *build_steps
+
+#unit-test:
+#  image: debian:buster
+#  <<: *tags
+#  stage: test
+#  dependencies:
+#    - build-debian-gcc
+#  script:
+#    - xvfb-run -s -noreset ninja -C _build test
+#    - ninja -C _build coverage
+#  coverage: '/^\s+lines\.+:\s+([\d.]+\%)\s+/'
+#  artifacts:
+#    when: always
+#    paths:
+#      - _build
+#
+#package-debian:
+#  image: debian:buster
+#  <<: *tags
+#  stage: package
+#  script:
+#    - dpkg-buildpackage -uc -us
+#    - cp ../*.deb .
+#  artifacts:
+#    paths:
+#      - "*.deb"
+#
+#publish-docs:
+#  stage: deploy
+#  dependencies:
+#    - build-gtkdoc
+#  environment:
+#    name: production
+#    url: https://developer.puri.sm/projects/libhandy/
+#  before_script:
+#    - export DEBIAN_FRONTEND=noninteractive
+#    - apt-get -y update
+#    - apt-get -y install ssh rsync
+#  tags:
+#    - debian
+#  script:
+#    # Don't publish in forks
+#    - '[ "$CI_PROJECT_NAMESPACE" == "Librem5" ] || exit 0'
+#    - mkdir -p ~/.ssh/
+#    - chmod 0700 ~/.ssh/
+#    - echo "$SSH_HOST_KEY" > ~/.ssh/known_hosts
+#    - touch ~/.ssh/id_rsa
+#    - chmod 0600 ~/.ssh/id_rsa
+#    - echo "$SSH_KEY" >> ~/.ssh/id_rsa
+#    - rsync -av -i --stats -e "ssh -l $SSH_USER -i ~/.ssh/id_rsa -p $SSH_PORT" _build/doc/html/ "$RSYNC_TARGET"
+#  only:
+#    - master
+