commit ab90d6c42401ee11cd1852812a0732b34ad665c4
Author: mod <mod@buni.party>
Date: Fri Feb 13 04:36:09 2026 +0000
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..18289aa
--- /dev/null
+++ b/Makefile
@@ -00 +128 @@
+BUILDDIR=../..
+DPP?= dpp
+
+SRC= index.html \
+ services/index.html \
+ users/index.html \
+ cgi-bin/users \
+
+TEMPLATE=template/bar.html \
+ template/foot.html \
+ template/head.html \
+ template/redirect.html
+
+EXEC= cgi-bin/users
+
+OUT= ${SRC:%=${BUILDDIR}/%}
+
+
+all: after
+
+after: ${OUT}
+ chmod +x ${BUILDDIR}/${EXEC}
+
+${BUILDDIR}/%: % ${TEMPLATE}
+ @mkdir -p ${@D}
+ DPP_BLOCK='!!' ${DPP} <$< >$@
+
+.PHONY: all
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e577aac
--- /dev/null
+++ b/README.md
@@ -00 +15 @@
+# Building
+
+Requires [dpp](https://github.com/dylanaraps/dpp) as well as GNU make.
+
+Site is built into $BUILDDIR in the Makefile.
diff --git a/cgi-bin/users b/cgi-bin/users
new file mode 100755
index 0000000..6e05de1
--- /dev/null
+++ b/cgi-bin/users
@@ -00 +123 @@
+#!/bin/sh
+
+echo "content-type: text/html"
+echo
+
+cat <<EOF
+!!$DPP "Groupnix Users" "Users" <template/head.html
+!!$DPP "users" <template/bar.html
+
+<p>Below is the list of users on groupnix</p>
+<ul>
+EOF
+
+
+for userpath in /home/*; do
+ user="\${userpath##*/}"
+ printf '<li><a href="%s">%s</a></li>\n' "/\$user" "\$user"
+done
+
+cat <<EOF
+</ul>
+!!$DPP <template/foot.html
+EOF
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..6c64073
--- /dev/null
+++ b/index.html
@@ -00 +19 @@
+!!
+$DPP "Groupnix" "Welcome to Groupnix" <template/head.html #>
+$DPP "home" <template/bar.html # >
+!!
+
+<p>groupnix is a pubnix!</p>
+<p>Want to see <a class="out" href="https://oss.zone">another</a> pubnix?</p>
+
+!!$DPP <template/foot.html # >
diff --git a/services/index.html b/services/index.html
new file mode 100644
index 0000000..57b13fd
--- /dev/null
+++ b/services/index.html
@@ -00 +112 @@
+!!
+$DPP "Groupnix Services" "Services" <template/head.html # >
+$DPP "services" <template/bar.html # >
+!!
+
+<p>Groupnix currently hosts the following services:</p>
+<ul>
+ <li><a href="/mod/users">User websites</a></li>
+ <li><a href="https://git.buni.party">Git repositories</a></li>
+</ul>
+
+!!$DPP <template/foot.html # >
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..4ee9a69
--- /dev/null
+++ b/style.css
@@ -00 +170 @@
+* {
+ background-color: #282828;
+}
+
+body {
+ color: #EEEEEE;
+ padding-bottom: 3vh;
+}
+
+#body {
+ max-width: 800px;
+ margin: 0 auto;
+ padding: 20px;
+}
+
+p {
+ padding-bottom: 15px;
+ text-align: justify;
+ font-size: 16px;
+}
+
+thead {
+ text-align: left;
+}
+
+td {
+ padding-right: 15px;
+}
+
+table.images {
+ margin-left: auto;
+ margin-right: auto;
+ text-align: center;
+}
+
+td.caption {
+ padding-bottom: 15px;
+}
+
+a:link {
+ color: #B8EAEA;
+}
+
+a:visited {
+ color: #A9CACA;
+}
+
+a.out {
+ color: #AC5645;
+ text-decoration: none;
+ border-bottom: 1px dashed;
+}
+
+#topbar td {
+ padding-right: 25px;
+ padding-bottom: 15px;
+}
+
+#topbar a:link, #topbar a:visited {
+ color: #B8EAEA;
+ text-decoration: none;
+}
+
+#topbar a.active {
+ font-weight: bold;
+}
+
+.video {
+ text-align: center;
+}
diff --git a/template/bar.html b/template/bar.html
new file mode 100644
index 0000000..9d33179
--- /dev/null
+++ b/template/bar.html
@@ -00 +116 @@
+!!
+HOME=""
+USERS=""
+SERVICES=""
+case "${1:-}" in
+ home) HOME=active ;;
+ users) USERS=active ;;
+ services) SERVICES=active ;;
+esac
+!!
+
+<table id="topbar"><tbody><tr>
+ <td><a class="${HOME}" href="/mod">Home</a></td>
+ <td><a class="${USERS}" href="/mod/cgi-bin/users">Users</a></td>
+ <td><a class="${SERVICES}" href="/mod/services">Services</a></td>
+</tr></tbody></table>
diff --git a/template/foot.html b/template/foot.html
new file mode 100644
index 0000000..824fe2e
--- /dev/null
+++ b/template/foot.html
@@ -00 +12 @@
+</div></body>
+</html>
diff --git a/template/head.html b/template/head.html
new file mode 100644
index 0000000..e668983
--- /dev/null
+++ b/template/head.html
@@ -00 +114 @@
+!!: ${1:?Usage: head.html title heading}
+!!: ${2:?Usage: head.html title heading}
+
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+ <link rel="stylesheet" href="/mod/style.css">
+ <title>$1</title>
+ <meta property="og:title" content="$1">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ </head>
+<body><div id="body">
+ <h2>$2</h2>
diff --git a/template/redirect.html b/template/redirect.html
new file mode 100644
index 0000000..d2f3349
--- /dev/null
+++ b/template/redirect.html
@@ -00 +19 @@
+!!: ${1:?Usage: redirect.html link}
+
+<!DOCTYPE html>
+<html lang="en">
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+ <link rel="stylesheet" href="/mod/style.css" />
+ <meta http-equiv="refresh" content="0; url=$1" />
+ <p><a href="$1">Redirect</a></p>
+</html>
diff --git a/users/index.html b/users/index.html
new file mode 100644
index 0000000..c47cc2c
--- /dev/null
+++ b/users/index.html
@@ -00 +1 @@
+!!$DPP "/mod/cgi-bin/users" <template/redirect.html # >