This guide walks you through setting up a complete Ogmara node — from a bare server to a fully-featured deployment with media storage, push notifications, and a web frontend. Each step builds on the previous one, but you only need to complete Server Prep, Install, and Configuration to have a working node on the network.
A complete Ogmara node deployment consists of five components. The L2 node is the only required piece — everything else adds capabilities.
Full Ogmara Node Stack:
1. L2 Node (core) — stores messages, connects to network
2. IPFS (media) — image/video uploads and serving
3. Push Gateway (notif.) — mobile push notifications
4. Web Frontend (access) — serve the web app to users
5. Reverse Proxy (prod.) — SSL, domain name, routing
Server Prep + Install + Configuration give you a working node.
Each additional component adds features.
You can add components incrementally. Start with just the L2 node, verify it works, then add IPFS, push notifications, and the web frontend when you are ready.
Requirements, ports, dependencies, system user, swap, and firewall — everything that must be in place before installing the node.
Pull the ogmara/ogmara:l2-node-latest image, bind-mount the config and data dirs, and run as your host user. The recommended path.
Build the binary from the l2-node repo with cargo build --release and install a systemd unit. Use this if you can't or don't want to run Docker.
Fill in the four required blocks of ogmara.toml (Klever endpoints, contract address, public URL), opt into production features, and safely switch between testnet and mainnet.
Health-check the L2 node, IPFS, push gateway, reverse proxy, and WebSocket endpoint. Confirm expected resource usage and where to find logs.
Add media storage so users connected to your node can upload and view images, video, avatars, and file attachments.
Deliver push notifications to Android and iOS clients so they receive messages with the app closed.
Host the static web app on your domain so browser users can connect without installing anything.
SSL termination with Let's Encrypt, request routing, and security headers. Apache or Nginx — both templates included.
Enable the bundled /admin/dashboard on its own subdomain, log in with a Klever wallet, and stream live node metrics.
Symptoms collected from real-world walkthroughs — permission errors, missing config, dashboard URL gotchas, rate-limiting, peer discovery, and more.
One-page lookup of which port serves what, which components are required, and what each piece of the stack does.