Skip to main content

Admin Panel

The Bellamy Book Admin Panel is a React (CoreUI) application for administrators. It runs separately from the social frontend and uses the same backend API with admin-only endpoints where applicable.

Access and routes

  • Base URL (local): http://localhost:3001
  • Login: /login
  • Protected routes require an authenticated user with the Admin (or Moderator) role.

Default admin account (self-host / seeded)

If you used the seed-admin command (e.g. after deploying with Docker), the default admin account is:

Important: Change this password immediately after first login (e.g. in Admin Panel → Profile or account settings). Do not leave the default password in production.

Admin features

Dashboard (/dashboard)

  • Overview: Total stats, growth indicators, new users section
  • Engagement: Engagement metrics chart, engagement trends chart
  • Content: Post management, top posts, trending posts, trending content statistics
  • Discovery: Top hashtags, top keywords
  • Data source: api/admin/dashboard (overview, engagement-trends, engagement-metrics, top-hashtags, top-keywords, posts list/top/trending/trending-content)

Users (/users, /users/add)

  • All Users: Paginated list of users (read from api/UserRead or user management endpoints)
  • Add User: Create a new user
  • Data source: User management APIs (e.g. api/UserRead, api/UserWrite)

Content — Blogs (/content/blogs, /content/blogs/create, /content/blogs/edit/:id)

  • Blog list: List and filter published blogs
  • Create / Edit blog: Rich editor (Tiptap), SEO fields, tags, media (images, file upload), extensions (YouTube, TikTok, iframe, resizable images)
  • Data source: api/Blog (read/write), api/blog-comments for comments

Notifications

  • Announcements (/notifications/announcements): Create and send announcements to all users; view and delete history. See Announcements. Data source: api/Announcement (GET history, POST create, DELETE)
  • Email Campaigns (/notifications/email-campaigns): Shown when the emailCampaigns license feature is enabled. Data source: api/EmailCampaign (read/write)

Support Tickets (/tickets, /tickets/:id)

  • Visibility: Shown in the sidebar when the supportTickets license feature is enabled
  • List: Paginated tickets with filters (status: New, In Progress, Resolved, Closed), search by subject/description/ID
  • Detail: View ticket (subject, description, attachments, department, user, dates), comment thread with replies, update status (Start Progress, Mark Resolved, Close)
  • Workflow: New → Start Progress (assigns to current admin) → In Progress (admin can reply) → Mark Resolved → Close
  • Data source: api/tickets, api/ticket-comments — see Support Tickets

Backup (/backup, /backup/config, /backup/restore)

  • Backup list: List backups, download, restore, delete
  • Configuration: Configure backup settings
  • Restore: Restore from a backup
  • Data source: api/admin/backup (config, start, list, get, download, restore, delete, status, history)
  • See Backup

Settings

  • Application (/settings/application): App-wide settings (e.g. public registration)
  • License (license mode–dependent):
    • MAIN mode: License Generation (/settings/license/generation)
    • CONSUMER mode: License Management (/settings/license) — activate/manage license
  • Default Avatar (/settings/default-avatar): Default user avatar image
  • Default Wallpaper (/settings/default-wallpaper): Default cover/wallpaper image
  • AI Agent (when aiBlogGeneration is enabled):
    • AI Agent Settings (/settings/ai-agent)
    • AI Agent Logs (/settings/ai-agent/logs)
    • AI Agent Cost Dashboard (/settings/ai-agent/costs)
  • Data source: api/ApplicationSettings, api/license, api/license/generation, api/ai-agent, user/default avatar and wallpaper endpoints

Profile (/profile)

  • Admin user’s own profile (avatar, info).

License and feature flags

The sidebar and some routes depend on license mode and feature flags. See License System for full details.

  • supportTickets: Shows “Support Tickets” and /tickets when enabled
  • emailCampaigns: Shows “Email Campaigns” under Notifications when enabled
  • aiBlogGeneration: Shows “AI Agent Settings”, “AI Agent Logs”, “AI Agent Cost Dashboard” when enabled
  • License mode: MAIN vs CONSUMER controls whether License Generation or License Management is shown

Tech stack (admin frontend)

  • React with CoreUI (components, layout, icons)
  • React Router for routes
  • Axios (apiClient) for API calls; base URL from env (e.g. VITE_API_URL)
  • Redux (auth, theme, UI) where used
  • Tiptap for blog editor