https://github.com/fildon/steam-boiler
https://github.com/fildon/steam-boiler
Last synced: 16 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/fildon/steam-boiler
- Owner: fildon
- Created: 2026-05-29T07:46:36.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-29T08:11:12.000Z (2 months ago)
- Last Synced: 2026-05-29T10:09:10.077Z (2 months ago)
- Language: TypeScript
- Size: 79.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Steam Boiler
A web app that analyses your Steam account — playtime, library stats, and more.
Built with Next.js 15 (App Router), TypeScript, Tailwind CSS, and the Steam Web API.
## Setup
1. **Get a Steam API key** at https://steamcommunity.com/dev/apikey
2. Copy `.env.example` to `.env.local` and fill in the values:
```
STEAM_API_KEY= # from step 1
SESSION_SECRET= # any random string, min 32 characters
NEXT_PUBLIC_BASE_URL= # e.g. http://localhost:3000
```
3. Install dependencies and run:
```bash
npm install
npm run dev
```
Open http://localhost:3000 and sign in with Steam.
## Deploying to Netlify
The app is deployed at `steam-boiler.rupertmckay.com` via Netlify. `netlify.toml` at the repo root contains the build configuration.
### 1. Connect the repo
Push to GitHub, then in the Netlify dashboard create a new site from that repo. Netlify will detect `netlify.toml` and configure the build automatically.
### 2. Set environment variables
In **Netlify → Site → Environment variables**, add:
| Variable | Value |
|---|---|
| `STEAM_API_KEY` | From https://steamcommunity.com/dev/apikey |
| `SESSION_SECRET` | Random 32+ char string — generate with `node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"` |
| `NEXT_PUBLIC_BASE_URL` | `https://steam-boiler.rupertmckay.com` |
### 3. Add the custom domain
In **Netlify → Site → Domain management**, add `steam-boiler.rupertmckay.com`.
Netlify will show two DNS records to add — do both in **Squarespace → Domains → rupertmckay.com → DNS Settings**:
**CNAME** — routes traffic to Netlify:
| Field | Value |
|---|---|
| Type | `CNAME` |
| Host | `steam-boiler` |
| Data | `.netlify.app` |
**TXT** — proves domain ownership so Netlify can provision the SSL certificate:
| Field | Value |
|---|---|
| Type | `TXT` |
| Host | as shown in Netlify (e.g. `_netlify`) |
| Data | the challenge value shown in Netlify |
Once both records are saved, click **Verify** in Netlify. DNS propagation usually takes a few minutes with Squarespace. Netlify provisions HTTPS via Let's Encrypt automatically after verification.
### 4. Update the Steam API key domain
Steam API keys are registered to a domain. Update yours at https://steamcommunity.com/dev/apikey — change the domain to `steam-boiler.rupertmckay.com`. The key itself stays the same.
## Architecture
- **Auth** — Steam OpenID 2.0, verified server-side; session stored in an encrypted cookie via `iron-session`
- **Data** — All Steam API calls are made server-side (API key never exposed to the client)
- **Pages** — Server components; data is fetched at request time
---