Website: start page, shop & forum

Next to the dashboard, Eternal serves three public pages: a start page, a shop and a forum. Shop and forum are standalone sites with their own header — no dashboard menu and no links to each other. Everything is managed in the dashboard under Website (Startseite, Shop, Forum). Logged in, the bar on top of the dashboard switches between Dashboard, Cloud, Item-Tracking and Coins & Markt.

Start page

Opening the dashboard without a login shows the start page: a title, a short text and an image, with tiles to Login, Shop, Forum and the unban appeal. After logging in you land in the dashboard.

  • Editing: dashboard → Website → Startseite (permission eternal.web.site). Change title and text, upload an image (PNG, JPEG, WebP or GIF, at most 5 MB), with a preview.
  • Text: a blank line starts a new paragraph, https://… links become clickable. HTML is never run.

Design & brand (dashboard → Website → Design & Marke)

Name, subtitle, logo and favicon of the web interface and its look — for dashboard, forum, shop and start page. Permission: eternal.web.site.

  • Colour palette: Eternal (pink), Ocean (blue), Emerald (green), Sunset (orange), Royal (violet), Graphite (black and white) or an own colour — it yields the accent and matching tinted surfaces.
  • Appearance: dark, light or follow the system; optionally everyone may switch for themselves (icon at the bottom of the sidebar).
  • Corners (sharp, normal, round) and font (Inter, Manrope, Plus Jakarta Sans, Outfit, system).
  • Name and favicon show in the browser tab. Without an own logo, the default logo takes the accent colour.

Everything previews at once; Speichern saves it for everyone.

Forum

A standalone forum in the Eternal design — light and dark (switch at the top right: system, light, dark). Reading works without a login (can be turned off), writing with the same account as the dashboard (a player account has to be behind it).

Layout: the start page shows the categories in sections (e.g. news, community, help) with thread and post counts and the last reply, next to the latest threads. Unread threads carry a dot. The search at the top looks through titles and posts (only categories you may see).

