11 Commits

Author SHA1 Message Date
shobu
27862a3be1 test
Some checks failed
/ build hive configuration (push) Failing after 15s
/ Build Nix targets (push) Has been cancelled
2025-11-12 05:19:27 +01:00
shobu
41e5077f7d use native nix runner service 2025-11-12 05:08:30 +01:00
shobu
cda4de62b6 old nix
Some checks failed
/ Build Nix targets (push) Successful in 25s
/ build hive configuration (push) Failing after 3m29s
2025-11-12 04:47:59 +01:00
shobu
d6e8d81ef0 old nix
Some checks failed
/ Build Nix targets (push) Successful in 26s
/ build hive configuration (push) Failing after 19s
2025-11-12 04:46:23 +01:00
shobu
e1d2f10b6a old nix
Some checks failed
/ Build Nix targets (push) Successful in 27s
/ build hive configuration (push) Failing after 3m35s
2025-11-12 04:35:54 +01:00
shobu
668c8de2e7 test
Some checks failed
/ Build Nix targets (push) Successful in 26s
/ build hive configuration (push) Failing after 3m37s
2025-11-12 04:31:00 +01:00
shobu
82e03ed59b test
Some checks failed
/ Build Nix targets (push) Successful in 27s
/ build hive configuration (push) Failing after 15s
2025-11-12 04:28:08 +01:00
shobu
d41b153dbb fix prev
Some checks failed
/ Build Nix targets (push) Successful in 26s
/ build hive configuration (push) Failing after 3m34s
2025-11-12 04:19:37 +01:00
shobu
c901116678 test
Some checks failed
/ Build Nix targets (push) Successful in 44s
/ build hive configuration (push) Failing after 19s
2025-11-12 04:15:22 +01:00
shobu
26ac144938 directly run the nix-develop repo
Some checks failed
/ Build Nix targets (push) Successful in 30s
/ build hive configuration (push) Failing after 3m52s
2025-11-12 00:30:41 +01:00
shobu
10bcea2d77 remove cachix usage
Some checks failed
/ Build Nix targets (push) Successful in 31s
/ build hive configuration (push) Failing after 1m40s
2025-11-12 00:19:14 +01:00
10 changed files with 245 additions and 163 deletions

View File

@@ -1,15 +0,0 @@
on: [push]
jobs:
analysis:
permissions:
contents: read
id-token: write
name: perform flake analysis
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- name: Check Nix flake inputs
uses: http://github.com/DeterminateSystems/flake-checker-action@main

View File

@@ -0,0 +1,14 @@
on: [push]
jobs:
build:
name: Build Nix targets
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: http://github.com/cachix/install-nix-action@v18
- uses: http://github.com/cachix/cachix-action@v12
with:
name: statix
- name: Check Nix flake inputs
uses: http://github.com/DeterminateSystems/flake-checker-action@main

View File

@@ -1,42 +0,0 @@
on:
push:
branches:
- master
jobs:
deploy:
permissions:
contents: read
id-token: write
name: build hive configuration
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
- name: Restore and save Nix store
uses: nix-community/cache-nix-action@v6
with:
# restore and save a cache using this key
primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }}
# if there's no cache hit, restore a cache by this prefix
restore-prefixes-first-match: nix-${{ runner.os }}-
# collect garbage until the Nix store size (in bytes) is at most this number
# before trying to save a new cache
# 1G = 1073741824
gc-max-store-size-linux: 1G
# do purge caches
purge: true
# purge all versions of the cache
purge-prefixes: nix-${{ runner.os }}-
# created more than this number of seconds ago
purge-created: 60000
purge-primary-key: never
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
known_hosts: ${{ secrets.KNOWN_HOSTS }}
- uses: http://github.com/cachix/cachix-action@v16
with:
name: colmena
- run: nix run .#colmena apply

View File

@@ -0,0 +1,13 @@
on:
push:
branches:
- master
- test-deploy
jobs:
build:
name: build hive configuration
runs-on: nix-latest
steps:
- uses: actions/checkout@v5
- run: nix run nixpkgs#colmena apply

