re-arranged files

This commit is contained in:
Ellis Rahhal 2024-12-21 22:11:43 -08:00
parent 306c15c890
commit e4216d4e4d
32 changed files with 102 additions and 99 deletions

7
.gitignore vendored
View file

@ -3,7 +3,6 @@ result
*.qcow2
homefree-image
lan-client-image
site/default-landing-page/node_modules
site/default-landing-page/public
site/admin/node_modules
site/admin/public
services/landing-page/site/node_modules
services/landing-page/site/public
services/admin/site/node_modules

View file

@ -1,42 +1,42 @@
{ config, lib, ... }:
{
imports = [
../../profiles/acme.nix
../../profiles/common.nix
../../profiles/config-editor.nix
../../profiles/git.nix
../../profiles/hardware-configuration.nix
../../profiles/nixvim.nix
../../profiles/podman.nix
../../profiles/router.nix
../../profiles/traffic-control.nix
./profiles/acme.nix
./profiles/common.nix
./profiles/config-editor.nix
./profiles/git.nix
./profiles/hardware-configuration.nix
./profiles/nixvim.nix
./profiles/podman.nix
./profiles/router.nix
./profiles/traffic-control.nix
../../services/adguardhome.nix
../../services/admin.nix
../../services/authentik.nix
../../services/backup.nix
../../services/baikal.nix
../../services/caddy.nix
../../services/cryptpad.nix
../../services/ddclient.nix
../../services/dnsmasq.nix
../../services/frigate-podman.nix
../../services/gitea.nix
../../services/home-assistant
../../services/headscale.nix
../../services/headscale-ui.nix
../../services/immich.nix
../../services/jellyfin.nix
../../services/landing-page.nix
../../services/linkwarden.nix
../../services/matrix.nix
../../services/mqtt.nix
../../services/nextcloud.nix
../../services/postgres.nix
../../services/radicale.nix
../../services/unbound.nix
../../services/unifi.nix
../../services/vaultwarden.nix
./services/adguardhome.nix
./services/admin
./services/authentik.nix
./services/backup.nix
./services/baikal.nix
./services/caddy.nix
./services/cryptpad.nix
./services/ddclient.nix
./services/dnsmasq.nix
./services/frigate-podman.nix
./services/gitea.nix
./services/home-assistant
./services/headscale.nix
./services/headscale-ui.nix
./services/immich.nix
./services/jellyfin.nix
./services/landing-page
./services/linkwarden.nix
./services/matrix.nix
./services/mqtt.nix
./services/nextcloud.nix
./services/postgres.nix
./services/radicale.nix
./services/unbound.nix
./services/unifi.nix
./services/vaultwarden.nix
];
# --------------------------------------------------------------------------------------
@ -55,12 +55,6 @@
};
};
# --------------------------------------------------------------------------------------
# File system
# --------------------------------------------------------------------------------------
# @TODO: Setup luks or some disk encryption (ZFS?)
# --------------------------------------------------------------------------------------
# Network
# --------------------------------------------------------------------------------------

View file

@ -12,6 +12,6 @@
homefree-inputs.sops-nix.nixosModules.sops
./modules/ddclient-multi.nix
./module.nix
./hosts/homefree/configuration.nix
./configuration.nix
];
}

View file

@ -1,4 +0,0 @@
#!/usr/bin/env bash
ssh-keygen -R "[localhost]:2223"
ssh -o StrictHostKeychecking=no -p 2223 homefree@localhost "sudo cat /etc/ssh/ssh_host_rsa_key" | nix-shell -p ssh-to-pgp --run "ssh-to-pgp -o homefree-server.asc"

View file

@ -1,7 +0,0 @@
#!/usr/bin/env bash
# Adds to ~/.gnupg/pubring.kbx
# List with: gpg -k
nix-shell -p gnupg -p ssh-to-pgp --run "ssh-to-pgp -private-key -i $HOME/.ssh/id_rsa | gpg --import --quiet"
# Exports public key from private key
# nix-shell -p ssh-to-pgp --run "ssh-to-pgp -i $HOME/.ssh/id_rsa -o $USER.asc"

