Initial Commit
Set the base routing and base html Signed-off-by: Pratyush Desai <pratyush.desai@liberta.casa>
This commit is contained in:
commit
d3193b92dc
10
README.md
Normal file
10
README.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# GibCasa Game Server Supervisor
|
||||||
|
|
||||||
|
## Skeleton
|
||||||
|
|
||||||
|
* Stick with HL2 and HL2DM
|
||||||
|
* Set up routing
|
||||||
|
* GS Lifecycle Management and Statistics
|
||||||
|
* Concurrency - manage simultaneously events and schedule tasks.
|
||||||
|
* File Handling - configs, logs, backups and export config server
|
||||||
|
* TODO: Add auth and db stuff later. For persistent configurations.
|
39
main.go
Normal file
39
main.go
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"html/template"
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./static"))))
|
||||||
|
|
||||||
|
// Define routes
|
||||||
|
http.HandleFunc("/", homeHandler)
|
||||||
|
http.HandleFunc("/hl2", hl2Handler)
|
||||||
|
http.HandleFunc("/quake", quakeHandler)
|
||||||
|
|
||||||
|
// Start the server
|
||||||
|
fmt.Println("Server running on http://localhost:8080")
|
||||||
|
log.Fatal(http.ListenAndServe(":8080", nil))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Render the homepage
|
||||||
|
func homeHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
tmpl := template.Must(template.ParseFiles("templates/index.xhtml"))
|
||||||
|
tmpl.Execute(w, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Render the Half-Life 2 page
|
||||||
|
func hl2Handler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
tmpl := template.Must(template.ParseFiles("templates/hl2.xhtml"))
|
||||||
|
tmpl.Execute(w, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Render the Quake page
|
||||||
|
func quakeHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
tmpl := template.Must(template.ParseFiles("templates/quake.xhtml"))
|
||||||
|
tmpl.Execute(w, nil)
|
||||||
|
}
|
BIN
static/hl2cover.jpeg
Normal file
BIN
static/hl2cover.jpeg
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.0 KiB |
BIN
static/q1cover.jpg
Normal file
BIN
static/q1cover.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 39 KiB |
56
static/styles.css
Normal file
56
static/styles.css
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
body {
|
||||||
|
background-color: #1c1c1c;
|
||||||
|
color: #bfbfbf;
|
||||||
|
font-family: 'Courier New', Courier, monospace;
|
||||||
|
text-align: center;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
color: #e0b0ff; /* Rose Pine hint */
|
||||||
|
margin-top: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
color: #ff79c6; /* Rose Pine inspired soft magenta */
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 20px;
|
||||||
|
max-width: 800px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.games {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
margin-top: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.game {
|
||||||
|
margin: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.game img {
|
||||||
|
width: 200px;
|
||||||
|
height: 200px;
|
||||||
|
border: 2px solid #ff79c6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
margin: 40px 0;
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #282828;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #e0b0ff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
22
templates/hl2.xhtml
Normal file
22
templates/hl2.xhtml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<link rel="stylesheet" href="/static/styles.css" />
|
||||||
|
<title>Half-Life 2</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>Half-Life 2</h1>
|
||||||
|
<div class="section">
|
||||||
|
<h2>Multiplayer Server</h2>
|
||||||
|
<p>Manage or join the multiplayer servers here.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section">
|
||||||
|
<h2>Coop</h2>
|
||||||
|
<p>Start or manage cooperative campaigns here.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
28
templates/index.xhtml
Normal file
28
templates/index.xhtml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<link rel="stylesheet" href="/static/styles.css" />
|
||||||
|
<title>Game Server Manager</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>Choose Your Game</h1>
|
||||||
|
<div class="games">
|
||||||
|
<div class="game">
|
||||||
|
<a href="/hl2">
|
||||||
|
<img src="/static/hl2cover.jpeg" alt="Half-Life 2" />
|
||||||
|
<h2>Half-Life 2</h2>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="game">
|
||||||
|
<a href="/quake">
|
||||||
|
<img src="/static/q1cover.jpg" alt="Quake" />
|
||||||
|
<h2>Quake</h2>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
22
templates/quake.xhtml
Normal file
22
templates/quake.xhtml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<link rel="stylesheet" href="/static/styles.css" />
|
||||||
|
<title>Quake</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>Quake</h1>
|
||||||
|
<div class="section">
|
||||||
|
<h2>Multiplayer Server</h2>
|
||||||
|
<p>Manage or join the multiplayer servers here.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section">
|
||||||
|
<h2>Coop</h2>
|
||||||
|
<p>Start or manage cooperative campaigns here.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user