Files
kadence/.env.example
T
timka123 1bdd65cc76
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
implement ota updates
2026-10-22 21:11:04 +03:00

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=