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
.envfile: database URL, Stripe keys, Postmark token, S3 credentials, Sentry DSN, session secret, JWT secret. Seeserver/.env.examplefor 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