Compare commits

..

21 Commits

Author SHA1 Message Date
529848d89e [docs] update nextcloud instructions 2026-06-17 11:52:48 +02:00
cf89ece4d6 Multilingual keyword not supported 2026-06-17 11:45:07 +02:00
0b77bbd8a6 [Nextcloud] build deck in flake
Changes from a cloud filehost to a local build, should also be more maintainable
2026-06-17 11:43:37 +02:00
b5b84e2ec8 change mpd config to declarative 2026-06-17 10:47:15 +02:00
90d631f73c Change credentialsFile to environmentFile 2026-06-17 10:38:47 +02:00
8c9b49f5c3 Hardcode grafana security key
Grafana's secret key (services.grafana.settings.security.secret_key) doesn't have a default  value anymore. Please generate your own and use a file-provider on this option! See also https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#secret_key for more information. See https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/configure-database-encryption/#re-encrypt-secrets on how to re-encrypt.
As stated in the NixOS changelog for 26.05, there's no official way to rotate.
 Either hard-code the old key ("SW2YcwTIb9zpOOhoPsMm") if your setup doesn't have any secrets in the DB that need special protection or perform a rotation with a 3rd-party tool (d9dc788902).
2026-06-17 10:34:11 +02:00
a575d16ec0 Promtail is EOL
Recomended migtration to grafana-alloy (https://grafana.com/docs/alloy/latest/set-up/migrate/from-promtail/) or fluent-bit (https://docs.fluentbit.io/manual/data-pipeline/outputs/loki)
I chose alloy because of the compatability.
This needs to be reworked to a native implementation later
2026-06-17 10:29:03 +02:00
1cc93d5dc2 Update to 26.05 2026-06-17 09:56:13 +02:00
017e2ca556 [Update] update and allow EOL electron 2026-06-10 17:35:47 +02:00
c31a576fbd I might be stupid... 2026-06-06 00:15:42 +02:00
34db721709 [workflow] fix autoupdate not running -.- 2026-06-04 15:24:52 +02:00
9c55854987 Update every 14 days; close previous prs 2026-05-05 11:38:48 +02:00
8e7c9141c2 Automatic Nixpkgs update (#156)
Date: Thu Apr 30 00:03:28 UTC 2026
Evaluation warnings:
evaluation warning: cloud-hypervisor supports systemd-notify via vsock, but `microvm.vsock.cid` must be set to enable this.
evaluation warning: 'system' has been renamed to/replaced by 'stdenv.hostPlatform.system'

Co-authored-by: malobot <malobot@systemli.org>
Reviewed-on: malobeo/infrastructure#156
Co-authored-by: ahtlon <git@ahtlon.de>
Co-committed-by: ahtlon <git@ahtlon.de>
2026-05-05 11:11:20 +02:00
ea2ba8637b [pretalx] pin package to unstable to fix security problem 2026-04-29 20:53:30 +02:00
c40d84ba4d [nextcloud] overwriteprotocol https 2026-04-14 13:14:34 +02:00
malobot
bd859dd40d Update flake.lock 2026-03-26 10:59:37 +01:00
3ccd73788c [gitea] add timeout and run on master 2026-03-26 10:31:09 +01:00
b2fc2d126f Add hydra callback 2026-03-25 10:41:53 +01:00
bf3f4db1b2 [hydra] forgot to change repo 2026-03-16 20:58:45 +01:00
f4614f2887 [modules] do not reference self within modules
if it gets included in other flakes 'self' references to that flake,
instead of malobeo
2026-03-16 20:52:14 +01:00
07d7f3b882 [modules] add gitea translator 2026-03-16 20:42:26 +01:00
26 changed files with 203 additions and 6212 deletions

View File

@@ -2,7 +2,7 @@ name: Weekly Flake Update
on:
schedule:
- cron: "0 0 * * 4"
- cron: "0 4 1/14 * *"
workflow_dispatch:
permissions:
@@ -89,6 +89,18 @@ jobs:
grep -q ${{ github.ref_name }} &&
exit 1 ||
exit 0
- name: close other bump requests
run: |
for i in $(tea pr -o simple | grep "Automatic Nixpkgs update" | awk '{print $1}')
do
if [ "$i" = "" ]
then
echo "No bumps to close"
exit 0
else
tea pr close $i
fi
done
- name: Force push branch
run: git push --force -u origin nixpkgs_bump_$(date +%Y%m%d)
- name: Create pull request

View File

@@ -1,33 +0,0 @@
name: Weekly Flake Update
on:
pull_request:
types:
- opened
- synchronize
- edited
- reopened
permissions:
contents: write
jobs:
Explore-Gitea-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
- name: Check for string parsing
run: |
var=$(echo "${{ github.ref }}" | cut -d / -f 3)
echo "$var"

View File

@@ -0,0 +1,63 @@
name: Hydra callback
on:
pull_request:
types:
- opened
- synchronize
paths:
- '**.nix'
- flake.lock
push:
branches:
- master
paths:
- '**.nix'
- flake.lock
permissions:
contents: write
jobs:
on_pr:
if: github.event.pull_request
runs-on: ubuntu-latest
env:
NIXPKGS_ALLOW_UNFREE: 1
steps:
- name: Install sudo
run: |
apt-get update
apt-get install -y sudo
- name: Set up Nix
uses: https://github.com/cachix/install-nix-action@v31
with:
github_access_token: ${{ secrets.AHTLONS_GITHUB_TOKEN }}
- name: Find pr number
run: |
echo PR=$(echo "${{ github.ref }}" | cut -d / -f 3) >> "$GITHUB_ENV"
- name: run hydra wait
timeout-minutes: 200
run: |
echo "Running now @ pr no $PR"
nix run nixpkgs#hydra-cli -- -H https://hydra.dynamicdiscord.de jobset-wait malobeo2 "$PR"
on_push:
if: github.event.push
runs-on: ubuntu-latest
env:
NIXPKGS_ALLOW_UNFREE: 1
steps:
- name: Install sudo
run: |
apt-get update
apt-get install -y sudo
- name: Set up Nix
uses: https://github.com/cachix/install-nix-action@v31
with:
github_access_token: ${{ secrets.AHTLONS_GITHUB_TOKEN }}
- name: run hydra wait
timeout-minutes: 200
run: |
echo "Running now @ master"
nix run nixpkgs#hydra-cli -- -H https://hydra.dynamicdiscord.de jobset-wait malobeo2 master

View File

@@ -12,7 +12,7 @@
"type": 0,
"inputs": {
"nixexpr": {
"value": "https://git.dynamicdiscord.de/ahtlon/infrastructure master",
"value": "https://git.dynamicdiscord.de/malobeo/infrastructure master",
"type": "git",
"emailresponsible": false
},

View File

@@ -1,6 +1,5 @@
[book]
authors = ["ahtlon"]
language = "de"
multilingual = false
src = "src"
title = "Malobeo Infrastruktur Dokumentation"

View File

@@ -1,7 +1,14 @@
### Updating nextcloud
## Updating the draggable patch
As of 17.06.26 the patch now gets applied automaticly while building the package.
On a nextcloud update:
- Change the `services.nextcloud.package` to the next version (ex.: `pkgs.nextcloud33`)
- Change `services.nextcloud.extraApps.deck.src.rev` to the next version (ex.: `stable33`)
- update hashes
### Building the package manually
The draggable patch is a one line patch found in the deck repo under `src/components/cards/CardItem.vue`
Direct link: https://git.dynamicdiscord.de/ahtlon/deck/commit/77cbcf42ca80dd32e450839f02faca2e5fed3761

View File

@@ -1,350 +0,0 @@
{
"allow_maintainer_edit": false,
"assignee": null,
"assignees": null,
"base": {
"label": "master",
"ref": "master",
"repo": {
"allow_fast_forward_only_merge": false,
"allow_manual_merge": false,
"allow_merge_commits": true,
"allow_rebase": true,
"allow_rebase_explicit": true,
"allow_rebase_update": true,
"allow_squash_merge": true,
"archived": false,
"archived_at": "1970-01-01T01:00:00+01:00",
"autodetect_manual_merge": false,
"avatar_url": "",
"clone_url": "https://git.dynamicdiscord.de/ahtlon/infrastructure.git",
"created_at": "2024-10-24T19:38:14+02:00",
"default_allow_maintainer_edit": false,
"default_branch": "master",
"default_delete_branch_after_merge": false,
"default_merge_style": "merge",
"description": "",
"empty": false,
"fork": true,
"forks_count": 0,
"full_name": "ahtlon/infrastructure",
"has_actions": true,
"has_code": true,
"has_issues": false,
"has_packages": false,
"has_projects": false,
"has_pull_requests": true,
"has_releases": false,
"has_wiki": false,
"html_url": "https://git.dynamicdiscord.de/ahtlon/infrastructure",
"id": 29,
"ignore_whitespace_conflicts": false,
"internal": false,
"language": "",
"languages_url": "https://git.dynamicdiscord.de/api/v1/repos/ahtlon/infrastructure/languages",
"licenses": [],
"link": "",
"mirror": false,
"mirror_interval": "",
"mirror_updated": "0001-01-01T00:00:00Z",
"name": "infrastructure",
"object_format_name": "sha1",
"open_issues_count": 0,
"open_pr_counter": 5,
"original_url": "",
"owner": {
"active": false,
"avatar_url": "https://git.dynamicdiscord.de/avatars/7399d018a0bcee0f2da113bdeeafec029316d8e8ce774b829de4125b026c0599",
"created": "2024-10-23T17:19:18+02:00",
"description": "",
"email": "ahtlon@noreply.git.dynamicdiscord.de",
"followers_count": 0,
"following_count": 0,
"full_name": "",
"html_url": "https://git.dynamicdiscord.de/ahtlon",
"id": 8,
"is_admin": false,
"language": "",
"last_login": "0001-01-01T00:00:00Z",
"location": "",
"login": "ahtlon",
"login_name": "",
"prohibit_login": false,
"restricted": false,
"source_id": 0,
"starred_repos_count": 0,
"username": "ahtlon",
"visibility": "public",
"website": ""
},
"parent": {
"allow_fast_forward_only_merge": false,
"allow_manual_merge": false,
"allow_merge_commits": true,
"allow_rebase": true,
"allow_rebase_explicit": true,
"allow_rebase_update": true,
"allow_squash_merge": true,
"archived": false,
"archived_at": "1970-01-01T01:00:00+01:00",
"autodetect_manual_merge": false,
"avatar_url": "",
"clone_url": "https://git.dynamicdiscord.de/malobeo/infrastructure.git",
"created_at": "2022-10-04T18:35:43+02:00",
"default_allow_maintainer_edit": false,
"default_branch": "master",
"default_delete_branch_after_merge": false,
"default_merge_style": "merge",
"description": "",
"empty": false,
"fork": false,
"forks_count": 1,
"full_name": "malobeo/infrastructure",
"has_actions": true,
"has_code": true,
"has_issues": true,
"has_packages": false,
"has_projects": true,
"has_pull_requests": true,
"has_releases": true,
"has_wiki": true,
"html_url": "https://git.dynamicdiscord.de/malobeo/infrastructure",
"id": 15,
"ignore_whitespace_conflicts": false,
"internal": false,
"internal_tracker": {
"allow_only_contributors_to_track_time": true,
"enable_issue_dependencies": true,
"enable_time_tracker": true
},
"language": "",
"languages_url": "https://git.dynamicdiscord.de/api/v1/repos/malobeo/infrastructure/languages",
"licenses": [],
"link": "",
"mirror": false,
"mirror_interval": "",
"mirror_updated": "0001-01-01T00:00:00Z",
"name": "infrastructure",
"object_format_name": "sha1",
"open_issues_count": 40,
"open_pr_counter": 4,
"original_url": "",
"owner": {
"active": false,
"avatar_url": "https://git.dynamicdiscord.de/avatars/9ea8af20ca015cb078b2971cd4e91e6d",
"created": "2023-03-29T17:26:16+02:00",
"description": "",
"email": "",
"followers_count": 0,
"following_count": 0,
"full_name": "",
"html_url": "https://git.dynamicdiscord.de/malobeo",
"id": 7,
"is_admin": false,
"language": "",
"last_login": "0001-01-01T00:00:00Z",
"location": "",
"login": "malobeo",
"login_name": "",
"prohibit_login": false,
"restricted": false,
"source_id": 0,
"starred_repos_count": 0,
"username": "malobeo",
"visibility": "public",
"website": ""
},
"permissions": {
"admin": false,
"pull": true,
"push": false
},
"private": false,
"projects_mode": "",
"release_counter": 0,
"size": 2878,
"ssh_url": "ssh://gitea@git.dynamicdiscord.de:23428/malobeo/infrastructure.git",
"stars_count": 1,
"template": false,
"topics": [],
"updated_at": "2026-03-12T01:11:13+01:00",
"url": "https://git.dynamicdiscord.de/api/v1/repos/malobeo/infrastructure",
"watchers_count": 2,
"website": ""
},
"permissions": {
"admin": false,
"pull": true,
"push": false
},
"private": false,
"projects_mode": "all",
"release_counter": 0,
"size": 14507,
"ssh_url": "ssh://gitea@git.dynamicdiscord.de:23428/ahtlon/infrastructure.git",
"stars_count": 0,
"template": false,
"topics": [],
"updated_at": "2026-03-12T01:05:43+01:00",
"url": "https://git.dynamicdiscord.de/api/v1/repos/ahtlon/infrastructure",
"watchers_count": 1,
"website": ""
},
"repo_id": 29,
"sha": "dacdb2214ea6ff645c444ce0eaab68c317f0a616"
},
"body": "",
"closed_at": null,
"comments": 0,
"created_at": "2026-03-11T17:29:55+01:00",
"diff_url": "https://git.dynamicdiscord.de/ahtlon/infrastructure/pulls/8.diff",
"draft": false,
"due_date": null,
"head": {
"label": "nixpkgs_bump_20260305",
"ref": "nixpkgs_bump_20260305",
"repo": {
"allow_fast_forward_only_merge": false,
"allow_manual_merge": false,
"allow_merge_commits": true,
"allow_rebase": true,
"allow_rebase_explicit": true,
"allow_rebase_update": true,
"allow_squash_merge": true,
"archived": false,
"archived_at": "1970-01-01T01:00:00+01:00",
"autodetect_manual_merge": false,
"avatar_url": "",
"clone_url": "https://git.dynamicdiscord.de/malobeo/infrastructure.git",
"created_at": "2022-10-04T18:35:43+02:00",
"default_allow_maintainer_edit": false,
"default_branch": "master",
"default_delete_branch_after_merge": false,
"default_merge_style": "merge",
"description": "",
"empty": false,
"fork": false,
"forks_count": 1,
"full_name": "malobeo/infrastructure",
"has_actions": true,
"has_code": true,
"has_issues": true,
"has_packages": false,
"has_projects": true,
"has_pull_requests": true,
"has_releases": true,
"has_wiki": true,
"html_url": "https://git.dynamicdiscord.de/malobeo/infrastructure",
"id": 15,
"ignore_whitespace_conflicts": false,
"internal": false,
"internal_tracker": {
"allow_only_contributors_to_track_time": true,
"enable_issue_dependencies": true,
"enable_time_tracker": true
},
"language": "",
"languages_url": "https://git.dynamicdiscord.de/api/v1/repos/malobeo/infrastructure/languages",
"licenses": [],
"link": "",
"mirror": false,
"mirror_interval": "",
"mirror_updated": "0001-01-01T00:00:00Z",
"name": "infrastructure",
"object_format_name": "sha1",
"open_issues_count": 40,
"open_pr_counter": 4,
"original_url": "",
"owner": {
"active": false,
"avatar_url": "https://git.dynamicdiscord.de/avatars/9ea8af20ca015cb078b2971cd4e91e6d",
"created": "2023-03-29T17:26:16+02:00",
"description": "",
"email": "",
"followers_count": 0,
"following_count": 0,
"full_name": "",
"html_url": "https://git.dynamicdiscord.de/malobeo",
"id": 7,
"is_admin": false,
"language": "",
"last_login": "0001-01-01T00:00:00Z",
"location": "",
"login": "malobeo",
"login_name": "",
"prohibit_login": false,
"restricted": false,
"source_id": 0,
"starred_repos_count": 0,
"username": "malobeo",
"visibility": "public",
"website": ""
},
"permissions": {
"admin": false,
"pull": true,
"push": false
},
"private": false,
"projects_mode": "",
"release_counter": 0,
"size": 2878,
"ssh_url": "ssh://gitea@git.dynamicdiscord.de:23428/malobeo/infrastructure.git",
"stars_count": 1,
"template": false,
"topics": [],
"updated_at": "2026-03-12T01:11:13+01:00",
"url": "https://git.dynamicdiscord.de/api/v1/repos/malobeo/infrastructure",
"watchers_count": 2,
"website": ""
},
"repo_id": 15,
"sha": "7c66a24563d0e95c292aafeaa08056effc6152d9"
},
"html_url": "https://git.dynamicdiscord.de/ahtlon/infrastructure/pulls/8",
"id": 66,
"is_locked": false,
"labels": [],
"merge_base": "344eeb437b0aa29baee1227e48878f987e21e296",
"merge_commit_sha": null,
"mergeable": true,
"merged": false,
"merged_at": null,
"merged_by": null,
"milestone": null,
"number": 8,
"patch_url": "https://git.dynamicdiscord.de/ahtlon/infrastructure/pulls/8.patch",
"pin_order": 0,
"requested_reviewers": null,
"requested_reviewers_teams": null,
"state": "open",
"target_repo_url": "https://git.dynamicdiscord.de/ahtlon/infrastructure.git",
"title": "Update flake.lock",
"updated_at": "2026-03-11T17:29:55+01:00",
"url": "https://git.dynamicdiscord.de/ahtlon/infrastructure/pulls/8",
"user": {
"active": false,
"avatar_url": "https://git.dynamicdiscord.de/avatars/7399d018a0bcee0f2da113bdeeafec029316d8e8ce774b829de4125b026c0599",
"created": "2024-10-23T17:19:18+02:00",
"description": "",
"email": "ahtlon@noreply.git.dynamicdiscord.de",
"followers_count": 0,
"following_count": 0,
"full_name": "",
"html_url": "https://git.dynamicdiscord.de/ahtlon",
"id": 8,
"is_admin": false,
"language": "",
"last_login": "0001-01-01T00:00:00Z",
"location": "",
"login": "ahtlon",
"login_name": "",
"prohibit_login": false,
"restricted": false,
"source_id": 0,
"starred_repos_count": 0,
"username": "ahtlon",
"visibility": "public",
"website": ""
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

66
flake.lock generated
View File

@@ -85,16 +85,16 @@
]
},
"locked": {
"lastModified": 1763992789,
"narHash": "sha256-WHkdBlw6oyxXIra/vQPYLtqY+3G8dUVZM8bEXk0t8x4=",
"lastModified": 1781319724,
"narHash": "sha256-ZGuxexEMo4Xv28KJ0dX/m/PHN4oZIOnxHZpNTyrvx4M=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "44831a7eaba4360fb81f2acc5ea6de5fde90aaa3",
"rev": "8355f0a16b2dbb06a97959a918af5b239bbe05ae",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-25.05",
"ref": "release-26.05",
"repo": "home-manager",
"type": "github"
}
@@ -126,11 +126,11 @@
"spectrum": "spectrum"
},
"locked": {
"lastModified": 1773018425,
"narHash": "sha256-fpgZBmZpKoEXEowBK/6m8g9FcOLWQ4UxhXHqCw2CpSM=",
"lastModified": 1781389237,
"narHash": "sha256-Ne1/E5XNUq0gleaQz0vW5R4xf/0h/uEZ+bOW1aNjeQk=",
"owner": "astro",
"repo": "microvm.nix",
"rev": "25ebda3c558e923720c965832dc9a04f559a055c",
"rev": "6ad601df0a07d9855c5e8f9b81135ecaf7c287eb",
"type": "github"
},
"original": {
@@ -176,12 +176,15 @@
}
},
"nixos-hardware": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1772972630,
"narHash": "sha256-mUJxsNOrBMNOUJzN0pfdVJ1r2pxeqm9gI/yIKXzVVbk=",
"lastModified": 1781622756,
"narHash": "sha256-JrPh4M6S7aPsEE9tOENuZrxC6o2szSLlK+t4+nLke9s=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "3966ce987e1a9a164205ac8259a5fe8a64528f72",
"rev": "08018c72174a4df5657f8d94178ac69fb9c243e5",
"type": "github"
},
"original": {
@@ -209,11 +212,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1773282481,
"narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=",
"lastModified": 1781577229,
"narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fe416aaedd397cacb33a610b33d60ff2b431b127",
"rev": "567a49d1913ce81ac6e9582e3553dd90a955875f",
"type": "github"
},
"original": {
@@ -225,16 +228,29 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1773375660,
"narHash": "sha256-SEzUWw2Rf5Ki3bcM26nSKgbeoqi2uYy8IHVBqOKjX3w=",
"lastModified": 1767892417,
"narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=",
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1781216227,
"narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3e20095fe3c6cbb1ddcef89b26969a69a1570776",
"rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.11",
"ref": "nixos-26.05",
"repo": "nixpkgs",
"type": "github"
}
@@ -249,7 +265,7 @@
"microvm": "microvm",
"nixos-generators": "nixos-generators",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2",
"nixpkgs": "nixpkgs_3",
"nixpkgs-unstable": "nixpkgs-unstable",
"sops-nix": "sops-nix",
"tasklist": "tasklist",
@@ -264,11 +280,11 @@
]
},
"locked": {
"lastModified": 1773096132,
"narHash": "sha256-M3zEnq9OElB7zqc+mjgPlByPm1O5t2fbUrH3t/Hm5Ag=",
"lastModified": 1780547341,
"narHash": "sha256-Gq8KNx5A7hBB3uGJaj6eQfLDIz5YdLu92gqBcvHvoUo=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "d1ff3b1034d5bab5d7d8086a7803c5a5968cd784",
"rev": "9ed65852b6257fbeae4355bc24ecfea307ca759a",
"type": "github"
},
"original": {
@@ -280,11 +296,11 @@
"spectrum": {
"flake": false,
"locked": {
"lastModified": 1772189877,
"narHash": "sha256-i1p90Rgssb//aNiTDFq46ZG/fk3LmyRLChtp/9lddyA=",
"lastModified": 1778940603,
"narHash": "sha256-voSM8dZNlaOWN3kbYFky+FNY6fFQOEw0xF+ZMpZKkCQ=",
"ref": "refs/heads/main",
"rev": "fe39e122d898f66e89ffa17d4f4209989ccb5358",
"revCount": 1255,
"rev": "367dd227f539267eae2b62770b4c17b88ac8c1f1",
"revCount": 1265,
"type": "git",
"url": "https://spectrum-os.org/git/spectrum"
},

View File

@@ -3,7 +3,7 @@
inputs = {
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
sops-nix.url = "github:Mic92/sops-nix";
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
@@ -43,7 +43,7 @@
};
home-manager= {
url = "github:nix-community/home-manager/release-25.05";
url = "github:nix-community/home-manager/release-26.05";
inputs = {
nixpkgs.follows = "nixpkgs";
};

View File

@@ -1,350 +0,0 @@
AAAAAA{
"allow_maintainer_edit": false,
"assignee": null,
"assignees": null,
"base": {
"label": "master",
"ref": "master",dd
"repo": {
"allow_fast_ddasdad_only_merge": false,
"allow_manual_merge": false,
"allow_merge_commits": true,
"allow_rebase": true,
"allow_rebase_explicit": true,
"allow_rebase_update": true,
"allow_squash_merge": true,
"archived": false,
"archived_at": "1970-01-01T01:00:00+01:00",
"autodetect_manual_merge": false,
"avatar_url": "",
"clone_url": "https://git.dynamicdiscord.de/ahtlon/infrastructure.git",
"created_at": "2024-10-24T19:38:14+02:00",
"default_allow_maintainer_edit": false,
"default_branch": "master",
"default_delete_branch_after_merge": false,
"default_merge_style": "merge",
"description": "",
"empty": false,
"fork": true,
"forks_count": 0,
"full_name": "ahtlon/infrastructure",
"has_actions": true,
"has_code": true,
"has_issues": false,
"has_packages": false,
"has_projects": false,
"has_pull_requests": true,
"has_releases": false,
"has_wiki": false,
"html_url": "https://git.dynamicdiscord.de/ahtlon/infrastructure",
"id": 29,
"ignore_whitespace_conflicts": false,
"internal": false,
"language": "",
"languages_url": "https://git.dynamicdiscord.de/api/v1/repos/ahtlon/infrastructure/languages",
"licenses": [],
"link": "",
"mirror": false,
"mirror_interval": "",
"mirror_updated": "0001-01-01T00:00:00Z",
"name": "infrastructure",
"object_format_name": "sha1",
"open_issues_count": 0,
"open_pr_counter": 6,
"original_url": "",
"owner": {
"active": false,
"avatar_url": "https://git.dynamicdiscord.de/avatars/7399d018a0bcee0f2da113bdeeafec029316d8e8ce774b829de4125b026c0599",
"created": "2024-10-23T17:19:18+02:00",
"description": "",
"email": "ahtlon@noreply.git.dynamicdiscord.de",
"followers_count": 0,
"following_count": 0,
"full_name": "",
"html_url": "https://git.dynamicdiscord.de/ahtlon",
"id": 8,
"is_admin": false,
"language": "",
"last_login": "0001-01-01T00:00:00Z",
"location": "",
"login": "ahtlon",
"login_name": "",
"prohibit_login": false,
"restricted": false,
"source_id": 0,
"starred_repos_count": 0,
"username": "ahtlon",
"visibility": "public",
"website": ""
},
"parent": {
"allow_fast_forward_only_merge": false,
"allow_manual_merge": false,
"allow_merge_commits": true,
"allow_rebase": true,
"allow_rebase_explicit": true,
"allow_rebase_update": true,
"allow_squash_merge": true,
"archived": false,
"archived_at": "1970-01-01T01:00:00+01:00",
"autodetect_manual_merge": false,
"avatar_url": "",
"clone_url": "https://git.dynamicdiscord.de/malobeo/infrastructure.git",
"created_at": "2022-10-04T18:35:43+02:00",
"default_allow_maintainer_edit": false,
"default_branch": "master",
"default_delete_branch_after_merge": false,
"default_merge_style": "merge",
"description": "",
"empty": false,
"fork": false,
"forks_count": 1,
"full_name": "malobeo/infrastructure",
"has_actions": true,
"has_code": true,
"has_issues": true,
"has_packages": false,
"has_projects": true,
"has_pull_requests": true,
"has_releases": true,
"has_wiki": true,
"html_url": "https://git.dynamicdiscord.de/malobeo/infrastructure",
"id": 15,
"ignore_whitespace_conflicts": false,
"internal": false,
"internal_tracker": {
"allow_only_contributors_to_track_time": true,
"enable_issue_dependencies": true,
"enable_time_tracker": true
},
"language": "",
"languages_url": "https://git.dynamicdiscord.de/api/v1/repos/malobeo/infrastructure/languages",
"licenses": [],
"link": "",
"mirror": false,
"mirror_interval": "",
"mirror_updated": "0001-01-01T00:00:00Z",
"name": "infrastructure",
"object_format_name": "sha1",
"open_issues_count": 40,
"open_pr_counter": 4,
"original_url": "",
"owner": {
"active": false,
"avatar_url": "https://git.dynamicdiscord.de/avatars/9ea8af20ca015cb078b2971cd4e91e6d",
"created": "2023-03-29T17:26:16+02:00",
"description": "",
"email": "",
"followers_count": 0,
"following_count": 0,
"full_name": "",
"html_url": "https://git.dynamicdiscord.de/malobeo",
"id": 7,
"is_admin": false,
"language": "",
"last_login": "0001-01-01T00:00:00Z",
"location": "",
"login": "malobeo",
"login_name": "",
"prohibit_login": false,
"restricted": false,
"source_id": 0,
"starred_repos_count": 0,
"username": "malobeo",
"visibility": "public",
"website": ""
},
"permissions": {
"admin": false,
"pull": true,
"push": false
},
"private": false,
"projects_mode": "",
"release_counter": 0,
"size": 2878,
"ssh_url": "ssh://gitea@git.dynamicdiscord.de:23428/malobeo/infrastructure.git",
"stars_count": 1,
"template": false,
"topics": [],
"updated_at": "2026-03-12T01:11:13+01:00",
"url": "https://git.dynamicdiscord.de/api/v1/repos/malobeo/infrastructure",
"watchers_count": 2,
"website": ""
},
"permissions": {
"admin": false,
"pull": true,
"push": false
},
"private": false,
"projects_mode": "all",
"release_counter": 0,
"size": 14584,
"ssh_url": "ssh://gitea@git.dynamicdiscord.de:23428/ahtlon/infrastructure.git",
"stars_count": 0,
"template": false,
"topics": [],
"updated_at": "2026-03-13T16:33:51+01:00",
"url": "https://git.dynamicdiscord.de/api/v1/repos/ahtlon/infrastructure",
"watchers_count": 1,
"website": ""
},
"repo_id": 29,
"sha": "e73516fbe79022d12608e9616b75b3a388bd0e5f"
},
"body": "",
"closed_at": null,
"comments": 0,
"created_at": "2026-03-11T17:29:55+01:00",
"diff_url": "https://git.dynamicdiscord.de/ahtlon/infrastructure/pulls/8.diff",
"draft": false,
"due_date": null,
"head": {
"label": "nixpkgs_bump_20260305",
"ref": "nixpkgs_bump_20260305",
"repo": {
"allow_fast_forward_only_merge": false,
"allow_manual_merge": false,
"allow_merge_commits": true,
"allow_rebase": true,
"allow_rebase_explicit": true,
"allow_rebase_update": true,
"allow_squash_merge": true,
"archived": false,
"archived_at": "1970-01-01T01:00:00+01:00",
"autodetect_manual_merge": false,
"avatar_url": "",
"clone_url": "https://git.dynamicdiscord.de/malobeo/infrastructure.git",
"created_at": "2022-10-04T18:35:43+02:00",
"default_allow_maintainer_edit": false,
"default_branch": "master",
"default_delete_branch_after_merge": false,
"default_merge_style": "merge",
"description": "",
"empty": false,
"fork": false,
"forks_count": 1,
"full_name": "malobeo/infrastructure",
"has_actions": true,
"has_code": true,
"has_issues": true,
"has_packages": false,
"has_projects": true,
"has_pull_requests": true,
"has_releases": true,
"has_wiki": true,
"html_url": "https://git.dynamicdiscord.de/malobeo/infrastructure",
"id": 15,
"ignore_whitespace_conflicts": false,
"internal": false,
"internal_tracker": {
"allow_only_contributors_to_track_time": true,
"enable_issue_dependencies": true,
"enable_time_tracker": true
},
"language": "",
"languages_url": "https://git.dynamicdiscord.de/api/v1/repos/malobeo/infrastructure/languages",
"licenses": [],
"link": "",
"mirror": false,
"mirror_interval": "",
"mirror_updated": "0001-01-01T00:00:00Z",
"name": "infrastructure",
"object_format_name": "sha1",
"open_issues_count": 40,
"open_pr_counter": 4,
"original_url": "",
"owner": {
"active": false,
"avatar_url": "https://git.dynamicdiscord.de/avatars/9ea8af20ca015cb078b2971cd4e91e6d",
"created": "2023-03-29T17:26:16+02:00",
"description": "",
"email": "",
"followers_count": 0,
"following_count": 0,
"full_name": "",
"html_url": "https://git.dynamicdiscord.de/malobeo",
"id": 7,
"is_admin": false,
"language": "",
"last_login": "0001-01-01T00:00:00Z",
"location": "",
"login": "malobeo",
"login_name": "",
"prohibit_login": false,
"restricted": false,
"source_id": 0,
"starred_repos_count": 0,
"username": "malobeo",
"visibility": "public",
"website": ""
},
"permissions": {
"admin": false,
"pull": true,
"push": false
},
"private": false,
"projects_mode": "",
"release_counter": 0,
"size": 2878,
"ssh_url": "ssh://gitea@git.dynamicdiscord.de:23428/malobeo/infrastructure.git",
"stars_count": 1,
"template": false,
"topics": [],
"updated_at": "2026-03-12T01:11:13+01:00",
"url": "https://git.dynamicdiscord.de/api/v1/repos/malobeo/infrastructure",
"watchers_count": 2,
"website": ""
},
"repo_id": 15,
"sha": "7c66a24563d0e95c292aafeaa08056effc6152d9"
},
"html_url": "https://git.dynamicdiscord.de/ahtlon/infrastructure/pulls/8",
"id": 66,
"is_locked": false,
"labels": [],
"merge_base": "344eeb437b0aa29baee1227e48878f987e21e296",
"merge_commit_sha": null,
"mergeable": true,
"merged": false,
"merged_at": null,
"merged_by": null,
"milestone": null,
"number": 8,
"patch_url": "https://git.dynamicdiscord.de/ahtlon/infrastructure/pulls/8.patch",
"pin_order": 0,
"requested_reviewers": null,
"requested_reviewers_teams": null,
"state": "open",
"target_repo_url": "https://git.dynamicdiscord.de/ahtlon/infrastructure.git",
"title": "Update flake.lock",
"updated_at": "2026-03-11T17:29:55+01:00",
"url": "https://git.dynamicdiscord.de/ahtlon/infrastructure/pulls/8",
"user": {
"active": false,
"avatar_url": "https://git.dynamicdiscord.de/avatars/7399d018a0bcee0f2da113bdeeafec029316d8e8ce774b829de4125b026c0599",
"created": "2024-10-23T17:19:18+02:00",
"description": "",
"email": "ahtlon@noreply.git.dynamicdiscord.de",
"followers_count": 0,
"following_count": 0,
"full_name": "",
"html_url": "https://git.dynamicdiscord.de/ahtlon",
"id": 8,
"is_admin": false,
"language": "",
"last_login": "0001-01-01T00:00:00Z",
"location": "",
"login": "ahtlon",
"login_name": "",
"prohibit_login": false,
"restricted": false,
"source_id": 0,
"starred_repos_count": 0,
"username": "ahtlon",
"visibility": "public",
"website": ""
}
}

View File

@@ -165,7 +165,7 @@ in
defaults.email = "malobeo@systemli.org";
defaults = {
dnsProvider = "njalla";
credentialsFile = config.sops.secrets.njala_api_key.path;
environmentFile = config.sops.secrets.njala_api_key.path;
dnsPropagationCheck = false;
};
};

View File

@@ -46,6 +46,8 @@
];
};
nixpkgs.config.permittedInsecurePackages = [ "electron-39.8.10" ];
services.tor = {
enable = true;
client.enable = true;

View File

@@ -67,17 +67,17 @@ in
mpd = {
enable = true;
musicDirectory = "/var/lib/mpd/music";
extraConfig = ''
audio_output {
type "alsa"
name "My ALSA"
device "hw:0,0" # optional
format "44100:16:2" # optional
mixer_type "hardware"
mixer_device "default"
mixer_control "PCM"
}
'';
settings = {
audio_output = [{
type = "alsa";
name = "My ALSA";
device = "hw:0,0"; # optional
format = "44100:16:2"; # optional
mixer_type = "hardware";
mixer_device = "default";
mixer_control = "PCM";
}];
};
# Optional:
network.listenAddress = "any"; # if you want to allow non-localhost connections
@@ -199,7 +199,7 @@ in
defaults.email = "malobeo@systemli.org";
defaults = {
dnsProvider = "njalla";
credentialsFile = config.sops.secrets.njala_api_key.path;
environmentFile = config.sops.secrets.njala_api_key.path;
dnsPropagationCheck = false;
};
};

View File

@@ -55,7 +55,7 @@ in
serviceConfig = {
ExecStart = ''
${pkgs.python3}/bin/python3 ${inputs.self + /scripts/gitea_hydra_server.py} \
${pkgs.python3}/bin/python3 ${../../../scripts/gitea_hydra_server.py} \
--baseurl ${cfg.baseurl} \
--owner ${cfg.owner} \
--repo ${cfg.repo} \
@@ -75,4 +75,4 @@ in
};
};
};
}
}