148
flake.lock generated
View File

@@ -340,6 +340,36 @@
}
},
"nixpkgs_7": {
"locked": {
"lastModified": 1744440957,
"narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_8": {
"locked": {
"lastModified": 1744463964,
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
"revCount": 782401,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.782401%2Brev-2631b0b7abcea6e640ce31cd78ea58910d31e650/01962c8a-63c4-7abd-a3df-63a17b548cc7/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1736549401,
"narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=",
@@ -355,6 +385,56 @@
"type": "github"
}
},
"pyproject-build-systems": {
"inputs": {
"nixpkgs": [
"striped-back",
"nixpkgs"
],
"pyproject-nix": [
"striped-back",
"pyproject-nix"
],
"uv2nix": [
"striped-back",
"uv2nix"
]
},
"locked": {
"lastModified": 1744599653,
"narHash": "sha256-nysSwVVjG4hKoOjhjvE6U5lIKA8sEr1d1QzEfZsannU=",
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"rev": "7dba6dbc73120e15b558754c26024f6c93015dd7",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"type": "github"
}
},
"pyproject-nix": {
"inputs": {
"nixpkgs": [
"striped-back",
"nixpkgs"
]
},
"locked": {
"lastModified": 1743438845,
"narHash": "sha256-1GSaoubGtvsLRwoYwHjeKYq40tLwvuFFVhGrG8J9Oek=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"rev": "8063ec98edc459571d042a640b1c5e334ecfca1e",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"type": "github"
}
},
"root": {
"inputs": {
"agenix": "agenix",
@@ -364,6 +444,8 @@
"nix-minecraft": "nix-minecraft",
"nixpkgs": "nixpkgs_5",
"shoblog-front": "shoblog-front",
"striped-back": "striped-back",
"striped-front": "striped-front",
"testing-grounds": "testing-grounds",
"unstable": "unstable"
}
@@ -402,6 +484,45 @@
"type": "github"
}
},
"striped-back": {
"inputs": {
"nixpkgs": "nixpkgs_7",
"pyproject-build-systems": "pyproject-build-systems",
"pyproject-nix": "pyproject-nix",
"uv2nix": "uv2nix"
},
"locked": {
"lastModified": 1748719386,
"narHash": "sha256-nyXHemXPEKnqIVIYIorSbt64zRwMvijyGQGCW3zUUkc=",
"ref": "refs/heads/master",
"rev": "bdfd6f1f4aac6a00ae4509f14b3a63c84d169edf",
"revCount": 8,
"type": "git",
"url": "ssh://git@gitlab.com/striped1/striped-back"
},
"original": {
"type": "git",
"url": "ssh://git@gitlab.com/striped1/striped-back"
}
},
"striped-front": {
"inputs": {
"nixpkgs": "nixpkgs_8"
},
"locked": {
"lastModified": 1748718798,
"narHash": "sha256-KUxbrUjRfuKjkJZLzKr11WEXLfPs38YrW/CMG6XbnbY=",
"ref": "refs/heads/master",
"rev": "a553f10147dad9e41829f67b247817a079f6f671",
"revCount": 11,
"type": "git",
"url": "ssh://git@gitlab.com/striped1/striped-front"
},
"original": {
"type": "git",
"url": "ssh://git@gitlab.com/striped1/striped-front"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
@@ -434,7 +555,7 @@
},
"testing-grounds": {
"inputs": {
"nixpkgs": "nixpkgs_7"
"nixpkgs": "nixpkgs_9"
},
"locked": {
"lastModified": 1755527993,
@@ -465,6 +586,31 @@
"repo": "nixpkgs",
"type": "github"
}
},
"uv2nix": {
"inputs": {
"nixpkgs": [
"striped-back",
"nixpkgs"
],
"pyproject-nix": [
"striped-back",
"pyproject-nix"
]
},
"locked": {
"lastModified": 1744797880,
"narHash": "sha256-gt9JBkYjZAEvGwCG7RMAAAr0j2RsaRmOMj/vV0briXk=",
"owner": "pyproject-nix",
"repo": "uv2nix",
"rev": "3583e037163491ecd833f1d5d3eedf3869543c5d",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "uv2nix",
"type": "github"
}
}
},
"root": "root",

View File

@@ -18,8 +18,8 @@
nix-minecraft.url = "github:Infinidoge/nix-minecraft";
testing-grounds.url = "gitlab:shobu13/testing-grounds";
shoblog-front.url = "gitlab:shobu13/shoblog";
# striped-front.url = "git+ssh://git@gitlab.com/striped1/striped-front";
# striped-back.url = "git+ssh://git@gitlab.com/striped1/striped-back";
striped-front.url = "git+ssh://git@gitlab.com/striped1/striped-front";
striped-back.url = "git+ssh://git@gitlab.com/striped1/striped-back";
copyparty.url = "github:9001/copyparty";
@@ -38,8 +38,8 @@
disko,
shoblog-front,
# striped-front,
# striped-back,
striped-front,
striped-back,
nix-minecraft,
testing-grounds,
copyparty,
@@ -109,9 +109,5 @@
'';
};
});
packages = forEachSupportedSystem ({pkgs}: {
inherit (colmena.packages."${pkgs.system}") colmena;
});
};
}

