ui-syncup 0.2.4 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +296 -22502
- package/package.json +16 -22
- package/README.md +0 -85
- package/templates/Dockerfile.template +0 -64
- package/templates/README.md +0 -18
- package/templates/docker-compose.override.template.yml +0 -39
- package/templates/dockerignore.template +0 -63
- package/templates/env.local.template +0 -74
- package/templates/env.production.template +0 -84
package/package.json
CHANGED
|
@@ -1,35 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ui-syncup",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"homepage": "https://github.com/BYKHD/ui-syncup",
|
|
7
|
-
"repository": {
|
|
8
|
-
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/BYKHD/ui-syncup.git"
|
|
10
|
-
},
|
|
11
|
-
"bugs": {
|
|
12
|
-
"url": "https://github.com/BYKHD/ui-syncup/issues"
|
|
13
|
-
},
|
|
3
|
+
"version": "0.3.6",
|
|
4
|
+
"description": "Self-host UI SyncUp with a single command",
|
|
14
5
|
"bin": {
|
|
15
|
-
"ui-syncup": "dist/index.js"
|
|
6
|
+
"ui-syncup": "./dist/index.js"
|
|
16
7
|
},
|
|
17
8
|
"files": [
|
|
18
|
-
"dist"
|
|
19
|
-
"templates"
|
|
9
|
+
"dist"
|
|
20
10
|
],
|
|
21
|
-
"engines": {
|
|
22
|
-
"node": ">=20"
|
|
23
|
-
},
|
|
24
11
|
"scripts": {
|
|
25
12
|
"build": "tsup",
|
|
26
|
-
"
|
|
13
|
+
"dev": "tsup --watch"
|
|
27
14
|
},
|
|
28
15
|
"dependencies": {
|
|
29
|
-
"commander": "^12.0.0"
|
|
16
|
+
"commander": "^12.0.0",
|
|
17
|
+
"@inquirer/prompts": "^8.0.0",
|
|
18
|
+
"chalk": "^5.3.0"
|
|
30
19
|
},
|
|
31
20
|
"devDependencies": {
|
|
32
|
-
"tsup": "^8.
|
|
33
|
-
"typescript": "^5"
|
|
34
|
-
|
|
21
|
+
"tsup": "^8.0.0",
|
|
22
|
+
"typescript": "^5.0.0",
|
|
23
|
+
"@types/node": "^20.0.0"
|
|
24
|
+
},
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">=20"
|
|
27
|
+
},
|
|
28
|
+
"license": "MIT"
|
|
35
29
|
}
|
package/README.md
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# ui-syncup
|
|
2
|
-
|
|
3
|
-
CLI for managing self-hosted [UI SyncUp](https://github.com/BYKHD/ui-syncup) instances.
|
|
4
|
-
|
|
5
|
-
UI SyncUp is a visual feedback and issue tracking platform for design-to-development collaboration — pin annotations on mockups, create issues from visual feedback, and track them through a structured workflow.
|
|
6
|
-
|
|
7
|
-
## Requirements
|
|
8
|
-
|
|
9
|
-
- **Node.js** ≥ 20
|
|
10
|
-
- **Docker** — required by `ui-syncup up` (Supabase runs inside Docker)
|
|
11
|
-
- **Bun** — required to run the full application after `init`
|
|
12
|
-
- **Supabase CLI** — installed automatically if missing, or install manually: `brew install supabase/tap/supabase`
|
|
13
|
-
|
|
14
|
-
## Installation
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
npm install -g ui-syncup
|
|
18
|
-
# or
|
|
19
|
-
bun add -g ui-syncup
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Quick Start
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
# 1. Clone the repository into a new folder
|
|
26
|
-
ui-syncup init
|
|
27
|
-
|
|
28
|
-
# 2. Start all services (Supabase, migrations, admin user)
|
|
29
|
-
ui-syncup up
|
|
30
|
-
|
|
31
|
-
# 3. Start the development server (from inside the project folder)
|
|
32
|
-
bun dev
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
Open [http://localhost:3000](http://localhost:3000) in your browser.
|
|
36
|
-
|
|
37
|
-
## Commands
|
|
38
|
-
|
|
39
|
-
| Command | Description |
|
|
40
|
-
|---------|-------------|
|
|
41
|
-
| `ui-syncup init` | Initialize a new project — creates `.env` files, storage dirs, and config |
|
|
42
|
-
| `ui-syncup up` | Start all services: Supabase, run migrations, create admin user |
|
|
43
|
-
| `ui-syncup down` | Stop all services |
|
|
44
|
-
| `ui-syncup reset` | Reset data to a clean state (preserves config files) |
|
|
45
|
-
| `ui-syncup purge` | Full cleanup — removes all data, volumes, and config |
|
|
46
|
-
|
|
47
|
-
## Global Options
|
|
48
|
-
|
|
49
|
-
| Flag | Description |
|
|
50
|
-
|------|-------------|
|
|
51
|
-
| `-v, --version` | Display CLI version |
|
|
52
|
-
| `--verbose` | Enable verbose output for debugging |
|
|
53
|
-
| `--no-color` | Disable colored output (useful in CI environments) |
|
|
54
|
-
|
|
55
|
-
## Init Modes
|
|
56
|
-
|
|
57
|
-
`ui-syncup init` supports two setup modes:
|
|
58
|
-
|
|
59
|
-
- **Local** — sets up a local development environment with MinIO (S3-compatible storage)
|
|
60
|
-
- **Production** — configures production with Cloudflare R2/AWS S3 and transactional email (Resend or SMTP)
|
|
61
|
-
|
|
62
|
-
## Examples
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
# Initialize in local mode without prompts
|
|
66
|
-
ui-syncup init --mode local
|
|
67
|
-
|
|
68
|
-
# Start with verbose output for debugging
|
|
69
|
-
ui-syncup up --verbose
|
|
70
|
-
|
|
71
|
-
# Skip migrations on startup (if already up to date)
|
|
72
|
-
ui-syncup up --skip-migrations
|
|
73
|
-
|
|
74
|
-
# Full reset (requires typing the confirmation phrase)
|
|
75
|
-
ui-syncup purge
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Repository
|
|
79
|
-
|
|
80
|
-
Source code, issue tracker, and full documentation:
|
|
81
|
-
[github.com/BYKHD/ui-syncup](https://github.com/BYKHD/ui-syncup)
|
|
82
|
-
|
|
83
|
-
## License
|
|
84
|
-
|
|
85
|
-
MIT
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# ============================================================================
|
|
2
|
-
# Multi-Stage Production Dockerfile for UI SyncUp
|
|
3
|
-
# ============================================================================
|
|
4
|
-
# Generated by: bunx ui-syncup init --mode production
|
|
5
|
-
# Optimized for self-hosting on AWS, Dokploy, Coolify, Railway, Fly.io
|
|
6
|
-
#
|
|
7
|
-
# Build: docker build -t ui-syncup .
|
|
8
|
-
# Run: docker run -p 3000:3000 --env-file .env.production ui-syncup
|
|
9
|
-
# ============================================================================
|
|
10
|
-
|
|
11
|
-
# ---------------------------------------------------------------------------
|
|
12
|
-
# Stage 1: Install dependencies
|
|
13
|
-
# ---------------------------------------------------------------------------
|
|
14
|
-
FROM oven/bun:1-alpine AS deps
|
|
15
|
-
|
|
16
|
-
WORKDIR /app
|
|
17
|
-
|
|
18
|
-
# Copy dependency manifests only (cache layer)
|
|
19
|
-
COPY package.json bun.lock* ./
|
|
20
|
-
|
|
21
|
-
RUN bun install --frozen-lockfile --production=false
|
|
22
|
-
|
|
23
|
-
# ---------------------------------------------------------------------------
|
|
24
|
-
# Stage 2: Build the application
|
|
25
|
-
# ---------------------------------------------------------------------------
|
|
26
|
-
FROM oven/bun:1-alpine AS builder
|
|
27
|
-
|
|
28
|
-
WORKDIR /app
|
|
29
|
-
|
|
30
|
-
COPY --from=deps /app/node_modules ./node_modules
|
|
31
|
-
COPY . .
|
|
32
|
-
|
|
33
|
-
# Next.js standalone output collects only the files needed for production
|
|
34
|
-
ENV NEXT_TELEMETRY_DISABLED=1
|
|
35
|
-
ENV NODE_ENV=production
|
|
36
|
-
|
|
37
|
-
RUN bun run build
|
|
38
|
-
|
|
39
|
-
# ---------------------------------------------------------------------------
|
|
40
|
-
# Stage 3: Production runtime (minimal image)
|
|
41
|
-
# ---------------------------------------------------------------------------
|
|
42
|
-
FROM node:20-alpine AS runner
|
|
43
|
-
|
|
44
|
-
WORKDIR /app
|
|
45
|
-
|
|
46
|
-
ENV NODE_ENV=production
|
|
47
|
-
ENV NEXT_TELEMETRY_DISABLED=1
|
|
48
|
-
ENV HOSTNAME="0.0.0.0"
|
|
49
|
-
ENV PORT=3000
|
|
50
|
-
|
|
51
|
-
# Create non-root user for security
|
|
52
|
-
RUN addgroup --system --gid 1001 nodejs && \
|
|
53
|
-
adduser --system --uid 1001 nextjs
|
|
54
|
-
|
|
55
|
-
# Copy standalone output
|
|
56
|
-
COPY --from=builder /app/public ./public
|
|
57
|
-
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
|
|
58
|
-
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
|
|
59
|
-
|
|
60
|
-
USER nextjs
|
|
61
|
-
|
|
62
|
-
EXPOSE 3000
|
|
63
|
-
|
|
64
|
-
CMD ["node", "server.js"]
|
package/templates/README.md
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# CLI Templates
|
|
2
|
-
|
|
3
|
-
This directory contains template files used by the `init` command to generate environment and configuration files.
|
|
4
|
-
|
|
5
|
-
## Files
|
|
6
|
-
|
|
7
|
-
- `env.local.template` - Local development environment template (MinIO S3-compatible storage)
|
|
8
|
-
- `env.production.template` - Production environment template
|
|
9
|
-
- `docker-compose.override.template.yml` - Docker Compose customization template
|
|
10
|
-
|
|
11
|
-
## Template Syntax
|
|
12
|
-
|
|
13
|
-
Templates use `{{VARIABLE}}` placeholders that are replaced during file generation:
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
DATABASE_URL="{{DATABASE_URL}}"
|
|
17
|
-
BETTER_AUTH_SECRET="{{RANDOM_SECRET}}"
|
|
18
|
-
```
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# ============================================================================
|
|
2
|
-
# Docker Compose Override for Local Development
|
|
3
|
-
# ============================================================================
|
|
4
|
-
# Generated by: ui-syncup init
|
|
5
|
-
#
|
|
6
|
-
# Use this file to customize your local development environment.
|
|
7
|
-
# This file is merged with the main docker-compose.yml.
|
|
8
|
-
#
|
|
9
|
-
# Common customizations:
|
|
10
|
-
# - Expose additional ports
|
|
11
|
-
# - Mount additional volumes
|
|
12
|
-
# - Override environment variables
|
|
13
|
-
# - Add development-only services
|
|
14
|
-
#
|
|
15
|
-
# DO NOT commit this file to version control.
|
|
16
|
-
# ============================================================================
|
|
17
|
-
|
|
18
|
-
version: "3.8"
|
|
19
|
-
|
|
20
|
-
services:
|
|
21
|
-
# Application service – SMTP environment variable pass-through
|
|
22
|
-
# Uncomment and populate SMTP_* variables in your .env.local to route
|
|
23
|
-
# emails through a self-hosted mail server instead of Resend.
|
|
24
|
-
app:
|
|
25
|
-
environment:
|
|
26
|
-
- SMTP_HOST=${SMTP_HOST:-}
|
|
27
|
-
- SMTP_PORT=${SMTP_PORT:-}
|
|
28
|
-
- SMTP_USER=${SMTP_USER:-}
|
|
29
|
-
- SMTP_PASSWORD=${SMTP_PASSWORD:-}
|
|
30
|
-
- SMTP_FROM_EMAIL=${SMTP_FROM_EMAIL:-}
|
|
31
|
-
- SMTP_SECURE=${SMTP_SECURE:-}
|
|
32
|
-
|
|
33
|
-
# Example: Add a local mail server for testing
|
|
34
|
-
# mailpit:
|
|
35
|
-
# image: axllent/mailpit:latest
|
|
36
|
-
# ports:
|
|
37
|
-
# - "1025:1025" # SMTP
|
|
38
|
-
# - "8025:8025" # Web UI (http://localhost:8025)
|
|
39
|
-
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# ============================================================================
|
|
2
|
-
# Docker Ignore – UI SyncUp Production Build
|
|
3
|
-
# ============================================================================
|
|
4
|
-
# Generated by: bunx ui-syncup init --mode production
|
|
5
|
-
# Keeps Docker build context lean and secure.
|
|
6
|
-
# ============================================================================
|
|
7
|
-
|
|
8
|
-
# Dependencies (re-installed inside Docker)
|
|
9
|
-
node_modules
|
|
10
|
-
.bun
|
|
11
|
-
|
|
12
|
-
# Build output (rebuilt inside Docker)
|
|
13
|
-
.next
|
|
14
|
-
out
|
|
15
|
-
|
|
16
|
-
# Version control
|
|
17
|
-
.git
|
|
18
|
-
.gitignore
|
|
19
|
-
|
|
20
|
-
# Environment files (mounted at runtime, never baked in)
|
|
21
|
-
.env*
|
|
22
|
-
!.env.example
|
|
23
|
-
|
|
24
|
-
# Development & testing
|
|
25
|
-
tests
|
|
26
|
-
**/*.test.ts
|
|
27
|
-
**/*.test.tsx
|
|
28
|
-
**/*.spec.ts
|
|
29
|
-
**/*.spec.tsx
|
|
30
|
-
**/__tests__
|
|
31
|
-
coverage
|
|
32
|
-
playwright-report
|
|
33
|
-
test-results
|
|
34
|
-
|
|
35
|
-
# Documentation & AI context
|
|
36
|
-
docs
|
|
37
|
-
.ai
|
|
38
|
-
.agents
|
|
39
|
-
.gemini
|
|
40
|
-
*.md
|
|
41
|
-
!README.md
|
|
42
|
-
|
|
43
|
-
# IDE & tools
|
|
44
|
-
.vscode
|
|
45
|
-
.idea
|
|
46
|
-
*.swp
|
|
47
|
-
*.swo
|
|
48
|
-
*~
|
|
49
|
-
|
|
50
|
-
# Storage (runtime data)
|
|
51
|
-
storage
|
|
52
|
-
|
|
53
|
-
# Supabase local dev
|
|
54
|
-
supabase/.temp
|
|
55
|
-
|
|
56
|
-
# Docker files (don't recurse)
|
|
57
|
-
Dockerfile
|
|
58
|
-
docker-compose*.yml
|
|
59
|
-
.dockerignore
|
|
60
|
-
|
|
61
|
-
# Misc
|
|
62
|
-
*.log
|
|
63
|
-
tmp
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
# ============================================================================
|
|
2
|
-
# UI SyncUp Local Development Environment
|
|
3
|
-
# ============================================================================
|
|
4
|
-
# Generated by: ui-syncup init
|
|
5
|
-
# Mode: Local Development (Supabase CLI + MinIO)
|
|
6
|
-
#
|
|
7
|
-
# This file contains safe defaults for local development.
|
|
8
|
-
# DO NOT commit this file to version control.
|
|
9
|
-
# ============================================================================
|
|
10
|
-
|
|
11
|
-
# Application
|
|
12
|
-
NODE_ENV="development"
|
|
13
|
-
NEXT_PUBLIC_APP_URL="http://localhost:3000"
|
|
14
|
-
NEXT_PUBLIC_API_URL="http://localhost:3000/api"
|
|
15
|
-
|
|
16
|
-
# Database (Supabase Local)
|
|
17
|
-
DATABASE_URL="postgresql://postgres:postgres@127.0.0.1:54322/postgres"
|
|
18
|
-
DIRECT_URL="postgresql://postgres:postgres@127.0.0.1:54322/postgres"
|
|
19
|
-
|
|
20
|
-
# Supabase Local (NEXT_PUBLIC_* for browser access)
|
|
21
|
-
NEXT_PUBLIC_SUPABASE_URL="http://127.0.0.1:54321"
|
|
22
|
-
NEXT_PUBLIC_SUPABASE_ANON_KEY="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24iLCJleHAiOjE5ODM4MTI5OTZ9.CRXP1A7WOeoJeXxjNni43kdQwgnWNReilDMblYTn_I0"
|
|
23
|
-
SUPABASE_SERVICE_ROLE_KEY="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImV4cCI6MTk4MzgxMjk5Nn0.EGIM96RAZx35lJzdJsyH-qQwv8Hdp7fsn3W0YpN81IU"
|
|
24
|
-
|
|
25
|
-
# Storage (MinIO S3-compatible local storage)
|
|
26
|
-
# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD are generated by 'ui-syncup init'.
|
|
27
|
-
# To regenerate, run: ui-syncup reset
|
|
28
|
-
STORAGE_ENDPOINT="http://localhost:9000"
|
|
29
|
-
STORAGE_REGION="us-east-1"
|
|
30
|
-
STORAGE_ACCESS_KEY="{{MINIO_ROOT_USER}}"
|
|
31
|
-
STORAGE_SECRET_KEY="{{MINIO_ROOT_PASSWORD}}"
|
|
32
|
-
STORAGE_BUCKET="ui-syncup-attachments"
|
|
33
|
-
MINIO_ROOT_USER="{{MINIO_ROOT_USER}}"
|
|
34
|
-
MINIO_ROOT_PASSWORD="{{MINIO_ROOT_PASSWORD}}"
|
|
35
|
-
|
|
36
|
-
# Auth (better-auth)
|
|
37
|
-
BETTER_AUTH_SECRET="{{BETTER_AUTH_SECRET}}"
|
|
38
|
-
BETTER_AUTH_URL="http://localhost:3000"
|
|
39
|
-
|
|
40
|
-
# ============================================================================
|
|
41
|
-
# Optional: OAuth Providers
|
|
42
|
-
# ============================================================================
|
|
43
|
-
# Leave empty for email/password only authentication
|
|
44
|
-
# Configure these to enable social login
|
|
45
|
-
|
|
46
|
-
# Google OAuth (https://console.cloud.google.com/apis/credentials)
|
|
47
|
-
# Set all three values to enable Google OAuth.
|
|
48
|
-
GOOGLE_CLIENT_ID=""
|
|
49
|
-
GOOGLE_CLIENT_SECRET=""
|
|
50
|
-
GOOGLE_REDIRECT_URI=""
|
|
51
|
-
|
|
52
|
-
# Microsoft OAuth (https://portal.azure.com)
|
|
53
|
-
MICROSOFT_CLIENT_ID=""
|
|
54
|
-
MICROSOFT_CLIENT_SECRET=""
|
|
55
|
-
MICROSOFT_TENANT_ID="common"
|
|
56
|
-
|
|
57
|
-
# ============================================================================
|
|
58
|
-
# Optional: Email Service
|
|
59
|
-
# ============================================================================
|
|
60
|
-
# Leave empty to use console logging (emails printed to terminal).
|
|
61
|
-
# Configure ONE of the two options below:
|
|
62
|
-
|
|
63
|
-
# Option A: Resend (https://resend.com/api-keys)
|
|
64
|
-
RESEND_API_KEY=""
|
|
65
|
-
RESEND_FROM_EMAIL=""
|
|
66
|
-
|
|
67
|
-
# Option B: SMTP (self-hosted mail server – Mailcow, Mailpit, Postfix, AWS SES, etc.)
|
|
68
|
-
# When SMTP_HOST is set, all fields below are required.
|
|
69
|
-
# SMTP_HOST=""
|
|
70
|
-
# SMTP_PORT="587"
|
|
71
|
-
# SMTP_USER=""
|
|
72
|
-
# SMTP_PASSWORD=""
|
|
73
|
-
# SMTP_FROM_EMAIL=""
|
|
74
|
-
# SMTP_SECURE="false"
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
# ============================================================================
|
|
2
|
-
# UI SyncUp Production Environment
|
|
3
|
-
# ============================================================================
|
|
4
|
-
# Generated by: ui-syncup init
|
|
5
|
-
# Mode: Production
|
|
6
|
-
#
|
|
7
|
-
# Fill in the placeholders below with your production credentials.
|
|
8
|
-
# DO NOT commit this file to version control.
|
|
9
|
-
# ============================================================================
|
|
10
|
-
|
|
11
|
-
# ============================================================================
|
|
12
|
-
# Required Configuration
|
|
13
|
-
# ============================================================================
|
|
14
|
-
|
|
15
|
-
# Node Environment
|
|
16
|
-
NODE_ENV="production"
|
|
17
|
-
|
|
18
|
-
# Application URLs
|
|
19
|
-
NEXT_PUBLIC_APP_URL="{{APP_URL}}"
|
|
20
|
-
NEXT_PUBLIC_API_URL="{{APP_URL}}/api"
|
|
21
|
-
|
|
22
|
-
# Database (External PostgreSQL)
|
|
23
|
-
# Get these from your Supabase dashboard or PostgreSQL provider
|
|
24
|
-
DATABASE_URL="{{DATABASE_URL}}"
|
|
25
|
-
DIRECT_URL="{{DIRECT_URL}}"
|
|
26
|
-
|
|
27
|
-
# Authentication (better-auth)
|
|
28
|
-
BETTER_AUTH_SECRET="{{BETTER_AUTH_SECRET}}"
|
|
29
|
-
BETTER_AUTH_URL="{{APP_URL}}"
|
|
30
|
-
|
|
31
|
-
# Storage (S3-compatible / R2)
|
|
32
|
-
# Production uses Unified S3-compatible configuration
|
|
33
|
-
STORAGE_ENDPOINT="{{STORAGE_ENDPOINT}}"
|
|
34
|
-
STORAGE_REGION="{{STORAGE_REGION}}"
|
|
35
|
-
STORAGE_ACCESS_KEY_ID="{{STORAGE_ACCESS_KEY_ID}}"
|
|
36
|
-
STORAGE_SECRET_ACCESS_KEY="{{STORAGE_SECRET_ACCESS_KEY}}"
|
|
37
|
-
|
|
38
|
-
# Storage Buckets
|
|
39
|
-
STORAGE_ATTACHMENTS_BUCKET="ui-syncup-attachments"
|
|
40
|
-
STORAGE_ATTACHMENTS_PUBLIC_URL="{{STORAGE_ENDPOINT}}/ui-syncup-attachments"
|
|
41
|
-
STORAGE_MEDIA_BUCKET="ui-syncup-media"
|
|
42
|
-
STORAGE_MEDIA_PUBLIC_URL="{{STORAGE_ENDPOINT}}/ui-syncup-media"
|
|
43
|
-
|
|
44
|
-
# ============================================================================
|
|
45
|
-
# Optional Configuration
|
|
46
|
-
# ============================================================================
|
|
47
|
-
|
|
48
|
-
# Supabase (if using Supabase Cloud)
|
|
49
|
-
# NEXT_PUBLIC_SUPABASE_URL="{{SUPABASE_URL}}"
|
|
50
|
-
# NEXT_PUBLIC_SUPABASE_ANON_KEY="{{SUPABASE_ANON_KEY}}"
|
|
51
|
-
# SUPABASE_SERVICE_ROLE_KEY="{{SUPABASE_SERVICE_ROLE_KEY}}"
|
|
52
|
-
|
|
53
|
-
# Email (Resend - Cloud deployments)
|
|
54
|
-
# Required in production unless SMTP is configured below.
|
|
55
|
-
# RESEND_API_KEY="{{RESEND_API_KEY}}"
|
|
56
|
-
# RESEND_FROM_EMAIL="{{RESEND_FROM_EMAIL}}"
|
|
57
|
-
|
|
58
|
-
# Email (SMTP - Self-hosted deployments, alternative to Resend)
|
|
59
|
-
# When SMTP_HOST is set, all fields below are required.
|
|
60
|
-
# SMTP_HOST="{{SMTP_HOST}}"
|
|
61
|
-
# SMTP_PORT="587"
|
|
62
|
-
# SMTP_USER="{{SMTP_USER}}"
|
|
63
|
-
# SMTP_PASSWORD="{{SMTP_PASSWORD}}"
|
|
64
|
-
# SMTP_FROM_EMAIL="{{SMTP_FROM_EMAIL}}"
|
|
65
|
-
# SMTP_SECURE="false"
|
|
66
|
-
|
|
67
|
-
# Google OAuth
|
|
68
|
-
# GOOGLE_CLIENT_ID=""
|
|
69
|
-
# GOOGLE_CLIENT_SECRET=""
|
|
70
|
-
# GOOGLE_REDIRECT_URI="{{APP_URL}}/api/auth/callback/google"
|
|
71
|
-
|
|
72
|
-
# Microsoft OAuth
|
|
73
|
-
# MICROSOFT_CLIENT_ID=""
|
|
74
|
-
# MICROSOFT_CLIENT_SECRET=""
|
|
75
|
-
# MICROSOFT_TENANT_ID="common"
|
|
76
|
-
|
|
77
|
-
# Atlassian OAuth
|
|
78
|
-
# ATLASSIAN_CLIENT_ID=""
|
|
79
|
-
# ATLASSIAN_CLIENT_SECRET=""
|
|
80
|
-
|
|
81
|
-
# Feature Flags
|
|
82
|
-
# NEXT_PUBLIC_ENABLE_ANALYTICS="true"
|
|
83
|
-
# NEXT_PUBLIC_ENABLE_DEBUG="false"
|
|
84
|
-
# NEXT_PUBLIC_ENABLE_HARD_DELETE="false"
|