Articles Projects Search About
RSS 日本語

Securing SSH with Cloudflare Zero Trust

Securing SSH with Cloudflare Zero Trust Background To access a server via SSH, you typically need to expose port 22 to the internet. However, an open SSH port is a constant target for attacks. With Cloudflare Zero Trust, you can build an environment where only authenticated users can connect via SSH, while keeping the SSH port completely closed. What Is Zero Trust? Traditional security models relied on the assumption that “anything inside the corporate network is trusted.” Zero Trust discards this assumption and instead verifies every access request. ...

Securely Exposing Academic Servers with Cloudflare Tunnel

Securely Exposing Academic Servers with Cloudflare Tunnel Background When running Elasticsearch (full-text search) or Cantaloupe (IIIF image delivery) on an academic research server, you typically need to open ports to the outside world. However, opening ports introduces the risk of attacks exploiting vulnerabilities. With Cloudflare Tunnel, you can securely expose services to the public without opening any inbound ports on your server. What Is Cloudflare Tunnel? In a conventional server setup, the server opens ports and listens for incoming connections (inbound connections). Cloudflare Tunnel reverses this model. ...

How Name Servers Work

How Name Servers Work The Difference Between Name Servers and DNS These terms are often used in similar contexts, but they are technically different. DNS Name Server What is it? The name for the entire system and set of rules The actual server that operates within that system Analogy “The phone book system” “The person at the desk who holds the phone book” DNS (Domain Name System) refers to the entire system for looking up IP addresses from domain names. It is a concept that encompasses protocols, rules, record formats, and more. ...

Elasticsearch → Static JSON / D1 Migration — You Don't Need a Search Engine for Small Datasets

I implemented three search backends — Elasticsearch, Cloudflare D1 (SQLite), and Static JSON (in-memory) — for a Japanese text search API running on Cloudflare Pages, and compared their performance. Background I’ve been running a full-text search API for classical Japanese texts. The existing setup used an external Elasticsearch cluster, but I wanted to explore alternatives for several reasons: Reduce external service dependencies Keep everything within Cloudflare Pages The dataset is small (~1,800 records) — a full-text search engine might be overkill Dataset Metric Value Records 1,812 Total text (UTF-8) ~2.5 MB Average per record ~1.4 KB Each record contains classical Japanese text (a few to ~15 lines), a page number, volume name, and IIIF canvas URL. ...