GameServer Web
Web interface for Gamend GameServer, built with Phoenix Framework. Provides APIs, authentication, and real-time features.
Installation
Add game_server_web to your list of dependencies in mix.exs:
def deps do
[
{:game_server_web, "~> 1.0.0"}
]
end
The package includes priv/gettext (translations), priv/static/fonts (Inter woff2), priv/static/images (logos/banners), priv/static/.well-known (app association examples), robots.txt, and favicon.ico. Compiled JS/CSS (priv/static/assets/) and game assets (priv/static/game/) are excluded — host apps compile their own assets.
Icons when consuming from Hex
game_server_web templates use <.icon name="hero-..." />, which renders CSS classes like hero-x-mark.
When publishing to Hex, CI strips the GitHub :heroicons dependency from the package metadata (Hex only accepts Hex deps), so host apps should provide icon generation themselves.
Recommended setup in your host app:
- Add Heroicons to host deps:
{:heroicons,
github: "tailwindlabs/heroicons",
tag: "v2.2.0",
sparse: "optimized",
app: false,
compile: false,
depth: 1}-
Ensure your Tailwind CSS includes the Heroicons plugin. In this repo, the shared plugin now lives in
apps/game_server_web/assets/vendor/heroicons.js, and the host base CSS references it fromapps/game_server_host/assets/css/app.css:
@plugin "../../../game_server_web/assets/vendor/heroicons";-
If you extract this into a standalone host app, keep the shared JS/vendor asset tree with the reusable web package or copy the same
vendor/heroicons.jsplugin alongside your web assets so it can still read fromdeps/heroicons/optimized.
If you want your own icon set, keep compatibility by either:
-
providing CSS for the same
hero-*class names used by templates, or - replacing icon names/component usage in your fork.