Threads: every post shows its author with head, rank (colour from Eternal Perms), team badge, post count and "member since". Below: like, quote (goes into the reply editor), edit in place, delete, report and a link to the post (#number). Whoever opened the thread can rename it and mark it solved.

Editor: a text editor like Google Docs — headings, bold/italic/underline/strikethrough, code, text and highlight colour, alignment, bullets, numbering, checklists (clickable), indent, links, images (upload, paste with Ctrl+V or drag in; up to 4 MB, PNG/JPG/GIF/WebP), tables (pick a grid, edit rows/columns/header, Tab jumps to the next cell), divider, emoji and a full-screen mode. Markdown shortcuts at the start of a line: - bullets, 1. numbering, [] checklist, #/##/### headings, > quote. Drafts survive a reload. The server only lets safe formatting through (no scripts, no foreign embeds).

Profile and settings (the forum's own): every member has a forum profile (/forum/u/<name>, click a name or head): rank, status line, "about me", posts, threads, likes received, member since, last online, newest threads and posts, and the signature. Under Einstellungen (account menu) members edit status, "about me" and their signature (shown under each of their posts) with the same editor, hide other people's signatures and pick light/dark for the forum. The profile links to the own dashboard account or the player page (for staff with eternal.web.player.view); login, rank and player data stay in the dashboard.

Management (forum → Verwaltung, /forum/admin)

Management lives in the forum itself, not in the dashboard: the shield icon at the top right (with a counter of open reports) or Forum verwalten in the account menu. In the dashboard, Website → Forum verwalten leads straight there.

  • Categories (eternal.web.forum.admin): create, edit, delete; drag to sort and to move between sections; create and rename sections. Per category: name, description, icon, colour, section, closed (archive, only moderators write) and who may do what — by rank:
    • See, start threads, reply — nothing selected means everyone (logged in). Ranks inheriting from a selected rank count too.
    • Moderate — these ranks moderate in this category only.
    • Under advanced, permissions work instead of ranks (e.g. eternal.web.forum.moderate for a team area).
  • Grundgerüst anlegen creates the usual categories in sections — announcements and updates (only the team starts threads), general, introductions, suggestions, off-topic, support, bug reports, applications and team-internal (visible to the team only) — plus a pinned welcome and rules thread. Existing categories stay; older ones without a section (also under similar names like "Neuigkeiten" or "Allgemein") are sorted in.
  • Reports (moderators): reported posts with reason and reporter — dismiss, mark done, delete the post or delete it and ban the author (1 day to permanent). In the forum a counter on the shield icon shows open reports.
  • Bans (moderators): ban players from the forum (with duration and reason) and lift bans. Banned players keep reading but cannot write, like or report.
  • Log (eternal.web.forum.admin): who moderated what — deletes, restores, pins, locks, moves, bans, reports, categories, settings.
  • Settings (eternal.web.forum.admin): forum name and description, guest reading, image uploads on/off, threads and posts per page.

Permissions and rules

  • Writing (eternal.web.forum.post, everyone): threads and replies go through the network's chat filter. Players banned or muted in game cannot write. Posts are at least 10 seconds apart.
  • Own posts can be edited and deleted. The first post carries the thread: while nobody has replied, deleting it deletes the whole thread.
  • Moderation (eternal.web.forum.moderate for all categories, or a category's moderate rank): edit, delete and restore posts; pin, lock, move, rename, delete and mark threads solved. Deleted content stays visible to moderators.

Shop

In the shop players buy ranks, gamemode passes and coin packages — with in-game coins or through PayPal. The shop has its own light design, apart from the dashboard.

  • Cart: products go into a cart (up to 10 of a product, 20 per order) that stays saved in the browser. Clicking a product shows everything a rank brings and a preview of its chat prefix. Two of a 30-day rank = 60 days in a row.
  • Buying without a login: at checkout the recipient's Minecraft name is enough; payment is through PayPal. The player only has to have been on the network once (the shop checks the name while typing and shows the head).
  • Gifts: logged-in buyers choose "Für mich" (for me) or "Als Geschenk" (as a gift) and then enter another name. Everything goes to the recipient; the receipt shows who it is from.
  • Coins only work logged in and come from the buyer's balance — gifts too. If the balance is short, the purchase stops before anything is taken.

Shop management (/shop/admin)

The shop has its own management area with its own menu (products, orders, vouchers, payment & legal) — in the shop via the sliders icon at the top right, in the dashboard via Website → Shop verwalten. Permission: eternal.web.store.manage.

Products (shop management → Produkte)

KindWhat the buyer gets
RankA permission group from Eternal Perms, for a number of days or for good. Buying again extends from the old end; whoever already has the rank for good keeps it for good. The shop lists the group's permissions (inherited ones too) with their names automatically.
PassesPasses of a gamemode, e.g. 5 TTT traitor passes.
Coin packageCoins into a coin cluster's wallet (only for money).

Every product has a price in coins and/or money (empty = cannot be bought that way), a coin cluster (coin payments come from it), icon, colour and order. Hidden products stay in old orders.

Setting up PayPal (shop management → Zahlung & Rechtliches)

  1. On developer.paypal.com under Apps & Credentials, create an app (first sandbox, later live).
  2. Enter client ID and secret. The secret is stored encrypted and never shown again.
  3. Enter the dashboard address. After paying, PayPal sends the buyer back to the shop — to its own address if one is set (see Own addresses), otherwise to <dashboard>/shop.
  4. In the PayPal app create a webhook to https://<dashboard>/api/store/paypal/webhook with the events CHECKOUT.ORDER.APPROVED, PAYMENT.CAPTURE.COMPLETED, PAYMENT.CAPTURE.REFUNDED, PAYMENT.CAPTURE.REVERSED, PAYMENT.CAPTURE.DENIED and enter its webhook ID.
  5. Test PayPal, then switch pay with PayPal on. In sandbox mode the shop shows "PayPal-Testmodus".
  6. Link imprint, terms, withdrawal and privacy — they appear in the shop and at checkout.

How a PayPal purchase works

  1. The buyer agrees to immediate performance (for digital content this ends the right of withdrawal; the consent is noted with its time in the order) and is sent to PayPal with the whole cart in one payment.
  2. After approving they come back, the payment is completed and every item is delivered at once. The return page is the receipt; its link works without a login too.
  3. If they never come back, the webhook completes the payment and delivers.
  4. Amount and currency are compared with the product; the price never comes from the browser. Every order is delivered exactly once, even when the return and the webhook arrive together.
  5. A refund or chargeback at PayPal takes the purchase back (rank removed, passes and coins taken back as far as they are still there).

Vouchers (shop management → Gutscheine)

A voucher lowers the price by a percentage (1–100) or by a fixed amount of money.

SettingMeaning
CodeLetters, digits, - and _; case does not matter. The dice button makes a random code.
Gilt für (applies to)Nothing picked = every product, otherwise only the picked ones.
Max uses0 = unlimited. An open PayPal order holds its slot; if it is cancelled or fails, the slot is free again.
Valid untilUp to and including that day, empty = forever.
Also on coin pricesPercentages only: the discount also applies when paying with coins. Fixed amounts apply to money only.
Once per playerEvery player can redeem the code once.
ActiveSwitched off, the shop no longer accepts the code.

The code is entered at checkout; it applies to every matching item in the cart (one use per item, "once per player" for one item only); prices then show the old price struck through. If a product then costs 0, it is delivered right away without payment (method "Gutschein"). Orders show code and discount.

Orders (shop management → Bestellungen)

Every purchase with its state (pending, paid, received, failed, cancelled, refunded) and note:

  • Erneut ausliefern (deliver again) for paid but failed orders.
  • Erstatten (refund) marks an order refunded and takes the purchase back; coin purchases get their coins back. Money is refunded in PayPal by you.
  • Vergeben (grant) gives a player a product without payment (shown as "Admin").

Every item of a cart is an order of its own for the recipient, with the buyer ("Gast" without login) and the cart noted. Coin refunds go to whoever paid. Logged-in players see their purchases at the bottom of the shop. Permission: eternal.web.store.manage for management; anyone can buy, with or without a login.

Own addresses (shop.domain.com, forum.domain.com)

By default shop and forum live at <dashboard>/shop and <dashboard>/forum. They can get addresses of their own — it is the same dashboard build, the page picks what to show from the host name.

  1. DNS: point shop.domain.com and forum.domain.com at the dashboard's web server.
  2. Web server: one virtual host per address with the same document root as the dashboard, /api proxied to the API and every other path falling back to index.html (like the dashboard). Apache example:

``apache <VirtualHost *:443> ServerName shop.domain.com DocumentRoot /var/www/eternal-dashboard ProxyPass /api/ http://127.0.0.1:7070/ ProxyPassReverse /api/ http://127.0.0.1:7070/ <Directory /var/www/eternal-dashboard> FallbackResource /index.html </Directory> # SSLEngine on, certificate … as for the dashboard </VirtualHost> ``

Same for forum.domain.com. Only the dashboard itself needs the WebSocket proxy on /api/cloud/ws/.

  1. In the dashboard: Website → Startseite → Eigene Adressen — enter the addresses of dashboard, shop and forum (https://shop.domain.com etc.).

After that shop.domain.com shows only the shop and forum.domain.com only the forum; the Dashboard button on top leads to the dashboard address, login stays on the site itself. The start page links to the own addresses automatically and PayPal sends buyers back to the shop address. Without an entry the page still recognises shop. / store. and forum. at the start of the host name.

Login is per address: someone logged in to the dashboard logs in once more on a shop with its own domain (same account).