View file

@ -1,40 +0,0 @@
#! /usr/bin/env sh
# SMP - Symmetric MultiProcessing
# RPS - Receive Packet Steering
smp1=3
rps1=2
smp2=3
rps2=2
ens3_irq=$(grep ens3 /proc/interrupts | awk '{ print $1+0 }')
# set balancer for enp1s0
echo ${smp1} > /proc/irq/${ens3_irq}/smp_affinity
# echo ${smp1} > /proc/irq/37/smp_affinity
# echo ${smp1} > /proc/irq/38/smp_affinity
# echo ${smp1} > /proc/irq/39/smp_affinity
# echo ${smp1} > /proc/irq/40/smp_affinity
# set rps for ens3
echo ${rps1} > /sys/class/net/ens3/queues/rx-0/rps_cpus
# echo ${rps1} > /sys/class/net/ens3/queues/rx-1/rps_cpus
# echo ${rps1} > /sys/class/net/ens3/queues/rx-2/rps_cpus
# echo ${rps1} > /sys/class/net/ens3/queues/rx-3/rps_cpus
ens5_irq=$(grep ens5 /proc/interrupts | awk '{ print $1+0 }')
# set balancer for enp2s0
# echo ${smp2} > /proc/irq/${ens5_irq}/smp_affinity
# echo ${smp2} > /proc/irq/43/smp_affinity
# echo ${smp2} > /proc/irq/44/smp_affinity
# echo ${smp2} > /proc/irq/45/smp_affinity
# echo ${smp2} > /proc/irq/46/smp_affinity
# set rps for ens5
echo ${rps2} > /sys/class/net/ens5/queues/rx-0/rps_cpus
# echo ${rps2} > /sys/class/net/ens5/queues/rx-1/rps_cpus
# echo ${rps2} > /sys/class/net/ens5/queues/rx-2/rps_cpus
# echo ${rps2} > /sys/class/net/ens5/queues/rx-3/rps_cpus

View file

@ -1,6 +1,6 @@
{ config, pkgs, ... }:
let
homefree-admin = pkgs.callPackage ../site/admin { };
homefree-admin = pkgs.callPackage ./site { };
in
{
## add homefree admin page as a package
@ -23,4 +23,8 @@ in
};
}
];
environment.systemPackages = with pkgs; [
deno
];
}

9
services/admin/deno.json Normal file
View file

@ -0,0 +1,9 @@
{
"tasks": {
"dev": "deno run --allow-net --allow-run --watch main.ts"
},
"imports": {
"hono": "npm:hono@3",
"graphql": "npm:graphql"
}
}

48
services/admin/main.ts Normal file
View file

@ -0,0 +1,48 @@
import { Hono } from "hono";
import { handle } from "hono/middleware/graphql";
import { buildSchema } from "graphql";
// Define GraphQL schema
const schema = buildSchema(`
type CommandResult {
output: String
error: String
}
type Query {
runCommand(command: String!): CommandResult
}
`);
// Create resolver using Deno.Command instead of node's exec
const resolvers = {
runCommand: async ({ command }: { command: string }) => {
try {
// Split command into program and args
const [cmd, ...args] = command.split(" ");
const p = new Deno.Command(cmd, {
args: args
});
const { stdout, stderr } = await p.output();
return {
output: new TextDecoder().decode(stdout),
error: new TextDecoder().decode(stderr)
};
} catch (error) {
return {
output: null,
error: error.message
};
}
}
};
const app = new Hono();
app.use("/graphql", handle({
schema,
rootValue: resolvers
}));
Deno.serve(app.fetch);

View file

@ -1,6 +1,6 @@
{ config, pkgs, ... }:
let
homefree-site = pkgs.callPackage ../site/default-landing-page { };
homefree-site = pkgs.callPackage ./site { };
in
{
## add homefree default site as a package