From cdcbcf93fa15b6257aeb8d347219b3f9793606d0 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Wed, 28 Feb 2024 19:17:07 +0200 Subject: Add README, use postgres:16, improve styles --- README.md | 58 +++++++++++++++++++++++++++++++++++++++++ compose.yml | 3 ++- docs/screenshot_frontpage.png | Bin 0 -> 40160 bytes docs/screenshot_manage.png | Bin 0 -> 94890 bytes docs/screenshot_poll_list.png | Bin 0 -> 35934 bytes docs/screenshot_poll_table.png | Bin 0 -> 38455 bytes static/styles.css | 5 ++++ 7 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 README.md create mode 100644 docs/screenshot_frontpage.png create mode 100644 docs/screenshot_manage.png create mode 100644 docs/screenshot_poll_list.png create mode 100644 docs/screenshot_poll_table.png 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 Binary files /dev/null and b/docs/screenshot_frontpage.png differ diff --git a/docs/screenshot_manage.png b/docs/screenshot_manage.png new file mode 100644 index 0000000..3862371 Binary files /dev/null and b/docs/screenshot_manage.png differ diff --git a/docs/screenshot_poll_list.png b/docs/screenshot_poll_list.png new file mode 100644 index 0000000..6ed4138 Binary files /dev/null and b/docs/screenshot_poll_list.png differ diff --git a/docs/screenshot_poll_table.png b/docs/screenshot_poll_table.png new file mode 100644 index 0000000..4ba9ea4 Binary files /dev/null and b/docs/screenshot_poll_table.png 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; -- cgit v1.3