summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreug-vs <eugene@eug-vs.xyz>2022-03-23 14:09:58 +0300
committereug-vs <eugene@eug-vs.xyz>2022-03-23 14:09:58 +0300
commit29d16c46dfbc8eb9a31b10a5bf72f1330c890d5c (patch)
tree07bec8926ee075116c30191ce86652cc0ebbbb3e
downloadinfrastructure-29d16c46dfbc8eb9a31b10a5bf72f1330c890d5c.tar.gz
feat: add website and git-server playbooks
-rw-r--r--files/cgit/cgit/cgit.css895
l---------files/cgit/cgit/cgit.png1
-rw-r--r--files/cgit/cgit/favicon.icobin0 -> 2648 bytes
-rw-r--r--files/cgit/cgit/robots.txt3
-rw-r--r--files/cgit/cgitrc40
-rw-r--r--files/nginx/cgit20
-rw-r--r--files/nginx/website15
-rw-r--r--git-server.yaml66
-rw-r--r--setup.yaml31
-rw-r--r--website.yaml40
10 files changed, 1111 insertions, 0 deletions
diff --git a/files/cgit/cgit/cgit.css b/files/cgit/cgit/cgit.css
new file mode 100644
index 0000000..e01348c
--- /dev/null
+++ b/files/cgit/cgit/cgit.css
@@ -0,0 +1,895 @@
+html {
+ font-family: "Open Sans", sans-serif;
+ color: #ebdbb2;
+ background-color: #282828;
+}
+div#cgit {
+ padding: 0em;
+ margin: 0em;
+ font-size: 1em;
+ padding: 4px;
+}
+
+div#cgit a {
+ color: #fabd2f;
+ text-decoration: none;
+}
+
+div#cgit a:hover {
+ text-decoration: underline;
+}
+
+div#cgit table {
+ border-collapse: collapse;
+}
+
+div#cgit table#header {
+ width: 100%;
+ margin-bottom: 1em;
+}
+
+div#cgit table#header td.logo {
+ width: 96px;
+ vertical-align: top;
+}
+
+div#cgit table#header td.main {
+ font-size: 250%;
+ padding-left: 10px;
+ white-space: nowrap;
+}
+
+div#cgit table#header td.main a {
+ color: #ebdbb2;
+}
+
+div#cgit table#header td.form {
+ text-align: right;
+ vertical-align: bottom;
+ padding-right: 1em;
+ padding-bottom: 2px;
+ white-space: nowrap;
+}
+
+div#cgit table#header td.form form,
+div#cgit table#header td.form input,
+div#cgit table#header td.form select {
+ font-size: 90%;
+}
+
+div#cgit table#header td.sub {
+ color: #777;
+ border-top: solid 1px #1d2021;
+ padding-left: 10px;
+}
+
+div#cgit table.tabs {
+ border-bottom: solid 3px #1d2021;
+ border-collapse: collapse;
+ margin-top: 2em;
+ margin-bottom: 0px;
+ width: 100%;
+}
+
+div#cgit table.tabs td {
+ padding: 0px 1em;
+ vertical-align: bottom;
+}
+
+div#cgit table.tabs td a {
+ padding: 2px 0.75em;
+ color: #777;
+ font-size: 110%;
+}
+
+div#cgit table.tabs td a.active {
+ color: #ebdbb2;
+ background-color: #1d2021;
+}
+
+div#cgit table.tabs a[href^="http://"]:after, div#cgit table.tabs a[href^="https://"]:after {
+ content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfgAhcJDQY+gm2TAAAAHWlUWHRDb21tZW50AAAAAABDcmVhdGVkIHdpdGggR0lNUGQuZQcAAABbSURBVAhbY2BABs4MU4CwhYHBh2Erww4wrGFQZHjI8B8IgUIscJWyDHcggltQhI4zGDCcRwhChPggHIggP1QoAVmQkSETrGoHsiAEsACtBYN0oDAMbgU6EBcAAL2eHUt4XUU4AAAAAElFTkSuQmCC);
+ opacity: 0.5;
+ margin: 0 0 0 5px;
+}
+
+div#cgit table.tabs td.form {
+ text-align: right;
+}
+
+div#cgit table.tabs td.form form {
+ padding-bottom: 2px;
+ font-size: 90%;
+ white-space: nowrap;
+}
+
+div#cgit table.tabs td.form input,
+div#cgit table.tabs td.form select {
+ font-size: 90%;
+}
+
+div#cgit div.path {
+ margin: 0px;
+ padding: 5px 2em 2px 2em;
+ color: #ebdbb2;
+ background-color: #1d2021;
+}
+
+div#cgit div.content {
+ margin: 0px;
+ padding: 2em;
+ border-bottom: solid 3px #1d2021;
+}
+
+
+div#cgit table.list {
+ width: 100%;
+ border: none;
+ border-collapse: collapse;
+}
+
+div#cgit table.list tr {
+ background-color: #282828;
+}
+
+div#cgit table.list tr.logheader {
+ background: #1d2021;
+}
+
+div#cgit table.list tr:nth-child(even) {
+ background: #1d2021;
+}
+
+div#cgit table.list tr:nth-child(odd) {
+ background-color: #282828;
+}
+
+div#cgit table.list tr:hover {
+ background-color: #928374;
+}
+
+div#cgit table.list tr.nohover {
+ background-color: #282828;
+}
+
+div#cgit table.list tr.nohover:hover {
+ background-color: #282828;
+}
+
+div#cgit table.list tr.nohover-highlight:hover {
+ background-color: #282828;
+}
+
+div#cgit table.list th {
+ font-weight: bold;
+ /* color: #888;
+ border-top: dashed 1px #888;
+ border-bottom: dashed 1px #888;
+ */
+ padding: 0.1em 0.5em 0.05em 0.5em;
+ vertical-align: baseline;
+}
+
+div#cgit table.list td {
+ border: none;
+ padding: 0.1em 0.5em 0.1em 0.5em;
+}
+
+div#cgit table.list td.commitgraph {
+ font-family: monospace;
+ white-space: pre;
+}
+
+div#cgit table.list td.commitgraph .column1 {
+ color: #a00;
+}
+
+div#cgit table.list td.commitgraph .column2 {
+ color: #0a0;
+}
+
+div#cgit table.list td.commitgraph .column3 {
+ color: #aa0;
+}
+
+div#cgit table.list td.commitgraph .column4 {
+ color: #00a;
+}
+
+div#cgit table.list td.commitgraph .column5 {
+ color: #a0a;
+}
+
+div#cgit table.list td.commitgraph .column6 {
+ color: #0aa;
+}
+
+div#cgit table.list td.logsubject {
+ font-family: monospace;
+ font-weight: bold;
+}
+
+div#cgit table.list td.logmsg {
+ font-family: monospace;
+ white-space: pre;
+ padding: 0 0.5em;
+}
+
+div#cgit table.list td a {
+}
+
+div#cgit table.list td a.ls-dir {
+ font-weight: bold;
+ color: #b8bb26;
+}
+
+div#cgit table.list td a:hover {
+}
+
+div#cgit img {
+ border: none;
+}
+
+div#cgit input#switch-btn {
+ margin: 2px 0px 0px 0px;
+}
+
+div#cgit td#sidebar input.txt {
+ width: 100%;
+ margin: 2px 0px 0px 0px;
+}
+
+div#cgit table#grid {
+ margin: 0px;
+}
+
+div#cgit td#content {
+ vertical-align: top;
+ padding: 1em 2em 1em 1em;
+ border: none;
+}
+
+div#cgit div#summary {
+ vertical-align: top;
+ margin-bottom: 1em;
+}
+
+div#cgit table#downloads {
+ float: right;
+ border-collapse: collapse;
+ border: solid 1px #777;
+ margin-left: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+div#cgit table#downloads th {
+ background-color: #1d2021;
+}
+
+div#cgit div#blob {
+ border: solid 1px black;
+}
+
+div#cgit div.error {
+ color: red;
+ font-weight: bold;
+ margin: 1em 2em;
+}
+
+div#cgit a.ls-blob, div#cgit a.ls-dir, div#cgit .ls-mod {
+ font-family: monospace;
+}
+
+div#cgit td.ls-size {
+ text-align: right;
+ font-family: monospace;
+ width: 10em;
+}
+
+div#cgit td.ls-mode {
+ font-family: monospace;
+ width: 10em;
+}
+
+div#cgit table.blob {
+ margin-top: 0.5em;
+ border-top: solid 1px black;
+}
+
+div#cgit table.blob td.hashes,
+div#cgit table.blob td.lines {
+ margin: 0; padding: 0 0 0 0.5em;
+ vertical-align: top;
+}
+
+div#cgit table.blob td.linenumbers {
+ margin: 0; padding: 0 0.5em 0 0.5em;
+ vertical-align: top;
+ text-align: right;
+ border-right: 1px solid gray;
+}
+
+div#cgit table.blob pre {
+ padding: 0; margin: 0;
+}
+
+div#cgit table.blob td.linenumbers a,
+div#cgit table.ssdiff td.lineno a {
+ color: gray;
+ text-align: right;
+ text-decoration: none;
+}
+
+div#cgit table.blob td.linenumbers a:hover,
+div#cgit table.ssdiff td.lineno a:hover {
+}
+
+div#cgit table.blame td.hashes,
+div#cgit table.blame td.lines,
+div#cgit table.blame td.linenumbers {
+ padding: 0;
+}
+
+div#cgit table.blame td.hashes div.alt,
+div#cgit table.blame td.lines div.alt {
+ padding: 0 0.5em 0 0.5em;
+}
+
+div#cgit table.blame td.linenumbers div.alt {
+ padding: 0 0.5em 0 0;
+}
+
+div#cgit table.blame div.alt:nth-child(even) {
+ background: #1d2021;
+}
+
+div#cgit table.blame div.alt:nth-child(odd) {
+ background-color: #282828;
+}
+
+div#cgit table.blame td.lines > div {
+ position: relative;
+}
+
+div#cgit table.blame td.lines > div > pre {
+ padding: 0 0 0 0.5em;
+ position: absolute;
+ top: 0;
+}
+
+div#cgit table.bin-blob {
+ margin-top: 0.5em;
+ border: solid 1px black;
+}
+
+div#cgit table.bin-blob th {
+ font-family: monospace;
+ white-space: pre;
+ border: solid 1px #777;
+ padding: 0.5em 1em;
+}
+
+div#cgit table.bin-blob td {
+ font-family: monospace;
+ white-space: pre;
+ border-left: solid 1px #777;
+ padding: 0em 1em;
+}
+
+div#cgit table.nowrap td {
+ white-space: nowrap;
+}
+
+div#cgit table.commit-info {
+ border-collapse: collapse;
+ margin-top: 1.5em;
+}
+
+div#cgit div.cgit-panel {
+ float: right;
+ margin-top: 1.5em;
+}
+
+div#cgit div.cgit-panel table {
+ border-collapse: collapse;
+ border: solid 1px #aaa;
+ background-color: #1d2021;
+}
+
+div#cgit div.cgit-panel th {
+ text-align: center;
+}
+
+div#cgit div.cgit-panel td {
+ padding: 0.25em 0.5em;
+}
+
+div#cgit div.cgit-panel td.label {
+ padding-right: 0.5em;
+}
+
+div#cgit div.cgit-panel td.ctrl {
+ padding-left: 0.5em;
+}
+
+div#cgit table.commit-info th {
+ text-align: left;
+ font-weight: normal;
+ padding: 0.1em 1em 0.1em 0.1em;
+ vertical-align: top;
+}
+
+div#cgit table.commit-info td {
+ font-weight: normal;
+ padding: 0.1em 1em 0.1em 0.1em;
+}
+
+div#cgit div.commit-subject {
+ font-weight: bold;
+ font-size: 125%;
+ margin: 1.5em 0em 0.5em 0em;
+ padding: 0em;
+}
+
+div#cgit div.commit-msg {
+ white-space: pre;
+ font-family: monospace;
+}
+
+div#cgit div.notes-header {
+ font-weight: bold;
+ padding-top: 1.5em;
+}
+
+div#cgit div.notes {
+ white-space: pre;
+ font-family: monospace;
+ border: solid 1px #ee9;
+ background-color: #ffd;
+ padding: 0.3em 2em 0.3em 1em;
+ float: left;
+}
+
+div#cgit div.notes-footer {
+ clear: left;
+}
+
+div#cgit div.diffstat-header {
+ font-weight: bold;
+ padding-top: 1.5em;
+}
+
+div#cgit table.diffstat {
+ border-collapse: collapse;
+ border: solid 1px #aaa;
+ background-color: #1d2021;
+}
+
+div#cgit table.diffstat th {
+ font-weight: normal;
+ text-align: left;
+ text-decoration: underline;
+ padding: 0.1em 1em 0.1em 0.1em;
+ font-size: 100%;
+}
+
+div#cgit table.diffstat td {
+ padding: 0.2em 0.2em 0.1em 0.1em;
+ font-size: 100%;
+ border: none;
+}
+
+div#cgit table.diffstat td.mode {
+ white-space: nowrap;
+}
+
+div#cgit table.diffstat td span.modechange {
+ padding-left: 1em;
+ color: red;
+}
+
+div#cgit table.diffstat td.add a {
+ color: green;
+}
+
+div#cgit table.diffstat td.del a {
+ color: red;
+}
+
+div#cgit table.diffstat td.upd a {
+ color: #b8bb26;
+}
+
+div#cgit table.diffstat td.graph {
+ width: 500px;
+ vertical-align: middle;
+}
+
+div#cgit table.diffstat td.graph table {
+ border: none;
+}
+
+div#cgit table.diffstat td.graph td {
+ padding: 0px;
+ border: 0px;
+ height: 7pt;
+}
+
+div#cgit table.diffstat td.graph td.add {
+ background-color: #5c5;
+}
+
+div#cgit table.diffstat td.graph td.rem {
+ background-color: #c55;
+}
+
+div#cgit div.diffstat-summary {
+ color: #888;
+ padding-top: 0.5em;
+}
+
+div#cgit table.diff {
+ width: 100%;
+}
+
+div#cgit table.diff td {
+ font-family: monospace;
+ white-space: pre;
+}
+
+div#cgit table.diff td div.head {
+ font-weight: bold;
+ margin-top: 1em;
+}
+
+div#cgit table.diff td div.hunk {
+ color: #83a598;
+}
+
+div#cgit table.diff td div.add {
+ color: green;
+}
+
+div#cgit table.diff td div.del {
+ color: red;
+}
+
+div#cgit .sha1 {
+ font-family: monospace;
+ font-size: 90%;
+}
+
+div#cgit .left {
+ text-align: left;
+}
+
+div#cgit .right {
+ text-align: right;
+}
+
+div#cgit table.list td.reposection {
+ font-style: italic;
+ color: #888;
+}
+
+div#cgit a.button {
+ font-size: 80%;
+ padding: 0em 0.5em;
+}
+
+div#cgit a.primary {
+ font-size: 100%;
+}
+
+div#cgit a.secondary {
+ font-size: 90%;
+}
+
+div#cgit td.toplevel-repo {
+
+}
+
+div#cgit table.list td.sublevel-repo {
+ padding-left: 1.5em;
+}
+
+div#cgit ul.pager {
+ list-style-type: none;
+ text-align: center;
+ margin: 1em 0em 0em 0em;
+ padding: 0;
+}
+
+div#cgit ul.pager li {
+ display: inline-block;
+ margin: 0.25em 0.5em;
+}
+
+div#cgit ul.pager a {
+ color: #777;
+}
+
+div#cgit ul.pager .current {
+ font-weight: bold;
+}
+
+div#cgit span.age-mins {
+ font-weight: bold;
+ color: #98971a;
+}
+
+div#cgit span.age-hours {
+ color: #98971a;
+}
+
+div#cgit span.age-days {
+ color: #98971a;
+}
+
+div#cgit span.age-weeks {
+ color: #98971a;
+}
+
+div#cgit span.age-months {
+ color: #98971a;
+}
+
+div#cgit span.age-years {
+ color: #98971a;
+}
+
+div#cgit span.insertions {
+ color: #080;
+}
+
+div#cgit span.deletions {
+ color: #800;
+}
+
+div#cgit div.footer {
+ margin-top: 0.5em;
+ text-align: center;
+ font-size: 80%;
+ color: #1d2021;
+}
+
+div#cgit div.footer a {
+ color: #1d2021;
+ text-decoration: none;
+}
+
+div#cgit div.footer a:hover {
+ text-decoration: underline;
+}
+
+div#cgit a.branch-deco {
+ color: #ebdbb2;
+ margin: 0px 0.5em;
+ padding: 0px 0.25em;
+ background-color: #88ff88;
+ border: solid 1px #007700;
+}
+
+div#cgit a.tag-deco {
+ color: #ebdbb2;
+ margin: 0px 0.5em;
+ padding: 0px 0.25em;
+ background-color: #ffff88;
+ border: solid 1px #777700;
+}
+
+div#cgit a.tag-annotated-deco {
+ color: #ebdbb2;
+ margin: 0px 0.5em;
+ padding: 0px 0.25em;
+ background-color: #ffcc88;
+ border: solid 1px #777700;
+}
+
+div#cgit a.remote-deco {
+ color: #ebdbb2;
+ margin: 0px 0.5em;
+ padding: 0px 0.25em;
+ background-color: #1d2021cff;
+ border: solid 1px #000077;
+}
+
+div#cgit a.deco {
+ color: #ebdbb2;
+ margin: 0px 0.5em;
+ padding: 0px 0.25em;
+ background-color: #ff8888;
+ border: solid 1px #770000;
+}
+
+div#cgit div.commit-subject a.branch-deco,
+div#cgit div.commit-subject a.tag-deco,
+div#cgit div.commit-subject a.tag-annotated-deco,
+div#cgit div.commit-subject a.remote-deco,
+div#cgit div.commit-subject a.deco {
+ margin-left: 1em;
+ font-size: 75%;
+}
+
+div#cgit table.stats {
+ border: solid 1px black;
+ border-collapse: collapse;
+}
+
+div#cgit table.stats th {
+ text-align: left;
+ padding: 1px 0.5em;
+ background-color: #1d2021;
+ border: solid 1px black;
+}
+
+div#cgit table.stats td {
+ text-align: right;
+ padding: 1px 0.5em;
+ border: solid 1px black;
+}
+
+div#cgit table.stats td.total {
+ font-weight: bold;
+ text-align: left;
+}
+
+div#cgit table.stats td.sum {
+ font-weight: bold;
+/* background-color: #1d2021; */
+}
+
+div#cgit table.stats td.left {
+ text-align: left;
+}
+
+div#cgit table.vgraph {
+ border-collapse: separate;
+ border: solid 1px black;
+ height: 200px;
+}
+
+div#cgit table.vgraph th {
+ background-color: #1d2021;
+ font-weight: bold;
+ border: solid 1px white;
+ padding: 1px 0.5em;
+}
+
+div#cgit table.vgraph td {
+ vertical-align: bottom;
+ padding: 0px 10px;
+}
+
+div#cgit table.vgraph div.bar {
+ background-color: #1d2021;
+}
+
+div#cgit table.hgraph {
+ border: solid 1px black;
+ width: 800px;
+}
+
+div#cgit table.hgraph th {
+ background-color: #1d2021;
+ font-weight: bold;
+ border: solid 1px black;
+ padding: 1px 0.5em;
+}
+
+div#cgit table.hgraph td {
+ vertical-align: middle;
+ padding: 2px 2px;
+}
+
+div#cgit table.hgraph div.bar {
+ background-color: #1d2021;
+ height: 1em;
+}
+
+div#cgit table.ssdiff {
+ width: 100%;
+}
+
+div#cgit table.ssdiff td {
+ font-size: 75%;
+ font-family: monospace;
+ white-space: pre;
+ padding: 1px 4px 1px 4px;
+ border-left: solid 1px #aaa;
+ border-right: solid 1px #aaa;
+}
+
+div#cgit table.ssdiff td.add {
+ background: #cfc;
+ min-width: 50%;
+}
+
+div#cgit table.ssdiff td.add_dark {
+ background: #aca;
+ min-width: 50%;
+}
+
+div#cgit table.ssdiff span.add {
+ background: #cfc;
+ font-weight: bold;
+}
+
+div#cgit table.ssdiff td.del {
+ background: #fcc;
+ min-width: 50%;
+}
+
+div#cgit table.ssdiff td.del_dark {
+ background: #caa;
+ min-width: 50%;
+}
+
+div#cgit table.ssdiff span.del {
+ background: #fcc;
+ font-weight: bold;
+}
+
+div#cgit table.ssdiff td.changed {
+ background: #ffc;
+ min-width: 50%;
+}
+
+div#cgit table.ssdiff td.changed_dark {
+ background: #cca;
+ min-width: 50%;
+}
+
+div#cgit table.ssdiff td.lineno {
+ background: #1d2021;
+ text-align: right;
+ width: 3em;
+ min-width: 3em;
+}
+
+div#cgit table.ssdiff td.hunk {
+ background: #ccf;
+ border-top: solid 1px #aaa;
+ border-bottom: solid 1px #aaa;
+}
+
+div#cgit table.ssdiff td.head {
+ border-top: solid 1px #aaa;
+ border-bottom: solid 1px #aaa;
+}
+
+div#cgit table.ssdiff td.head div.head {
+ font-weight: bold;
+}
+
+div#cgit table.ssdiff td.foot {
+ border-top: solid 1px #aaa;
+ border-left: none;
+ border-right: none;
+ border-bottom: none;
+}
+
+div#cgit table.ssdiff td.space {
+ border: none;
+}
+
+div#cgit table.ssdiff td.space div {
+ min-height: 3em;
+}
+
+/* Style definition file generated by highlight 3.9, http://www.andre-simon.de/ */
+/* Highlighting theme: Kwrite Editor */
+/* adapted for cgit */
+div#cgit table.blob .num { color:#b07e00; }
+div#cgit table.blob .esc { color:#ff00ff; }
+div#cgit table.blob .str { color:#bf0303; }
+div#cgit table.blob .pps { color:#818100; }
+div#cgit table.blob .slc { color:#838183; font-style:italic; }
+div#cgit table.blob .com { color:#838183; font-style:italic; }
+div#cgit table.blob .ppc { color:#008200; }
+div#cgit table.blob .opt { color:#000000; }
+div#cgit table.blob .lin { color:#555555; }
+div#cgit table.blob .kwa { color:#000000; font-weight:bold; }
+div#cgit table.blob .kwb { color:#0057ae; }
+div#cgit table.blob .kwc { color:#000000; font-weight:bold; }
+div#cgit table.blob .kwd { color:#010181; }
diff --git a/files/cgit/cgit/cgit.png b/files/cgit/cgit/cgit.png
new file mode 120000
index 0000000..293e54d
--- /dev/null
+++ b/files/cgit/cgit/cgit.png
@@ -0,0 +1 @@
+/home/eug-vs/Sync/eug-vs-64.png \ No newline at end of file
diff --git a/files/cgit/cgit/favicon.ico b/files/cgit/cgit/favicon.ico
new file mode 100644
index 0000000..2e4a66f
--- /dev/null
+++ b/files/cgit/cgit/favicon.ico
Binary files differ
diff --git a/files/cgit/cgit/robots.txt b/files/cgit/cgit/robots.txt
new file mode 100644
index 0000000..4ce948f
--- /dev/null
+++ b/files/cgit/cgit/robots.txt
@@ -0,0 +1,3 @@
+User-agent: *
+Disallow: /*/snapshot/*
+Allow: /
diff --git a/files/cgit/cgitrc b/files/cgit/cgitrc
new file mode 100644
index 0000000..93527e5
--- /dev/null
+++ b/files/cgit/cgitrc
@@ -0,0 +1,40 @@
+#
+# cgit config
+# see cgitrc(5) for details
+css=/cgit.css
+logo=/cgit.png
+virtual-root=/
+
+clone-url=git@eug-vs.xyz:$CGIT_REPO_URL
+
+readme=:README.md
+readme=:README
+
+mimetype.gif=image/gif
+mimetype.html=text/html
+mimetype.jpg=image/jpeg
+mimetype.jpeg=image/jpeg
+mimetype.pdf=application/pdf
+mimetype.png=image/png
+mimetype.svg=image/svg+xml
+
+enable-git-config=1
+enable-commit-graph=1
+enable-log-linecount=1
+enable-http-clone=1
+enable-index-owner=0
+repository-sort=age
+case-sensitive-sort=0
+remove-suffix=1
+
+root-title=Eugene's git server
+root-desc=A collection of my side projects and just-for-fun stuff. Enjoy!
+
+logo-link=https://eug-vs.xyz
+
+about-filter=/usr/lib/cgit/filters/about-formatting.sh
+
+section-from-path=1
+scan-path=/home/git
+
+
diff --git a/files/nginx/cgit b/files/nginx/cgit
new file mode 100644
index 0000000..f31ec08
--- /dev/null
+++ b/files/nginx/cgit
@@ -0,0 +1,20 @@
+server {
+ server_name git.eug-vs.xyz
+
+ root /usr/share/cgit ;
+ try_files $uri @cgit ;
+
+ location @cgit {
+ include fastcgi_params;
+ fastcgi_param SCRIPT_FILENAME /usr/lib/cgit/cgit.cgi;
+ fastcgi_param PATH_INFO $request_uri;
+ fastcgi_param QUERY_STRING $query_string;
+ fastcgi_pass unix:/run/fcgiwrap.socket;
+ }
+
+ # Serve static files
+ location ~* ^.+\.(css|png|ico)$ {
+ root /usr/share/cgit;
+ expires 30d;
+ }
+}
diff --git a/files/nginx/website b/files/nginx/website
new file mode 100644
index 0000000..dac54e1
--- /dev/null
+++ b/files/nginx/website
@@ -0,0 +1,15 @@
+server {
+ root /var/www/website ;
+
+ index index.html index.htm index.nginx-debian.html;
+
+ server_name eug-vs.xyz www.eug-vs.xyz;
+
+ location /public/ {
+ autoindex on;
+ }
+
+ location / {
+ try_files $uri $uri/ =404;
+ }
+}
diff --git a/git-server.yaml b/git-server.yaml
new file mode 100644
index 0000000..d94bd24
--- /dev/null
+++ b/git-server.yaml
@@ -0,0 +1,66 @@
+---
+- name: Setup git server
+ hosts: raspberry
+ tasks:
+ - name: Install packages
+ become: true
+ tags:
+ - slow
+ apt:
+ pkg:
+ - nginx
+ - certbot
+ - python3-certbot-nginx
+ - cgit
+ - libfcgi-dev
+ - spawn-fcgi
+ - fcgiwrap
+
+ # user
+ - name: Create git user
+ become: true
+ shell: |
+ useradd git -m
+ mkdir /home/git/.ssh
+
+ - name: Copy SSH keys
+ become: true
+ copy:
+ src: ~/.ssh/id_rsa.pub
+ dest: /home/git/.ssh/authorized_keys
+
+ # nginx
+ - name: Copy nginx configuration
+ become: true
+ copy:
+ src: ./files/nginx/cgit
+ dest: /etc/nginx/sites-available
+
+ - name: Enable website
+ become: true
+ command: "ln -sf /etc/nginx/sites-available/cgit /etc/nginx/sites-enabled"
+
+ - name: Install SSL certificate
+ become: true
+ shell: "certbot --nginx --non-interactive --agree-tos -m eugene@eug-vs.xyz -d git.eug-vs.xyz"
+
+ - name: Restart and enable nginx
+ become: true
+ systemd:
+ name: nginx
+ enabled: yes
+ state: restarted
+
+ # cgit
+ - name: Copy cgit configuration
+ become: true
+ copy:
+ src: ./files/cgit/cgitrc
+ dest: /etc
+ # TODO: move this to eug-vs-xyz
+ - name: Copy cgit styles
+ become: true
+ copy:
+ src: ./files/cgit/cgit
+ dest: /usr/share
+
diff --git a/setup.yaml b/setup.yaml
new file mode 100644
index 0000000..098de93
--- /dev/null
+++ b/setup.yaml
@@ -0,0 +1,31 @@
+---
+- name: First-boot setup
+ hosts: raspberry
+ tasks:
+ - name: Install packages
+ become: true
+ tags:
+ - slow
+ apt:
+ upgrade: yes
+ update_cache: yes
+ pkg:
+ - neovim
+ - tmux
+ - zsh
+ - git
+ - stow
+
+ - name: Clone dotfiles
+ tags:
+ - slow
+ shell: "git clone https://github.com/eug-vs/dotfiles.git ~/.dotfiles"
+
+ - name: Change shell to zsh
+ become: true
+ shell: "chsh eug-vs -s $(which zsh)"
+
+
+ - name: Install basic stow packages
+ shell: "cd ~/.dotfiles && stow zsh"
+
diff --git a/website.yaml b/website.yaml
new file mode 100644
index 0000000..818fa81
--- /dev/null
+++ b/website.yaml
@@ -0,0 +1,40 @@
+---
+- name: Setup website
+ hosts: raspberry
+ tasks:
+ - name: Install packages
+ become: true
+ tags:
+ - slow
+ apt:
+ pkg:
+ - nginx
+ - certbot
+ - python3-certbot-nginx
+
+ - name: Copy nginx configuration
+ become: true
+ copy:
+ src: ./files/nginx/website
+ dest: /etc/nginx/sites-available
+
+ - name: Enable website
+ become: true
+ command: "ln -sf /etc/nginx/sites-available/website /etc/nginx/sites-enabled"
+
+ - name: Install SSL certificate
+ become: true
+ shell: "certbot --nginx --non-interactive --agree-tos -m eugene@eug-vs.xyz -d eug-vs.xyz -d www.eug-vs.xyz"
+
+ - name: Allow user to write to website location
+ become: true
+ shell: |
+ mkdir -p /var/www/website
+ chown -R eug-vs:eug-vs /var/www/website
+
+ - name: Restart and enable nginx
+ become: true
+ systemd:
+ name: nginx
+ enabled: yes
+ state: restarted