-
Notifications
You must be signed in to change notification settings - Fork 2
Admin Settings
Mansi Visuals edited this page Mar 24, 2026
·
5 revisions
Configure in the admin panel under Settings.
- Company Name: shown in emails and comments.
- App Domain: required for passkeys and deep links (e.g.,
https://yourdomain.com).
- Logo upload: SVG format, max 300KB. Displayed in email headers and admin panel.
- Accent colors: 10 preset color options.
- Default theme: select the default theme for new visitors.
- Email header style: NONE, LOGO_ONLY, NAME_ONLY, or LOGO_AND_NAME.
- Language: select the UI language (English, Dutch, German). Applies globally to all UI and emails.
- Companies: create and manage client companies.
- Contacts: associate contacts with companies.
- Auto-sync: contacts are automatically created from project recipients.
- 12 template types: customize emails for different notification events.
- NEW_VERSION — sent to clients when a new video version is uploaded.
- PROJECT_APPROVED — sent to clients when their project is approved.
- COMMENT_NOTIFICATION — sent to clients when a new comment is posted.
- ADMIN_COMMENT_NOTIFICATION — sent to admins when a client comments.
- ADMIN_PROJECT_APPROVED — sent to admins when a project is approved.
- PROJECT_GENERAL — general project notification.
- PASSWORD — sent to clients with their share link password.
- PASSWORD_RESET — sent to admins for password reset requests.
- DUE_DATE_REMINDER — sent to admins when a project deadline is approaching.
- OTP_VERIFICATION — sent to recipients when OTP verification is required.
- CLIENT_ACTIVITY_SUMMARY — scheduled summary sent to client recipients.
- ADMIN_ACTIVITY_SUMMARY — scheduled summary sent to admins.
- Placeholder system: dynamic values (project name, client name, links, etc.).
- Preview: preview rendered templates before saving.
- Enable/disable: toggle individual templates on or off.
Email settings
- SMTP server, port, username, password, from address.
- Security mode: STARTTLS (default), TLS, or NONE.
- Admin notification schedule: IMMEDIATE, HOURLY, DAILY, WEEKLY (with configurable time and day).
- Client notification schedule: configurable per project (DAILY/WEEKLY with specific time and day).
- Client email unsubscribe per recipient (project recipients list reflects status).
Push notifications (external)
- Providers: Gotify, ntfy, Pushover, Telegram.
- Implemented via Apprise inside app/worker image.
- Delivered by BullMQ worker (
external-notifications). - Deep links use the configured App Domain.
Browser push notifications
- Per-device subscriptions: each device registers independently.
- Event filtering: choose which events trigger browser push notifications.
- VAPID: auto-generated key pair for Web Push protocol.
- Test notifications: send a test push to verify device registration.
Events
- Failed admin login attempts (email, method, link).
- Unauthorized OTP requests (project, email, method, link).
- Successful share access (project, method, optional client email, link).
- Client comments (project, video, timecode, client, comment preview, deep link).
- Video approvals (project, action, client, video list, link).
- Due date reminders (project, due date, reminder type).
Notes
- IP and user-agent details are stored in Security Events.
- Worker logs:
docker compose logs -f worker | rg EXTERNAL-NOTIFICATIONS. - Verbose logs: set
DEBUG_EXTERNAL_NOTIFICATIONS=true(orDEBUG_WORKER=true). - Unsubscribe links open
/unsubscribe#token=...(token stays out of server access logs).
- Preview resolution: 720p (default) or 1080p.
- Watermark enabled and text for preview videos.
- Watermark opacity: 10-100% (default: 30%).
- Watermark font size: small, medium, or large.
- Watermark positions: center, top-left, top-right, bottom-left, bottom-right (multiple positions supported via comma separation).
- Skip transcoding: serve original files directly without FFmpeg processing.
- Max upload size: 1-100 GB per file (default: 1 GB).
- Max comment attachments: 1-50 files per comment (default: 10).
- Auto-approve project when all videos approved (default: true).
- Use preview quality for approved playback instead of original (default: false).
- Allow client asset uploads on comments (default: false).
- Show interactive client tutorial for first-time visitors (default: true).
Access protection
- Hotlink protection: DISABLED, LOG_ONLY (default), or BLOCK_STRICT.
- Client session timeout (minutes/hours/days/weeks).
- Admin session inactivity timeout (configurable value + unit, max 24 hours). Separate from client session timeout.
- Share token TTL override: optional override for share JWT expiry (60-86400 seconds). When set, overrides the session timeout for share tokens specifically.
- Max password attempts before lockout (default: 5).
IP & domain blocking
- IP blocking: block specific IP addresses from accessing the platform.
- Domain blocking: block access from specific email domains.
Rate limiting
- IP rate limit (requests/minute per IP).
- Share session rate limit (requests/minute per share session).
HTTPS enforcement
- HTTPS Enabled controls HSTS header (default: true).
-
HTTPS_ENABLEDenv var overrides this setting.
Logging
- Track analytics for page visits/downloads.
- Track security logs for events.
- Show Security Events dashboard in admin navigation.
- Privacy disclosure: enable a privacy banner on client share pages.
- Custom privacy text: provide your own disclosure text, or use the default i18n text.
- Analytics consent: clients can accept or decline analytics tracking. Consent is tracked per session.
- IP anonymization: analytics data is anonymized for GDPR compliance.
- Calendar view: day, week, month (default), and year scales.
- Gantt chart: visual timeline of project due dates color-coded by status.
- Due date reminders: automated notifications sent day-before or week-before (configurable per project).
- Reminder channels: browser push, external providers (Gotify/ntfy/Pushover/Telegram), and email to all admins.
- Due date reminder email template: customizable in Settings > Email Templates with placeholders for project title, due date, and reminder type.
- Reminders run daily via the background worker using the server timezone (
TZenv var).
Subscribe to project deadlines from any calendar app (Google Calendar, Apple Calendar, Outlook, etc.).
Setup
- Navigate to Calendar in the admin panel.
- Copy the iCal feed URL shown at the bottom of the page.
- Add it to your calendar app as a URL/subscription calendar.
- Feed URL format:
https://yourdomain.com/api/calendar/feed?token=<token>.
Token management
- Each admin gets a unique feed URL with a secure 64-character token.
- Click Regenerate to create a new token — the old URL stops working immediately.
- Tokens are stored per admin user; deleting a user invalidates their feed.
Feed behavior
- The feed includes all projects with a due date, regardless of status or age.
- Events are never removed from the feed — past deadlines persist as historical records.
- All events use iCal
STATUS:CONFIRMEDso calendar apps always display them. - Approved projects are prefixed with a checkmark in the title (e.g. "✓ Summer Campaign").
- Archived projects are prefixed with a cross (e.g. "✗ Old Project").
- Active/in-review projects show the plain title.
- Events are all-day events (date-only, no time component) — they appear in the top banner of calendar apps, not as time-blocked slots.
- Each event includes a direct URL link back to the project in the admin panel.
- The
UIDfor each event is the project ID, so calendar apps correctly update existing events on refresh.
Sync & caching
- The feed response includes
Cache-Control: no-cacheheaders, but calendar apps control their own refresh interval (typically 15 minutes to 24 hours). - To force a refresh: remove and re-add the subscription in your calendar app.
- Rate limited to 10 requests per minute per IP.
Technical details (RFC 5545)
- Format: iCalendar (
.ics) withMETHOD:PUBLISH. - Events are
VEVENTwithVALUE=DATE(all-day). -
STATUS:CONFIRMEDfor all events (notCOMPLETED, which causes calendar apps to hide events). - Calendar name: "ViTransfer Deadlines" (
X-WR-CALNAME).
Video processing
- Preview resolution override.
- Watermark text, enable/disable, opacity, and font size.
- Watermark positions override.
- Skip transcoding override.
- Max upload size override.
Client access
- Auth mode: PASSWORD (default), OTP, BOTH, NONE, or GUEST.
- Password (AES-256 encrypted).
- Custom URL slug.
- Guest mode: view-only access without credentials.
- Guest latest only: restrict guests to the latest version of each video (default: true).
Workflow
- Revision limit (enable/disable with max revisions count).
- Allow comments.
- Comment attachments toggle.
- Max comment attachments override.
- Allow downloads.
- Allow client asset uploads.
- Client can approve (disable for admin-only approval).
- Hide feedback from other clients.
- Restrict comments to latest version only.
- Timestamp display format.
- Show client tutorial overlay.
- Use preview for approved playback.
Due dates
- Due date: optional date picker for project deadline.
- Due reminder: NONE, DAY_BEFORE, or WEEK_BEFORE.
- Due dates are stored at noon UTC to prevent timezone day-boundary issues.
- Displayed in the user's local timezone (browser timezone client-side,
TZenv var server-side).
Notifications
- Client notification schedule override (DAILY/WEEKLY with configurable time and day).
- Recipients list with per-recipient language preference.
Navigation: Home | Features | Installation | Platform Guides | Configuration | Admin Settings | Usage Guide | Client Guide | Security | Maintenance | Troubleshooting | Screenshots | Contributing | License