-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.env.example
More file actions
115 lines (90 loc) · 4.45 KB
/
Copy path.env.example
File metadata and controls
115 lines (90 loc) · 4.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# Generate a unique local password before starting Docker Compose, for example:
# openssl rand -base64 32
# URL-encode that password before placing it in either connection URL. Do not
# reuse these local development values in a deployed environment.
POSTGRES_PASSWORD=
# PostgreSQL connection used for projects, timers, shares, notification outbox,
# delivery logs, and push subscriptions. Docker Compose provides this database.
DATABASE_URL=
# Direct PostgreSQL connection for migrations. In local Docker this can match
# DATABASE_URL; managed deployments should point DIRECT_URL at the direct endpoint.
DIRECT_URL=
# Per-process PostgreSQL pool settings. Keep the pool small in serverless SSR;
# total database usage is this maximum multiplied by active instances.
DATABASE_POOL_MAX=5
DATABASE_CONNECT_TIMEOUT_MS=5000
DATABASE_IDLE_TIMEOUT_MS=10000
DATABASE_APPLICATION_NAME=tickward-ssr
# Upstash-compatible Redis REST URL used for rate limiting. Docker Compose
# provides this local endpoint.
UPSTASH_REDIS_REST_URL=http://redis-http:80
# Dummy local token used by the Docker Compose Redis REST proxy.
UPSTASH_REDIS_REST_TOKEN=local-dev-token-change-me
# Published tickward app image used by Docker Compose. Docker Hub and GHCR
# contain the same release image.
TICKWARD_IMAGE=docker.io/corgicorner/tickward:0.14.4
# TICKWARD_IMAGE=ghcr.io/corgicorner/tickward:0.14.4
# Public URL for metadata, sitemap, robots.txt, and generated social images.
SITE_URL=http://localhost:3000
# Docs proxy target for the local /docs route.
TICKWARD_DOCS_ORIGIN=https://tickward.com/docs
# Optional remote MCP endpoint shown in account settings when configured.
# TICKWARD_MCP_REMOTE_URL=https://mcp.example.com/mcp
# Set true only when the app is behind a trusted proxy such as Cloudflare.
# Without this, public API clients share the ip:unknown rate-limit bucket.
# TICKWARD_TRUST_PROXY_HEADERS=true
# Optional environment label included in webhook payloads.
# TICKWARD_ENVIRONMENT=development
# Optional scheduler secret for webhook dispatch and retry.
# TICKWARD_SCHEDULER_SECRET=change-me
# Optional base64-encoded 32-byte key used to encrypt webhook signing
# secrets at rest. Generate with `openssl rand -base64 32`.
# TICKWARD_ENCRYPTION_KEY=
# Optional self-hosting escape hatch. Leave disabled unless your deployment
# must deliver webhooks to trusted internal services.
# TICKWARD_WEBHOOK_ALLOW_PRIVATE_NETWORKS=false
# Optional webhook abuse limits. Defaults: 3 active endpoints per account,
# auto-disable after 25 consecutive failed delivery attempts.
# TICKWARD_WEBHOOK_MAX_ENDPOINTS=3
# TICKWARD_WEBHOOK_AUTO_DISABLE_FAILURES=25
# Optional timer reminder email caps. In-app reminders are not affected.
# Setting either cap to 0 disables reminder emails entirely.
# TICKWARD_REMINDER_EMAIL_DAILY_CAP=100
# TICKWARD_REMINDER_EMAIL_DAILY_CAP_PER_USER=10
# Optional ownerless project cleanup during scheduler ticks. Set a positive
# day count to enable; unset or 0 keeps cleanup disabled.
# TICKWARD_OWNERLESS_PROJECT_RETENTION_DAYS=30
# Public plan limits embedded into the browser bundle at build time.
NEXT_PUBLIC_TICKWARD_MAX_TIMERS=20
NEXT_PUBLIC_TICKWARD_MAX_TIMERS_PER_SPACE=20
NEXT_PUBLIC_TICKWARD_MAX_SPACES=2
# Optional Unsplash API access key. Leave empty to disable Unsplash search.
UNSPLASH_ACCESS_KEY=
# Optional Plausible Analytics script.
# NEXT_PUBLIC_PLAUSIBLE_URL=
# NEXT_PUBLIC_PLAUSIBLE_DOMAIN=
# Optional Sentry DSN for browser error monitoring. When set, the client loads
# the Sentry Loader Script from its CDN (no build-time dependency) and forwards
# client errors to your project. Works with Sentry SaaS or a self-hosted Sentry.
# NEXT_PUBLIC_SENTRY_DSN=
# Optional account sign-in. Email OTP requires both Better Auth and Resend.
# BETTER_AUTH_URL=http://localhost:3000
# BETTER_AUTH_SECRET=change-me
# RESEND_API_KEY=
# RESEND_FROM="Tickward <no-reply@example.com>"
# RESEND_REPLY_TO=contact@example.com
# Optional bootstrap seed. Run `npm run db:seed` after migrations to create an
# admin user plus the screenshot-friendly demo project in PostgreSQL.
# SEED_ADMIN_EMAIL=admin@example.com
# SEED_ADMIN_NAME=Admin
# SEED_ADMIN_ID=
# SEED_DEMO_PROJECT_ID=demo_big_days
# SEED_DEMO_RESTORE_KEY=demoBigDays2026
# SEED_DEMO_BASE_DATE=
# Optional Web Push VAPID keys for push-capable deployments.
# WEB_PUSH_VAPID_PUBLIC_KEY=
# WEB_PUSH_VAPID_PRIVATE_KEY=
# WEB_PUSH_VAPID_SUBJECT=
# Advanced: only for separate PostgreSQL migration/runtime roles.
# TICKWARD_DATABASE_RUNTIME_ROLE=
# TICKWARD_DATABASE_SCHEMA=