luckybooru_info/index.html

122 lines
7.1 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta name="generator" content=
"HTML Tidy for HTML5 for Linux version 5.7.16">
<meta charset="utf-8">
<title>luckybooru</title>
<style>
/* Sakura.css v1.0.0 * ================ * Minimal css theme. * Project: https://github.com/oxalorg/sakura */ /* Body */ html { font-size: 62.5%; font-family: serif; } body { font-size: 1.8rem; line-height: 1.618; max-width: 38em; margin: auto; color: #4a4a4a; background-color: #f9f9f9; padding: 13px; } @media (max-width: 684px) { body { font-size: 1.53rem; } } @media (max-width: 382px) { body { font-size: 1.35rem; } } h1, h2, h3, h4, h5, h6 { line-height: 1.1; font-family: Verdana, Geneva, sans-serif; font-weight: 700; overflow-wrap: break-word; word-wrap: break-word; -ms-word-break: break-all; word-break: break-word; -ms-hyphens: auto; -moz-hyphens: auto; -webkit-hyphens: auto; hyphens: auto; } h1 { font-size: 2.35em; } h2 { font-size: 2.00em; } h3 { font-size: 1.75em; } h4 { font-size: 1.5em; } h5 { font-size: 1.25em; } h6 { font-size: 1em; } small, sub, sup { font-size: 75%; } hr { border-color: #2c8898; } a { text-decoration: none; color: #2c8898; } a:hover { color: #982c61; border-bottom: 2px solid #4a4a4a; } ul { padding-left: 1.4em; } li { margin-bottom: 0.4em; } blockquote { font-style: italic; margin-left: 1.5em; padding-left: 1em; border-left: 3px solid #2c8898; } img { max-width: 100%; } /* Pre and Code */ pre { background-color: #f1f1f1; display: block; padding: 1em; overflow-x: auto; } code { font-size: 0.9em; padding: 0 0.5em; background-color: #f1f1f1; white-space: pre-wrap; } pre > code { padding: 0; background-color: transparent; white-space: pre; } /* Tables */ table { text-align: justify; width: 100%; border-collapse: collapse; } td, th { padding: 0.5em; border-bottom: 1px solid #f1f1f1; } /* Buttons, forms and input */ input, textarea { border: 1px solid #4a4a4a; } input:focus, textarea:focus { border: 1px solid #2c8898; } textarea { width: 100%; } .button, button, input[type="submit"], input[type="reset"], input[type="button"] { display: inline-block; padding: 5px 10px; text-align: center; text-decoration: none; white-space: nowrap; background-color: #2c8898; color: #f9f9f9; border-radius: 1px; border: 1px solid #2c8898; cursor: pointer; box-sizing: border-box; } .button[disabled], button[disabled], input[type="submit"][disabled], input[type="reset"][disabled], input[type="button"][disabled] { cursor: default; opacity: .5; } .button:focus, .button:hover, button:focus, button:hover, input[type="submit"]:focus, input[type="submit"]:hover, input[type="reset"]:focus, input[type="reset"]:hover, input[type="button"]:focus, input[type="button"]:hover { background-color: #982c61; border-color: #982c61; color: #f9f9f9; outline: 0; } textarea, select, input[type] { color: #4a4a4a; padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ margin-bottom: 10px; background-color: #f1f1f1; border: 1px solid #f1f1f1; border-radius: 4px; box-shadow: none; box-sizing: border-box; } textarea:focus, select:focus, input[type]:focus { border: 1px solid #2c8898; outline: 0; } input[type="checkbox"]:focus { outline: 1px dotted #2c8898; } label, legend, fieldset { display: block; margin-bottom: .5rem; font-weight: 600; }
</style>
</head>
<body>
<ul>
<li>
<a href="#luckybooru">luckybooru</a>
<ul>
<li>
<a href="#Status">Status</a>
</li>
<li>
<a href="#Goals-and-design-principles">Goals and design
principles</a>
</li>
<li>
<a href="#Dependencies">Dependencies</a>
</li>
<li>
<a href="#Deployment-options">Deployment options</a>
</li>
<li>
<a href="#Database-schema-WIP">Database schema (WIP)</a>
</li>
<li>
<a href="#Source-code-and-contributing">Source code and
contributing</a>
</li>
</ul>
</li>
</ul>
<h1 id="luckybooru">luckybooru</h1>
<p>luckybooru is a <a href=
"https://danbooru.donmai.us/">danbooru</a>-style booru written in
Crystal with Lucky.</p>
<h2 id="Status">Status</h2>
<p>luckybooru is in the early design stage.</p>
<h2 id="Goals-and-design-principles">Goals and design
principles</h2>
<ul>
<li>Feature parity with danbooru</li>
<li>Support for various types of media (images, audio, videos,
plaintext, Markdown)</li>
<li>Full support for running in a cluster with live
scaling</li>
<li>All major features should work with no-JS/<em>noscript</em>
and text browsers</li>
<li>Fast on the server-side and on the client-side (no Python
or Java)</li>
<li>High configurability (deployment, user roles, analytics,
danbooru-like premium account tiers)</li>
<li>RESTful API with JSON output</li>
</ul>
<h2 id="Dependencies">Dependencies</h2>
<ul>
<li>
<a href="https://crystal-lang.org/">Crystal</a>
</li>
<li>
<a href="https://luckyframework.org">Lucky</a>
</li>
<li>
<a href="https://www.postgresql.org/">PostgreSQL</a>
</li>
<li>
<a href="https://github.com/getsentry/sentry">Sentry</a>
(with <a href=
"https://github.com/Sija/raven.cr">raven.cr</a>)
</li>
<li>
<a href="https://github.com/valeriansaliou/sonic">Sonic</a>
(?)
</li>
</ul>
<h2 id="Deployment-options">Deployment options</h2>
<p>We aim to support a variety of deployment options, including
the following:</p>
<ul>
<li>Application: Kubernetes° (hosted, private cluster), manual
Docker deployment, traditional server</li>
<li>Database: PostgreSQL° (hosted or manual), <a href=
"https://www.cockroachlabs.com/product/">CockroachDB</a>
</li>
<li>File storage: S3 or S3-compatible object storage (e.g.
<a href="https://github.com/minio/minio">MinIO</a>)°,
traditional filesystem
</li>
</ul>
<p><em>° preferred options</em></p>
<h2 id="Database-schema-WIP">Database schema (WIP)</h2>
<p><a href="schema.png"><img src="schema.png" alt=
"(database schema image)"></a></p>
<p>(click for full size)</p>
<h2 id="Source-code-and-contributing">Source code and
contributing</h2>
<p>Contributions in the form of issues (bug reports or feature
requests) or pull requests on our repos are very welcome.</p>
<p>We also have an official development IRC channel: <a href=
"ircs://irc.fuwafuwa.moe/#luckybooru">#luckybooru</a> on <a href=
"https://irc.fuwafuwa.moe">irc.fuwafuwa.moe</a>.</p>
<ul>
<li>Main repo: <a href=
"https://git.fuwafuwa.moe/lesderid/luckybooru">luckybooru</a>
</li>
<li>Design documents (this page, database schema): <a href=
"https://git.fuwafuwa.moe/lesderid/luckybooru_info">luckybooru_info</a>
</li>
</ul>
<p>All repos are licensed under the <a href=
"LICENSE.html">University of Illinois/NCSA Open Source
License</a>.</p>
</body>
</html>