# Psalmbord Online

## Run with Docker Compose

This project includes a `Dockerfile` + `docker-compose.yml` to run the Flask app behind gunicorn.

### Configure environment (optional)

Copy the example env file:

```bash
cp .env.example .env
```

### Start

```bash
docker compose up -d --build
```

Open:

- http://localhost:5000 (or `WEB_PORT`)

### Persisted data

Docker compose bind-mounts the following so data survives container rebuilds/recreates:

- `./instance/` -> SQLite database file (stored at `instance/liturgie.db`)
- `./static/uploads/` -> uploaded backgrounds/logos

### Default admin user

On startup, `init_db.py` ensures DB/tables exist and creates an admin user **only if it does not already exist**.

Defaults:

- Username: `admin`
- Password: `admin`

Override via `.env`:

```env
ADMIN_USERNAME=admin
ADMIN_PASSWORD=change-me
```

## Release / publish (git + docker push)

This repo includes helper scripts that:

1. Prompt for a version (e.g. `1.2.3`)
2. Create a git commit with message `Version <version>`
3. Push to: `https://git.alphen.cloud/bramval/PsalmbordOnlineCE`
4. Build + push Docker image to:
   - `git.alphen.cloud/bramval/psalmbordonlinece:<version>`
   - `git.alphen.cloud/bramval/psalmbordonlinece:latest`

### Recommended (cross-platform Python)

```bash
python release.py
```

### Windows (PowerShell)

```powershell
./release.ps1
```

### Linux / macOS (bash)

```bash
chmod +x ./release.sh
./release.sh
```

If Docker push fails due to authentication, run:

```bash
docker login git.alphen.cloud
```
