Skip to content

Commit 574d9d5

Browse files
committed
clarify readme and remove ambiguity around scrumboy.env
Signed-off-by: Mark Rai <markraidc@gmail.com>
1 parent f500110 commit 574d9d5

3 files changed

Lines changed: 31 additions & 26 deletions

File tree

README.md

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,47 +7,51 @@
77

88
## Quick Start
99

10-
### Option 1: Docker (recommended)
10+
Runs in seconds. No setup required.
1111

12-
**Prerequisites:** Docker + Docker Compose v2
12+
No `.env` file, TLS certificates, or encryption key are required to start the app.
13+
14+
### Run with Docker
1315

1416
```bash
15-
git clone https://github.com/markrai/scrumboy
16-
cd scrumboy
1717
docker compose up --build
1818
```
1919

20-
Open [http://127.0.0.1:8080](http://127.0.0.1:8080).
21-
22-
- **Listen address:** Compose maps `127.0.0.1:8080:8080` (localhost only on the host).
23-
- **Container env:** `DATA_DIR=/data`, `SQLITE_PATH=/data/app.db`, plus SQLite and body-size overrides as set in `docker-compose.yml`.
24-
- **Full mode (default):** create your first (bootstrap) user.
25-
- **Anonymous mode (optional):** set `SCRUMBOY_MODE=anonymous` in `docker-compose.yml` (under `environment:` for the service), then bring the stack up again.
26-
- **Data on host:** `./data` is mounted to `/data` in the container (your SQLite file lives under `./data` on the machine running Docker).
27-
28-
### Option 2: Run from source
20+
Open [http://localhost:8080](http://localhost:8080).
2921

30-
**Prerequisites:** Go 1.22+
22+
### Run from source
3123

3224
```bash
33-
git clone https://github.com/markrai/scrumboy
34-
cd scrumboy
3525
go run ./cmd/scrumboy
3626
```
3727

3828
Open [http://localhost:8080](http://localhost:8080).
3929

40-
**First run (full mode):** create your bootstrap user.
30+
## Optional Configuration
4131

42-
**Data & config:** by default the server uses `./data` and `./data/app.db` (relative to the process working directory-run from the repo root). Override paths and other settings with env vars (see **Config** below).
32+
### Environment variables
4333

44-
**Anonymous mode (quick test, no login):** in Bash, a variable can prefix a single command on one line (no `export` needed):
34+
Note: `scrumboy.env` is not a standard KEY=value file — it contains only the raw encryption key on a single line.
4535

46-
```bash
47-
SCRUMBOY_MODE=anonymous go run ./cmd/scrumboy
48-
```
36+
- The app does **not** automatically load `.env` files.
37+
- On Linux/macOS, export variables manually (for example: `export SCRUMBOY_ENCRYPTION_KEY=...`).
38+
- Windows helper scripts load `scrumboy.env` automatically.
39+
40+
### Encryption key (optional)
41+
42+
- `SCRUMBOY_ENCRYPTION_KEY` is **not** required for basic startup.
43+
- It is required for:
44+
- 2FA
45+
- Password reset flows
46+
- If an existing database already has 2FA-enabled users, startup fails without this key.
47+
48+
Generate a key with: `openssl rand -base64 32`
49+
50+
### TLS / HTTPS (optional)
4951

50-
Then open [http://localhost:8080](http://localhost:8080).
52+
- TLS is optional.
53+
- HTTPS is enabled only when both `SCRUMBOY_TLS_CERT` and `SCRUMBOY_TLS_KEY` files exist.
54+
- Otherwise, the server runs on HTTP by default.
5155

5256
### Frontend build note
5357

@@ -106,6 +110,7 @@ Simplicity of a light Kanban, with the power of structured systems: Roles, sprin
106110
# Config
107111

108112
Env vars and defaults are defined in `internal/config/config.go`. ResolveDataDir uses `DATA_DIR` and `SQLITE_PATH` as documented there.
113+
None of these are required for basic startup.
109114

110115
| Variable | Default (from code) |
111116
|----------|---------------------|

internal/version/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ package version
88
//
99
// Convention: Update when releasing (e.g., "1.0.0", "1.1.0"); match git tags
1010
// (e.g., tag "v1.0.0" should have Version = "1.0.0").
11-
const Version = "3.5.5"
11+
const Version = "3.5.6"
1212

1313
// ExportFormatVersion is the version of the backup/export data format.
1414
// Only increment this when the ExportData structure changes in a breaking way.

scrumboy.env.example

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copy to scrumboy.env and set your base64-encoded 32-byte key.
1+
# Optional: only needed for 2FA and password reset features.
22
# Generate one with: openssl rand -base64 32
33
# Or on Windows PowerShell: [Convert]::ToBase64String((1..32 | ForEach-Object { [byte](Get-Random -Maximum 256) }))
4-
# One line only, no variable name—just the key.
4+
SCRUMBOY_ENCRYPTION_KEY=REPLACE_WITH_BASE64_32_BYTE_KEY

0 commit comments

Comments
 (0)