diff --git a/.env.sample b/.env.sample
new file mode 100644
index 0000000000000000000000000000000000000000..d777283f3d53ee199cc8f80aebd5e303ef77397b
--- /dev/null
+++ b/.env.sample
@@ -0,0 +1,8 @@
+COMPOSE_FILE=docker-compose.yml:ports.yml
+HOST=0.0.0.0
+PORT=5000
+MYSQL_USER=mirador_backend
+MYSQL_PASSWORD=randompassword
+MYSQL_ROOT_PASSWORD=otherrandompassword
+MYSQL_DATABASE=mirador_backend
+ENV=dev
diff --git a/.gitignore b/.gitignore
index 69b2b1e480976e0204b73a64f417a821edfb477d..b8cd07cd7656aadcb573ed47f1a8e2ab78a1608b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,5 @@ venv
 *.egg-info
 .eggs
 **/__pycache__
+.env
+*.sw?
diff --git a/Mirador-backend/__init__.py b/Mirador_backend/__init__.py
similarity index 100%
rename from Mirador-backend/__init__.py
rename to Mirador_backend/__init__.py
diff --git a/Mirador-backend/app.py b/Mirador_backend/app.py
similarity index 100%
rename from Mirador-backend/app.py
rename to Mirador_backend/app.py
diff --git a/Mirador-backend/resources/__init__.py b/Mirador_backend/resources/__init__.py
similarity index 100%
rename from Mirador-backend/resources/__init__.py
rename to Mirador_backend/resources/__init__.py
diff --git a/Mirador-backend/resources/mirador_resource.py b/Mirador_backend/resources/mirador_resource.py
similarity index 100%
rename from Mirador-backend/resources/mirador_resource.py
rename to Mirador_backend/resources/mirador_resource.py
diff --git a/Readme.md b/Readme.md
index 1fc694ae27a4e1ff0fd2e91d05eeaa5e2db8d26b..6bc6627b7ca856def18ab5efe3174b4e416e6316 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1,31 +1,41 @@
 # Mirador backend
 
-## Requirements
+## Install and run
+
+### local
+
+
+#### Requirements
 
 + virtualenv (optionnal)
 + Python >= 3.10
 
-## Install
-
-### Dev mode
+#### Dev mode
 
 1. Optionnal create a virtual env `virtualenv venv && . venv/bin/activate`
 2. Install dependencies `pip install -e .`
+3. `cp .env.sample .env` and edit `.env` file to suit your needs
+4. Run `flask --debug --app Mirador_backend.app run`
 
-### Production mode
+#### Production mode
+
+**TODO**
 
+### Production mode
 
 **TODO**
 
-## Run
+### Docker
 
-### Dev mode
+#### Requirements
 
-```
-cd Mirador-backend
-flask --debug run
-```
++ [docker](https://www.docker.com/)
++ [docker compose](https://docs.docker.com/compose/install/)
 
-### Production mode
+#### Install and run
 
-**TODO**
+```
+cp .env.sample .env
+# Edit .env file to suit your needs
+docker-compose up
+```
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..60a5ffb3cd71f03f9e2afa00ee9799fc60271ee4
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,24 @@
+version: "3"
+
+services:
+  flask:
+    build:
+      context: "docker/flask"
+    environment:
+      ENV:
+      HOST:
+    volumes:
+      - .:/app
+
+  db:
+    image: mariadb
+    environment:
+      MYSQL_USER:
+      MYSQL_PASSWORD:
+      MYSQL_DATABASE:
+      MYSQL_ROOT_PASSWORD:
+    volumes:
+      - db_data:/var/lib/mysql
+
+volumes:
+  db_data:
diff --git a/docker/flask/Dockerfile b/docker/flask/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..79f810428434501bccf70af4b202c394cc8518b5
--- /dev/null
+++ b/docker/flask/Dockerfile
@@ -0,0 +1,9 @@
+FROM python:3.10
+
+COPY entrypoint.sh /entrypoint
+
+RUN mkdir /app
+
+WORKDIR /app
+
+ENTRYPOINT ["/entrypoint"]
diff --git a/docker/flask/entrypoint.sh b/docker/flask/entrypoint.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a3570e4ee1f49fab5ed031865e248041dece4925
--- /dev/null
+++ b/docker/flask/entrypoint.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+pip install -e .
+exec flask --debug --app Mirador_backend.app run --host $HOST 
diff --git a/ports.yml b/ports.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ffa57f26d534410bfb21b31fe3acd048fc2c741f
--- /dev/null
+++ b/ports.yml
@@ -0,0 +1,6 @@
+version: "3"
+
+services:
+  flask:
+    ports:
+      - $FLASK_PORT:5000
diff --git a/setup.py b/setup.py
index ec402d2717bf7dfa8e15ffe66d0c367faed258a5..37acbcc063e861b2f140f3792402504b9fefd98e 100644
--- a/setup.py
+++ b/setup.py
@@ -30,7 +30,7 @@ setup(
 
     packages=find_packages(),
 
-    install_requires=["flask", "flask-restful"],
+    install_requires=["flask", "flask-restful", "python-dotenv"],
 
     setup_requires=["pytest-runner"],