-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathindex.xml
302 lines (301 loc) · 10.6 KB
/
index.xml
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
<!DOCTYPE html>
<html lang="en" prefix="og: http://ogp.me/ns#">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>BCHS: BSD, C, httpd, SQLite</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Alegreya+Sans:400,500,700" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
<link rel="stylesheet" href="index.css" />
<link rel="shortcut icon" type="image/png" href="/favicon-196x196.png" />
<link rel="shortcut icon" sizes="196x196" href="/favicon-196x196.png" />
<link rel="apple-touch-icon" href="/favicon-196x196.png" />
<meta property="og:title" content="BCHS stack" />
<meta property="og:image" content="https://learnbchs.org/logo-blue.png" />
<meta property="og:url" content="https://learnbchs.org/index.html" />
<meta property="og:type" content="website" />
<meta property="og:description" content="BSD, C, httpd, SQLite: an open software stack for web applications" />
<meta name="description" content="BSD, C, httpd, SQLite: an open software stack for web applications" />
</head>
<body>
<section itemscope="itemscope" itemtype="http://schema.org/WebPage">
<header id="tophead">
<h1 itemprop="name">bchs stack</h1>
<nav>
<span><a href="tools.html">tools</a></span>
<span><a href="easy.html">example</a></span>
<span><a href="https://github.com/kristapsdz/bchs"><i class="fa fa-fw fa-github"></i></a></span>
<span><a href="report/index.html"><i class="fa fa-fw fa-server"></i></a></span>
</nav>
</header>
<article id="top">
<div id="logo">
<img itemprop="image" src="logo-white.png" alt="BCHS Logo" />
</div>
<h2>BSD, C, httpd, SQLite.</h2>
<p itemprop="description">
BCHS is an <a href="https://www.openbsd.org/policy.html">open source</a> software stack for web
applications.
To prepare a BCHS environment, install <a href="https://www.openbsd.org">OpenBSD</a>, start your editor
of choice, and get to work.
</p>
<p>
How does a BCHS system look?
<a href="easy.html">See a trivial example</a>.
</p>
</article>
<article id="start">
<header>
<h3>Stack components</h3>
<p>why bchs? because the open internet is inhospitable.</p>
</header>
<section class="paired">
<figure class="exemplar">
<img src="puffy.png" />
</figure>
<div>
<h4>BSD</h4>
<p>
<a href="https://www.openbsd.org">OpenBSD</a>.
World-renowned for its focus on security and documentation.
Reliable six-month releases.
Binary patching.
It takes the guess-work out of your environment.
</p>
<nav>
Resources:
<a href="https://man.openbsd.org">man pages</a>,
<a href="https://www.openbsd.org/faq/">FAQ</a>,
<a href="https://www.michaelwlucas.com/nonfiction/absolute-openbsd-2nd-edition">
<i>Absolute OpenBSD</i></a>,
<a href="https://www.openbsd.org/mail.html">mailing lists</a>.
</nav>
</div>
</section>
<section class="paired">
<div>
<h4>the C Programming Language</h4>
<p>
C is a straightforward, non-mustachioed language.
It has full access to the kernel's system calls and a massive set of development tools
and libraries.
</p>
<nav>
Resources:
<a href="https://www.amazon.com/The-Programming-Language-Brian-Kernighan/dp/0131103628">
<i>The C Programming Language</i></a>,
<a href="https://man.openbsd.org/OpenBSD-current/man1/clang.1">clang(1)</a>,
<a href="https://man.openbsd.org/OpenBSD-current/man1/clang-local.1">clang-local(1)</a>.
</nav>
</div>
<pre class="exemplar">#include <stdio.h>
int
main(int argc, char *argv[])
{
puts("<span>Hello, world!</span>");
return 0;
}</pre>
</section>
<section class="paired">
<pre class="exemplar">% curl -sD- -o/dev/null https://www.openbsd.org
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 5181
Content-Type: text/html
Date: Wed, 28 Mar 2018 03:15:19 GMT
Last-Modified: Sun, 25 Mar 2018 18:08:04 GMT
Server: <span>OpenBSD httpd</span></pre>
<div>
<h4>httpd(8)</h4>
<p>
OpenBSD's home-grown web server.
If you need more features for your web application, submit a patch.
</p>
<nav>
Resources:
<a href="https://man.openbsd.org/OpenBSD-current/man8/httpd.8">httpd(8)</a>,
<a href="https://man.openbsd.org/OpenBSD-current/man5/httpd.conf.5">httpd.conf(5)</a>,
<a href="https://man.openbsd.org/OpenBSD-current/man8/slowcgi.8">slowcgi(8)</a>,
<a href="https://www.michaelwlucas.com/tools/relayd"><i>Relayd and Httpd Mastery</i></a>.
</nav>
</div>
</section>
<section class="paired">
<div>
<h4>SQLite</h4>
<p>
<a href="https://www.sqlite.org">SQLite</a> is a <q>self-contained, embeddable,
zero-configuration</q> database.
It's a practical solution for the majority of database needs.
Just <code>pkg_add sqlite3</code> and you're ready.
</p>
<nav>
Resources: <a href="https://www.sqlite.org/c3ref/intro.html">API reference</a>,
<a href="https://sqlite.org/lang.html">SQL reference</a>,
<a href="http://www.amazon.com/gp/product/1430232250">
<i>The Definitive Guide to SQLite</i></a>.
</nav>
</div>
<figure class="exemplar">
<img src="sqlite.png" />
</figure>
</section>
</article>
<article class="interstice">
<p class="main">
BCHS is a stable, developer-oriented platform.
</p>
<p>
Get used to minimalism and security: componentised, privilege-separated binaries in file-system jails.
Most of all, forget your instincts to search Google and StackExchange for every parameter and function
call: man pages are your new best friend.
</p>
</article>
<article id="news">
<header>
<h3>Articles, events, conference talks…</h3>
<p>have more links? <a href="https://github.com/kristapsdz/bchs">let us know</a>.</p>
</header>
<ul>
<li>
<span>
<a href="dates.html">Dates</a> in kcgi
</span>
<span class="src">2020/05</span>
</li>
<li>
<span>
<a href="portability.html">Portability and continuous integration</a>
</span>
<span class="src">2020/04</span>
</li>
<li>
<span>
<a href="https://kore.io">kore</a>:
<a href="https://blog.kore.io/posts/automagic-x509s-via-acme.html">Automagic x509s via ACME</a>
</span>
<span class="src">Joris Vink, 2019/11</span>
</li>
<li>
<span>
<a href="sqlbox.html">sqlbox</a>: ksql re-imagined
</span>
<span class="src">2019/11</span>
</li>
<li>
<span>
<a href="typescript.html">TypeScript</a> integration and openradtool
</span>
<span class="src">2019/07</span>
</li>
<li>
<span>
<a href="translate.html">Translation</a> with openradtool
</span>
<span class="src">2018/07</span>
</li>
<li>
<span>
<a href="https://marc.info/?t=153019462600004&r=1&w=2">SQLite3 manpages</a> on
OpenBSD
</span>
<span class="src">2018/06</span>
</li>
<li>
<span><a href="auditing.html">Role audits</a> with openradtool</span>
<span class="src">2018/03</span>
</li>
<li>
<span>
<a href="https://kristaps.bsd.lv/absdcon2018/">RBAC in BCHS</a>
(<a href="https://kristaps.bsd.lv/absdcon2018/paper.pdf">PDF</a>,
<a href="https://www.youtube.com/watch?v=FzF9e4jrnJ4">video</a>)
</span>
<span class="src">AsiaBSDCon, 2018/03</span>
</li>
<li>
<span><a href="rbac.html">API provisioning</a> with openradtool</span>
<span class="src">2017/10</span>
</li>
<li>
<q><a href="https://www.youtube.com/watch?v=KO1juo1KDFs">Should I use the BCHS web stack?</a></q>
<span class="src">EuroBSDCon short answer, 2017/09</span>
</li>
<li>
<span>Split-process <a href="ksql.html">ksql</a></span>
<span class="src">2017/07</span>
</li>
<li>
<span><a href="kwebapp.html">Introduction</a> to RAD with openradtool</span>
<span class="src">2017/05</span>
</li>
<li>
<span><a href="https://kristaps.bsd.lv//absdcon2017">Secure CGI</a></span>
<span class="src">AsiaBSDCon, 2017/03</span>
</li>
<li>
<span>BCHS sandboxing with <a href="pledge.html">pledge</a></span>
<span class="src">2016/11</span>
</li>
<li>
<span>Using <a href="json.html">JSON</a> with BCHS</span>
<span class="src">2016/10</span>
</li>
<li>
<span><a href="https://kristaps.bsd.lv/absdcon2016/">Secure CGI Applications in C on BSD</a></span>
<span class="src">AsiaBSDCon, 2016/03</span>
</li>
</ul>
</article>
<article class="interstice2">
<header>
<h3>FAQ</h3>
<p>questions from the internet.</p>
</header>
<dl>
<dt>Is BCHS a joke?</dt>
<dd>
Software development is full of jokes.
This is not one of them.
</dd>
<dt>How do I pronounce <q>BCHS</q>?</dt>
<dd>
It's pronounced /biːtʃəz/, <i>beaches</i>.
Or just Bee See Haich (or <q>Aich</q>) Ess.
</dd>
<dt>How can I hire BCHS developers?</dt>
<dd>
OpenBSD developers maintain an extensive list of <a
href="https://www.openbsd.org/support.html">support</a> options, but these mostly relate
to system administration.
A better option is to contact your local <a href="https://www.openbsd.org/groups.html">user
group</a>; or if an <a href="https://www.openbsd.org/events.html">event</a> is upcoming,
attend and make enquiries in person.
Falling through these options, polite enquiry on OpenBSD's <a
href="https://www.openbsd.org/mail.html">misc</a> mailing list might get you pushed in
the right direction.
</dd>
<dt>Wasn't this site once funnier?</dt>
<dd>
Yes.
But some folks confused humour with levity.
</dd>
</dl>
</article>
<footer>
<p>
OpenBSD <q>puffy</q> logo copyright Theo deRaadt.
<a href="https://www.openbsd.org/art3.html">Source</a>.
</p>
<p>
SQLite logo released by Dr Richard Hipp into the public domain.
</p>
<p>
Content otherwise
<a href="https://creativecommons.org/licenses/by/4.0/"><i class="fa fa-fw fa-creative-commons"></i></a>
<a rel="author" href="https://github.com/kristapsdz">Kristaps Dzonsons</a>
</p>
</footer>
</section>
</body>
</html>