tsuki/gitea: remove

This commit is contained in:
Oystein Kristoffer Tveit 2024-06-09 15:49:03 +02:00
parent a20bb288aa
commit 2b0968283d
Signed by: oysteikt
GPG Key ID: 9F2F7D8250F35146
9 changed files with 19 additions and 1004 deletions

View File

@ -6,7 +6,6 @@ in [
(short "tr" "Translate" "https://translate.google.no/?hl=no")
(short "gm" "Gmail" "https://mail.google.com/mail/u/0/#inbox")
(short "" "Jisho" "https://jisho.org/?color_theme=dark")
(short "Gitea" "Gitea - nani.wtf" "https://git.nani.wtf/explore/repos")
(link "GitHub" "http://github.com")
(short "/u/" "danger/u/" "https://dangeru.us/")
(link "PVV" "https://www.pvv.ntnu.no/")

View File

@ -7,7 +7,6 @@
./services/atuin.nix
./services/borg.nix
./services/gitea
./services/gitea-runners.nix
./services/grafana
./services/headscale.nix

View File

@ -13,7 +13,6 @@ in {
in {
postgres = createJob config.services.postgresqlBackup.location "postgres";
minecraft = createJob config.services.minecraft-servers.dataDir "minecraft";
gitea = createJob config.services.gitea.dump.backupDir "gitea";
};
systemd.services = lib.mkMerge ((lib.flip map) (builtins.attrNames cfg.jobs) (name: {

View File

@ -1,151 +0,0 @@
{ config, pkgs, unstable-pkgs, lib, secrets, ... }: let
cfg = config.services.gitea;
in {
security.pam.services."gitea".unixAuth = true;
users.users.git = {
description = "Gitea service";
home = config.services.gitea.stateDir;
useDefaultShell = true;
group = "gitea";
isSystemUser = true;
uid = config.ids.uids.git;
packages = with unstable-pkgs; [ gitea ];
};
users.groups."gitea".members = [ "nginx" ];
sops.secrets."postgres/gitea" = rec {
restartUnits = [ "gitea.service" ];
owner = config.services.gitea.user;
group = config.users.users.${owner}.group;
};
services.gitea = {
enable = true;
user = "git";
package = unstable-pkgs.gitea;
dump = {
enable = true;
interval = "weekly";
backupDir = "/data/backup/gitea";
};
database = {
user = "gitea";
type = "postgres";
socket = "/var/run/postgresql";
createDatabase = false;
passwordFile = config.sops.secrets."postgres/gitea".path;
};
settings = {
server = {
PROTOCOL = "http+unix";
HTTP_ADDR = "/run/gitea/gitea.sock";
BUILTIN_SSH_SERVER_USER="git";
LANDING_PAGE = "/explore/repos";
ROOT_URL = "https://git.nani.wtf/";
DOMAIN = "git.nani.wtf";
};
service.DISABLE_REGISTRATION = true;
session.COOKIE_SECURE = true;
metrics.ENABLED = true;
oauth2_client = {
ENABLE_AUTO_REGISTRATION = true;
OPENID_CONNECT_SCOPES = "email profile";
UPDATE_AVATAR = true;
ACCOUNT_LINKING = "auto";
USERNAME = "userid";
};
log.LEVEL = "Info";
database.LOG_SQL = false;
repository.DISABLE_STARS = true;
ui = {
DEFAULT_THEME = "monokai";
THEMES = lib.strings.concatStringsSep "," [
"gitea"
"arc-green"
# Custom
"monokai"
];
};
"ui.svg".RENDER = true;
indexer.REPO_INDEXER_ENABLED = true;
mailer = {
ENABLED = true;
FROM = "gitea@nani.wtf";
};
# Looking forward to the day I can uncomment this line
# federation.ENABLED = true;
packages.ENABLED = false;
# TODO: fix
# markup = let
# docutils = pkgs.python37.withPackages (ps: with ps; [
# docutils # Provides rendering of ReStructured Text files
# pygments # Provides syntax highlighting
# ]);
# in {
# restructuredtext = {
# ENABLED = true;
# FILE_EXTENSIONS = ".rst";
# RENDER_COMMAND = "${docutils}/bin/rst2html.py";
# IS_INPUT_FILE = false;
# };
# asciidoc = {
# ENABLED = true;
# FILE_EXTENSIONS = ".adoc,.asciidoc";
# RENDER_COMMAND = "${pkgs.asciidoctor}/bin/asciidoctor -e -a leveloffset=-1 --out-file=- -";
# IS_INPUT_FILE = false;
# };
# };
};
};
system.activationScripts.linkGiteaThemes.text = let
themes = pkgs.stdenv.mkDerivation {
pname = "gitea-themes";
version = "1.0.0";
src = ./themes;
buildInputs = with pkgs; [ lessc ];
buildPhase = ''
mkdir out
for f in $(find -name 'theme-*.less')
do
lessc $f out/''${f%.less}.css
done;
'';
installPhase = "mv out $out";
};
cssParentPath = "${config.services.gitea.stateDir}/custom/public";
cssPath = "${cssParentPath}/css";
in ''
if [[ ! -e "${cssPath}" ]]; then
printf "creating symlink at %s...\n" "${cssPath}"
mkdir -p "${cssParentPath}"
ln -s "${themes}" "${cssPath}"
elif [ -L "${cssPath}" ]; then
printf "replacing symlink at %s...\n" "${cssPath}"
rm ${cssPath}
ln -s "${themes}" "${cssPath}"
else
printf "ERROR: %s already exists and it is not a symlink\n" "${cssPath}"
_localstatus=1;
fi
'';
}

View File

@ -1,832 +0,0 @@
// This is only a rough approximation, and needs a lot of polishing.
// 'mk' is a prefix 'for monokai'
@mk-bg-dark: #1e1f1c;
@mk-bg0: #272820;
@mk-bg1: #3e3d32;
@mk-bg2: #75715e;
@mk-fg0: #f8f8f2;
@mk-fg1: #cfcfc2;
@mk-red: #f92672;
@mk-green: #a6e22e;
@mk-blue: #66d9ef;
@mk-violet: #ae81ff;
@mk-cyan: #a1efe4;
@mk-magenta: #fd5ff0;
@mk-yellow: #e6db74;
// Extra additions
@mk-orange: #fd971f;
@mk-forest-green: #2d693b;
@mk-success-green: #21ba45;
@mk-error-red: #ff4433;
@primary: @mk-green;
/* @import "../chroma/dark.less"; */
// Code higlighting colors
.chroma .hl { background-color: #3f424d; } /* LineHighlight */
.chroma .lnt { color: @mk-fg1; } /* LineNumbersTable */
.chroma .ln { color: @mk-fg1; } /* LineNumbers */
.chroma .k { color: @mk-red; } /* Keyword */
.chroma .kc { color: @mk-red; } /* KeywordConstant */
.chroma .kd { color: @mk-red; } /* KeywordDeclaration */
.chroma .kn { color: @mk-orange; } /* KeywordNamespace */
.chroma .kp { color: @mk-red; } /* KeywordPseudo */
.chroma .kr { color: @mk-red; } /* KeywordReserved */
.chroma .kt { color: @mk-blue; } /* KeywordType */
.chroma .n { color: @mk-green; } /* Generic Name */
.chroma .na { color: @mk-fg0; } /* NameAttribute */
.chroma .nb { color: @mk-red; } /* NameBuiltin */
.chroma .bp { color: @mk-red; } /* NameBuiltinPseudo */
.chroma .nc { color: @mk-blue; } /* NameClass */
.chroma .no { color: @mk-violet; } /* NameConstant */
.chroma .nd { color: @mk-violet; } /* NameDecorator */
.chroma .ni { color: @mk-violet; } /* NameEntity */
.chroma .ne { color: @mk-violet; } /* NameException */
.chroma .nf { color: @mk-green; } /* NameFunction */
.chroma .nl { color: @mk-orange; } /* NameLabel */
.chroma .nn { color: @mk-cyan; } /* NameNamespace */
.chroma .nx { color: @mk-blue; } /* NameOther */
.chroma .nt { color: @mk-red; } /* NameTag */
.chroma .nv { color: @mk-fg0; } /* NameVariable */
.chroma .vc { color: @mk-fg0; } /* NameVariableClass */
.chroma .vg { color: @mk-fg0; } /* NameVariableGlobal */
.chroma .vi { color: @mk-fg0; } /* NameVariableInstance */
.chroma .s { color: @mk-yellow; } /* LiteralString */
.chroma .sa { color: @mk-yellow; } /* LiteralStringAffix */
.chroma .sb { color: @mk-yellow; } /* LiteralStringBacktick */
.chroma .sc { color: @mk-yellow; } /* LiteralStringChar */
.chroma .dl { color: @mk-yellow; } /* LiteralStringDelimiter */
.chroma .sd { color: @mk-yellow; } /* LiteralStringDoc */
.chroma .s2 { color: @mk-yellow; } /* LiteralStringDouble */
.chroma .se { color: @mk-orange; } /* LiteralStringEscape */
.chroma .sh { color: @mk-yellow; } /* LiteralStringHeredoc */
.chroma .si { color: @mk-yellow; } /* LiteralStringInterpol */
.chroma .sx { color: @mk-yellow; } /* LiteralStringOther */
.chroma .sr { color: @mk-orange; } /* LiteralStringRegex */
.chroma .s1 { color: @mk-yellow; } /* LiteralStringSingle */
.chroma .ss { color: @mk-yellow; } /* LiteralStringSymbol */
.chroma .m { color: @mk-cyan; } /* LiteralNumber */
.chroma .mb { color: @mk-cyan; } /* LiteralNumberBin */
.chroma .mf { color: @mk-cyan; } /* LiteralNumberFloat */
.chroma .mh { color: @mk-cyan; } /* LiteralNumberHex */
.chroma .mi { color: @mk-cyan; } /* LiteralNumberInteger */
.chroma .il { color: @mk-cyan; } /* LiteralNumberIntegerLong */
.chroma .mo { color: @mk-cyan; } /* LiteralNumberOct */
.chroma .o { color: @mk-red; } /* Operator */
.chroma .ow { color: @mk-red; } /* OperatorWord */
.chroma .c { color: @mk-bg2; } /* Comment */
.chroma .ch { color: @mk-bg2; } /* CommentHashbang */
.chroma .cm { color: @mk-bg2; } /* CommentMultiline */
.chroma .c1 { color: @mk-bg2; } /* CommentSingle */
.chroma .cs { color: lighten(@mk-bg2, 10%); } /* CommentSpecial */
.chroma .cp { color: lighten(@mk-red, 20%); } /* CommentPreproc */
.chroma .cpf { color: @mk-yellow; } /* CommentPreprocFile */
// TODO:
.chroma .gd { color: #fff; background-color: #5f3737; } /* GenericDeleted */
.chroma .ge { color: #ef5; } /* GenericEmph */
.chroma .gr { color: #f33; } /* GenericError */
.chroma .gh { color: #fa1; } /* GenericHeading */
.chroma .gi { color: #fff; background-color: #3a523a; } /* GenericInserted */
.chroma .go { color: #888888; } /* GenericOutput */
.chroma .gp { color: #555555; } /* GenericPrompt */
.chroma .gu { color: #9daccc; } /* GenericSubheading */
.chroma .gt { color: #f63; } /* GenericTraceback */
.chroma .w { color: #bbbbbb; } /* TextWhitespace */
/* @import "../codemirror/dark.less"; */
// what is this?
.CodeMirror {
&.cm-s-default,
&.cm-s-paper {
.cm-property {
color: #a0cc75;
}
.cm-header {
color: #9daccc;
}
.cm-quote {
color: #009900;
}
.cm-keyword {
color: #cc8a61;
}
.cm-atom {
color: #ef5e77;
}
.cm-number {
color: #ff5656;
}
.cm-def {
color: #e4e4e4;
}
.cm-variable-2 {
color: #00bdbf;
}
.cm-variable-3 {
color: #008855;
}
.cm-comment {
color: #8e9ab3;
}
.cm-string {
color: #a77272;
}
.cm-string-2 {
color: #ff5500;
}
.cm-meta,
.cm-qualifier {
color: #ffb176;
}
.cm-builtin {
color: #b7c951;
}
.cm-bracket {
color: #999977;
}
.cm-tag {
color: #f1d273;
}
.cm-attribute {
color: #bfcc70;
}
.cm-hr {
color: #999999;
}
.cm-url {
color: #c5cfd0;
}
.cm-link {
color: #d8c792;
}
.cm-error {
color: #dbdbeb;
}
}
}
/* theme */
:root {
--is-dark-theme: true;
--color-primary: @primary;
--color-primary-dark-1: lighten(@primary, 10%);
--color-primary-dark-2: lighten(@primary, 15%);
--color-primary-dark-3: lighten(@primary, 20%);
--color-primary-dark-4: lighten(@primary, 25%);
--color-primary-dark-5: lighten(@primary, 40%);
--color-primary-dark-6: lighten(@primary, 60%);
--color-primary-dark-7: lighten(@primary, 80%);
--color-primary-light-1: darken(@primary, 10%);
--color-primary-light-2: darken(@primary, 15%);
--color-primary-light-3: darken(@primary, 20%);
--color-primary-light-4: darken(@primary, 25%);
--color-primary-light-5: darken(@primary, 40%);
--color-primary-light-6: darken(@primary, 60%);
--color-primary-light-7: darken(@primary, 80%);
--color-primary-alpha-10: fade(@primary, 10%);
--color-primary-alpha-20: fade(@primary, 20%);
--color-primary-alpha-30: fade(@primary, 30%);
--color-primary-alpha-40: fade(@primary, 40%);
--color-primary-alpha-50: fade(@primary, 50%);
--color-primary-alpha-60: fade(@primary, 60%);
--color-primary-alpha-70: fade(@primary, 70%);
--color-primary-alpha-80: fade(@primary, 80%);
--color-primary-alpha-90: fade(@primary, 90%);
--color-secondary: #454a57;
--color-secondary-dark-1: #505665;
--color-secondary-dark-2: #5b6273;
--color-secondary-dark-3: #71798e;
--color-secondary-dark-4: #7f8699;
--color-secondary-dark-5: #8c93a4;
--color-secondary-dark-6: #9aa0af;
--color-secondary-dark-7: #a8adba;
--color-secondary-dark-8: #b6bac5;
--color-secondary-dark-9: #c4c7d0;
--color-secondary-dark-10: #d2d4db;
--color-secondary-dark-11: #dfe1e6;
--color-secondary-dark-12: #edeef1;
--color-secondary-dark-13: #fbfbfc;
--color-secondary-light-1: #373b46;
--color-secondary-light-2: #292c34;
--color-secondary-light-3: #1c1e23;
--color-secondary-light-4: #0e0f11;
--color-secondary-alpha-10: #454a5719;
--color-secondary-alpha-20: #454a5733;
--color-secondary-alpha-30: #454a574b;
--color-secondary-alpha-40: #454a5766;
--color-secondary-alpha-50: #454a5780;
--color-secondary-alpha-60: #454a5799;
--color-secondary-alpha-70: #454a57b3;
--color-secondary-alpha-80: #454a57cc;
--color-secondary-alpha-90: #454a57e1;
/* colors */
--color-red: #db2828;
--color-orange: #f2711c;
--color-yellow: #fbbd08;
--color-olive: #b5cc18;
--color-green: #21ba45;
--color-teal: #00b5ad;
--color-blue: #2185d0;
--color-violet: #6435c9;
--color-purple: #a333c8;
--color-pink: #e03997;
--color-brown: #a5673f;
--color-grey: #767a85;
--color-black: #1e222e;
--color-gold: #a1882b;
--color-white: #ffffff;
--color-diff-removed-word-bg: @mk-red;
--color-diff-added-word-bg: @mk-green;
--color-diff-removed-row-bg: #3c2626;
--color-diff-moved-row-bg: #818044;
--color-diff-added-row-bg: #283e2d;
--color-diff-removed-row-border: #634343;
--color-diff-moved-row-border: #bcca6f;
--color-diff-added-row-border: #314a37;
--color-diff-inactive: #353846;
--color-error-border: darken(@mk-error-red, 20%);
--color-error-bg: @mk-bg-dark;
--color-error-text: @mk-error-red;
--color-success-border: darken(@mk-success-green, 20%);
--color-success-bg: @mk-bg-dark;
--color-success-text: @mk-success-green;
--color-warning-border: darken(@mk-orange, 20%);
--color-warning-bg: @mk-bg-dark;
--color-warning-text: @mk-orange;
--color-info-border: darken(@mk-blue, 20%);
--color-info-bg: @mk-bg-dark;
--color-info-text: @mk-blue;
/* target-based colors */
--color-body: @mk-bg0;
--color-box-header: @mk-bg-dark;
--color-box-body: @mk-bg-dark;
--color-text-dark: lighten(@mk-fg0, 10%);
--color-text: @mk-fg0;
--color-text-light: @mk-fg1;
--color-text-light-2: @mk-fg1;
--color-text-light-3: @mk-fg1;
--color-footer: @mk-bg1;
--color-timeline: #4c525e;
--color-input-text: @mk-fg1;
--color-input-background: @mk-bg-dark;
--color-input-border: @mk-bg1;
--color-input-border-hover: @mk-bg2;
--color-navbar: @mk-bg1;
--color-navbar-transparent: fade(@mk-bg1, 0%);
--color-light: #00000028;
--color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
--color-light-border: #ffffff28;
--color-hover: #ffffff10;
--color-active: #ffffff16;
--color-menu: @mk-bg-dark;
--color-card: @mk-bg1;
--color-markup-table-row: lighten(@mk-bg-dark, 5%);
--color-markup-code-block: @mk-bg1;
--color-button: #353846;
--color-code-bg: @mk-bg-dark;
--color-code-sidebar-bg: #2e323e;
--color-shadow: #00000060;
--color-secondary-bg: #2a2e3a;
--color-text-focus: #fff;
--color-expand-button: #3c404d;
--color-placeholder-text: #6a737d;
--color-editor-line-highlight: var(--color-primary-light-5);
--color-project-board-bg: var(--color-secondary-light-2);
--color-caret: var(--color-text); /* should ideally be --color-text-dark, see #15651 */
--color-reaction-bg: #ffffff12;
--color-reaction-active-bg: var(--color-primary-alpha-40);
}
::-webkit-calendar-picker-indicator {
filter: invert(.8);
}
.markup {
& h1,
& h2 {
border-bottom: 1px solid @mk-bg2;
}
& table {
& tr
{
border-top: 1px solid @mk-bg2;
}
& td,
& th {
border: 1px solid @mk-bg2 !important;
}
}
}
.ui {
&.card {
background: var(--color-card);
border: 1px solid @mk-bg1;
& > .content {
border-color: @mk-bg2;
}
& > .extra {
border-top-color: @mk-bg2;
}
}
&.dropdown .menu,
&.menu {
background: var(--color-menu);
border: 1px solid @mk-bg1;
}
&.segment,
&.segments,
&.attached.segment,
&.attached.header {
background: var(--color-box-body);
color: var(--color-text);
border-color: @mk-bg1;
}
&.repository.list.item:not(:first-child) {
border-top: 1px solid @mk-bg2;
}
&.divider {
border-bottom-color: @mk-bg2;
}
&.button {
background-color: @mk-bg1;
}
&.primary {
&.button,
&.buttons .button {
color: black;
background-color: @primary;
}
&.button:hover,
&.buttons .button:hover {
color: black;
background-color: lighten(@primary, 15%);
}
}
&.green {
&.button,
&.buttons .button {
color: black;
background-color: @mk-success-green;
}
&.button:hover,
&.buttons .button:hover {
color: black;
background-color: lighten(@mk-success-green, 15%);
}
}
&.blue {
&.button,
&.buttons .button {
color: black;
background-color: @mk-blue;
}
&.button:hover,
&.buttons .button:hover {
color: black;
background-color: lighten(@mk-blue, 15%);
}
}
&.red {
&.button,
&.buttons .button {
color: white;
background-color: @mk-error-red;
}
&.button:hover,
&.buttons .button:hover {
color: white;
background-color: darken(@mk-error-red, 15%);
}
}
&.basic {
&.primary {
&.button,
&.buttons .button {
color: black !important;
background-color: @primary !important;
box-shadow: inset 0 0 0 1px @primary !important;
}
&.button:hover,
&.buttons .button:hover {
color: black !important;
background-color: lighten(@primary, 15%) !important;
}
}
&.green {
&.button,
&.buttons .button {
color: black !important;
background-color: @mk-success-green !important;
box-shadow: inset 0 0 0 1px @mk-success-green !important;
}
&.button:hover,
&.buttons .button:hover {
color: black !important;
background-color: lighten(@mk-success-green, 15%) !important;
}
}
&.blue {
&.button,
&.buttons .button {
color: black !important;
background-color: @mk-blue !important;
box-shadow: inset 0 0 0 1px @mk-blue !important;
}
&.button:hover,
&.buttons .button:hover {
color: black !important;
background-color: lighten(@mk-blue, 15%) !important;
}
}
&.red {
&.button,
&.buttons .button {
color: white;
background-color: @mk-error-red;
}
&.button:hover,
&.buttons .button:hover {
color: white;
background-color: darken(@mk-error-red, 15%);
}
}
}
}
.ui.horizontal.segments > .segment {
background-color: @mk-bg-dark;
border-color: @mk-bg1;
}
.ui.green.progress .bar {
background-color: #668844;
}
.ui.progress.success .bar {
background-color: #7b9e57 !important;
}
.repository {
&.file.list #repo-files-table tr {
background: @mk-bg-dark;
&:hover {
background-color: lighten(@mk-bg-dark, 20%) !important;
}
}
& .navbar .active.item,
& .navbar .active.item:hover {
border-color: transparent !important;
}
& .diff-stats li {
border-color: var(--color-secondary);
}
&.release #release-list {
border-top: 1px solid @mk-bg2;
& > li .detail .dot {
background-color: #505667;
border-color: #383c4a;
}
}
& .repo-header .ui.huge.breadcrumb.repo-title .repo-header-icon .avatar {
color: #2a2e3a;
}
&.labels .ui.basic.black.label {
background-color: #bbbbbb !important;
}
}
.following.bar.light {
background: @mk-bg1;
border-color: var(--color-secondary-alpha-40);
}
.following.bar .top.menu a.item:hover {
color: #fff;
}
.feeds .list ul li.private {
background: #353945;
}
.ui.red.label,
.ui.red.labels .label {
background-color: #7d3434 !important;
border-color: #8a2121 !important;
}
.ui.yellow.label,
.ui.yellow.labels .label {
border-color: #664d02 !important;
background-color: #936e00 !important;
}
.ui.accordion .title:not(.ui) {
color: #dbdbdb;
}
.ui.green.label,
.ui.green.labels .label,
.ui.basic.green.label {
background-color: #2d693b !important;
border-color: #2d693b !important;
}
.ui.green.labels a.label:hover,
.ui.basic.green.labels a.label:hover,
a.ui.ui.ui.green.label:hover,
a.ui.basic.green.label:hover {
background-color: #3d794b !important;
border-color: #3d794b !important;
color: #fff !important;
}
// .ui.divider:not(.vertical):not(.horizontal) {
// border-bottom-color: var(--color-secondary);
// border-top-color: transparent;
// }
.form .help {
color: @mk-fg1;
}
.ui .text.light.grey {
color: #7f8699 !important;
}
.ui.form .fields.error .field textarea,
.ui.form .fields.error .field select,
.ui.form .fields.error .field input:not([type]),
.ui.form .fields.error .field input[type="date"],
.ui.form .fields.error .field input[type="datetime-local"],
.ui.form .fields.error .field input[type="email"],
.ui.form .fields.error .field input[type="number"],
.ui.form .fields.error .field input[type="password"],
.ui.form .fields.error .field input[type="search"],
.ui.form .fields.error .field input[type="tel"],
.ui.form .fields.error .field input[type="time"],
.ui.form .fields.error .field input[type="text"],
.ui.form .fields.error .field input[type="file"],
.ui.form .fields.error .field input[type="url"],
.ui.form .field.error textarea,
.ui.form .field.error select,
.ui.form .field.error input:not([type]),
.ui.form .field.error input[type="date"],
.ui.form .field.error input[type="datetime-local"],
.ui.form .field.error input[type="email"],
.ui.form .field.error input[type="number"],
.ui.form .field.error input[type="password"],
.ui.form .field.error input[type="search"],
.ui.form .field.error input[type="tel"],
.ui.form .field.error input[type="time"],
.ui.form .field.error input[type="text"],
.ui.form .field.error input[type="file"],
.ui.form .field.error input[type="url"] {
background-color: @mk-error-red;
border: 1px solid darken(@mk-error-red, 30%);
color: lighten(@mk-error-red, 90%);
}
.ui.form .field.error select:focus,
.ui.form .field.error input:not([type]):focus,
.ui.form .field.error input[type="date"]:focus,
.ui.form .field.error input[type="datetime-local"]:focus,
.ui.form .field.error input[type="email"]:focus,
.ui.form .field.error input[type="number"]:focus,
.ui.form .field.error input[type="password"]:focus,
.ui.form .field.error input[type="search"]:focus,
.ui.form .field.error input[type="tel"]:focus,
.ui.form .field.error input[type="time"]:focus,
.ui.form .field.error input[type="text"]:focus,
.ui.form .field.error input[type="file"]:focus,
.ui.form .field.error input[type="url"]:focus {
background-color: #522;
border: 1px solid #a04141;
color: #f9cbcb;
}
.ui.search > .results {
background: @mk-bg-dark;
// border-color: @mk-bg0-dark;
}
.ui.search > .results .result:hover,
.ui.category.search > .results .category .result:hover {
background: @mk-bg-dark;
}
.ui.search > .results .result .title {
color: @mk-fg0;
}
.ui.table {
border-color: @mk-bg1;
thead > tr > th {
background: @mk-bg-dark;
color: @mk-fg0 !important;
}
}
.overflow.menu .items .item {
color: #9d9d9d;
}
.overflow.menu .items .item:hover {
color: #dbdbdb;
}
.ui.list > .item > .content {
color: var(--color-secondary-dark-6) !important;
}
.tag-code,
.tag-code td {
background: #353945 !important;
}
.tag-code td.lines-num {
background-color: #3a3e4c !important;
}
.tag-code td.lines-type-marker,
td.blob-hunk {
color: #dbdbdb !important;
}
.ui.list .list > .item .header,
.ui.list > .item .header {
color: #dedede;
}
.ui.list .list > .item .description,
.ui.list > .item .description {
color: var(--color-secondary-dark-6);
}
.lines-num {
color: var(--color-secondary-dark-6) !important;
border-color: var(--color-secondary) !important;
}
td.blob-excerpt {
background-color: rgba(0, 0, 0, .15);
}
.lines-code.active,
.lines-code .active {
background: #534d1b !important;
}
.ui.ui.ui.ui.table tr.active,
.ui.ui.table td.active {
color: #dbdbdb;
}
.ui.active.label {
background: #393d4a;
border-color: #393d4a;
color: #dbdbdb;
}
.ui.header .sub.header {
color: var(--color-secondary-dark-6);
}
.ui.dividing.header {
border-bottom: 1px solid var(--color-secondary);
}
.ui.modal > .header {
background: var(--color-secondary);
color: #dbdbdb;
}
.ui.modal > .actions {
background: var(--color-secondary);
border-color: var(--color-secondary);
}
.ui.modal > .content {
background: #383c4a;
}
.minicolors-panel {
background: var(--color-secondary) !important;
border-color: #6a737d !important;
}
/* invert emojis that are hard to read otherwise */
.emoji[aria-label="check mark"],
.emoji[aria-label="currency exchange"],
.emoji[aria-label="TOP arrow"],
.emoji[aria-label="END arrow"],
.emoji[aria-label="ON! arrow"],
.emoji[aria-label="SOON arrow"],
.emoji[aria-label="heavy dollar sign"],
.emoji[aria-label="copyright"],
.emoji[aria-label="registered"],
.emoji[aria-label="trade mark"],
.emoji[aria-label="multiply"],
.emoji[aria-label="plus"],
.emoji[aria-label="minus"],
.emoji[aria-label="divide"],
.emoji[aria-label="curly loop"],
.emoji[aria-label="double curly loop"],
.emoji[aria-label="wavy dash"],
.emoji[aria-label="paw prints"],
.emoji[aria-label="musical note"],
.emoji[aria-label="musical notes"] {
filter: invert(100%) hue-rotate(180deg);
}
.edit-diff > div > .ui.table {
border-left-color: var(--color-secondary) !important;
border-right-color: var(--color-secondary) !important;
}
footer .container .links > * {
border-left-color: #888;
}
.tribute-container {
box-shadow: 0 .25rem .5rem rgba(0, 0, 0, .6);
}
img[src$="/img/matrix.svg"] {
filter: invert(80%);
}
.is-loading::after {
border-color: #4a4c58 #4a4c58 #d7d7da #d7d7da;
}
.markup-block-error {
border: 1px solid rgba(121, 71, 66, .5) !important;
border-bottom: none !important;
}

View File

@ -1,12 +0,0 @@
{ ... }:
{
# Gitea already exports at /metrics
services.prometheus.scrapeConfigs = [{
job_name = "gitea";
scrape_interval = "15s";
metrics_path = "/metrics/gitea";
static_configs = [{
targets = [ "localhost" ];
}];
}];
}

View File

@ -2,7 +2,6 @@
# TODO: Autogenerate port infrastructure
imports = [
./prometheus-exporters/gitea.nix
./prometheus-exporters/hedgedoc.nix
./prometheus-exporters/matrix-synapse.nix
./prometheus-exporters/minecraft.nix

View File

@ -43,7 +43,6 @@
in {
"atuin".servers."unix:${sa.atuin.newSocketAddress}" = { };
"dynmap".servers."localhost:${s ports.minecraft.dynmap}" = { };
"gitea".servers."unix:/run/gitea/gitea.sock" = { };
"grafana".servers."unix:/run/grafana/grafana.sock" = { };
"headscale".servers."localhost:${s srv.headscale.port}" = { };
"hedgedoc".servers."unix:${srv.hedgedoc.settings.path}" = { };
@ -135,7 +134,23 @@
(proxy ["auth"] "https://kanidm" { extraConfig = "proxy_ssl_verify off;"; })
(proxy ["bw"] "http://vaultwarden" {})
(proxy ["docs"] "http://hedgedoc" {})
(proxy ["git"] "http://gitea" {})
(host ["git"] {
locations."/".extraConfig = ''
location /h7x4 {
location ~ /h7x4/(?<project>[a-zA-Z0-9\./_-]*) {
return 301 $scheme://git.pvv.ntnu.no/oysteikt/$project;
}
return 301 $scheme://git.pvv.ntnu.no/oysteikt/;
}
location ~ /[Ss]chool[Ww]ork {
location ~ /[Ss]chool[Ww]ork/(?<project>[a-zA-Z0-9\./_-]*) {
return 301 $scheme://git.pvv.ntnu.no/oysteikt-skolearbeid/$project;
}
return 301 $scheme://git.pvv.ntnu.no/oysteikt-skolearbeid/;
}
return 301 $scheme://git.pvv.ntnu.no$request_uri;
'';
})
(proxy ["idrac"] "https://idrac" {})
(proxy ["log"] "http://grafana" enableWebsockets)
(proxy ["map"] "http://dynmap" {})

View File

@ -20,7 +20,6 @@ drives:
nextcloud:
initialPassword: ENC[AES256_GCM,data:ROG+4u6C9zBu8Ez3Jprw8cgwVd2gFErUIOBmrWL9o7/qSGPT8jnwd0T5W8E=,iv:uRdL/3Xslu/J/aPI44WxlNw3RLAvjDRPt5VttuQL/P0=,tag:IDmGXNF9PsHPaMqK5YUKIg==,type:str]
postgres:
gitea: ENC[AES256_GCM,data:HyYgEgOzeOnaEvPDEXoL+fRhrnqCeGbb/wOYf2kHulxrU9PKIAcRzmNljsc=,iv:1N/N2RUQ++rAWw4VNQzhee2aV9LzOJym6cyM6CAnZUU=,tag:o7dblJrIAPd4/S8X2LKdcQ==,type:str]
invidious: ENC[AES256_GCM,data:r/Jzs7U1fkCi2j5L/tOcBfakR3virj8HGrDrVZdP7VwubG4BJLvoeb14eJo=,iv:3plNFOds+HeF0HAliedczpNgPL4ZgqhCOwqbnb2e8Ag=,tag:DHm/KM9UuPiqaRxqNDb7QA==,type:str]
nextcloud: ENC[AES256_GCM,data:E1tD6Z2SDbi5TUDAACjXSJJIn+/ySu0+8xhvRVFxumxjex4ZsEw+mofKIxM=,iv:E4iPVF3M8GOoQghVQtn/kCEpXl0b8MueCbtyvzFM8AA=,tag:IF4kWOuTsylqrXMoXzQaVQ==,type:str]
headscale: ENC[AES256_GCM,data:UVPCZjcpm9j2dMwyAvrPfwOj84JJHrwoU5rs672FEeA=,iv:zq3J4mL/PB3EAl8LHxxC77Y4FMrZWT4QF+DOih+FIGk=,tag:UwfjKnjfJ3a6RwAWg/8BzQ==,type:str]
@ -69,8 +68,8 @@ sops:
cElPYm5qK2lkTWZ1UGd6TU1NV2h4OTgK8Ecv58Ybnc6iYMjtSKTT1fYbNf4yyFgX
rjQ2sU8Rqc04MqixnAkF2zSDaaJ0vqwf22MvbO3bYhpqOHwiTMbRLg==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-06-09T13:40:50Z"
mac: ENC[AES256_GCM,data:dMMYtUSNPB8wq/HnFYctRhpU4uHbQfA7k/EkP4pGU0RJUfvcnAtU5KCN+WpcWPNN3xBESJ3mjDGlYp2GrdoGPfj/f/+sJd2OdgPDAagb8yRCTBmQyvnv72WCxZTcV4BkBAJJQKSiTIxZ5q/t83LxzgXJ0mQnpDXFEBNf7sLJr84=,iv:Ga9URI5SbT456/LfFAlYlRu+/TAYTC+k/AKKCL2bHMM=,tag:2lqME8FFL5/BK/vN5FA1GA==,type:str]
lastmodified: "2024-06-09T14:08:08Z"
mac: ENC[AES256_GCM,data:78N+7s7fsx8joo5QBwpugJWQ5Qq4nUfUDnR/0GFlv2gO/uzVfx9yEwSXhZZpBTIU65HhHBQjk3LYRWRAdU19zSgm1dd2DNCt15OndaFeTtGit9s39g4ROZEAOUGTA7gFHbdg69owAVckLheTETaYybwVoGSqhcox4scTpXr+4WY=,iv:ZfB6+l/FOWyXginOHDBiPuBwUs32eghA0Wv78XSpotQ=,tag:9jKTrToXS5omlsHw5oSmUQ==,type:str]
pgp:
- created_at: "2023-05-08T00:49:52Z"
enc: |