45 lines
1.3 KiB
Markdown
45 lines
1.3 KiB
Markdown
# Surprise countdown
|
|
|
|
This is a web application for revealing a surprise at a given time.
|
|
|
|
Two pages are served:
|
|
|
|
1. `/` - The index page polls the backend every second and displays the image
|
|
asset corresponding to the state of the surprise with a countdown if applicable.
|
|
2. `/set-surprise` - Select and POST the surprise to the backend (password protected).
|
|
|
|
The surprise can have the following states:
|
|
|
|
- `_null` - The surprise is not set.
|
|
- `_secret` - The surprise is set but not yet revealed.
|
|
- `<value>` - The surprise is set and revealed.
|
|
|
|
|
|
## Configuration
|
|
|
|
Environment variables:
|
|
|
|
- `SURPRISE_TITLE` - Page title
|
|
- `SURPRISE_STORE_FILE` - File name to store surprise value.
|
|
- `SURPRISE_SECRET` - Password for setting the surprise.
|
|
- `SURPRISE_ASSET_DIR` - Directory of image assets that corresponds to surprise
|
|
state/values. The set of possible surprise values are parsed from the basename
|
|
of the asset files. The `_null` and `_secret` states may be overridden.
|
|
- `SURPRISE_REVEAL_DATETIME` - Datetime for reveal.
|
|
|
|
|
|
## Build
|
|
|
|
```bash
|
|
$ docker build -t surprise-countdown .
|
|
```
|
|
|
|
|
|
## Run gender reveal example
|
|
|
|
```bash
|
|
$ docker run -e SURPRISE_SECRET=hunter2 -p 5000:5000 -v $(pwd)/surprise-assets/gender-reveal:/assets:ro surprise-countdown
|
|
```
|
|
|
|
Then browse to [localhost:5000](localhost:5000).
|