diff --git a/plays/galene.yml b/plays/galene.yml
index a60aaf31dc6a4b852242498bdfe5699d48377b5c..fb5de458da8fdb80226e04bd65710a9d3964bf01 100755
--- a/plays/galene.yml
+++ b/plays/galene.yml
@@ -8,4 +8,4 @@
   roles:
     - certbot
     - nginx
-  # - galene
+    - galene
diff --git a/roles/galene/handlers/main.yml b/roles/galene/handlers/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cf0b5792b2732259a0772cb4ac6820b5ee8e4c5a
--- /dev/null
+++ b/roles/galene/handlers/main.yml
@@ -0,0 +1,5 @@
+---
+- name: Restart galène
+  systemd:
+    name: galene
+    state: restarted
diff --git a/roles/galene/tasks/main.yml b/roles/galene/tasks/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6b33c66135911e9302f951d90c01a19846a14bee
--- /dev/null
+++ b/roles/galene/tasks/main.yml
@@ -0,0 +1,77 @@
+---
+- name: Install golang and git
+  apt:
+    update_cache: true
+    install_recommends: false
+    name:
+      - git
+      - golang
+  register: apt_result
+  retries: 3
+  until: apt_result is succeeded
+
+- name: Create galene account
+  user:
+    name: galene
+    comment: Galène
+    home: ""
+    create_home: false
+
+- name: Create Galène directory
+  file:
+    path: /var/local/galene
+    state: directory
+    owner: galene
+    group: galene
+    mode: u+rw,g+rws,o+r
+
+- name: Clone Galène
+  git:
+    repo: https://github.com/jech/galene.git
+    dest: /var/local/galene
+  register: git_result
+  become_user: galene
+
+- name: Build galene
+  when: git_result.changed
+  shell: "go build -ldflags='-s -w'"
+  args:
+    chdir: /var/local/galene
+  environment:
+    CGO_ENABLED: 0
+  notify: Restart galène
+
+- name: Install systemd unit
+  template:
+    src: systemd/system/galene.service.j2
+    dest: /etc/systemd/system/galene.service
+    owner: root
+    group: root
+    mode: 0644
+  notify: Restart galène
+
+- name: Enable systemd unit
+  systemd:
+    name: galene
+    enabled: yes
+    daemon_reload: yes
+    state: started
+
+- name: Create directory for streaming front page
+  file:
+    path: /var/www/galene-stream-frontend
+    state: directory
+    owner: www-data
+    group: www-data
+    mode: u+rw,g+rws,o+r
+
+- name: Clone stream front
+  git:
+    repo: https://gitlab.adm.crans.org/erdnaxe/galene-stream-frontend.git
+    dest: /var/www/galene-stream-frontend
+
+- name: Indicate role in motd
+  template:
+    src: update-motd.d/05-service.j2
+    dest: /etc/update-motd.d/05-galene
+    mode: 0755
diff --git a/roles/galene/templates/systemd/system/galene.service.j2 b/roles/galene/templates/systemd/system/galene.service.j2
new file mode 100644
index 0000000000000000000000000000000000000000..8e967e440e4fcdce0f1eeab89b40ef0e1f57fba7
--- /dev/null
+++ b/roles/galene/templates/systemd/system/galene.service.j2
@@ -0,0 +1,16 @@
+{{ ansible_header }}
+
+[Unit]
+Description=Galene
+After=network.target
+
+[Service]
+Type=simple
+WorkingDirectory=/var/local/galene
+User=galene
+Group=galene
+ExecStart=/var/local/galene/galene --insecure
+LimitNOFILE=65536
+
+[Install]
+WantedBy=multi-user.target
diff --git a/roles/galene/templates/update-motd.d/05-service.j2 b/roles/galene/templates/update-motd.d/05-service.j2
new file mode 100755
index 0000000000000000000000000000000000000000..ede51c43c7c49bb01c9f639553d751499ea93fc7
--- /dev/null
+++ b/roles/galene/templates/update-motd.d/05-service.j2
@@ -0,0 +1,3 @@
+#!/usr/bin/tail +14
+{{ ansible_header | comment }}
+> Galène a été déployé sur cette machine. Voir /var/local/galene/.