Improve nix setup
This commit is contained in:
parent
6f85efcd26
commit
580f80b521
6 changed files with 113 additions and 33 deletions
26
.gitignore
vendored
26
.gitignore
vendored
|
|
@ -1,4 +1,24 @@
|
|||
/target
|
||||
flake.lock
|
||||
.direnv/
|
||||
*.env
|
||||
|
||||
target
|
||||
**/*.rs.bk
|
||||
.idea
|
||||
*.iml
|
||||
/result*
|
||||
*.log
|
||||
*~
|
||||
|
||||
# cachix tmp file
|
||||
store-path-pre-build
|
||||
|
||||
# Devenv
|
||||
.devenv*
|
||||
devenv.local.nix
|
||||
|
||||
# direnv
|
||||
.direnv
|
||||
|
||||
# pre-commit
|
||||
.pre-commit-config.yaml
|
||||
|
||||
template/flake.lock
|
||||
|
|
|
|||
25
README.md
25
README.md
|
|
@ -12,6 +12,31 @@ just init # Will init the database, and build the app image
|
|||
just run # Will run the lwn-sub-snoozer to update the database and the RSS file
|
||||
```
|
||||
|
||||
## Nix setup
|
||||
|
||||
For my server, I have the following setup:
|
||||
|
||||
```nix
|
||||
systemd.timers."rssify-update" = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
OnBootSec = "5m";
|
||||
OnUnitActiveSec = "12h";
|
||||
Unit = "rssify-update.service";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services."rssify-update" = {
|
||||
script = ''
|
||||
${pkgs.rssify}/bin/echo "Hello World"
|
||||
'';
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "root";
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
## TODO
|
||||
|
||||
- [ ] Nix service with timer
|
||||
|
|
|
|||
16
default.nix
Normal file
16
default.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{pkgs ? import <nixpkgs> {}}: let
|
||||
manifest = (pkgs.lib.importTOML ./Cargo.toml).package;
|
||||
in
|
||||
pkgs.rustPlatform.buildRustPackage {
|
||||
pname = manifest.name;
|
||||
version = manifest.version;
|
||||
cargoLock.lockFile = ./Cargo.lock;
|
||||
src = pkgs.lib.cleanSource ./.;
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
pkg-config
|
||||
];
|
||||
buildInputs = with pkgs; [
|
||||
openssl
|
||||
];
|
||||
}
|
||||
27
flake.lock
generated
Normal file
27
flake.lock
generated
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1756217674,
|
||||
"narHash": "sha256-TH1SfSP523QI7kcPiNtMAEuwZR3Jdz0MCDXPs7TS8uo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4e7667a90c167f7a81d906e5a75cba4ad8bee620",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
39
flake.nix
39
flake.nix
|
|
@ -1,41 +1,22 @@
|
|||
{
|
||||
description = "lwn-sub-snoozer";
|
||||
inputs = {
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
}:
|
||||
flake-utils.lib.eachDefaultSystem (system: let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
}: let
|
||||
supportedSystems = ["x86_64-linux"];
|
||||
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
|
||||
pkgsFor = nixpkgs.legacyPackages;
|
||||
in {
|
||||
packages = {
|
||||
default = self.packages.${system}.myapp;
|
||||
};
|
||||
# $ nix develop
|
||||
devShells.default = pkgs.mkShell {
|
||||
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [pkgs.openssl];
|
||||
packages = [
|
||||
pkgs.pkg-config
|
||||
pkgs.openssl
|
||||
pkgs.postgresql
|
||||
|
||||
# Nix
|
||||
pkgs.nixpkgs-fmt
|
||||
pkgs.nil
|
||||
pkgs.nixd
|
||||
pkgs.alejandra
|
||||
|
||||
# Rust
|
||||
pkgs.rustfmt
|
||||
pkgs.rustc
|
||||
pkgs.cargo
|
||||
pkgs.rust-analyzer
|
||||
];
|
||||
};
|
||||
packages = forAllSystems (system: {
|
||||
default = pkgsFor.${system}.callPackage ./. {};
|
||||
});
|
||||
devShells = forAllSystems (system: {
|
||||
default = pkgsFor.${system}.callPackage ./shell.nix {};
|
||||
});
|
||||
};
|
||||
}
|
||||
|
|
|
|||
11
shell.nix
Normal file
11
shell.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{pkgs ? import <nixpkgs> {}}:
|
||||
pkgs.mkShell {
|
||||
inputsFrom = [(pkgs.callPackage ./default.nix {})];
|
||||
buildInputs = with pkgs; [
|
||||
rust-analyzer
|
||||
alejandra
|
||||
clippy
|
||||
nixd
|
||||
nil
|
||||
];
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue