| name | server-admin |
| description | Administer Ronak's VPS at 5.78.176.171, including Docker Compose stacks, Caddy, the ronakpjain.com website, BlueMap, Minecraft/Purpur, DNS/routing checks, logs, firewall, users, SSH, and general server maintenance. |
Server Admin
Server facts
- Host:
5.78.176.171
- SSH user:
ronak
- Root SSH is disabled.
ronak has passwordless sudo and is in the docker group.
- Old server
167.99.14.44 was shut down after migration.
Paths
- Minecraft/Purpur compose project:
/home/ronak/minecraft/purpur
- Minecraft data volume:
/home/ronak/minecraft/purpur/data
- Website compose project:
/home/ronak/web
- Website app data/build:
/home/ronak/web/build
- Website Unix socket dir:
/home/ronak/web/socket
- Caddy compose project:
/home/ronak/caddy
- Caddyfile:
/home/ronak/caddy/Caddyfile
- Caddy data/config:
/home/ronak/caddy/caddy_data, /home/ronak/caddy/caddy_config
- Uptime Kuma compose project:
/home/ronak/uptime-kuma
- Uptime Kuma data:
/home/ronak/uptime-kuma/data
- Chat export:
/home/ronak/minecraft/purpur/chat-log-formatted.txt
Containers
Expected containers:
purpur from itzg/minecraft-server:latest
caddy from caddy:latest
ronfire from ironic06/ronfire:latest
uptime-kuma from louislam/uptime-kuma:latest
Minecraft compose exposes:
- Java:
25565/tcp
- Bedrock/Geyser:
19132/udp
- BlueMap is not directly exposed; it is proxied internally by Caddy to
purpur:8100.
- Uptime Kuma is not directly exposed; it is proxied internally by Caddy to
uptime-kuma:3001.
Caddy exposes:
- HTTP:
80/tcp
- HTTPS:
443/tcp
Docker/network wiring:
caddynet external network connects Caddy and Purpur so Caddy can reach purpur:8100.
- Website and Caddy are intentionally separate compose projects.
ronfire writes/serves via Unix socket at /home/ronak/web/socket/website.sock.
- Caddy mounts
/home/ronak/web/socket:/app/socket and proxies ronakpjain.com to unix//app/socket/website.sock.
- Uptime Kuma joins the external
caddynet network so Caddy can reach uptime-kuma:3001.
Domains
- Website:
ronakpjain.com, www.ronakpjain.com
- BlueMap:
bluemap.ronakpjain.com
- Uptime Kuma admin:
uptime.ronakpjain.com
- Public status page:
status.ronakpjain.com (also available at uptime.ronakpjain.com/status/status)
- Minecraft domain should be a DNS-only/gray-cloud record such as
mc.ronakpjain.com -> 5.78.176.171 because Cloudflare orange-cloud does not proxy standard Minecraft TCP/UDP.
Caddy BlueMap block should normally be:
bluemap.ronakpjain.com {
reverse_proxy purpur:8100
}
Caddy Uptime Kuma blocks should normally be:
uptime.ronakpjain.com {
reverse_proxy uptime-kuma:3001
}
status.ronakpjain.com {
reverse_proxy uptime-kuma:3001
}
Current Minecraft features/plugins
- Purpur, Minecraft internal version shown as
26.1.2.
- Plugins:
- BlueMap
- Geyser-Spigot
- floodgate
- OnePlayerSleep
- Geyser/Floodgate auth type should be
floodgate.
- Floodgate Bedrock player names use prefix
. in Java-side whitelist, e.g. .hssongg.
- OnePlayerSleep is installed so one player can sleep through night.
Common commands
Always SSH as ronak:
ssh ronak@5.78.176.171
Minecraft:
cd /home/ronak/minecraft/purpur
docker compose ps
docker compose logs -f purpur
docker compose restart purpur
docker exec purpur rcon-cli "whitelist list"
docker exec purpur rcon-cli "bluemap maps"
Website app:
cd /home/ronak/web
docker compose ps
docker compose logs -f ronfire
docker compose restart ronfire
Caddy:
cd /home/ronak/caddy
docker compose ps
docker compose logs -f caddy
docker compose restart caddy
Uptime Kuma:
cd /home/ronak/uptime-kuma
docker compose ps
docker compose logs -f uptime-kuma
docker compose restart uptime-kuma
docker exec uptime-kuma sqlite3 /app/data/kuma.db "select id,name,type,url,hostname,port,active from monitor order by id;"
Add Uptime Kuma monitors directly via SQLite when needed. Use the UI if convenient, but for agent automation this pattern works:
cd /home/ronak/uptime-kuma
docker exec -i uptime-kuma sqlite3 /app/data/kuma.db <<'SQL'
INSERT INTO monitor (name, active, user_id, interval, url, type, maxretries, retry_interval, maxredirects, method, timeout)
SELECT 'Service Name', 1, 1, 60, 'https://example.com', 'http', 1, 60, 10, 'GET', 48
WHERE NOT EXISTS (SELECT 1 FROM monitor WHERE name='Service Name');
SQL
docker compose restart uptime-kuma
cd /home/ronak/uptime-kuma
docker exec -i uptime-kuma sqlite3 /app/data/kuma.db <<'SQL'
INSERT INTO monitor (name, active, user_id, interval, type, hostname, port, maxretries, retry_interval, timeout)
SELECT 'Service Port', 1, 1, 60, 'port', '5.78.176.171', 25565, 1, 60, 48
WHERE NOT EXISTS (SELECT 1 FROM monitor WHERE name='Service Port');
SQL
docker compose restart uptime-kuma
Add an existing monitor to the public status page:
docker exec -i uptime-kuma sqlite3 /app/data/kuma.db <<'SQL'
INSERT OR IGNORE INTO monitor_group (monitor_id, group_id, weight, send_url)
SELECT m.id, g.id, m.id, 0
FROM monitor m
JOIN `group` g ON g.name='Services'
JOIN status_page s ON s.id=g.status_page_id AND s.slug='status'
WHERE m.name='Service Name';
SQL
docker compose restart uptime-kuma
Current public status page monitors are Website, Website WWW, BlueMap, Uptime Kuma, and Minecraft Java.
Health checks:
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
curl -sS https://bluemap.ronakpjain.com -o /tmp/bm.html -w "%{http_code} %{size_download}\n"
curl -sS -I https://uptime.ronakpjain.com
curl -sS -I https://status.ronakpjain.com
curl -sS -I -H "Host: bluemap.ronakpjain.com" http://127.0.0.1
Note: BlueMap returns 400 to some HEAD requests; verify with normal GET when in doubt.
Whitelist notes
Main whitelist is enabled. Known whitelist entries included:
Ironic5000
bovabova1
Claydunn
.hssongg
.PurdueChemE
KittyScanArchive was removed. szvi_ was intentionally excluded.
Floodgate command exists:
docker exec purpur rcon-cli "fwhitelist add hssongg"
docker exec purpur rcon-cli "fwhitelist add PurdueChemE"
BlueMap rendering
BlueMap maps:
overworld
world (Nether)
world_the_end
Flat, perspective, free-flight/3D, and hires were enabled in generated configs.
Render/status commands:
docker exec purpur rcon-cli "bluemap"
docker exec purpur rcon-cli "bluemap maps"
docker exec purpur rcon-cli "bluemap tasks"
docker exec purpur rcon-cli "bluemap start"
docker exec purpur rcon-cli "bluemap update overworld"
docker exec purpur rcon-cli "bluemap update world"
docker exec purpur rcon-cli "bluemap update world_the_end"
Safety/guardrails
- Before risky changes, check container state and paths.
- For data migration or volume operations, stop affected containers first.
- Avoid logging secrets/passwords.
- Do not re-enable root SSH unless explicitly requested.
- If touching Caddy certs/DNS, check Caddy logs and Cloudflare proxy behavior.
- Use
sudo from ronak if OS-level admin is needed.