Compare commits
No commits in common. "6d00f6216deeeaa980ca9cf63d3ca21174eaecbb" and "1ffd479013be37e7fe5bc53ae7c80be3792e033f" have entirely different histories.
6d00f6216d
...
1ffd479013
3 changed files with 8 additions and 49 deletions
|
|
@ -2,8 +2,9 @@
|
|||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||
# inputs.trictrac.url = "github:mmai/trictrac";
|
||||
inputs.trictrac.url = "..";
|
||||
inputs.rust-overlay.url = "github:oxalica/rust-overlay";
|
||||
|
||||
outputs = { self, nixpkgs, trictrac }:
|
||||
outputs = { self, nixpkgs, trictrac, rust-overlay }:
|
||||
{
|
||||
nixosConfigurations = {
|
||||
|
||||
|
|
@ -29,8 +30,8 @@
|
|||
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||
networking.hostName = hostname;
|
||||
|
||||
# trictrac.overlay already includes rust-overlay
|
||||
nixpkgs.overlays = [ trictrac.overlay ];
|
||||
# rust-overlay must be applied first so trictrac.overlay can use rust-bin
|
||||
nixpkgs.overlays = [ rust-overlay.overlays.default trictrac.overlay ];
|
||||
|
||||
services.trictrac = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -8,16 +8,13 @@
|
|||
|
||||
outputs = { self, nixpkgs, rust-overlay }:
|
||||
let
|
||||
rustPkgs = import nixpkgs {
|
||||
inherit (final) system;
|
||||
overlays = [ rust-overlay.overlays.default ];
|
||||
};
|
||||
systems = [ "x86_64-linux" "i686-linux" "aarch64-linux" ];
|
||||
forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f system);
|
||||
# rust-overlay must be applied before self.overlay so that rust-bin is available
|
||||
nixpkgsFor = forAllSystems (system:
|
||||
import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ self.overlay ];
|
||||
overlays = [ rust-overlay.overlays.default self.overlay ];
|
||||
}
|
||||
);
|
||||
in
|
||||
|
|
@ -27,7 +24,7 @@
|
|||
trictrac-front =
|
||||
let
|
||||
# WASM build needs wasm32-unknown-unknown target in the Rust toolchain
|
||||
rustToolchain = rustPkgs.rust-bin.stable.latest.default.override {
|
||||
rustToolchain = final.rust-bin.stable.latest.default.override {
|
||||
targets = [ "wasm32-unknown-unknown" ];
|
||||
};
|
||||
rustPlatform = final.makeRustPlatform {
|
||||
|
|
|
|||
41
module.nix
41
module.nix
|
|
@ -41,39 +41,6 @@ in
|
|||
description = "Port the relay server listens on.";
|
||||
};
|
||||
|
||||
smtp = {
|
||||
host = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
description = "SMTP server hostname.";
|
||||
};
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 1025;
|
||||
description = "SMTP server port.";
|
||||
};
|
||||
from = mkOption {
|
||||
type = types.str;
|
||||
default = "noreply@trictrac.local";
|
||||
description = "Sender address for outgoing mail.";
|
||||
};
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = "SMTP username (leave empty to skip authentication).";
|
||||
};
|
||||
passwordFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
example = "/run/secrets/trictrac-smtp-password";
|
||||
description = ''
|
||||
Path to a file containing a single line: SMTP_PASSWORD=<secret>.
|
||||
Loaded as a systemd EnvironmentFile so the secret never appears in
|
||||
the Nix store or process environment of other units.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
createDatabaseLocally = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
|
|
@ -169,13 +136,8 @@ in
|
|||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
environment = {
|
||||
# Use TCP + trust auth (matches NixOS postgresql.authentication above)
|
||||
DATABASE_URL = "postgresql://${cfg.user}@127.0.0.1/${cfg.user}";
|
||||
APP_URL = "${cfg.protocol}://${cfg.hostname}";
|
||||
SMTP_HOST = cfg.smtp.host;
|
||||
SMTP_PORT = toString cfg.smtp.port;
|
||||
SMTP_FROM = cfg.smtp.from;
|
||||
} // optionalAttrs (cfg.smtp.user != "") {
|
||||
SMTP_USER = cfg.smtp.user;
|
||||
};
|
||||
|
||||
serviceConfig = {
|
||||
|
|
@ -187,7 +149,6 @@ in
|
|||
WorkingDirectory = "/var/lib/trictrac";
|
||||
ExecStartPre = "${setupScript}";
|
||||
ExecStart = "${pkgs.trictrac}/bin/relay-server";
|
||||
EnvironmentFile = mkIf (cfg.smtp.passwordFile != null) cfg.smtp.passwordFile;
|
||||
Restart = "on-failure";
|
||||
RestartSec = "5s";
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue