aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2024-02-28 19:17:07 +0200
committerJan Tuomi <jan@jantuomi.fi>2024-12-21 19:43:13 +0200
commitcdcbcf93fa15b6257aeb8d347219b3f9793606d0 (patch)
tree0b39d7f0b5d82309408898f79d2d8f7a2f099078 /README.md
parent89769b45a11ea6ec206f7b519953492296dd8214 (diff)
Add README, use postgres:16, improve styles
Diffstat (limited to 'README.md')
-rw-r--r--README.md58
1 files changed, 58 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..9f8f582
--- /dev/null
+++ b/README.md
@@ -0,0 +1,58 @@
+# diddle
+
+Minimalist scheduling. A mobile friendly, fast, self-hosted Doodle alternative.
+
+## Installation
+
+The Diddle app is a traditional Flask web app that uses PostgreSQL for persistence. User settings are stored in HTTP cookies.
+
+Build a container image with `docker compose` (see `compose.yml`):
+
+ docker compose build
+
+or directly with `docker build`:
+
+ docker build -t diddle:latest .
+
+Deploy the image as you see fit.
+
+You can also run the app without containerization:
+
+ pip install -r requirements.txt # install pip dependencies
+ touch .env # put your env vars here
+ gunicorn --bind "0.0.0.0:8000" -w 4 app:app
+
+## Environment variables
+
+| Variable | Description |
+| -------- | ----------- |
+| BASE_URL | E.g. `diddle.my-server.net`, used as a prefix in dynamically generated links **(required)** |
+| DB_PASSWORD | Postgres password **(required)** |
+| DB_HOST | Postgres host (default: db) |
+| DB_PORT | Postgres port (default: 5432) |
+| DB_DATABASE | Postgres database (default: postgres) |
+| DB_USER | Postgres user (default: postgres) |
+
+## Screenshots
+
+### Front page
+
+![Front page](docs/screenshot_frontpage.png)
+
+### Manage poll page
+
+![Manage poll page](docs/screenshot_manage.png)
+
+### Vote page (table mode)
+
+![Vote page table mode](docs/screenshot_poll_table.png)
+
+### Vote page (list mode)
+
+![Vote page list mode](docs/screenshot_poll_list.png)
+
+## Development
+
+Run Flask in dev mode:
+
+ flask --app app --debug run -p 8000