https://github.com/anonvector/noizdns-deploy
One-click dnstt + NoizDNS server deployment for Linux
https://github.com/anonvector/noizdns-deploy
Last synced: about 2 months ago
JSON representation
One-click dnstt + NoizDNS server deployment for Linux
- Host: GitHub
- URL: https://github.com/anonvector/noizdns-deploy
- Owner: anonvector
- Created: 2026-03-02T23:04:38.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-03-24T01:37:06.000Z (3 months ago)
- Last Synced: 2026-03-25T01:13:50.638Z (3 months ago)
- Language: Shell
- Homepage:
- Size: 26.7 MB
- Stars: 134
- Watchers: 0
- Forks: 13
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NoizDNS Deploy
One-click server deployment for Linux. Deploys a NoizDNS server — same binary, no extra configuration.
## Quick Install
```bash
bash <(curl -Ls https://raw.githubusercontent.com/anonvector/noizdns-deploy/main/noizdns-deploy.sh)
```
After installation, run `noizdns` anytime for the management menu.
## Client
[**SlipNet**](https://github.com/anonvector/SlipNet) — Android VPN client with built-in NoizDNS support.
## Prerequisites
Before running the script, configure your DNS records:
| Record | Name | Value |
|---|---|---|
| **A** | `ns.example.com` | Your server's IP address |
| **AAAA** | `ns.example.com` | Your server's IPv6 address (optional) |
| **NS** | `t.example.com` | `ns.example.com` |
Replace `example.com` with your domain. The `t` subdomain is the tunnel endpoint.
## Features
- **Multi-distro**: Fedora, Rocky Linux, CentOS, Debian, Ubuntu
- **Auto-download**: Pre-built server binary
- **Non-interactive mode**: CLI flags for fully automated deployments
- **SOCKS5 proxy**: Dante-based SOCKS proxy with optional user authentication
- **Systemd integration**: Auto-start, restart on failure, security hardening
- **Firewall**: Automatic iptables/firewalld/ufw configuration with persistence
- **Key management**: Auto-generates keypairs, reuses existing keys on reconfiguration
- **Management menu**: Status, logs, restart, reconfigure, update, uninstall
- **Self-updating**: Update binary or script from the management menu
## Usage
### Interactive Install
```bash
bash <(curl -Ls https://raw.githubusercontent.com/anonvector/noizdns-deploy/main/noizdns-deploy.sh)
```
The script will prompt for:
1. **Tunnel domain** — e.g. `t.example.com`
2. **MTU** — default `1232`
### Non-Interactive Install (Automated)
Pass `--domain` to skip all prompts and run a fully automated deployment:
```bash
# Auto-install with defaults (generates new keys)
noizdns --domain t.example.com
# Custom MTU
noizdns --domain t.example.com --mtu 1400
# Use existing key files
noizdns --domain t.example.com \
--privkey-file /path/to/server.key \
--pubkey-file /path/to/server.pub
# One-liner via curl
bash <(curl -Ls https://raw.githubusercontent.com/anonvector/noizdns-deploy/main/noizdns-deploy.sh) \
--domain t.example.com
```
#### CLI Options
| Flag | Description |
|---|---|
| `-d, --domain ` | Tunnel domain (required for auto mode) |
| `-m, --mtu ` | MTU value (default: 1232) |
| `--pubkey-file ` | Path to existing public key file |
| `--privkey-file ` | Path to existing private key file |
| `-h, --help` | Show help |
> When `--domain` is provided, the script runs non-interactively. Keys are auto-generated if not provided, or reused if they already exist on the server. If providing key files, both `--pubkey-file` and `--privkey-file` are required.
### Management
```bash
noizdns
```
```
────────────────────────────────────────────
NoizDNS Server Management
────────────────────────────────────────────
Status: Running
1) Install / Reconfigure
2) Show configuration
3) Service status
4) View live logs
5) User management
6) Restart service
7) Stop service
8) Start service
9) Update binary
10) Update this script
11) Uninstall
0) Exit
```
### Manual Commands
```bash
systemctl start noizdns-server # Start
systemctl stop noizdns-server # Stop
systemctl status noizdns-server # Status
journalctl -u noizdns-server -f # Live logs
```
## Uninstall
From the menu, select option **11**. This removes:
- Systemd service
- Server binary
- Configuration and keys
- Service user
- iptables rules
- The deploy script itself
## File Locations
| Path | Description |
|---|---|
| `/usr/local/bin/noizdns` | Management script |
| `/usr/local/bin/dnstt-server` | Server binary |
| `/etc/noizdns/server.conf` | Configuration |
| `/etc/noizdns/*_server.key` | Private key |
| `/etc/noizdns/*_server.pub` | Public key |
## License
MIT