lint / ruff (push) Successful in 14s
tests / desktop (push) Successful in 22s
docker / image (push) Successful in 43s
tests / web (push) Successful in 39s
tests / android-core (push) Successful in 1m1s
tests / backend (push) Successful in 2m12s
android / apk (push) Successful in 6m50s
92 lines
3.6 KiB
Bash
92 lines
3.6 KiB
Bash
# Kadence — copy to `.env` and fill in what you use.
|
|
#
|
|
# Everything here is optional except the database (which compose sets for you):
|
|
# the app boots with a working 25/5/15 timer and no integrations, and every
|
|
# value below can also be set later in Settings → the UI writes to the same
|
|
# place. These are *seeds*: they fill the settings document on first boot.
|
|
#
|
|
# The variable names are deliberately the ones from ~/code/jira-helper, so you
|
|
# can copy that .env straight across.
|
|
|
|
# ---- infrastructure --------------------------------------------------------
|
|
APP_PORT=8000
|
|
TIMEZONE=Europe/Moscow
|
|
POSTGRES_USER=kadence
|
|
POSTGRES_PASSWORD=change-me
|
|
POSTGRES_DB=kadence
|
|
|
|
# Allowed browser origins; leave * if the backend is only on your machine.
|
|
CORS_ORIGINS=*
|
|
|
|
# Set this the moment the backend is reachable from anywhere but localhost.
|
|
# Every /api call then needs it as an `X-API-Token` header (the UI asks once,
|
|
# the desktop app has a field for it in Settings).
|
|
API_TOKEN=
|
|
|
|
SCHEDULER_ENABLED=true
|
|
TELEGRAM_BOT_ENABLED=true
|
|
LOG_LEVEL=INFO
|
|
|
|
# ---- Android OTA updates ---------------------------------------------------
|
|
# The repository is private, so the backend reads Actions artifacts on the
|
|
# phone's behalf. Create a read-only token at
|
|
# https://git.timka.su/user/settings/applications and paste it here; without it
|
|
# /api/updates/android answers 503 and the app simply never offers an update.
|
|
GITEA_URL=https://git.timka.su
|
|
GITEA_REPO=timka123/kadence
|
|
GITEA_TOKEN=
|
|
GITEA_UPDATE_BRANCH=master
|
|
|
|
# ---- web login (closes the browser UI to everyone but you) -----------------
|
|
# Unset: the browser UI is as open as the API ("off by default" above). Set
|
|
# either of these and the login screen appears — the desktop app is untouched,
|
|
# it keeps using API_TOKEN.
|
|
#
|
|
# Password: set once, seeds a hash into the DB on first boot; from then on
|
|
# change it in Settings -> Access or with `make set-password` on the server.
|
|
AUTH_USERNAME=timka
|
|
AUTH_PASSWORD=
|
|
#
|
|
# Telegram login (the "Login Widget", not the bot): needs TELEGRAM_BOT_TOKEN
|
|
# above, this site's HTTPS domain registered with @BotFather via /setdomain,
|
|
# and your numeric Telegram user id (DM @userinfobot to get it — it is not
|
|
# the same as TELEGRAM_CHAT_ID when that is a group).
|
|
TELEGRAM_OWNER_ID=
|
|
TELEGRAM_BOT_USERNAME=
|
|
|
|
# ---- Jira (required for the Jira source) -----------------------------------
|
|
JIRA_BASE_URL=https://your-site.atlassian.net
|
|
JIRA_EMAIL=you@example.com
|
|
JIRA_API_TOKEN=
|
|
# Only your own issues: assignee = currentUser()
|
|
JIRA_EXTRA_JQL=
|
|
# Jira's "Start date" field id; differs per site (see /rest/api/3/field).
|
|
JIRA_START_DATE_FIELD=customfield_10015
|
|
|
|
# ---- Google Tasks (optional) -----------------------------------------------
|
|
# Get a refresh token with jira-helper's `uv run google-tasks-auth`.
|
|
GOOGLE_CLIENT_ID=
|
|
GOOGLE_CLIENT_SECRET=
|
|
GOOGLE_REFRESH_TOKEN=
|
|
# Comma-separated list titles or ids; blank = every list.
|
|
GOOGLE_TASKS_LISTS=
|
|
|
|
# ---- Todoist (optional) ----------------------------------------------------
|
|
# app.todoist.com → Settings → Integrations → Developer → API token.
|
|
TODOIST_API_TOKEN=
|
|
TODOIST_PROJECTS=
|
|
|
|
# ---- Laundry bookings (optional) -------------------------------------------
|
|
# The `sessionid` cookie from 4ka.inbicst.ru — see jira-helper's README.
|
|
LAUNDRY_SESSION=
|
|
LAUNDRY_BASE_URL=https://4ka.inbicst.ru
|
|
|
|
# ---- Telegram (optional, but it is the point) ------------------------------
|
|
# @BotFather gives you the token; message the bot once and read the chat id
|
|
# from https://api.telegram.org/bot<TOKEN>/getUpdates
|
|
TELEGRAM_BOT_TOKEN=
|
|
TELEGRAM_CHAT_ID=
|
|
|
|
# ---- Slack (optional fallback) ---------------------------------------------
|
|
SLACK_WEBHOOK_URL=
|