create portable service image
Signed-off-by: Xe Iaso <xe@tailscale.com>
This commit is contained in:
parent
ad516287c4
commit
34bef046bf
37
flake.nix
37
flake.nix
|
@ -4,7 +4,7 @@
|
|||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-unstable";
|
||||
utils.url = "github:numtide/flake-utils";
|
||||
|
||||
|
||||
gomod2nix = {
|
||||
url = "github:tweag/gomod2nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
@ -28,28 +28,46 @@
|
|||
in {
|
||||
packages = rec {
|
||||
web = pkgs.buildGoApplication {
|
||||
pname = "tailpaste-web";
|
||||
version = "0.1.0-dev";
|
||||
pname = "infinipaste-web";
|
||||
version = "0.1.0-${version}";
|
||||
src = ./.;
|
||||
subPackages = "cmd/web";
|
||||
modules = ./gomod2nix.toml;
|
||||
};
|
||||
|
||||
tailpaste = pkgs.buildGoApplication {
|
||||
pname = "tailpaste";
|
||||
infinipaste = pkgs.buildGoApplication {
|
||||
pname = "infinipaste";
|
||||
inherit (web) src version modules;
|
||||
subPackages = "cmd/tailpaste";
|
||||
subPackages = "cmd/infinipaste";
|
||||
|
||||
CGO_ENABLED = "0";
|
||||
};
|
||||
|
||||
docker = pkgs.dockerTools.buildLayeredImage {
|
||||
name = "tailpaste";
|
||||
name = "infinipaste";
|
||||
tag = "latest";
|
||||
config.Cmd = [ "${web}/bin/web" ];
|
||||
contents = [ pkgs.cacert ];
|
||||
};
|
||||
|
||||
portable-service = let
|
||||
web-service = pkgs.substituteAll {
|
||||
name = "infinipaste.service";
|
||||
src = ./run/portable-service/infinipaste.service.in;
|
||||
infinipaste = web;
|
||||
};
|
||||
in pkgs.portableService {
|
||||
inherit (web) version;
|
||||
pname = "infinipaste";
|
||||
description = "The infinipaste service";
|
||||
homepage = "https://github.com/tailscale-dev/infinipaste";
|
||||
units = [ web-service ];
|
||||
symlinks = [{
|
||||
object = "${pkgs.cacert}/etc/ssl";
|
||||
symlink = "/etc/ssl";
|
||||
}];
|
||||
};
|
||||
|
||||
default = docker;
|
||||
};
|
||||
|
||||
|
@ -64,12 +82,9 @@
|
|||
go-tools
|
||||
gomod2nix.packages.${system}.default
|
||||
sqlite-interactive
|
||||
|
||||
jo
|
||||
jq
|
||||
];
|
||||
|
||||
TSNET_HOSTNAME = "paste-devel";
|
||||
};
|
||||
});
|
||||
}) // {};
|
||||
}
|
||||
|
|
13
run/portable-service/infinipaste.service.in
Normal file
13
run/portable-service/infinipaste.service.in
Normal file
|
@ -0,0 +1,13 @@
|
|||
[Unit]
|
||||
Description=The Infinipaste service
|
||||
Documentation=https://github.com/tailscale-dev/infinipaste
|
||||
|
||||
[Service]
|
||||
DynamicUser=yes
|
||||
StateDirectory=infinipaste
|
||||
Environment=DATA_DIR=/var/lib/private/infinipaste/data
|
||||
WorkingDirectory=/var/lib/private/infinipaste
|
||||
ExecStart=@web@/bin/web
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
Loading…
Reference in a new issue