Code Monkey home page Code Monkey logo

netkit.nix's Introduction

netkit.nix

Versatile icebox plugins for advanced networking scenarios in NixOS.

What is it?

Intended to work out-of-box without any complicated configuration, netkit.nix is a set of icebox purely declarative plugins for networking scenarios, such as versatile transparent proxy, sharing Wi-Fi through Wi-Fi.

How to use it?

  1. Add netkit to flake using inputs.netkit.url = "github:icebox-nix/netkit.nix";.
  2. Add module netkit.nixosModule to your flake.nix's nixosConfiguration.modules list.
  3. Configure modules on your needs. For details, see wiki page.
{
  netkit = {
     clash = {
       enable = true;
       redirPort =
         7892; # This must be the same with the one in your clash.yaml
     };
  
     wifi-relay = {
       interface = "wlp0s20f3"; # Change according to your device
       ssid = "netkit.nix";
       passphrase = "88888888";
     };
  
     xmm7360 = {
  	 enable = true;
       autoStart = true;
       config = {
         mycard = {
           apn = "3gnet";
           nodefaultroute = false;
           noresolv = true;
         };
       };
       package = pkgs.xmm7360-pci_5_7;
     };
  };
}

List of plugins available

  • Clash (plugins/clash): transparent proxy module with separated maxmind-geoip package and yacd dashboard built-in.
  • wifi-relay (plugins/wifi-relay): Sharing Wi-Fi connection over Wi-Fi on supported devices using hostapd and dhcpd.
  • snapdrop: Cross-platform Apple AirDrop alternative.
  • frpc: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
  • minecraft-server: On-demand minecraft server with more options.
  • xmm7360: A module with service for setting up PCI driver for Fibocom L850-GL modem (PCI ID 8086:7360).
  • dcompass: Programmable DNS written in pure Rust.

Flake Outputs

├───checks
│   ├───aarch64-linux
│   │   ├───atomdns: derivation 'atomdns-0.2.0'
│   │   ├───chinalist: derivation 'chinalist-raw-2020-12-20'
│   │   ├───maxmind-geoip: derivation 'maxmind-geoip-20201212'
│   │   └───overture: derivation 'overture-1.6.1'
│   ├───i686-linux
│   │   ├───atomdns: derivation 'atomdns-0.2.0'
│   │   ├───chinalist: derivation 'chinalist-raw-2020-12-20'
│   │   ├───maxmind-geoip: derivation 'maxmind-geoip-20201212'
│   │   └───overture: derivation 'overture-1.6.1'
│   ├───x86_64-darwin
│   │   ├───atomdns: derivation 'atomdns-0.2.0'
│   │   ├───chinalist: derivation 'chinalist-raw-2020-12-20'
│   │   ├───maxmind-geoip: derivation 'maxmind-geoip-20201212'
│   │   └───overture: derivation 'overture-1.6.1'
│   └───x86_64-linux
│       ├───atomdns: derivation 'atomdns-0.2.0'
│       ├───chinalist: derivation 'chinalist-raw-2020-12-20'
│       ├───dcompass-bin: derivation 'dcompass-bin-git'
│       ├───maxmind-geoip: derivation 'maxmind-geoip-20201212'
│       ├───overture: derivation 'overture-1.6.1'
│       ├───subconverter: derivation 'subconverter-0.6.4'
│       ├───xmm7360-pci_5_4: derivation 'xmm7360-pci-2020-01-15'
│       ├───xmm7360-pci_latest: derivation 'xmm7360-pci-2020-01-15'
│       ├───xmm7360-pci_latest_hardened: derivation 'xmm7360-pci-2020-01-15'
│       ├───xmm7360-pci_zen: derivation 'xmm7360-pci-2020-01-15'
│       └───yacd: derivation 'yacd'
├───nixosModule: unknown
├───overlay: Nixpkgs overlay
└───packages
    ├───aarch64-linux
    │   ├───atomdns: package 'atomdns-0.2.0'
    │   ├───chinalist: package 'chinalist-raw-2020-12-20'
    │   ├───maxmind-geoip: package 'maxmind-geoip-20201212'
    │   └───overture: package 'overture-1.6.1'
    ├───i686-linux
    │   ├───atomdns: package 'atomdns-0.2.0'
    │   ├───chinalist: package 'chinalist-raw-2020-12-20'
    │   ├───maxmind-geoip: package 'maxmind-geoip-20201212'
    │   └───overture: package 'overture-1.6.1'
    ├───x86_64-darwin
    │   ├───atomdns: package 'atomdns-0.2.0'
    │   ├───chinalist: package 'chinalist-raw-2020-12-20'
    │   ├───maxmind-geoip: package 'maxmind-geoip-20201212'
    │   └───overture: package 'overture-1.6.1'
    └───x86_64-linux
        ├───atomdns: package 'atomdns-0.2.0'
        ├───chinalist: package 'chinalist-raw-2020-12-20'
        ├───dcompass-bin: package 'dcompass-bin-git'
        ├───maxmind-geoip: package 'maxmind-geoip-20201212'
        ├───overture: package 'overture-1.6.1'
        ├───subconverter: package 'subconverter-0.6.4'
        ├───xmm7360-pci_5_4: package 'xmm7360-pci-2020-01-15'
        ├───xmm7360-pci_latest: package 'xmm7360-pci-2020-01-15'
        ├───xmm7360-pci_latest_hardened: package 'xmm7360-pci-2020-01-15'
        ├───xmm7360-pci_zen: package 'xmm7360-pci-2020-01-15'
        └───yacd: package 'yacd'

netkit.nix's People

Contributors

lexuge avatar

Stargazers

Fabian Hauser avatar sameer gupta avatar 老董 avatar  avatar Gustavo Porto avatar Tibor Pilz avatar  avatar  avatar Karolus avatar  avatar Bruno Bigras avatar  avatar Arseniy Chekanov avatar Someone avatar  avatar Jakub Klapacz avatar Silvr Blet avatar  avatar oneoy avatar zdm9981 avatar  avatar jianzhang avatar GuangTao Zhang avatar Daniel Kahlenberg avatar Alexandre Rosenfeld avatar Yannik Sander avatar Chris Lin avatar David Wood avatar

Watchers

James Cloos avatar  avatar  avatar

netkit.nix's Issues

cannot install the module

Hi. I'm using nix unstable and would like to install this module. However, this line package = pkgs.xmm7360-pci_latest; fails reporting that attribute xmm7360-pci_latest is missing. @LEXUGE, are you using some old pinned nixpkgs version which contains that package?

I've added inputs.netkit.url = "github:icebox-nix/netkit.nix"; to my flake inputs and added this.

  netkit.xmm7360 = {
    enable = true;
    autoStart = true;
    config = {
      mycard = {
        apn = "3gnet"; #your APN here
        nodefaultroute = false; # Setup default route so laptop uses 4G LTE when Wi-Fi is unavailable
        noresolv = true; # Don't contaminate my DNS config
      };
    };
    package = pkgs.xmm7360-pci_latest;
  };

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.