aboutsummaryrefslogtreecommitdiffstats
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
parent89769b45a11ea6ec206f7b519953492296dd8214 (diff)
Add README, use postgres:16, improve styles
-rw-r--r--README.md58
-rw-r--r--compose.yml3
-rw-r--r--docs/screenshot_frontpage.pngbin0 -> 40160 bytes
-rw-r--r--docs/screenshot_manage.pngbin0 -> 94890 bytes
-rw-r--r--docs/screenshot_poll_list.pngbin0 -> 35934 bytes
-rw-r--r--docs/screenshot_poll_table.pngbin0 -> 38455 bytes
-rw-r--r--static/styles.css5
7 files changed, 65 insertions, 1 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
diff --git a/compose.yml b/compose.yml
index 7fae4b0..bc8214a 100644
--- a/compose.yml
+++ b/compose.yml
@@ -1,6 +1,6 @@
services:
db:
- image: postgres:14
+ image: postgres:16
environment:
POSTGRES_DB: db
POSTGRES_USER: postgres
@@ -16,6 +16,7 @@ services:
retries: 5
web:
+ image: diddle:latest
build: .
environment:
BASE_URL: http://localhost:8000
diff --git a/docs/screenshot_frontpage.png b/docs/screenshot_frontpage.png
new file mode 100644
index 0000000..aaad0e0
--- /dev/null
+++ b/docs/screenshot_frontpage.png
Binary files differ
diff --git a/docs/screenshot_manage.png b/docs/screenshot_manage.png
new file mode 100644
index 0000000..3862371
--- /dev/null
+++ b/docs/screenshot_manage.png
Binary files differ
diff --git a/docs/screenshot_poll_list.png b/docs/screenshot_poll_list.png
new file mode 100644
index 0000000..6ed4138
--- /dev/null
+++ b/docs/screenshot_poll_list.png
Binary files differ
diff --git a/docs/screenshot_poll_table.png b/docs/screenshot_poll_table.png
new file mode 100644
index 0000000..4ba9ea4
--- /dev/null
+++ b/docs/screenshot_poll_table.png
Binary files differ
diff --git a/static/styles.css b/static/styles.css
index e34660b..40a93fc 100644
--- a/static/styles.css
+++ b/static/styles.css
@@ -9,6 +9,11 @@ body {
margin: 0 auto;
}
+textarea {
+ font-family: "Helvetica Neue", "Arial", sans-serif;
+ font-size: 16px;
+}
+
button,
input[type="submit"] {
cursor: pointer;