This commit is contained in:
Robin Appelman 2025-05-26 21:15:53 +02:00
commit 4c876ae69c
6 changed files with 83 additions and 82 deletions

View file

@ -1,34 +1,33 @@
{ rustPlatform {
, openssl rustPlatform,
, pkg-config openssl,
, lib pkg-config,
, lib,
}: }: let
let
inherit (lib.sources) sourceByRegex; inherit (lib.sources) sourceByRegex;
inherit (builtins) fromTOML readFile; inherit (builtins) fromTOML readFile;
src = sourceByRegex ./. [ "Cargo.*" "((types|archiver|)/?(src)?)(/.*)?" "README.md" ]; src = sourceByRegex ./. ["Cargo.*" "((types|archiver|)/?(src)?)(/.*)?" "README.md"];
version = (fromTOML (readFile archiver/Cargo.toml)).package.version; version = (fromTOML (readFile archiver/Cargo.toml)).package.version;
in in
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "ugc-api-archiver"; pname = "ugc-api-archiver";
sourceRoot = "${src.name}/archiver"; sourceRoot = "${src.name}/archiver";
inherit src version; inherit src version;
buildInputs = [ buildInputs = [
openssl openssl
]; ];
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config
]; ];
OPENSSL_NO_VENDOR = 1; OPENSSL_NO_VENDOR = 1;
doCheck = false; doCheck = false;
cargoLock = { cargoLock = {
lockFile = ./archiver/Cargo.lock; lockFile = ./archiver/Cargo.lock;
}; };
} }

View file

@ -61,7 +61,8 @@ Historical team membership data
Match data. Match data.
Due to limitations of the data available on ugc, the asia region is currently not included. Due to limitations of the data available on ugc, the asia region is currently
not included.
#### Sample #### Sample

View file

@ -10,31 +10,33 @@
inputs.flakelight.follows = "flakelight"; inputs.flakelight.follows = "flakelight";
}; };
}; };
outputs = { mill-scale, ... }: mill-scale ./. { outputs = {mill-scale, ...}:
extraFilesRegex = [ ".*\.html" ]; mill-scale ./. {
withOverlays = [(import ./overlay.nix)]; extraFilesRegex = [".*\.html"];
packages = { withOverlays = [(import ./overlay.nix)];
ugc-api-server = pkgs: pkgs.ugc-api-server; packages = {
ugc-api-archiver = pkgs: pkgs.ugc-api-archiver; ugc-api-server = pkgs: pkgs.ugc-api-server;
}; ugc-api-archiver = pkgs: pkgs.ugc-api-archiver;
tools = pkgs: with pkgs; [ };
bacon tools = pkgs:
cargo-insta with pkgs; [
sqlx-cli bacon
]; cargo-insta
nixosModules = { outputs, ... }: { sqlx-cli
default = ];
{ pkgs nixosModules = {outputs, ...}: {
, config default = {
, lib pkgs,
, ... config,
lib,
...
}: { }: {
imports = [ ./module.nix ]; imports = [./module.nix];
config = lib.mkIf config.services.ugc-api-server.enable { config = lib.mkIf config.services.ugc-api-server.enable {
nixpkgs.overlays = [ (import ./overlay.nix) ]; nixpkgs.overlays = [(import ./overlay.nix)];
services.ugc-api-server.package = lib.mkDefault pkgs.ugc-api-server; services.ugc-api-server.package = lib.mkDefault pkgs.ugc-api-server;
}; };
}; };
};
}; };
};
} }

View file

@ -1,12 +1,12 @@
{ config {
, lib config,
, pkgs lib,
, ... pkgs,
...
}: }:
with lib; let with lib; let
cfg = config.services.ugc-api-server; cfg = config.services.ugc-api-server;
in in {
{
options.services.ugc-api-server = { options.services.ugc-api-server = {
enable = mkEnableOption "ugc api server"; enable = mkEnableOption "ugc api server";
@ -30,9 +30,9 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
systemd.services."ugc-api-server" = { systemd.services."ugc-api-server" = {
wantedBy = [ "multi-user.target" ]; wantedBy = ["multi-user.target"];
after = [ "network-online.target" ]; after = ["network-online.target"];
wants = [ "network-online.target" ]; wants = ["network-online.target"];
environment = { environment = {
RUST_LOG = cfg.logLevel; RUST_LOG = cfg.logLevel;
PORT = toString cfg.port; PORT = toString cfg.port;
@ -61,7 +61,7 @@ in
RestrictAddressFamilies = "AF_INET AF_INET6"; RestrictAddressFamilies = "AF_INET AF_INET6";
RestrictRealtime = true; RestrictRealtime = true;
ProtectProc = "noaccess"; ProtectProc = "noaccess";
SystemCallFilter = [ "@system-service" "~@resources" "~@privileged" ]; SystemCallFilter = ["@system-service" "~@resources" "~@privileged"];
PrivateUsers = true; PrivateUsers = true;
ProcSubset = "pid"; ProcSubset = "pid";
}; };

View file

@ -1,4 +1,4 @@
final: prev: { final: prev: {
ugc-api-server = final.callPackage ./package.nix { }; ugc-api-server = final.callPackage ./package.nix {};
ugc-api-archiver = final.callPackage ./archiver.nix { }; ugc-api-archiver = final.callPackage ./archiver.nix {};
} }

View file

@ -1,34 +1,33 @@
{ rustPlatform {
, openssl rustPlatform,
, pkg-config openssl,
, lib pkg-config,
, lib,
}: }: let
let
inherit (lib.sources) sourceByRegex; inherit (lib.sources) sourceByRegex;
inherit (builtins) fromTOML readFile; inherit (builtins) fromTOML readFile;
src = sourceByRegex ./. [ "Cargo.*" "((types|api-server|)/?(src)?)(/.*)?" "README.md" ]; src = sourceByRegex ./. ["Cargo.*" "((types|api-server|)/?(src)?)(/.*)?" "README.md"];
version = (fromTOML (readFile api-server/Cargo.toml)).package.version; version = (fromTOML (readFile api-server/Cargo.toml)).package.version;
in in
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "ugc-api-server"; pname = "ugc-api-server";
sourceRoot = "${src.name}/api-server"; sourceRoot = "${src.name}/api-server";
inherit src version; inherit src version;
buildInputs = [ buildInputs = [
openssl openssl
]; ];
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config
]; ];
OPENSSL_NO_VENDOR = 1; OPENSSL_NO_VENDOR = 1;
doCheck = false; doCheck = false;
cargoLock = { cargoLock = {
lockFile = ./api-server/Cargo.lock; lockFile = ./api-server/Cargo.lock;
}; };
} }