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:
- Email:
[email protected] - Password:
Admin123@
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/UserReador 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-commentsfor 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
- MAIN mode: License Generation (
- 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)
- AI Agent Settings (
- 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
/ticketswhen 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
Related
- Support Tickets — ticket workflow and API
- Email Campaigns — campaign workflow, queue, and API
- License System — MAIN/CONSUMER, tiers, activation, generation, enforcement
- Backup — backup API, scheduled job, config and restore
- Blogs — Content → Blogs, API and frontend
- Search — full-text search API
- Media — media upload and storage
- Announcements — send announcements to all users
- Contact — public contact form API
- SEO and Sitemap — sitemap.xml and robots.txt
- Getting Started — Installation — how to run the admin panel
- API structure — backend route prefixes (api/admin/*, api/tickets, etc.)