From 849a3e8e651c583747dd2152c7f88422f7a2619c Mon Sep 17 00:00:00 2001 From: LockeShor <75901583+LockeShor@users.noreply.github.com> Date: Sat, 19 Sep 2026 23:07:22 -0400 Subject: [PATCH] dockerize (did it myself this time!) and rearrange directories --- Dockerfile | 18 ++++++++++ {images => assets/images}/test.png | 0 {images => assets/images}/water-willow.png | Bin main.html => assets/main.html | 0 page.html => assets/page.html | 0 {stories => assets/stories}/test.json | 0 {stories => assets/stories}/water-willow.json | 0 docker-compose.yaml | 7 ++++ page copy.html | 32 ------------------ requirements.txt | 1 + server.py | 10 +++--- 11 files changed, 31 insertions(+), 37 deletions(-) create mode 100644 Dockerfile rename {images => assets/images}/test.png (100%) rename {images => assets/images}/water-willow.png (100%) rename main.html => assets/main.html (100%) rename page.html => assets/page.html (100%) rename {stories => assets/stories}/test.json (100%) rename {stories => assets/stories}/water-willow.json (100%) create mode 100644 docker-compose.yaml delete mode 100644 page copy.html create mode 100644 requirements.txt diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1a30666 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM python:3.12-slim + +VOLUME [ "/app/assets" ] + +WORKDIR /app + +ENV FLASK_APP=server.py +ENV FLASK_RUN_HOST=0.0.0.0 +ENV FLASK_RUN_PORT=1387 + +COPY requirements.txt . +RUN pip install -r requirements.txt + +COPY server.py . + +EXPOSE 1387/tcp + +CMD ["flask", "run", "--debug"] \ No newline at end of file diff --git a/images/test.png b/assets/images/test.png similarity index 100% rename from images/test.png rename to assets/images/test.png diff --git a/images/water-willow.png b/assets/images/water-willow.png similarity index 100% rename from images/water-willow.png rename to assets/images/water-willow.png diff --git a/main.html b/assets/main.html similarity index 100% rename from main.html rename to assets/main.html diff --git a/page.html b/assets/page.html similarity index 100% rename from page.html rename to assets/page.html diff --git a/stories/test.json b/assets/stories/test.json similarity index 100% rename from stories/test.json rename to assets/stories/test.json diff --git a/stories/water-willow.json b/assets/stories/water-willow.json similarity index 100% rename from stories/water-willow.json rename to assets/stories/water-willow.json diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..c4dd576 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,7 @@ +services: + web: + build: . + ports: + - "1387:1387" + volumes: + - ./assets:/app/assets:ro \ No newline at end of file diff --git a/page copy.html b/page copy.html deleted file mode 100644 index b841f8f..0000000 --- a/page copy.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - Choose Your Own Adventure - - - - - - - - - -

test

- - - \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..8ab6294 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +flask \ No newline at end of file diff --git a/server.py b/server.py index e295e89..15b9c0e 100644 --- a/server.py +++ b/server.py @@ -6,7 +6,7 @@ app = Flask(__name__) @app.route("/") def mainPage(): - return open("main.html").read() + return open("assets/main.html").read() @app.route("/") def game(path): @@ -14,15 +14,15 @@ def game(path): return mainPage() gameName = request.path.split("/")[1] if gameName == "img": - print("returning image", "images/" + request.path.split("/")[-1].replace(".", "")[:-3] + ".png") - return send_file("images/" + request.path.split("/")[-1].replace(".", "")[:-3] + ".png", mimetype="image/png") + print("returning image", "assets/images/" + request.path.split("/")[-1].replace(".", "")[:-3] + ".png") + return send_file("assets/images/" + request.path.split("/")[-1].replace(".", "")[:-3] + ".png", mimetype="image/png") gamecode = request.args.get('code')[:-1] print(gameName) return buildHTML(gamecode,gameName) def buildHTML(gamecode, gameName): - with open("stories/" + gameName.replace(".", "") + ".json", "r") as f: + with open("assets/stories/" + gameName.replace(".", "") + ".json", "r") as f: print("\n\n") story = json.loads(f.read()) nodeName = "start" @@ -42,7 +42,7 @@ def buildHTML(gamecode, gameName): color = story["SPECIAL-color"] if "SPECIAL-color" in story.keys() else "0" print(str(request.user_agent) + "\n",currText,choices,color) - with open('page.html', "r") as page: + with open('assets/page.html', "r") as page: page = page.read() page = page.replace("{{CurrText}}", currText.replace('"', '\\"')) page = page.replace("{{Choices}}", choices)