A one-page lookup of which port serves what, which components are required, and the CLI commands you'll use day-to-day. Bookmark this page — it's the one operators come back to most.
| Component | Port | Purpose | Required |
|---|---|---|---|
| L2 Node | 41720, 41721 | P2P network, API | Yes |
| IPFS | 4001, 5001, 8081 | Media storage | No |
| Push Gateway | 41722 | Notifications | No |
| Web Frontend | Static files | Browser access | No |
| Reverse Proxy | 80, 443 | SSL, routing | Production |
The most-used CLI lines, gathered in one place so you don't have to grep through the tutorial. Pick the row that matches your install path.
# Start / stop / restart the L2 node
docker start ogmara-l2
docker stop ogmara-l2
docker restart ogmara-l2
# Live log stream (Ctrl-C to detach)
docker logs -f ogmara-l2
# Last 100 lines (useful for "what just broke")
docker logs --tail 100 ogmara-l2
# Errors only since the last hour
docker logs --since 1h ogmara-l2 2>&1 | grep -i 'err\|warn'
# Inspect the bind-mounted config
ls -la /etc/ogmara/ogmara.toml
nano /etc/ogmara/ogmara.toml # then `docker restart ogmara-l2`
# Pull a fresh image and re-create the container
docker pull ogmara/ogmara:l2-node-latest
docker rm -f ogmara-l2
# ... re-run the `docker run` from the Install — Docker page
# Start / stop / restart the L2 node
sudo systemctl start ogmara-node
sudo systemctl stop ogmara-node
sudo systemctl restart ogmara-node
# Service status (uptime, last few log lines, PID)
sudo systemctl status ogmara-node
# Live log stream
sudo journalctl -u ogmara-l2 -f
# Last 100 lines
sudo journalctl -u ogmara-l2 -n 100
# Errors only since the last hour
sudo journalctl -u ogmara-l2 -p err --since "1 hour ago"
# Edit the config and reload
sudo nano /etc/ogmara/ogmara.toml
sudo systemctl restart ogmara-node
# All Ogmara services in one window
sudo systemctl status ogmara-node ipfs ogmara-push-gateway
Your node key IS your node's wallet address — lose it and any KLV on the address is gone. Export early, store offline, never share.
# --- Source / systemd ---
# Run as the ogmara user (owns the data dir) and pass the same config the
# service uses. Export uses a read-only DB open, so it works live.
sudo -u ogmara ogmara-node --config /etc/ogmara/ogmara.toml export-key -o /tmp/my-node-key.bak
# Restore on a new server or after a data wipe. Import needs an exclusive
# write lock, so stop the node first.
sudo systemctl stop ogmara-node
sudo -u ogmara ogmara-node --config /etc/ogmara/ogmara.toml import-key -i /tmp/my-node-key.bak
sudo systemctl start ogmara-node
# --- Docker ---
# Export via the running container (file lands in the bind-mounted /data).
docker exec ogmara-l2 ogmara-node --config /etc/ogmara/ogmara.toml export-key -o /data/node-key.bak
cp /var/lib/ogmara/data/node-key.bak ~/my-node-key.bak
# Restore. Import needs the RocksDB write lock, which the running node
# holds — so stop the container and import with a one-off container that
# mounts the same volume, then start the node again.
cp ~/my-node-key.bak /var/lib/ogmara/data/node-key.bak
docker stop ogmara-l2
docker run --rm \
--user $(id -u):$(id -g) \
-v /var/lib/ogmara/data:/data \
-v /etc/ogmara:/etc/ogmara \
ogmara/ogmara:l2-node-latest --config /etc/ogmara/ogmara.toml import-key -i /data/node-key.bak
docker start ogmara-l2
# L2 node API
curl -s http://127.0.0.1:41721/api/v1/health
# IPFS
curl -s http://127.0.0.1:5001/api/v0/id | head -c 200
# Push gateway
curl -s http://127.0.0.1:41722/health
# Via reverse proxy (replace with your domain)
curl -s https://node.yourdomain.com/api/v1/health
Need more detail on any of these? The full walkthrough lives in Install — Docker / Install — Source / Configuration / Verify. For symptoms and fixes, see Troubleshooting.