Skip to main content

max / makenotwork

git clone https://makenot.work/git/max/makenotwork.git git clone git@ssh.makenot.work:max/makenotwork.git
Name Size
/ bento/
/ mnw-cli/
/ multithreaded/
/ pom/
/ sando/
/ scripts/
/ server/
/ shared/
/ viewer/
/ wam/
· .gitignore 1.7 KB
· LICENSE 4.4 KB
· README.md 2.8 KB
· rust-toolchain.toml 86 B

README

MakeNotWork

Creator platform with 0% platform fee. Only Stripe’s ~3% processing fee applies. Live at makenot.work.

Monorepo Structure

MNW/
  server/              MNW server (Rust/Axum, PostgreSQL, HTMX)
  multithreaded/       Forum software (Rust/Axum, MNW OAuth integration)
  pom/                 Production operations monitor (health checks, alerts)
  mnw-cli/             CLI tool for MNW platform
  shared/              Shared libraries
    docengine/         Markdown rendering + documentation engine
    tagtree/           Hierarchical tag standard
    synckit-client/    SyncKit cloud sync client SDK
    s3-storage/        S3-compatible storage abstraction
    tauri-updater-ui/  OTA update UI components

MNW Server

Built with Rust (2024 edition), Axum, PostgreSQL, Askama templates, and HTMX.

Prerequisites

  • Rust (stable toolchain, 1.85+, 2024 edition)
  • PostgreSQL (16+)
  • Environment variables via .env file: database URL, Stripe keys, Postmark token, S3 credentials, Sentry DSN, session secret, JWT secret. See server/.env.example for the full list.

Build and Run

All commands run from the MNW/server/ directory:

# Development
cargo run

# Run unit tests (no database needed)
cargo test

# Run integration tests (needs a running PostgreSQL instance)
TEST_DATABASE_URL="postgres://user:pass@host:5432/postgres" cargo test --test integration

# Admin CLI
cargo run --bin mnw-admin

Production deploys run through Sando, the build-and-release controller (sandod, on fw13). See Deployment below.

Key Integrations

  • Stripe Connect – creator payouts, subscriptions, checkout
  • Postmark – transactional email (verification, password reset, purchase receipts)
  • S3 (Hetzner Object Storage) – file storage for creator uploads
  • SyncKit – cloud sync and device management API for client applications
  • Sentry – error tracking
  • git2 – built-in git source browser

Deployment

Runs on a Hetzner VPS with systemd and Caddy (reverse proxy + TLS). No Docker.

Deploys go through Sando, the pipeline controller (sandod, on fw13). Sando builds the server natively, runs the gate tiers, and swaps the release on the prod host. Deploying by hand is not supported: no deploy.sh, no scp, no building on the prod box. The operator procedure lives in sando/deploy/README.md.

The old server/deploy/deploy.sh is retained only as a cutover reference and must not be used.

Testing

Each integration test creates and drops its own PostgreSQL database, so tests run in full isolation. Unit tests have no external dependencies.

cd server/
cargo test                    # Unit tests
cargo test --test integration # Integration tests (needs TEST_DATABASE_URL)

License

PolyForm Noncommercial 1.0.0