diff --git a/Dockerfile b/Dockerfile
index 1eab433..2de1b50 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -63,4 +63,39 @@ RUN cd libs/raylib/src && \
emar rcs libraylib.a rcore.o rshapes.o rtextures.o rtext.o rmodels.o utils.o raudio.o && \
cd ../..
-CMD ["bash"]
+# CMD ["bash"]
+
+FROM development as build
+
+RUN mkdir dist html src include assets
+
+COPY include include
+COPY src src
+COPY html html
+COPY assets assets
+
+# CMD ["tail", "-f", "/dev/null"]
+# Run the production build command to generate game.js and game.wasm
+RUN source /app/libs/emsdk/emsdk_env.sh && \
+ emcc $(find src/ -name "*.cpp") -o dist/game.js -O3 -Wno-missing-braces \
+ -I./include -I/app/libs/raylib/build/raylib/include \
+ -L/app/libs/raylib/src /app/libs/raylib/src/libraylib.a \
+ -s ALLOW_MEMORY_GROWTH=1 -s INITIAL_MEMORY=536870912 -s MAXIMUM_MEMORY=4294967296 \
+ -s --preload-file assets@/assets -s USE_GLFW=3 -s ASSERTIONS=2 -DPLATFORM_WEB
+
+# CMD ["tail", "-f", "/dev/null"]
+
+FROM nginx:alpine as production
+
+# Remove the default nginx index.html
+RUN rm -rf /usr/share/nginx/html/*
+
+# Copy the generated files from the production stage into the Nginx html directory
+COPY --from=build /app/dist/ /usr/share/nginx/html/
+COPY --from=build /app/html/index.html /usr/share/nginx/html/
+
+# Expose port 80 to allow Nginx to serve the files
+EXPOSE 80
+
+# Start Nginx server
+CMD ["nginx", "-g", "daemon off;"]
\ No newline at end of file
diff --git a/README.md b/README.md
index 0d2989a..e1aca3d 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,39 @@
# WebJelly-Rescue
-Jelly Rescue, but now for the web!
+[Jelly Rescue](https://github.com/Ninjaws/JellyGame), but now for the web!
+
+## Installation
+### Install Docker
+- On Windows and Mac
+```
+Install Docker Desktop
+Windows: https://docs.docker.com/desktop/install/windows-install/
+Mac: https://docs.docker.com/desktop/install/mac-install/
+```
+- On Linux
+```bash
+# For Debian-based systems
+sudo apt install -y docker.io
+sudo apt install docker-compose
+
+#For Arch-based systems
+sudo pacman -S docker.io
+sudo pacman -S docker-compose
+
+# Making Docker run now and on startup
+sudo systemctl start docker
+sudo systemctl enable docker
+
+# Using the CLI without sudo
+sudo usermod -aG docker $USER
+sudo reboot
+```
+
+## How to run
+- Navigate to the root of the project
+- Open a terminal
+- Start the container:
+```bash
+docker compose up #(might take a few minutes to build)
+```
+- Visit https://localhost:4600 to play the game locally
+- Or visit play it live [here!](https://jelly.ianvink.nl)
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..e3345e3
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,13 @@
+services:
+ frontend:
+ build:
+ context: .
+ dockerfile: Dockerfile
+ target: production
+ image: jelly-rescue-prod
+ container_name: jelly-rescue-prod-cont
+ ports:
+ - "4600:80"
+ restart: always
+ cpu_period: 100000 # Default is 100,000 microseconds (100ms)
+ cpu_quota: 30000 # 5% of the total CPU time
\ No newline at end of file
diff --git a/html/game.html b/html/game.html
deleted file mode 100644
index a6ee798..0000000
--- a/html/game.html
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
-
-
- raylib web game
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/html/index.html b/html/index.html
new file mode 100644
index 0000000..728fa2a
--- /dev/null
+++ b/html/index.html
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+ Jelly Rescue
+
+
+
+
+
+