diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..69b2b1e480976e0204b73a64f417a821edfb477d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+venv
+*.egg-info
+.eggs
+**/__pycache__
diff --git a/Mirador-backend/__init__.py b/Mirador-backend/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Mirador-backend/app.py b/Mirador-backend/app.py
new file mode 100644
index 0000000000000000000000000000000000000000..548908adddb07f3d9d036a897e4c6c3215a273f9
--- /dev/null
+++ b/Mirador-backend/app.py
@@ -0,0 +1,11 @@
+from flask import Flask
+from flask_restful import Api
+from .resources.mirador_resource import MiradorResource
+
+app = Flask(__name__)
+api = Api(app)
+
+api.add_resource(MiradorResource, '/mirador_resource', '/mirador_resource/<int:id>')
+
+if __name__ == '__main__':
+    app.run(debug=True)
diff --git a/Mirador-backend/resources/__init__.py b/Mirador-backend/resources/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Mirador-backend/resources/mirador_resource.py b/Mirador-backend/resources/mirador_resource.py
new file mode 100644
index 0000000000000000000000000000000000000000..08f1588e6851e11aecdcdb90634c8a9155ddab22
--- /dev/null
+++ b/Mirador-backend/resources/mirador_resource.py
@@ -0,0 +1,18 @@
+from flask_restful import Resource
+
+
+class MiradorResource(Resource):
+    def get(self, id=None):
+        return {'method': 'get', 'id': id}
+
+    def post(self):
+        return {'method': 'post'}
+
+    def put(self, id):
+        return {'method': 'put', 'id': id}
+
+    def patch(self, id):
+        return {'method': 'patch', 'id': id}
+
+    def delete(self, id):
+        return {'method': 'delete', 'id': id}
diff --git a/Readme.md b/Readme.md
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..1fc694ae27a4e1ff0fd2e91d05eeaa5e2db8d26b 100644
--- a/Readme.md
+++ b/Readme.md
@@ -0,0 +1,31 @@
+# Mirador backend
+
+## Requirements
+
++ virtualenv (optionnal)
++ Python >= 3.10
+
+## Install
+
+### Dev mode
+
+1. Optionnal create a virtual env `virtualenv venv && . venv/bin/activate`
+2. Install dependencies `pip install -e .`
+
+### Production mode
+
+
+**TODO**
+
+## Run
+
+### Dev mode
+
+```
+cd Mirador-backend
+flask --debug run
+```
+
+### Production mode
+
+**TODO**
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..ec402d2717bf7dfa8e15ffe66d0c367faed258a5
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,39 @@
+from setuptools import setup, find_packages
+
+from os import path
+
+here = path.abspath(path.dirname(__file__))
+
+with open(path.join(here, 'Readme.md'), encoding='utf-8') as f:
+
+    long_description = f.read()
+
+setup(
+
+    name="Mirador backend",
+
+    url="https://gitlab.tetras-libre.fr/iiif/backend",
+
+    version="1.0",
+
+    python_requires='>3.10.0',
+
+    license="Gpl v3+",
+
+    author="Tetras Libre",
+
+    author_email="David.Beniamine@Tetras-Libre.fr",
+
+    description="Backend for Mirador viewer",
+
+    long_description=long_description,
+
+    packages=find_packages(),
+
+    install_requires=["flask", "flask-restful"],
+
+    setup_requires=["pytest-runner"],
+
+    tests_require=["pytest"],
+
+)