<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>cloudflare on Digital Archive Systems Tech Blog</title><link>https://tech.ldas.jp/en/tags/cloudflare/</link><description>Recent content in cloudflare on Digital Archive Systems Tech Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 07 Apr 2026 11:00:00 +0900</lastBuildDate><atom:link href="https://tech.ldas.jp/en/tags/cloudflare/index.xml" rel="self" type="application/rss+xml"/><item><title>Securing SSH with Cloudflare Zero Trust</title><link>https://tech.ldas.jp/en/posts/cloudflare-zero-trust-ssh/</link><pubDate>Tue, 07 Apr 2026 11:00:00 +0900</pubDate><guid>https://tech.ldas.jp/en/posts/cloudflare-zero-trust-ssh/</guid><description>&lt;h1 id="securing-ssh-with-cloudflare-zero-trust">Securing SSH with Cloudflare Zero Trust&lt;/h1>
&lt;h2 id="background">Background&lt;/h2>
&lt;p>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.&lt;/p>
&lt;p>With Cloudflare Zero Trust, you can build an environment where only authenticated users can connect via SSH, &lt;strong>while keeping the SSH port completely closed&lt;/strong>.&lt;/p>
&lt;h2 id="what-is-zero-trust">What Is Zero Trust?&lt;/h2>
&lt;p>Traditional security models relied on the assumption that &amp;ldquo;anything inside the corporate network is trusted.&amp;rdquo; Zero Trust discards this assumption and instead &lt;strong>verifies every access request&lt;/strong>.&lt;/p></description></item><item><title>Securely Exposing Academic Servers with Cloudflare Tunnel</title><link>https://tech.ldas.jp/en/posts/cloudflare-tunnel/</link><pubDate>Tue, 07 Apr 2026 10:00:00 +0900</pubDate><guid>https://tech.ldas.jp/en/posts/cloudflare-tunnel/</guid><description>&lt;h1 id="securely-exposing-academic-servers-with-cloudflare-tunnel">Securely Exposing Academic Servers with Cloudflare Tunnel&lt;/h1>
&lt;h2 id="background">Background&lt;/h2>
&lt;p>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.&lt;/p>
&lt;p>With Cloudflare Tunnel, you can &lt;strong>securely expose services to the public without opening any inbound ports&lt;/strong> on your server.&lt;/p>
&lt;h2 id="what-is-cloudflare-tunnel">What Is Cloudflare Tunnel?&lt;/h2>
&lt;p>In a conventional server setup, the server opens ports and listens for incoming connections (inbound connections). Cloudflare Tunnel reverses this model.&lt;/p></description></item><item><title>How Name Servers Work</title><link>https://tech.ldas.jp/en/posts/nameserver/</link><pubDate>Tue, 07 Apr 2026 09:00:00 +0900</pubDate><guid>https://tech.ldas.jp/en/posts/nameserver/</guid><description>&lt;h1 id="how-name-servers-work">How Name Servers Work&lt;/h1>
&lt;h2 id="the-difference-between-name-servers-and-dns">The Difference Between Name Servers and DNS&lt;/h2>
&lt;p>These terms are often used in similar contexts, but they are technically different.&lt;/p>
&lt;div class="table-wrapper">
 &lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;/th>
 &lt;th>DNS&lt;/th>
 &lt;th>Name Server&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>What is it?&lt;/td>
 &lt;td>The name for the entire system and set of rules&lt;/td>
 &lt;td>The actual server that operates within that system&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Analogy&lt;/td>
 &lt;td>&amp;ldquo;The phone book system&amp;rdquo;&lt;/td>
 &lt;td>&amp;ldquo;The person at the desk who holds the phone book&amp;rdquo;&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
&lt;/div>
&lt;p>&lt;strong>DNS (Domain Name System)&lt;/strong> 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.&lt;/p></description></item><item><title>Elasticsearch → Static JSON / D1 Migration — You Don't Need a Search Engine for Small Datasets</title><link>https://tech.ldas.jp/en/posts/elasticsearch-to-static-json-and-d1/</link><pubDate>Mon, 06 Apr 2026 22:00:00 +0900</pubDate><guid>https://tech.ldas.jp/en/posts/elasticsearch-to-static-json-and-d1/</guid><description>&lt;p>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.&lt;/p>
&lt;h2 id="background">Background&lt;/h2>
&lt;p>I&amp;rsquo;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:&lt;/p>
&lt;ul>
&lt;li>Reduce external service dependencies&lt;/li>
&lt;li>Keep everything within Cloudflare Pages&lt;/li>
&lt;li>The dataset is small (~1,800 records) — a full-text search engine might be overkill&lt;/li>
&lt;/ul>
&lt;h2 id="dataset">Dataset&lt;/h2>
&lt;div class="table-wrapper">
 &lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Metric&lt;/th>
 &lt;th>Value&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Records&lt;/td>
 &lt;td>1,812&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Total text (UTF-8)&lt;/td>
 &lt;td>~2.5 MB&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Average per record&lt;/td>
 &lt;td>~1.4 KB&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
&lt;/div>
&lt;p>Each record contains classical Japanese text (a few to ~15 lines), a page number, volume name, and IIIF canvas URL.&lt;/p></description></item></channel></rss>