File size: 4,761 Bytes
26415a1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>ARTEMIS Server</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{background:#06090f;color:#c9d1d9;font-family:'Segoe UI',system-ui,sans-serif;
  min-height:100vh;padding:40px 20px;display:flex;flex-direction:column;align-items:center}
.title{font-size:2.2rem;font-weight:800;letter-spacing:.08em;margin-bottom:8px;text-align:center;
  background:linear-gradient(90deg,#58a6ff,#7ee8fa);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent}
.sub{color:#8b949e;font-size:.95rem;margin-bottom:40px;text-align:center;max-width:580px;line-height:1.6}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:18px;width:100%;max-width:900px;margin-bottom:32px}
.card{background:#0d1117;border:1px solid #1e3a5f;border-radius:8px;padding:22px}
.card h3{color:#58a6ff;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px}
.card p,.card li{font-size:.87rem;color:#8b949e;line-height:1.7}
ul{padding-left:16px}
code{background:#161b22;color:#e3b341;padding:2px 6px;border-radius:3px;font-size:.82rem}
.flow{font-family:'Cascadia Code',monospace;font-size:.8rem;background:#0d1117;
  border:1px solid #1e3a5f;border-radius:6px;padding:20px;max-width:900px;width:100%;margin-bottom:24px}
pre{white-space:pre;color:#c9d1d9}
.badge{display:inline-block;background:#1e3a5f;color:#58a6ff;border-radius:4px;
  padding:2px 8px;font-size:.74rem;margin:2px}
.dl{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px;justify-content:center}
.btn{background:linear-gradient(135deg,#1e3a5f,#0d2137);border:1px solid #58a6ff;
  color:#58a6ff;padding:10px 22px;border-radius:6px;font-size:.88rem;cursor:pointer;
  text-decoration:none;letter-spacing:.04em}
</style>
</head>
<body>
<div class="title">ARTEMIS SERVER</div>
<div class="sub">A portable HTTP file server with an integrated Cloudflare tunnel.
  One binary. Zero config. Serve any directory to the internet in seconds,
  from any machine &mdash; no port forwarding, no firewall rules, no domain required.</div>

<div class="grid">
  <div class="card">
    <h3>How It Works</h3>
    <p>Starts a local HTTP file server, then launches <code>cloudflared</code> in tunnel mode.
    Cloudflare assigns a random <code>*.trycloudflare.com</code> URL that proxies straight to your machine.
    Anyone with the link can access your files instantly.</p>
  </div>
  <div class="card">
    <h3>Features</h3>
    <ul>
      <li>Single binary &mdash; no runtime, no installer</li>
      <li>ARM64 + ARM builds for Android / Termux</li>
      <li>Custom MIME types (video/mp4, audio/ogg)</li>
      <li>Optional log file output</li>
      <li>HTTP/2 and QUIC tunnel protocols</li>
      <li>Graceful shutdown on Ctrl+C</li>
    </ul>
  </div>
  <div class="card">
    <h3>Stack</h3>
    <p>
      <span class="badge">Go</span>
      <span class="badge">net/http</span>
      <span class="badge">Cloudflared</span>
      <span class="badge">ARM64</span>
      <span class="badge">Termux</span>
      <span class="badge">Windows</span>
    </p>
    <br>
    <p>Built as a companion to the ARTEMIS ecosystem &mdash;
    used to serve files from an Android device over a Cloudflare tunnel
    without exposing any local ports.</p>
  </div>
</div>

<div class="flow">
  <div style="color:#58a6ff;margin-bottom:10px;font-size:.78rem;letter-spacing:.08em">ARCHITECTURE</div>
  <pre>
  Your Machine
  +-----------------------+
  |  artemis-server       |
  |                       |       Cloudflare Edge
  |  http.FileServer      +------>  *.trycloudflare.com  ------>  Anyone on the internet
  |    :8080              |            (tunnel)
  |                       |
  |  cloudflared tunnel   |
  +-----------------------+

  $ ./artemis-server --dir /path/to/files --port 8080
  Serving /path/to/files on http://0.0.0.0:8080
  Tunnel URL: https://random-words-here.trycloudflare.com
  </pre>
</div>

<div class="grid">
  <div class="card">
    <h3>Usage</h3>
    <p>
      <code>./artemis-server</code> &mdash; serve current dir on :8080<br><br>
      <code>./artemis-server --dir ~/files --port 9000</code><br><br>
      <code>./artemis-server --protocol quic --log server.log</code>
    </p>
  </div>
  <div class="card">
    <h3>Termux / Android</h3>
    <p>The ARM64 binary runs natively in Termux with no root required.
    Pair with <code>cloudflared</code> to instantly share files from your phone
    to any device in the world. No app, no account, no subscription.</p>
  </div>
</div>

<div style="margin-top:32px;color:#484f58;font-size:.8rem">
  Part of the ARTEMIS ecosystem &middot; ftrtemis
</div>
</body>
</html>