View File

@@ -1,12 +1,12 @@
{ inputs, pkgs, ... }:
{
{inputs, pkgs, ...}: {
services.homepage-dashboard = {
enable = true;
openFirewall = true;
allowedHosts = "dashboard.shobu.fr";
settings = {
title = "Shobu's homelab dashboard";
description = "a dashboard of free and awesome bullshit";
description = "a dashboard of free and wesome bullshit";
startUrl = "https://dashboard.shobu.fr";
base = "https://dashboard.shobu.fr";
headerStyle = "boxed";
@@ -14,9 +14,9 @@
providers = {
"finnhub" = "cuvq5e9r01qub8tv03g0cuvq5e9r01qub8tv03gg";
};
layout = [
{ "resources" = { }; }
{"resources" = {};}
{
"about me stuff" = {
tab = "Public";
@@ -38,13 +38,13 @@
header = false;
};
}
];
];
};
widgets = [
{
greeting = {
text = "Welcome on my services and links dashboard, make yourself home. :3";
text = "Welcome on my services and links dashboard, make yourself home.";
};
}
{
@@ -78,7 +78,7 @@
icon = "https://bddtrans.shobu.fr/favicon.ico";
href = "https://bddtrans.shobu.fr";
}
];
];
}
];
}
@@ -103,7 +103,7 @@
];
}
];
services = [
{
"gayming" = [
@@ -146,7 +146,7 @@
type = "jellyseerr";
url = "https://jellyseerr.shobu.fr";
key = "MTczNzkyNzMxMzgwODk4N2FlZWJkLTQ0N2QtNGU0MS1iOWE1LTJmZmE3OTI4ZGQ5OQ==";
};
};
};
}
{

View File

@@ -1,6 +1,6 @@
{inputs, ...}:
let
# striped-front = inputs.striped-front;
striped-front = inputs.striped-front;
sin-address = "192.168.1.14";
in {
@@ -77,12 +77,12 @@ in {
'';
};
};
# "striped.shobu.fr" = {
# enableACME = true;
# forceSSL = true;
"striped.shobu.fr" = {
enableACME = true;
forceSSL = true;
# root = "${striped-front.packages.x86_64-linux.default}/dist";
# };
root = "${striped-front.packages.x86_64-linux.default}/dist";
};
"dashboard.shobu.fr" = {
enableACME = true;
forceSSL = true;

View File

@@ -1,56 +1,29 @@
{
nodes,
inputs,
pkgs,
...
}:
let
{nodes, ...}:let
sin-address = "192.168.1.14";
unstable = import inputs.unstable { system = pkgs.system; };
in
{
in{
imports = [
./virtualisation.nix
];
networking.nat.forwardPorts = [
{
sourcePort = nodes.sin.config.services.gitea.settings.server.SSH_PORT;
proto = "tcp";
destination = "${sin-address}:22";
}
];
networking.nat.forwardPorts = [{
sourcePort = nodes.sin.config.services.gitea.settings.server.SSH_PORT;
proto = "tcp";
destination = "${sin-address}:22";
}];
services.gitea-actions-runner.package = unstable.gitea-actions-runner;
# services.gitea-actions-runner.instances = {
# "gitea.shobu.fr-runner" = {
# enable = true;
# name = "gitea.shobu.fr-runner";
# url = nodes.sin.config.services.gitea.settings.server.ROOT_URL;
# token = "uEDPBW6Z9oItAKRtloVwis0LkPbD4OmV2w5esOhW";
# labels = [
# "ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04"
# ];
# settings = {
# cache = {
# # Enable cache server to use actions/cache.
# enabled = true;
# # The directory to store the cache data.
# # If it's empty, the cache data will be stored in $HOME/.cache/actcache.
# dir = "";
# # The host of the cache server.
# # It's not for the address to listen, but the address to connect from job containers.
# # So 0.0.0.0 is a bad choice, leave it empty to detect automatically.
# host = "";
# # The port of the cache server.
# # 0 means to use a random available port.
# port = 0;
# # The external cache server URL. Valid only when enable is true.
# # If it's specified, act_runner will use this URL as the ACTIONS_CACHE_URL rather than start a server by itself.
# # The URL should generally end with "/".
# external_server = "";
# };
# };
# };
# };
services.gitea-actions-runner.instances = {
"gitea.shobu.fr-runner" = {
enable = true;
name = "gitea.shobu.fr-runner";
url = nodes.sin.config.services.gitea.settings.server.ROOT_URL;
token = "uEDPBW6Z9oItAKRtloVwis0LkPbD4OmV2w5esOhW";
labels = [
"debian-latest:docker://debian:latest"
"ubuntu-latest:docker://ubuntu:latest"
"nix-latest:docker://nixos/nix:latest"
"debian-latest:docker://node:18-bullseye"
"ubuntu-latest:docker://node:18-bullseye"
#"native:host"
];
};
};
}

View File

@@ -1,5 +1,4 @@
{ nodes, pkgs, ... }:
{
{nodes, pkgs, ...}: {
systemd.sockets.podman.socketConfig.Symlinks = [
"/run/docker.sock"
];
@@ -16,34 +15,32 @@
};
};
virtualisation.oci-containers.containers =
let
runner_config = pkgs.writeTextFile {
name = "config.yml";
text = ''
container:
network: "host"
'';
};
in
{
gitea-runner = {
image = "gitea/act_runner@sha256:8477d5b61b655caad4449888bae39f1f34bebd27db56cb15a62dccb3dcf3a944";
autoStart = true;
# virtualisation.oci-containers.containers = let
# runner_config = pkgs.writeTextFile {
# name = "config.yml";
# text = ''
# container:
# network: "host"
# '';
# };
# in {
# gitea-runner = {
# image = "gitea/act_runner@sha256:8477d5b61b655caad4449888bae39f1f34bebd27db56cb15a62dccb3dcf3a944";
# autoStart = true;
# capabilities = {
# NET_RAW = true;
# };
environment = {
GITEA_INSTANCE_URL = nodes.sin.config.services.gitea.settings.server.ROOT_URL;
GITEA_RUNNER_REGISTRATION_TOKEN = "uEDPBW6Z9oItAKRtloVwis0LkPbD4OmV2w5esOhW";
CONFIG_FILE = "/config.yml";
};
volumes = [
"/var/run/docker.sock:/var/run/docker.sock"
"${runner_config}:/config.yml:ro"
];
};
};
# # capabilities = {
# # NET_RAW = true;
# # };
# environment = {
# GITEA_INSTANCE_URL = nodes.sin.config.services.gitea.settings.server.ROOT_URL;
# GITEA_RUNNER_REGISTRATION_TOKEN = "uEDPBW6Z9oItAKRtloVwis0LkPbD4OmV2w5esOhW";
# CONFIG_FILE = "/config.yml";
# };
# volumes = [
# "/var/run/docker.sock:/var/run/docker.sock"
# "${runner_config}:/config.yml:ro"
# ];
# };
# };
}