RealmCraft FREE: Minecraft Server Website
A complete, free starting point for your Minecraft server website with a live backend.
Five public pages, a working vote system, live server status, admin panel and a single config file to customise things.
This is a free, open-source template for your Minecraft server website. It's a polished starting point you customise and build on. Provided as-is. The code is clean, well documented and beginner friendly. An application, a Node.js backend serves the entire site, pings your Minecraft server for live status, tracks player vote streaks, manages rewards and exposes a REST API your plugins can call. The frontend pulls everything from that API on load, so editing one JSON file updates every page simultaneously.
Pages Included
▪ Home — Live Server Status
Real-time server status widget showing online/offline state, player count, max capacity, version, and daily votes. Updates automatically using mcsrvstat.us with a fallback system.
▪ Play — Game Mode Showcase
Four customizable sections with dynamic stats, feature lists, and connect buttons. Fully controlled through config.json.
▪ Store — Ranks & Packages
UI for ranks, crates, and coin bundles. Includes username validation and Tebex checkout integration via simple link wiring.
▪ Vote — Reward System
Fully working vote tracking system with streaks, leaderboards, reward progression, and player profiles.
▪ Forums — Community Hub
Visual forum-style layout for categories, announcements, and activity.
▪ Staff — Team info & applications
View the staff team, submit applications, and access community platforms like Discord.
▪ Admin Panel — /admin.html
Password-protected dashboard with stats, player management, vote simulation, and live announcement editing (updates instantly across the site).
Technical Stack
| Backend | Node.js 18+ · Express |
| Frontend | HTML · CSS · Vanilla JavaScript |
| Database | JSON file-based storage (no setup required) |
| Server Status | mcsrvstat.us API integration |
| Dependencies | express · cors |
API Features
Public API
Code:
GET /api/health
GET /api/config
GET /api/status
GET /api/server
GET /api/player/:username
POST /api/vote
POST /api/claim-reward
GET /api/leaderboard
GET /api/vote-sites
POST /api/minecraft/vote
Admin API (protected)
Code:
GET /api/admin/stats
GET /api/admin/players
POST /api/admin/reset-player
POST /api/admin/reset-streak
POST /api/admin/simulate-vote
POST /api/admin/update-announcement
POST /api/admin/update-messages
Vote System Features
- Streak tracking system (48-hour window logic)
- Weekly vote reset system (no cron required)
- Per-site vote tracking & cooldown support
- Config-driven reward system
- 10 achievement tiers (Common → Legendary)
- Level system based on lifetime votes
- Pending reward tracking with claim system
Note: Current version demonstrates the full system logic. Future versions will expand configurability.
Minecraft Plugin Integration
Supports direct integration with voting plugins via webhook:
Code:
POST /api/minecraft/vote
{ "player": "Steve", "site": "planetmc", "secret": "your-secret" }
Compatible with NuVotifier, VotingPlugin, Skript, or any HTTP-based system.
Configuration
Everything is controlled through a single file:
Server name, IP, Discord
Theme colors
Vote sites & cooldowns
Rewards & streak logic
Announcements system
No code changes required for standard setup.
Deployment (≈10 minutes)
Backend (Render / VPS)
Push to GitHub
Deploy Node.js service
Run npm install + node backend/server.js
Frontend (Cloudflare Pages)
Set backend URL in API config
Deploy /public folder
Self-hosted
Code:
npm install
node backend/server.js
Important Notes
- No payment system included (use Tebex links)
- No built-in forums backend (external platforms supported)
- No authentication system (Minecraft username-based tracking)
- No WebSockets (polling system used for simplicity)
License
Free to use and modify for your own server.
If you build something cool with it, a review or a tag would be appreciated, it helps me to build more resources like this. Credit is appreciated but not required.
