Zero-dependency static site. config.json-driven. Deploy: docker compose up -d Publish: GitHub Pages / Cloudflare Pages / Tailscale Serve Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
112 lines
3.2 KiB
Markdown
112 lines
3.2 KiB
Markdown
# AI HUB Tilburg — Community Site
|
|
|
|
Open-source community website template. Clone it, configure it, deploy it in 5 minutes.
|
|
|
|
## Quick start
|
|
|
|
```bash
|
|
git clone <this-repo>
|
|
cd tilburg-hub
|
|
|
|
# 1. Edit your community details
|
|
nano config.json # or open in any editor
|
|
|
|
# 2. Run
|
|
docker compose up -d
|
|
|
|
# 3. Open http://localhost:3456
|
|
```
|
|
|
|
That's it. No database, no build step, no accounts.
|
|
|
|
## Configuration
|
|
|
|
All community settings live in `config.json`:
|
|
|
|
| Key | What it does |
|
|
|---|---|
|
|
| `community.name` | Site title and nav logo |
|
|
| `community.tagline` | Short description |
|
|
| `join.whatsapp_invite` | The WhatsApp group invite link |
|
|
| `location.*` | Physical address shown on the site |
|
|
| `meetings.*` | Meeting schedule and format |
|
|
| `rules[]` | Community rules (array of strings) |
|
|
| `projects[]` | Member projects to showcase |
|
|
| `founding_members[]` | Listed in the footer |
|
|
|
|
## Rename for your community
|
|
|
|
```bash
|
|
# Replace all default placeholders in one command:
|
|
grep -rl 'AI HUB Tilburg' . | xargs sed -i 's/AI HUB Tilburg/Your Community Name/g'
|
|
```
|
|
|
|
Then update `config.json` with your details.
|
|
|
|
## Deploy publicly (free, no server required)
|
|
|
|
### Option A — GitHub Pages
|
|
1. Push this repo to GitHub
|
|
2. Go to Settings → Pages → Deploy from `main` branch `/site` folder
|
|
3. Done. Your community is live at `https://YOUR_ORG.github.io/tilburg-hub`
|
|
|
|
### Option B — Cloudflare Pages
|
|
1. Connect your GitHub repo to Cloudflare Pages
|
|
2. Root: `site/`, build command: *(none — static)*
|
|
3. Free HTTPS, global CDN
|
|
|
|
### Option C — MET Desktop (Docker, local network / Tailscale)
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
Then expose via Tailscale Serve or Cloudflare Tunnel:
|
|
|
|
```bash
|
|
# Tailscale Serve (one-liner, works on Windows/Mac/Linux)
|
|
tailscale serve http://localhost:3456
|
|
|
|
# Or use the Cloudflare Tunnel block in docker-compose.yml (uncomment + add your token)
|
|
```
|
|
|
|
## Evolution API integration (optional WhatsApp bot)
|
|
|
|
If you have an Evolution API instance connected to WhatsApp, you can wire a webhook to:
|
|
- Welcome new members when they join the group
|
|
- Post project updates to the group from the website
|
|
|
|
See `evolution/` folder for webhook scripts. Set your API key in `.env`:
|
|
|
|
```
|
|
EVOLUTION_API_URL=http://YOUR_SERVER:8120
|
|
EVOLUTION_API_KEY=your-key-here
|
|
EVOLUTION_INSTANCE=your-instance-name
|
|
WA_GROUP_JID=123456789@g.us
|
|
```
|
|
|
|
## Project structure
|
|
|
|
```
|
|
tilburg-hub/
|
|
├── config.json ← ALL community settings (edit this)
|
|
├── docker-compose.yml ← one-command deploy
|
|
├── nginx.conf ← webserver config
|
|
├── site/
|
|
│ ├── index.html ← the page
|
|
│ ├── style.css ← styles (warm, neutral, not Atlas)
|
|
│ ├── app.js ← reads config.json, populates page
|
|
│ └── config.js ← placeholder (overwritten by app.js)
|
|
├── evolution/ ← optional WhatsApp webhook scripts
|
|
└── README.md
|
|
```
|
|
|
|
## Philosophy
|
|
|
|
This site was built to be:
|
|
- **Independent** — no central server, no Atlas branding required
|
|
- **Forkable** — anyone can clone and run their own community
|
|
- **Zero-dependency** — pure HTML/CSS/JS, no framework, no npm
|
|
- **Config-first** — change everything without touching HTML
|
|
|
|
## License
|
|
|
|
MIT — do what you want with it.
|