diff --git a/README.md b/README.md
new file mode 100644
index 0000000..3160abc
--- /dev/null
+++ b/README.md
@@ -0,0 +1,62 @@
+# Pyrom
+python/flask port of [porom](https://git.poto.cafe/yagich/porom)
+
+this is now the canonical implementation of porom
+
+# License
+Released under [CNPLv7+](https://thufie.lain.haus/NPL.html).
+Please read the [full terms](./LICENSE.md) for proper wording.
+
+# installing & first time setup
+## docker (production)
+create `config/secrets.prod.env` according to `config/secrets.prod.env.example`
+
+```bash
+$ docker compose up
+```
+
+- opens port 8080
+- exposes `data/db` and `data/static` for data backup and persistence
+
+make sure to run it in an interactive session the first time, because it will spit out the password to the auto-created admin account.
+
+## manual (development)
+1. install python >= 3.13, sqlite3, libargon2, and imagemagick & clone repo
+2. create a venv:
+
+```bash
+$ python -m venv .venv
+$ source .venv/bin/activate
+```
+
+3. install requirements:
+
+```bash
+$ pip install -r requirements.txt
+```
+
+4. run dev server:
+
+```bash
+$ python -m app.run
+```
+
+the server will run on localhost:8080. when run for the first time, it will create an admin account and print its credentials to the terminal, so make sure to run this in an interactive session.
+
+press Ctrl+C to stop the server.
+
+to deactivate the venv:
+
+```bash
+$ deactivate
+```
+
+when you want to run the server again, make sure to activate the venv first:
+```bash
+$ python -m venv .venv
+$ source .venv/bin/activate
+$ python -m app.run
+```
+
+# icons
+the icons in the `data/static/misc/` folder are by [Gabriele Malaspina](https://www.figma.com/community/file/1136337054881623512/iconcino-v2-0-0-free-icons-cc0-1-0-license)
diff --git a/THIRDPARTY.md b/THIRDPARTY.md
new file mode 100644
index 0000000..d6ad09d
--- /dev/null
+++ b/THIRDPARTY.md
@@ -0,0 +1,33 @@
+# Acknowledgments
+
+## Flask
+
+URL: https://flask.palletsprojects.com/en/stable/
+Copyright: `Copyright 2010 Pallets`
+License: BSD-3-Clause
+Repo: https://github.com/pallets/flask
+
+## ChicagoFLF
+
+Affected files: [`data/static/fonts/ChicagoFLF.woff2`](./data/static/fonts/ChicagoFLF.woff2)
+No canonical URL that I could find.
+Obtained from: https://usemodify.com/fonts/chicago/
+License: Public Domain
+Designers: Susan Kare, Robin Casady
+
+## Cadman
+
+Affected files: [`data/static/fonts/Cadman_Bold.woff2`](./data/static/fonts/Cadman_Bold.woff2) [`data/static/fonts/Cadman_BoldItalic.woff2`](./data/static/fonts/Cadman_BoldItalic.woff2) [`data/static/fonts/Cadman_Italic.woff2`](./data/static/fonts/Cadman_Italic.woff2) [`data/static/fonts/Cadman_Roman.woff2`](./data/static/fonts/Cadman_Roman.woff2)
+URL: https://localfonts.eu/shop/cyrillic-script/serbian/serbian-cyrillic-sans-serif/cadman/
+Copyright: `© 2017-2020 by Paul James Miller. All rights reserved.`
+License: SIL Open Font License 1.1
+Designers: Paul James Miller
+
+## ICONCINO
+
+Affected files: [`data/static/misc/error.svg`](./data/static/misc/error.svg) [`data/static/misc/image.svg`](./data/static/misc/image.svg) [`data/static/misc/info.svg`](./data/static/misc/info.svg) [`data/static/misc/lock.svg`](./data/static/misc/lock.svg) [`data/static/misc/sticky.svg`](./data/static/misc/sticky.svg) [`data/static/misc/warn.svg`](./data/static/misc/warn.svg)
+URL: https://www.figma.com/community/file/1136337054881623512/iconcino-v2-0-0-free-icons-cc0-1-0-license
+Copyright: Gabriele Malaspina
+Designers: Gabriele Malaspina
+License: CC0 1.0/CC BY 4.0
+CC BY 4.0 compliance: Modified to indicate the URL. Modified size.
diff --git a/requirements.txt b/requirements.txt
index 12e7ef3..6860600 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,5 +1,16 @@
-flask
-argon2-cffi
-wand
-dotenv
-python-slugify
+argon2-cffi==25.1.0
+argon2-cffi-bindings==21.2.0
+blinker==1.9.0
+cffi==1.17.1
+click==8.2.1
+dotenv==0.9.9
+Flask==3.1.1
+itsdangerous==2.2.0
+Jinja2==3.1.6
+MarkupSafe==3.0.2
+pycparser==2.22
+python-dotenv==1.1.1
+python-slugify==8.0.4
+text-unidecode==1.3
+Wand==0.6.13
+Werkzeug==3.1.3