speedify: init at 15.6.4-12495

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Co-authored-by: emaryn <197520219+emaryn@users.noreply.github.com>
This commit is contained in:
Zahrun 2025-06-10 15:52:36 +05:30
parent 7d123199cc
commit 1c26e0e7a9
4 changed files with 123 additions and 0 deletions

View File

@ -54,6 +54,8 @@
- [qBittorrent](https://www.qbittorrent.org/), is a bittorrent client programmed in C++ / Qt that uses libtorrent by Arvid Norberg. Available as [services.qbittorrent](#opt-services.qbittorrent.enable).
- [Speedify](https://speedify.com/), a proprietary VPN which allows combining multiple internet connections (Wi-Fi, 4G, 5G, Ethernet, Starlink, Satellite, and more) to improve the stability, speed, and security of online experiences. Available as [services.speedify](#opt-services.speedify.enable).
- [Szurubooru](https://github.com/rr-/szurubooru), an image board engine inspired by services such as Danbooru, dedicated for small and medium communities. Available as [services.szurubooru](#opt-services.szurubooru.enable).
- The [Neat IP Address Planner](https://spritelink.github.io/NIPAP/) (NIPAP) can now be enabled through [services.nipap.enable](#opt-services.nipap.enable).

View File

@ -1335,6 +1335,7 @@
./services/networking/soju.nix
./services/networking/solanum.nix
./services/networking/spacecookie.nix
./services/networking/speedify.nix
./services/networking/spiped.nix
./services/networking/squid.nix
./services/networking/ssh/sshd.nix

View File

@ -0,0 +1,59 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.speedify;
in
{
options.services.speedify = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
This option enables Speedify daemon.
This sets {option}`networking.firewall.checkReversePath` to "loose", which might be undesirable for security.
'';
};
package = lib.mkPackageOption pkgs "speedify" { };
};
config = lib.mkIf cfg.enable {
boot.kernelModules = [ "tun" ];
networking.firewall.checkReversePath = "loose";
systemd.services.speedify = {
description = "Speedify Service";
wantedBy = [ "multi-user.target" ];
wants = [
"network.target"
"network-online.target"
];
after = [
"network-online.target"
]
++ lib.optional config.networking.networkmanager.enable "NetworkManager.service";
path = [
pkgs.procps
pkgs.nettools
];
serviceConfig = {
ExecStart = "${cfg.package}/share/speedify/SpeedifyStartup.sh";
ExecStop = "${cfg.package}/share/speedify/SpeedifyShutdown.sh";
Restart = "on-failure";
RestartSec = 5;
TimeoutStartSec = 30;
TimeoutStopSec = 30;
Type = "forking";
};
};
};
meta.maintainers = with lib.maintainers; [
zahrun
];
}

View File

@ -0,0 +1,61 @@
{
lib,
stdenv,
dpkg,
fetchurl,
procps,
net-tools,
autoPatchelfHook,
}:
stdenv.mkDerivation rec {
pname = "speedify";
version = "15.6.4-12495";
src = fetchurl {
url = "https://apt.connectify.me/pool/main/s/speedify/speedify_${version}_amd64.deb";
hash = "sha256-b8J7JqVxuRREC16DeKD7hOBX4IZMbJPLArLmPtnDUB4=";
};
nativeBuildInputs = [
dpkg
autoPatchelfHook
];
buildInputs = [
procps
net-tools
];
installPhase = ''
runHook preInstall
substituteInPlace "usr/share/speedify/SpeedifyStartup.sh" "usr/share/speedify/SpeedifyShutdown.sh" "usr/share/speedify/GenerateLogs.sh" \
--replace-fail '/usr/share/' "$out/share/"
substituteInPlace "usr/share/speedify/SpeedifyStartup.sh" \
--replace-fail 'logs' "/var/log/speedify"
mkdir -p $out/share/
mv usr/share $out/
mkdir -p $out/etc/
mv lib/systemd $out/etc/
mkdir -p $out/bin
ln -s $out/share/speedify/speedify_cli $out/bin/speedify_cli
runHook postInstall
'';
meta = {
homepage = "https://speedify.com/";
description = "Use multiple internet connections in parallel";
longDescription = ''
Combine multiple internet connections (Wi-Fi, 4G, 5G, Ethernet, Starlink, Satellite, and more)
to improve the stability, speed, and security of your online experiences.
Check corresponding option {option}`services.speedify.enable`
'';
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [ zahrun ];
};
}