Wizard tunnel (COTI subdomain)
This is the simplest wizard path: on Setup FQDN, click Generate FQDN for Me. The wizard shows a success message and the Node FQDN value to use in the installer — a COTI-assigned hostname under the network’s managed zone (for example *.fullnode.<network>.coti.io or *.fullnode.<network>.coti.network, depending on environment). Then run the installer with --with-frp.
← Back to Installation overview · Related: Own domain (Nginx) · Manual full node setup
What COTI provides
No third-party domain to buy — DNS for that hostname is operated by COTI.
No TLS certificate on your server — HTTPS terminates at COTI’s edge; FRP (frps) and DNS route traffic to frpc on your machine, which forwards to the full node’s JSON-RPC inside Docker.
What you skip on the host
Inbound firewall rules for 80, 443, and 7400 from the public internet are not required for this mode as designed: RPC over HTTPS reaches you through the tunnel; P2P can work with normal outbound connectivity.
The installer enables the FRPC Compose profile, keeps Nginx + Let’s Encrypt off, and skips ufw / iptables checks that assume you must open 80/443/7400 inbound. It still requires port 7400 free locally (no other process binding it) so the node container can use it.
Prerequisites
Server meeting Server requirements (certified Ubuntu 24.04 LTS on Linux, or Windows 11 + WSL 2 + Ubuntu 24.04 LTS; disk, RAM), with root access.
The FQDN string shown in the wizard after generation (same value the one-liner expects; hostname pattern is network-specific).
Node private key (64 hex chars) from the wizard or your own.
One-line command
The wizard shows Linux / WSL and macOS tabs. Use the line that matches where Docker runs. <network> is mainnet or testnet. <FQDN> is the COTI-assigned hostname; <PRIVATE_KEY> may include or omit the 0x prefix.
Linux / WSL (Ubuntu 24.04) — install_coti-full-node.sh at https://fullnode.<network>.coti.io/install-linux; run as root:
macOS — install_coti-full-node-mac.sh at https://fullnode.<network>.coti.io/install-mac; do not use sudo:
Windows 11: use WSL 2 + Ubuntu 24.04 LTS and the Linux command above. There is no separate Windows installer path.
What the installer does (this flow)
Driven by install_coti-full-node.sh (https://fullnode.<network>.coti.io/install-linux) on Linux/WSL, or install_coti-full-node-mac.sh (https://fullnode.<network>.coti.io/install-mac) on macOS:
OS and inputs — Certified Ubuntu version check, root, valid hex key and hostname (non-24.04 may prompt; see Server requirements → Windows 11 with WSL 2).
Pre-checks — Writable install dir, disk space; no inbound 80/443/7400 firewall enforcement; 7400 must not already be in use locally.
Packages — Docker, Compose,
curl,git,jq,dnsutils(nocertbotwhen Nginx is off).Clone —
coti-full-nodeinto the current directory (must be empty).Config —
installer.env(image tag, network),.env(host flags),nodekey, and FRPCfrpc-*.tomlwhen--with-frpis set (FRPC_ENABLED=true).Nginx / Certbot — Skipped; TLS is at COTI’s edge.
Launch —
./start_coti-full-node.shstarts the node and FRPC containers.
After the command finishes
The script prints a summary (FRPC gateways, custom domain, logs). The node syncs; the wizard advances when peer discovery sees your node. Warm-up / hot / NFT rules are in the Glossary.
Rewards need a reachable public RPC name. Monitoring uses your COTI-assigned hostname and edge TLS. If DNS or the tunnel is wrong, uptime may not accrue. See Glossary and Server requirements.
Flags relevant to this flow
--with-frp
Enables FRPC, disables Nginx, relaxes inbound 80/443/7400 firewall checks (this guide).
--with-nginx
Own-domain path instead — see Own domain (Nginx).
FRPC is off by default; use --with-frp to enable it. Do not pass --with-frp and --with-nginx on the same install.
Troubleshooting
FRPC / tunnel — Confirm
docker psshowsfrpccontainers, and the COTI hostname resolves and reaches the edge. Check logs:docker logson the frpc containers andcoti-<network>-full-node.Port 7400 in use — Another process is bound to 7400; free it before re-running.
Dirty directory — Installer needs an empty folder; move or remove an old
coti-full-nodeclone.
Last updated
Was this helpful?