feat: initial Hugo static site (closes #1) #2

Merged
sneak merged 2 commits from feat/initial-site into main 2026-02-10 12:28:21 +01:00
9 changed files with 237 additions and 0 deletions

View File

@ -0,0 +1,52 @@
name: Build and Deploy to Cloudflare Pages
on:
push:
branches:
- feat/initial-site
- main
jobs:
build:
runs-on: ubuntu-latest
container:
image: klakegg/hugo:ext-alpine
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build site
run: hugo --minify
- name: Archive site
run: tar -czf site.tar.gz public
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: site
path: site.tar.gz
deploy:
runs-on: ubuntu-latest
needs: build
container:
image: node:20
steps:
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: site
- name: Extract site
run: tar -xzf site.tar.gz
- name: Install Wrangler
run: npm install -g wrangler
- name: Deploy to Cloudflare Pages
run: wrangler pages deploy public --project-name=lora-vegas --branch=${{ github.ref_name }}
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
/public/
/resources/
.hugo_build.lock

5
archetypes/default.md Normal file
View File

@ -0,0 +1,5 @@
+++
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
date = '{{ .Date }}'
draft = true
+++

60
content/_index.md Normal file
View File

@ -0,0 +1,60 @@
---
title: "LoRa Vegas"
---
## Mesh Channels
Join these channels on your Meshtastic radio:
- **LV Traffic** — [Add channel](https://meshtastic.org/e/?add=true#Cg8SAQEaCkxWX1RyYWZmaWMSEQgBOAFABUgBUB5YFGgBwAYB)
- **LASMeshMeet** (meetup coordination) — [Add channel](https://meshtastic.org/e/?add=true#CiQSEKBDmMMfm5yEaVfulQ2W3kwaC0xBU01lc2hNZWV0JQIAAAASDggBOAFABUgBUB5YFGgB)
- **LongFast** (default) — just set your region to **US** and modem preset to **LongFast**
## Discord Groups
- [LASmesh](https://discord.gg/968aSXf7XX) — Las Vegas mesh networking community
- [MeshEnvy](https://discord.gg/BuhrxH7nyu)
- [VegasMesh](https://discord.gg/YEWmnKEEVe)
## Signal Groups
- [Vegas-LongFast](https://signal.group/#CjQKIG2kcUFN9wPzgpi3H_Lxwie3sgduhzrRdeISlAEyv3EtEhBKz7kID13JrlOfhI2X8ET_) — local coordination
## Meetup
Vegas LoRa meetups:
- **#1** — Feb 4, 2026, 7 PM at Lee's Sandwiches
- **#2** — April 13, 2026, 7 PM, location TBD
## Resources
- [LASmesh website](https://lasmesh.com/)
- [Vegas MeshSense](http://las.packetflood.net:44920/) — live mesh network monitor
- [Meshtastic project](https://meshtastic.org)
## LongFast Settings
Default channel settings for the Las Vegas area mesh:
<div class="settings">
<span class="label">Frequency:</span> <span class="value">906.875 MHz</span><br>
<span class="label">Modem Preset:</span> <span class="value">LongFast</span><br>
<span class="label">Channel Name:</span> <span class="value">LongFast</span><br>
<span class="label">Region:</span> <span class="value">US</span><br>
<span class="label">Hop Limit:</span> <span class="value">3</span><br>
<span class="label">Encryption:</span> <span class="value">Default (AQ==)</span><br>
</div>
These are the standard Meshtastic LongFast defaults for the US region. Just set your region to **US** and modem preset to **LongFast** and you'll be on the same channel as everyone else.
## What is Meshtastic?
[Meshtastic](https://meshtastic.org) is an open-source project that lets you build long-range, off-grid mesh communication networks using inexpensive LoRa radios. No cell service, no internet — just radio.
## Get Started
1. Get a [supported LoRa radio](https://meshtastic.org/docs/hardware/devices/) (Heltec V3, T-Beam, RAK, etc.)
2. Flash [Meshtastic firmware](https://flasher.meshtastic.org)
3. Set region to **US**, modem preset to **LongFast**
4. Join the community links above

10
hugo.toml Normal file
View File

@ -0,0 +1,10 @@
baseURL = 'https://lora.vegas/'
languageCode = 'en-us'
title = 'LoRa Vegas — Las Vegas Meshtastic Community'
theme = 'loravega'
[markup.goldmark.renderer]
unsafe = true
[params]
description = 'Las Vegas LoRa and Meshtastic community hub'

View File

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ .Site.Title }}</title>
<meta name="description" content="{{ .Site.Params.description }}">
<link rel="stylesheet" href="/css/style.css">
</head>
<body>
{{ block "main" . }}{{ end }}
<footer>
<p>lora.vegas &mdash; Las Vegas Meshtastic community</p>
</footer>
</body>
</html>

View File

@ -0,0 +1,6 @@
{{ define "main" }}
<h1>📡 LoRa Vegas</h1>
<p class="tagline">Las Vegas Meshtastic &amp; LoRa community</p>
{{ .Content }}
{{ end }}

View File

@ -0,0 +1,82 @@
:root {
--bg: #0a0a0a;
--fg: #e0e0e0;
--accent: #4fc3f7;
--muted: #888;
--max-w: 600px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
background: var(--bg);
color: var(--fg);
line-height: 1.6;
padding: 2rem 1rem;
max-width: var(--max-w);
margin: 0 auto;
}
h1 {
font-size: 1.8rem;
margin-bottom: 0.25rem;
}
.tagline {
color: var(--muted);
margin-bottom: 2rem;
}
h2 {
font-size: 1.2rem;
margin-top: 2rem;
margin-bottom: 0.5rem;
border-bottom: 1px solid #222;
padding-bottom: 0.25rem;
}
ul {
list-style: none;
padding: 0;
}
li {
margin-bottom: 0.5rem;
}
a {
color: var(--accent);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
.settings {
background: #111;
border: 1px solid #222;
border-radius: 4px;
padding: 1rem;
margin-top: 0.5rem;
font-family: "SF Mono", "Fira Code", "Consolas", monospace;
font-size: 0.9rem;
line-height: 1.8;
}
.settings .label {
color: var(--muted);
}
.settings .value {
color: var(--accent);
}
footer {
margin-top: 3rem;
color: var(--muted);
font-size: 0.8rem;
border-top: 1px solid #222;
padding-top: 1rem;
}

View File

@ -0,0 +1,3 @@
name = "loravega"
description = "Minimal single-page theme for lora.vegas"
min_version = "0.100.0"