first commit

This commit is contained in:
2026-01-23 13:54:58 +01:00
commit 32312fe4f2
29 changed files with 2172 additions and 0 deletions

87
README.md Normal file
View File

@@ -0,0 +1,87 @@
# Flask Digital Signage (simple)
Lightweight digital signage platform using **Flask + SQLite**.
## Features
- Central **admin** can manage companies, users, displays.
- Admin can **impersonate** any company user (no password).
- Company users can:
- Create playlists
- Add slides (image/video/webpage)
- Assign playlists to displays
- Displays are public **16:9 player webpages** suitable for kiosk browsers.
## Quickstart (Windows)
```bat
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
set FLASK_APP=app
flask init-db --admin-user admin --admin-pass admin
flask run --debug
```
If Flask can't discover the app automatically, use:
```bat
set FLASK_APP=app:create_app
flask run --debug
```
Open http://127.0.0.1:5000
## Notes
- SQLite DB is stored at `instance/signage.sqlite`.
- Uploaded files go to `app/static/uploads/`.
## SMTP / Forgot password
This project includes a simple **forgot password** flow. SMTP configuration is read from environment variables.
Recommended: put these in a local `.env` file in the repo root. Flask (via `python-dotenv`) will auto-load it on startup. `.env` is already gitignored.
You can start from `.env.example`:
```bat
copy .env.example .env
```
### Example
```bat
REM Option A: set env vars in the same terminal where you run `flask run`
set SMTP_HOST=smtp.strato.de
set SMTP_PORT=587
set SMTP_USERNAME=beheer@alphen.cloud
set SMTP_PASSWORD=***
set SMTP_FROM=beheer@alphen.cloud
set SMTP_STARTTLS=1
set SMTP_DEBUG=1
REM Option B: put the same keys/values in a .env file instead
```
Security note: do **not** commit SMTP passwords to the repo. Prefer secrets management and rotate leaked credentials.
### Troubleshooting mail delivery
If the reset email is not received:
1. Set `SMTP_DEBUG=1` and request a reset again.
2. Watch the Flask console output for SMTP responses / errors.
3. Verify:
- `SMTP_USERNAME` and `SMTP_FROM` are allowed by your provider.
- You are using STARTTLS (port 587).
- The recipient mailbox isnt filtering it (spam/quarantine).