- Move all documentation to docs/ directory for better organization - Rewrite README.md following Linux kernel style (English only) - Rename HACKING -> CONTRIBUTING.md - Rename QUICKREF -> QUICKREF.md - Rename README -> README.old - Add comprehensive Development-Guide.md for contributors Documentation structure: - README.md: Project overview and quick start - docs/Development-Guide.md: Complete developer manual - docs/CONTRIBUTING.md: Contribution guidelines - docs/DEPLOYMENT.md: Production deployment guide - docs/SECURITY_QUICKREF.md: Security config reference - docs/QUICKREF.md: Command cheat sheet This aligns with Linux kernel documentation practices: simple, organized, and accessible.
2 KiB
CI/CD USAGE GUIDE
AUTOMATIC TESTING
Every push or PR automatically runs:
- Build on Ubuntu and macOS
- AddressSanitizer checks
- Valgrind memory leak detection
Check status: https://github.com/m1ngsama/TNT/actions
CREATING RELEASES
-
Update version in CHANGELOG.md
-
Create and push tag: git tag v1.0.0 git push origin v1.0.0
-
GitHub Actions automatically:
- Builds binaries (Linux/macOS, AMD64/ARM64)
- Creates release
- Uploads binaries
- Generates checksums
-
Release appears at: https://github.com/m1ngsama/TNT/releases
DEPLOYING TO SERVERS
Single command on any server: curl -sSL https://raw.githubusercontent.com/m1ngsama/TNT/main/install.sh | sh
Or with specific version: VERSION=v1.0.0 curl -sSL https://raw.githubusercontent.com/m1ngsama/TNT/main/install.sh | sh
PRODUCTION SETUP (systemd)
-
Install binary (see above)
-
Setup service: sudo useradd -r -s /bin/false tnt sudo mkdir -p /var/lib/tnt sudo chown tnt:tnt /var/lib/tnt sudo cp tnt.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now tnt
-
Check status: sudo systemctl status tnt sudo journalctl -u tnt -f
UPDATING SERVERS
Stop service: sudo systemctl stop tnt
Run installer again: curl -sSL https://raw.githubusercontent.com/m1ngsama/TNT/main/install.sh | sh
Restart: sudo systemctl start tnt
PLATFORMS SUPPORTED
✓ Linux AMD64 (x86_64) ✓ Linux ARM64 (aarch64) ✓ macOS Intel (x86_64) ✓ macOS Apple Silicon (arm64)
EXAMPLE WORKFLOW
Local development
make && make asan ./tnt
Create release
git tag v1.0.1 git push origin v1.0.1
Wait 5 minutes for builds
Deploy to production servers
for server in server1 server2 server3; do ssh $server "curl -sSL https://raw.githubusercontent.com/m1ngsama/TNT/main/install.sh | VERSION=v1.0.1 sh" ssh $server "sudo systemctl restart tnt" done