geotop GUI dashboard with a world map, animated connection arcs, top-talkers chart and live connection log

First prize at IP2Location 2026: the six-day build log behind geotop

The 2026 IP2Location Programming Contest winners are out, and geotop took first prize. The award is USD $500 plus a two-year IP2Location.io Security Plan; the winners page values the whole package at USD $12,476. Second and third went to geotail and LocaSentinel. The short version is easy: geotop won. This is the longer one. I went back through both repositories — 34 commits in geotop, one in GeoSentinel-Ingress — and reconstructed what actually happened between 3 and 9 August 2026: what was deliberate, what was discovered by breaking a release, and what I would change before the next tag. ...

October 27, 2026 · 15 min · Özkan Pakdil

How to containerize a rust warp app

I wrote this arti warp server for running whois via TOR network, Arti is CLI tool which has arti_client library inside for connecting the network, my main target to dockerize this for easy deploy to koyeb.com I used docker init to create Dockerfile and others and changed the implementation little bit because of some special dependencies ARG RUST_VERSION=1.82.0 ARG APP_NAME=arti_whois FROM rust:${RUST_VERSION}-alpine AS build ARG APP_NAME WORKDIR /app # Install host build dependencies. RUN apk add --no-cache clang lld musl-dev git openssl-dev openssl libssl3 libcrypto3 libgcrypt openssl-libs-static ca-certificates RUN --mount=type=bind,source=src,target=src \ --mount=type=bind,source=Cargo.toml,target=Cargo.toml \ --mount=type=bind,source=Cargo.lock,target=Cargo.lock \ --mount=type=cache,target=/app/target/ \ --mount=type=cache,target=/usr/local/cargo/git/db \ --mount=type=cache,target=/usr/local/cargo/registry/ \ cargo build --locked --release && \ cp ./target/release/$APP_NAME /bin/server FROM alpine:3.18 AS final USER root COPY --from=build /bin/server /bin/ EXPOSE 8016 ENV RUST_BACKTRACE=1 ENV RUST_LOG=debug CMD ["/bin/server"] apk add part took a while to figure out because on every run, compile was failing with different error, I needed to install all the dev lib dependencies to the alpine linux 2. Test with docker compose up --build until everything is fine. I was using curl for testing the app curl "localhost:8016/whois?ip=1.1.1.1" -v 3. Than docker push ozkanpakdil/arti_whois to push it to docker repository ...

December 23, 2024 · 1 min · Özkan Pakdil

Using arti to Connect to TOR Network and query WHOIS information in Rust

This code is a web application that allows querying WHOIS information over the TOR network. It uses the arti library to create and manage the tor connection and tor-rtcompat to define the runtime for the tor connection. The arti library provides a simple way to connect to the TOR network and make requests through it. It also allows to define the behavior of the tor connection, like in this case OnDemand, which only establishes the connection when it is needed. ...

January 14, 2023 · 2 min · Özkan Pakdil