View File

@@ -41,17 +41,22 @@ in
};
};
services.promtail = {
services.alloy = {
enable = cfg.enablePromtail;
configFile = import ./promtail_config.nix {
extraFlags = ["--config.format=promtail"]; #TODO please change this to native alloy config later
configPath = import ./promtail_config.nix {
lokiAddress = cfg.lokiHost;
logNginx = cfg.logNginx;
config = config;
pkgs = pkgs;
};
};
users.users.promtail.extraGroups = [ "systemd-journal" ] ++ (lib.optionals cfg.logNginx [ "nginx" ]) ;
users.groups.promtail = {};
users.users.promtail = {
isNormalUser = true;
group = "promtail";
extraGroups = [ "systemd-journal" ] ++ (lib.optionals cfg.logNginx [ "nginx" ]) ;
};
};
}

View File

@@ -32,7 +32,7 @@
"hetzner" = {
role = "client";
address = "10.100.0.7";
address = "10.100.0.6";
allowedIPs = [ "10.100.0.6/32" ];
publicKey = "csRzgwtnzmSLeLkSwTwEOrdKq55UOxZacR5D3GopCTQ=";
};

View File

@@ -0,0 +1,25 @@
From 0d4b14e8eb62b0f0ed01f45bbaa7c2721245f7d6 Mon Sep 17 00:00:00 2001
From: ahtlon <git@ahtlon.de>
Date: Thu, 9 Oct 2025 12:22:08 +0200
Subject: [PATCH] Patch cards to be draggable
---
src/components/cards/CardItem.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/cards/CardItem.vue b/src/components/cards/CardItem.vue
index 7539ac53e..aaf9f2fe0 100644
--- a/src/components/cards/CardItem.vue
+++ b/src/components/cards/CardItem.vue
@@ -20,7 +20,7 @@
<CardCover v-if="showCardCover" :card-id="card.id" />
<div class="card-upper">
<h4 v-if="editingTitle === 0" key="title-view" dir="auto">
- <span class="dragDisabled" contenteditable="false">{{ displayTitle }}</span>
+ <span contenteditable="false">{{ displayTitle }}</span>
</h4>
<h4 v-if="editingTitle >= 1"
key="title-edit"
--
2.54.0

