Loading...
Loading...
All Things Linux is a 501(c)(3) non-profit organization with a mission to empower the Linux ecosystem through education, collaboration, and support.
19 new projects with 40 stars.
102 followers.
The official website for All Things Linux (allthingslinux.org).
# Clone & setup
git clone https://github.com/allthingslinux/allthingslinux.git
cd allthingslinux
pnpm install
# Setup Cloudflare bindings (R2, KV) - IMPORTANT: Update wrangler.jsonc with KV ID from output
pnpm run setup:bindings
# Start development
pnpm run dev:all
# Development with all services
pnpm run dev:all # Next.js + Wrangler + Trigger.dev
# Development with all services
pnpm run dev:all # Next.js + Wrangler + Trigger.dev
Open http://localhost:3000 for Next.js dev, or http://localhost:8788 for Cloudflare Workers simulation.
dev and prod environmentspackage.json engines field)npm install -g pnpmgit clone https://github.com/allthingslinux/allthingslinux.git
```bash
cd allthingslinux
pnpm install
# Create R2 buckets and KV namespaces
pnpm run setup:bindings
# IMPORTANT: Update wrangler.jsonc with the KV namespace ID shown in the script output
For local development, create .env.secrets.dev and .env.secrets.prod files (these are gitignored):
# Create .env.secrets.dev for local development (sandbox credentials)
# Create .env.secrets.prod for production credentials
# Add your secrets following the format: KEY=value (one per line)
For CI/CD, secrets are managed via GitHub Environments (see Deployment section below).
Upload secrets to Cloudflare manually (when needed):
```bash
pnpm run secrets:dev # Upload dev/sandbox secrets to dev worker
pnpm run secrets:prod # Upload production secrets to prod worker
pnpm run dev:all # Next.js + Wrangler + Trigger.dev
URLs:
GitHub Actions with GitHub Environments - Automatic deployments on push/PR:
| Branch | Environment | URL |
| -------- | ----------- | ------------------------------------------------ |
| main | Production | allthingslinux.org |
| PR/other | Development | allthingslinux.dev |
Quick setup:
dev and prod (Settings ā Environments)QUICKBOOKS_CLIENT_ID, QUICKBOOKS_CLIENT_SECRET, QUICKBOOKS_REFRESH_TOKEN, QUICKBOOKS_REALM_ID, QUICKBOOKS_ADMIN_KEY, GITHUB_TOKEN, MONDAY_API_KEY, CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID, TRIGGER_SECRET_KEYMONDAY_BOARD_ID, DISCORD_WEBHOOK_URL, QUICKBOOKS_ENVIRONMENTmain ā Auto-deploys to production environmentSee docs/integrations/quickbooks.md for detailed QuickBooks integration setup.
Architecture: Separate Cloudflare Workers for dev/prod with isolated R2/KV bindings. .github/workflows/deploy.yml automatically handles branch detection and deploys to appropriate worker.
pnpm run deploy:dev # Deploy immediately to dev
```bash
pnpm run deploy:prod # Deploy immediately to prod
pnpm run deploy # Quick production deploy
pnpm run version:upload # Upload version to production
```bash
pnpm run version:list # List all versions
pnpm run version:deploy # Deploy latest version
Benefits:
# Full production build (Next.js + OpenNext for Cloudflare)
pnpm run build:all
# Next.js build only
pnpm run build
# Preview build locally (tests the Cloudflare Workers build)
pnpm run preview # Standard preview
pnpm run preview:profile # Preview with profiling settings
# Development commands
```bash
pnpm run dev:all # Start all services
pnpm run trigger # Start Trigger.dev CLI
For automatic deployments, use GitHub Environments with secrets:
dev and prod environments (Settings ā Environments)Separate Workers: Development and production use separate Cloudflare Workers for complete isolation.
Note: GitHub Actions automatically manages secrets during CI/CD. Manual secret management is mainly for local testing.
For manual secret setup from your local machine:
# 1. Create .env.secrets.dev and .env.secrets.prod files (gitignored)
# Format: KEY=value (one per line)
# .env.secrets.dev: Sandbox QuickBooks + other dev secrets
# .env.secrets.prod: Production QuickBooks + other prod secrets
# 2. Upload to Cloudflare Worker (sets secrets in respective environment workers)
```bash
pnpm run secrets:dev # Upload secrets to dev worker
pnpm run secrets:prod # Upload secrets to prod worker
.env.secrets.* (they're gitignored)wrangler secret put or GitHub Environments.dev.vars only for non-sensitive local configwrangler.jsonc per environmentāāā app/ # Next.js App Router pages
āāā components/ # React components
āāā content/ # MDX blog content
āāā lib/ # Utilities & integrations
āāā public/ # Static assets
āāā scripts/ # Build & utility scripts
```text
āāā trigger/ # Background job definitions
āāā wrangler.jsonc # Cloudflare Workers config
# Development
pnpm run dev:all # Full stack (Next.js + Wrangler + Trigger)
pnpm run dev # Next.js development server
pnpm run dev:turbo # Next.js with TurboPack (faster)
pnpm run wrangler # Cloudflare Workers dev server
pnpm run trigger # Trigger.dev background jobs
# Building
pnpm run build:all # Build Next.js + OpenNext
pnpm run build # Next.js build only
pnpm run build:opennext # Cloudflare OpenNext build
pnpm run build:opennext:profile # Build with profiling (unminified)
# Testing
pnpm run preview # Test built Cloudflare app locally
pnpm run check # Run all code quality checks
pnpm run lint # ESLint
pnpm run format # Prettier
pnpm run check:ts # TypeScript check
# Deployment
pnpm run deploy:dev # Deploy to development
pnpm run deploy:prod # Deploy to production
pnpm run deploy # Quick production deploy
# Version Management
pnpm run version:upload # Upload version to production
pnpm run version:list # List all versions
pnpm run version:deploy # Deploy latest version
# Secrets
pnpm run secrets:dev # Upload dev secrets to dev worker (.github/scripts/secrets.sh)
pnpm run secrets:prod # Upload prod secrets to prod worker (.github/scripts/secrets.sh)
# Infrastructure
pnpm run setup:bindings # Setup Cloudflare bindings (R2, KV)
```bash
pnpm run cf:typegen # Generate Cloudflare types
pnpm run analyze:bundle # Bundle size analysis guidance
pnpm run coc:generate # Generate Code of Conduct
See PNPM_SCRIPTS.md for detailed script explanations.
# Clear caches and reinstall
```bash
rm -rf node_modules .next .open-next
pnpm install
# Check secrets are uploaded (for dev environment)
npx wrangler secret list --env dev
# For production environment
npx wrangler secret list --env prod
# Re-upload if needed
# Local secrets are handled via .dev.vars
```bash
# Check Trigger.dev CLI is running
pnpm run trigger
.dev.vars syntax (KEY=value, one per line)NODE_ENV is set correctly (Next.js sets this automatically - use only development, production, or test)For performance analysis and debugging:
# Build with profiling (unminified code for easier debugging)
pnpm run build:opennext:profile
# Preview with profiling settings
pnpm run preview:profile
# Analyze bundle size after building
pnpm run analyze:bundle
# After running, check .open-next/server-functions/default/handler.mjs.meta.json
# Upload to https://esbuild.github.io/analyze/ for detailed bundle analysis
PNPM_SCRIPTS.md for detailed script infogit checkout -b feature/your-featureSee CONTRIBUTING.md for detailed guidelines.
Built with ā¤ļø by the All Things Linux community.
MemberEvent on allthingslinux/code-of-conduct
January 31st, 2026 2:51 PM