forked from panteLx/BetterShift
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
149 lines (110 loc) · 5.28 KB
/
Copy path.env.example
File metadata and controls
149 lines (110 loc) · 5.28 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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# ==============================================================================
# BetterShift Environment Configuration
# ==============================================================================
# Copy this file to .env and configure according to your needs
# Some values are pre-filled with defaults, others require your input
# ==============================================================================
# DATABASE
# ==============================================================================
DATABASE_URL=file:./data/sqlite.db
# ==============================================================================
# APPLICATION SETTINGS
# ==============================================================================
# Node.js environment (NOT supported in Docker)
NODE_ENV=production
HOSTNAME=0.0.0.0
# Internationalization
DEFAULT_LOCALE=en # Options: en, de, it
TZ=Europe/Berlin # Application timezone
# ==============================================================================
# AUTHENTICATION SYSTEM
# ==============================================================================
# Note: Auth is enabled by default for better security
# Core Auth Configuration
AUTH_ENABLED=true # Set to false to disable authentication
# REQUIRED if AUTH_ENABLED=true:
BETTER_AUTH_SECRET= # Generate with: npx @better-auth/cli secret
BETTER_AUTH_URL=http://localhost:3000 # Your application URL
# Security
# BETTER_AUTH_TRUSTED_ORIGINS=http://localhost:3000,https://yourdomain.com # Comma-separated list of allowed origins for CORS
# Access Control
ALLOW_USER_REGISTRATION=true # Enable/disable new user signups
ALLOW_GUEST_ACCESS=false # Allow viewing calendars without login
# Session Management (server-side only)
# SESSION_MAX_AGE=604800 # Session lifetime: 7 days (seconds)
# SESSION_UPDATE_AGE=86400 # Session refresh interval: 1 day (seconds)
# ==============================================================================
# OAUTH PROVIDERS
# ==============================================================================
# Note: CLIENT_IDs are exposed to client for UI detection
# CLIENT_SECRETs remain server-only
# Callback URLs: {BETTER_AUTH_URL}/api/auth/callback/{provider}
# Google OAuth
# GOOGLE_CLIENT_ID=
# GOOGLE_CLIENT_SECRET=
# GitHub OAuth
# GITHUB_CLIENT_ID=
# GITHUB_CLIENT_SECRET=
# Discord OAuth
# DISCORD_CLIENT_ID=
# DISCORD_CLIENT_SECRET=
# ==============================================================================
# CUSTOM OIDC PROVIDER
# ==============================================================================
# Note: Client IDs are exposed to client for UI detection
# Client Secrets remain server-only
# Callback URL: {BETTER_AUTH_URL}/api/auth/oauth2/callback/custom-oidc
# CUSTOM_OIDC_ENABLED=false
# CUSTOM_OIDC_NAME=Custom SSO # Display name on login button
# CUSTOM_OIDC_CLIENT_ID=
# CUSTOM_OIDC_CLIENT_SECRET=
# CUSTOM_OIDC_ISSUER=https://sso.example.com/.well-known/openid-configuration
# CUSTOM_OIDC_SCOPES=openid profile email # Space-separated list
# ==============================================================================
# GITHUB INTEGRATION
# ==============================================================================
# Used for version information endpoint
GITHUB_REPO_OWNER=panteLx
GITHUB_REPO_NAME=BetterShift
# Optional: Increases API rate limit from 60 to 5000 requests/hour
# GITHUB_TOKEN=
# ==============================================================================
# RATE LIMITING
# ==============================================================================
# All settings are optional - defaults shown in comments
# Authentication
# RATE_LIMIT_AUTH_REQUESTS=5 # Per IP
# RATE_LIMIT_AUTH_WINDOW=60 # 1 minute
# RATE_LIMIT_REGISTER_REQUESTS=3 # Per IP
# RATE_LIMIT_REGISTER_WINDOW=600 # 10 minutes
# RATE_LIMIT_PASSWORD_CHANGE_REQUESTS=3 # Per user
# RATE_LIMIT_PASSWORD_CHANGE_WINDOW=3600 # 1 hour
# Account Management
# RATE_LIMIT_ACCOUNT_DELETE_REQUESTS=1 # Per user
# RATE_LIMIT_ACCOUNT_DELETE_WINDOW=3600 # 1 hour
# RATE_LIMIT_UPLOAD_AVATAR_REQUESTS=5 # Per user
# RATE_LIMIT_UPLOAD_AVATAR_WINDOW=300 # 5 minutes
# Calendar Operations
# RATE_LIMIT_CALENDAR_CREATE_REQUESTS=10 # Per user
# RATE_LIMIT_CALENDAR_CREATE_WINDOW=3600 # 1 hour
# RATE_LIMIT_EXTERNAL_SYNC_REQUESTS=5 # Per calendar
# RATE_LIMIT_EXTERNAL_SYNC_WINDOW=300 # 5 minutes
# Export Features
# RATE_LIMIT_EXPORT_PDF_REQUESTS=10 # Per user
# RATE_LIMIT_EXPORT_PDF_WINDOW=600 # 10 minutes
# RATE_LIMIT_EXPORT_ICS_REQUESTS=20 # Per user
# RATE_LIMIT_EXPORT_ICS_WINDOW=600 # 10 minutes
# Calendar Access Tokens (Share Links)
# RATE_LIMIT_TOKEN_VALIDATION_REQUESTS=10 # Per IP
# RATE_LIMIT_TOKEN_VALIDATION_WINDOW=60 # 1 minute
# RATE_LIMIT_TOKEN_CREATION_REQUESTS=10 # Per calendar
# RATE_LIMIT_TOKEN_CREATION_WINDOW=3600 # 1 hour
# Admin Panel (per admin user)
# RATE_LIMIT_ADMIN_USER_MUTATIONS=10 # User ban/unban/delete/edit
# RATE_LIMIT_ADMIN_USER_MUTATIONS_WINDOW=60 # 1 minute
# RATE_LIMIT_ADMIN_PASSWORD_RESET=5 # Password reset for users
# RATE_LIMIT_ADMIN_PASSWORD_RESET_WINDOW=300 # 5 minutes
# RATE_LIMIT_ADMIN_BULK_OPERATIONS=3 # Bulk delete/transfer calendars
# RATE_LIMIT_ADMIN_BULK_OPERATIONS_WINDOW=300 # 5 minutes
# RATE_LIMIT_ADMIN_CALENDAR_MUTATIONS=10 # Calendar delete/transfer/edit
# RATE_LIMIT_ADMIN_CALENDAR_MUTATIONS_WINDOW=60 # 1 minute