View File

@@ -39,7 +39,7 @@ in
services.nextcloud = {
enable = true;
package = pkgs.nextcloud32;
package = pkgs.nextcloud33;
hostName = "cloud.malobeo.org";
config.adminpassFile = config.sops.secrets.nextcloudAdminPass.path;
maxUploadSize = "10G";
@@ -54,15 +54,29 @@ in
extraAppsEnable = true;
extraApps = {
inherit (config.services.nextcloud.package.packages.apps) contacts calendar polls registration collectives forms;
deck = pkgs.fetchNextcloudApp {
sha256 = "sha256-epjwIANb6vTNx9KqaG6jZc14YPoFMBTCj+/c9JHcWkA=";
url = "https://link.storjshare.io/raw/jvrl62dakd6htpyxohjkiiqiw5ma/mal/deck32.tar.gz";
license = "agpl3Plus";
};
deck = pkgs.php.buildComposerProject2 (finalAttrs: {
pname = "deck";
version = "1.18.0";
src = pkgs.fetchFromGitHub {
owner = "nextcloud";
repo = "deck";
rev = "stable33";
hash = "sha256-7R0IteB34mWFwUlHptvqNlfmeFhJcGMRlKFtDqsw1Dw=";
};
composerNoDev = false;
composerStrictValidation = false;
vendorHash = "sha256-gAuG5kKVpuaOpw2HvAP/hu89lmcVWUiSwujoN++I/ZA=";
patches = [ ./0001-Patch-cards-to-be-draggable.patch ];
postInstall = ''
cp -r $out/share/php/deck/* $out/
rm -r $out/share
'';
});
};
settings = {
trusted_domains = [ "cloud.malobeo.org" "cloud.hq.malobeo.org" ];
trusted_proxies = [ hosts.malobeo.hosts.fanny.network.address ];
overwriteprotocol = "https";
"maintenance_window_start" = "1";
"default_phone_region" = "DE";
};

View File

@@ -37,6 +37,7 @@ in
services.grafana = {
enable = true;
settings = {
security.secret_key = "SW2YcwTIb9zpOOhoPsMm";
server = {
domain = "grafana.malobeo.org";
http_port = 2342;

View File

@@ -1,4 +1,4 @@
{ config, self, lib, pkgs, ... }:
{ config, self, lib, pkgs, inputs, ... }:
with lib;
@@ -58,6 +58,7 @@ in
services.pretalx = {
enable = true;
package = inputs.nixpkgs-unstable.legacyPackages."x86_64-linux".pretalx;
celery.extraArgs = [
"--concurrency=${toString config.microvm.vcpu}"
];

View File

@@ -118,6 +118,7 @@ in (utils.lib.eachSystem (builtins.filter filter_system utils.lib.defaultSystems
users.imports = [ ./machines/modules/malobeo/users.nix ];
backup.imports = [ ./machines/modules/malobeo/backup.nix ];
printing.imports = [ ./machines/modules/malobeo/printing.nix ];
gitea-translator.imports = [ ./machines/modules/malobeo/gitea_translator.nix ];
};
hydraJobs = nixpkgs.lib.mapAttrs (_: nixpkgs.lib.hydraJob) (

1
test
View File

@@ -1 +0,0 @@
1