Coder Social home page Coder Social logo

beta-tester / rpi-pxe-server Goto Github PK

View Code? Open in Web Editor NEW
306.0 306.0 63.0 1.37 MB

setup a Raspberry Pi as an PXE-Server

Shell 100.00%
arch-linux debian dnsmasq fedora ipxe kali kaspersky-rescue-disk lighttpd network-boot nfs parrot pxe pxe-boot pxelinux raspberry suse tails tftp ubuntu vblade

rpi-pxe-server's People

Contributors

beta-tester avatar pi-farm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rpi-pxe-server's Issues

Error on pass2.sh

Error: ./install-pxe-server_pass2.sh: 784: [: http://releases.ubuntu.com/17.10/ubuntu-17.10-desktop-amd64.iso: unexpected operator

Can't give any more info than that.

Any ideas?

install-pxe-server_pass2.sh -- unlikely, but possibility of deleting / recursively, as root!

sudo rm -rf $DST_NFS_ETH0/$NAME;

sudo rm -rf $DST_NFS_ETH0/$NAME;

sudo rm -rf $DST_NFS_BOOT;

sudo rm -rf $DST_NFS_ROOT;

sudo rm -rf $DST_BOOT/*;

sudo rm -rf $DST_ROOT/*;

If, by some unfortunate miracle of chance, $DST_NFS_ETH0 were to become unset, these lines (particularly 650 and 755)
could erase someones entire system, including any and all attached media, possibly even mounted network shares.
Worse yet, this script is being run as root.
I see there is a check to make sure _unhandle_iso and _unhandle_kernel is not called with a blank $1, but theres still a chance someone could pass a character that does not resolve to $1 == __, but overall would still resolve to sudo rm -rf /.

For example, calling _unhandle_kernel * would end up as rm -rf /* and passes the check.

Should change to:
sudo rm -rf $DST_NFS_ETH0:?

I realize this is an extremely unlikely chance, but never underestimate people's ability to shoot themself in the foot and claim it was your fault because you let them chew bubblegum that one day back in '88.

PXE Server on boot and adding whole windows 10 installation media

Hello,

I have sucessfully installed part 1 and 2, do I need to configure annything else? and I can t find annything in the processes list with ps -A. Does the server now start at boot? I tried hooking it up to my Router and launch PXE boot on my laptop, but I get no file recieved. And how do I configure the server?

Regarding Windows 10, it would be amazing to to keep all your installation media say on a 64 gig drive in your RPI and install them trough your Network. Say my old windows 7 Pc don t boot, just boot the installation kit trough LAN :)

Thank you for the fast and helpful responses:)

Kind Regards.

could you add any way to add custom iso

could you create any way to add extra links to other linux distro into the code?
any thing like a bash script to add the name of distro into a column of a csv file and into the others column the links

about ReadMe.md

what software have you used to create the schematic overview?

Installer failing?

Hello,

I want to say many thanks for this project it's perfect for me. I'm wondering if you can help me with the install process?

login as: pi
[email protected]'s password:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Mar 17 16:34:36 2016 from 192.168.0.107
pi@PXE:~ $ ls
Desktop install-pxe-server_pass1.sh Pictures Templates
Documents install-pxe-server_pass2.sh Public Videos
Downloads Music python_games
pi@PXE:~ $ bash install-pxe-server_pass1.sh
install-pxe-server_pass1.sh: line 5: syntax error near unexpected token newline' install-pxe-server_pass1.sh: line 5:'
pi@PXE:~ $

Patch

Can you post here the patch you applied to kaspersky rescue disk?

Help wanted with Bios selection

I have an older eeePC I am trying to use as lab node to PXE boot
So far it gets the IP and then TFTP
PXE-01: File not Found
PXE-E3B: TFTP Error - File not found
PXE-M0F: Exiting

On my Raspberry PI - My host with RPi-PXE-Server installed
syslog has following
Aug 7 13:34:23 ubuntu in.tftpd[4158]: RRQ from 192.168.2.204 filename menu-bios/lpxelinux.0
Aug 7 13:34:27 ubuntu dnsmasq-dhcp[1400]: 1736481460 available DHCP range: 192.168.2.200 -- 192.168.2.250
Aug 7 13:34:27 ubuntu dnsmasq-dhcp[1400]: 1736481460 vendor class: android-dhcp-7.0
Aug 7 13:34:27 ubuntu dnsmasq-dhcp[1400]: 1736481460 client provides name: android-9d9229f139968a96

Where do I set a different bios setting?
Is there a generic option that will just give a temp option so that I can get menu?

Thanks
And great scripts made for easy setup

Can't get Windows PE boot to work..

I filled in the script where to find the PE.iso
The script made a label in de menu.
But when trying to boot to PE it shows an error no such file or directory
When I change the location /iso/ to something else and move the PE.iso into this new location I get the same error.
I'm not used to linux so please could you help me out?

RPi architecture

I believe you can change the ARCH that RPi reports while doing PXEBoot.

This value is stored in the /boot/bootcode.bin file. I accidentally found it while searching for a way to enable UART during early boot stages. I haven't tested it, but that's most certainly the value that would be sent to DHCP during a PXE Boot request scenario

Below, this sed command would change the string of DHCP Option #93 (client-arch) to indicate that it's an ARM32_EFI architecture. You may wish to use Arch:00011 for ARM64_EFI, or any integer greater than or equal to 12 to indicate a custom CSA.
You would then be able to dhcp-match the client-arch (and remove the MAC address matching):

##dnsmasq.conf
.....
dhcp-match=set:arm32, option:client-arch, 10
dhcp-match=set:aarch64, option:client-arch, 11
dhcp-match=set:rpi2b, option:client-arch, 42

dhcp-boot=tag:arm32,ipxe/ipxe-arm32.efi
dhcp-boot=tag:aarch64,ipxe/ipxe-aarch64.efi
dhcp-boot=tag:rpi2b,ipxe/ipxe-rpi32.efi
.....

sed -i -e 's/PXEClient:Arch:00000:UNDI:002001/PXEClient:Arch:00010:UNDI:002001/' /boot/bootcode.bin

You can get the latest compiled bootcode.bin from here
To see what PXEClient ARCH is set:
strings /boot/bootcode.bin | grep PXEClient

From the DNSMASQ man pages:
under the reference: pxe-service= .....
CSA is client system type, only services of the correct type will appear in a menu. The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, x86-64_EFI, Xscale_EFI, BC_EFI, ARM32_EFI and ARM64_EFI; an integer may be used for other types.

Additional file for customizations

Could it include calls to scripts that we customize? This way it would be easier to add our features and synchronize with the project updates.

In #22 you show some commands, though which file should they be included in?

Anyway, thanks for the project!

Boot not working for EFI

As referenced in #5, comment 4. I cannot get IPv4 UEFI boot to work. Initially, I suffered an error prompt from my BIOS "Selected boot image did not authenticate" then after disabling secure boot, I got an error "The selected boot device failed to load". Suggests the issue here is two-fold, firstly with secure boot an then with the PXE configuration.

After you (@beta-tester) pointed this out "did you removed the '#' in front of the efi32 and efi64 stuff i comment out?", I did so and that is what got me the "The selected boot device failed to load" error, initially I was only getting the "The selected boot device failed to load" error, even with secure boot enabled.

I am going to try with an iPXE device so I can get more detailed error reports and will update.

I am yet to test this "what you also can try is to offer the UEFI computer the UEFI compatible boot-manager-file directly (in dnsmasq) instead of offering the pxe-menu file. but then you don't have the choice anymore to select different OS'es for UEFI computers."

PXE-booting patch stopped working starting Tails 6.10.

Referring to
#31
This patch stopped working starting around I think it was Tails 6.10.
I couldn't get an error code, it just refuses to boot once the initrd is downloaded from tftp without any error.
I believe the problem started when Tails switched to the Linux 6.x kernel. My best analysis is that its not the actual patch thats the problem but Linux 6.x kernels handle initrd images differently somehow which makes it refuse any appending initrd patches like thisone.
I've been trying for a few weeks but got nowhere. Hopefully someone can at least establish why this happens.

Originally posted by @modrz44 in #31 (comment)

Troubleshooting

I have everything installed from the readme (ISO's are downloaded as well via the scripts), but am having an issue that I haven't figured out yet.

I see the menu but when I select an item to boot from it says it's downloading, however never does anything and then returns to the PXE boot screen. Any ideas?

Running latest raspbian Linux raspberrypi 4.14.79-v7+ fully updated attaching my installed packages in case there's a version that needs to be different than installed.

Installed_packages.txt

Store img files on the USB?

I dont have an SD card big enough to store all the img files, can I store them on the USB instead, if so how?

Simplify Network interface names

Hi, I see that your code is specific to a interface name. However your code can be much simpler by using this line.

ethernet=basename -a /sys/class/net/* | grep 'eth\|ens\|enp'

wifi=basename -a /sys/class/net/* | grep 'wlan\|wlx\|wlp'

The code is not showing as it pretends to be because github thinks it is code and removes the ` sign

By using this it doesn't matter what the interfaces on the Raspberry client is. You can set this as a variable for all the config files you want to insert.

You may want to take a look at my Routing script from Wireless to Ethernet.

https://github.com/squadramunter/network_routing/blob/master/setup

I created this script to run on every Debian based Linux distro.

How to create Clover Bootloader on PXE Server?

Hello:
Use your script project, I can already boot WinPE, a lots linux system easily.
Now, I want to boot Clover EFI Bootloader from PXE server, So that I can easily install Apple macOS on my Hackintosh PC.
I just test create an ISO file from EFI

  1. Uploading Screen Shot 2019-05-06 at 10.39.52 PM.png…
  2. Add URL
    `WIN_PE_X86=Win10PEx64_WePE2.0_CGI_
    WIN_PE_X86_URL=http://192.168.88.100:8000/Win10PEx64_WePE2.0_CGI_.ISO

APPLE_CLOVER=Apple
APPLE_CLOVER_URL=http://192.168.88.100:8000/Apple.iso`

  1. Include handle:
    `handle_iso $WIN_PE_X86 $WIN_PE_X86_URL;

handle_iso $APPLE_CLOVER $APPLE_CLOVER_URL;`

After do this, only WinPE is Appeared in PXE Boot menu, and nothing for Clover EFI Bootloader. How can I do that?

Future request: Docker Container

Hi, First I would thank you for this amazing project you've done.
It helps me with installing my distro's a lot easier.

Can you make a docker container from this? I don't want to mess things up if it goes wrong. And is it safe to be used when other services are running that are using port 53? Like dnsmasq or bind9?

Maybe you can provide a manual installation README? I have apache2 and dnsmasq already setup but I like to use PXE on my Raspberry Pi. Is there a way to combine already installed applications with this script you provide?

Thanks and hope you can help me with this question.

Some more image to add.

Add POP!_OS to the list

Since POP!_OS has Nvidia drivers preinstalled this is very nice to use steam on a live PXE boot. Nvidia works even using live version. So streaming games is no problem at all.

I like to see this distro in the list be added soon.

About Add ISOS

Hello, first of all thank you for such a useful development, it is excellent! I wanted to ask you if there is any tutorial to add isos type medicat, Windows 7 AIO or installers of W10 (Preferably for novices). Excuse me if you already explained it but I'm new with this, and many things happen to me, but I feel like it and force :)
Regards!

I've added and altered some features

I have added and altered some features of your scripts. If interested, please let me know and I could pull request.
Feautes/alterations are:

  • argument to run 'menu-only mode'. -- This runs only handle_pxe. I'm impatient and I see no reason to re-write config scripts again and again if they haven't changed, like dnsmasq config, samba config, etc.
  • argument to 'update urls' (and rebuild menu) -- this uses wget to pull only your latest urls file
  • include custom -- added 3 new files for custom entries. This allows the update urls to work without losing any customizations
  • use local ISOs -- uses an is_local flag to declare that an ISO is already present on the system, for instance, if you've customized an ISO before you add it to your custom's scripts. It uses rsync instead of wget since wget gets upset about local file paths when it wants a url.
  • disable DHCP server take-over -- I was having trouble when pairing this script with OpenWRT. They seemed to be fighting over who was going to be the main DHCP server. This setting adds a declared IP as the DHCP server (dhcp option 3) and sets DNS server (dhcp option 6)
  • option to disable backups -- I ran out of space on my flash drive and really don't need a backup of ISOs, so this just disables the final 2 backups in pass2.sh

Raspberry Pi3 not booting

I have a raspberry pi 3 configured for network booting and I re-ran the installation script with the serial number in. When I try and boot I get the below server logs.

May 28 12:23:33 dnsmasq-dhcp[676]: 653460281 available DHCP subnet: 192.168.0.35/255.255.255.0
May 28 12:23:33 dnsmasq-dhcp[676]: 653460281 available DHCP range: 192.168.0.150 -- 192.168.0.200
May 28 12:23:33 dnsmasq-dhcp[676]: 653460281 vendor class: PXEClient:Arch:00000:UNDI:002001
May 28 12:23:33 dnsmasq-dhcp[676]: 653460281 PXE(eth0) b8:27:eb:41:4a:9d proxy
May 28 12:23:33 dnsmasq-dhcp[676]: 653460281 tags: ARM_RPI3, UUID_RPI3, ARCH_0, client_is_a_pi, eth0
May 28 12:23:33 dnsmasq-dhcp[676]: 653460281 reply delay: 2
May 28 12:23:35 dnsmasq-dhcp[676]: 653460281 bootfile name: bootcode.bin
May 28 12:23:35 dnsmasq-dhcp[676]: 653460281 broadcast response
May 28 12:23:35 dnsmasq-dhcp[676]: 653460281 sent size:  1 option: 53 message-type  2
May 28 12:23:35 dnsmasq-dhcp[676]: 653460281 sent size:  4 option: 54 server-identifier  192.168.0.35
May 28 12:23:35 dnsmasq-dhcp[676]: 653460281 sent size:  9 option: 60 vendor-class  50:58:45:43:6c:69:65:6e:74
May 28 12:23:35 dnsmasq-dhcp[676]: 653460281 sent size: 17 option: 97 client-machine-id  00:44:44:44:44:44:44:44:44:44:44:44:44:44...
May 28 12:23:35 dnsmasq-dhcp[676]: 653460281 sent size: 47 option: 43 vendor-encap  06:01:03:0a:04:00:50:58:45:08:07:80:00:01...
May 28 12:23:35 dnsmasq-tftp[676]: file /media/server/srv/tftp/bootsig.bin not found
May 28 12:23:35 dnsmasq-tftp[676]: sent /media/server/srv/tftp/bootcode.bin to 192.168.0.25
May 28 12:23:35 dnsmasq-tftp[676]: file /media/server/srv/tftp/<MyRPI_SN>/start.elf not found
May 28 12:23:35 dnsmasq-tftp[676]: file /media/server/srv/tftp/autoboot.txt not found
May 28 12:23:35 dnsmasq-tftp[676]: file /media/server/srv/tftp/config.txt not found
May 28 12:23:35 dnsmasq-tftp[676]: file /media/server/srv/tftp/recovery.elf not found
May 28 12:23:35 dnsmasq-tftp[676]: file /media/server/srv/tftp/start.elf not found
May 28 12:23:35 dnsmasq-tftp[676]: file /media/server/srv/tftp/fixup.dat not found

A few things I've also noticed:

  • The green light flashes on the Pi, so perhaps it has booted, but I just cant SSH into it... (it doesn't respond to pings though)
  • tftp/boot is empy
  • nfs/rpi-<MyRPI_SN>-root is empty
  • This line seems relevant
    sudo sh -c "echo 'dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 plymouth.ignore-serial-consoles root=/dev/nfs nfsroot=$IP_ETH0:$DST_NFS_ETH0/$RPI_SN0_ROOT,vers=3 rw ip=dhcp rootwait net.ifnames=0 elevator=deadline' > $DST_BOOT/cmdline.txt";
  • It seems as if <MyRPI_SN>/start.elf is a neccessary file. But the contents of my <MyRPI_SN>/ is only cmdline.txt config.txt rpi-raspbian-lite.url ssh

How to use $src_iso and $file_iso

I am trying to get any Linux running on old laptop. Laptop will not boot DVD or USB drive. your PXE server worked well for many of the built in URLs and also several I added. But, several I want to try will not download, although I can download them from Firefox. They have lots of redirects, which could be the issue.
I looking at pass2.sh, I found $src_iso and $file_iso. I put the ISOs I want to use on memory stick, but have been unable to get it to work. Do you have documentation on using these options?
using file name.txt

I tried above file, but it is not readable. Do I need a translation?
I am including my configs and screen capture for my last try. I am using Raspberry Pi for PXE server.

Problem booting Windows 10 from Raspberry PXE server

Hello,

I am trying a variation of your PXE boot server procedure to boot Windows 10 from the RPi-PXE-Server (https://linuxconfig.org/how-to-configure-a-raspberry-pi-as-a-pxe-boot-server):

  1. I have extended the “../pxelinux.cfg/default” as it follows:
MENU BEGIN Windows

 MENU TITLE Windows 10 amd64

     LABEL windows_10_PE
         MENU LABEL Windows PE (64 Bit)
         KERNEL ::memdisk
         INITRD ::win-pe-x64.iso
         APPEND iso raw            

     MENU END

2. In order to enable booting in BIOS and EFI modus, I created the following directory structure:

/mnt/data/netboot
│win-pe-x64.iso
│memdisk
├── bios
│ ├── ldlinux.c32
│ ├── libcom32.c32
│ ├── libutil.c32
│ ├── pxelinux.0
│ ├── pxelinux.cfg -> ../pxelinux.cfg
│ └── vesamenu.c32
├── boot
│ └── amd64
│ └── windows
│ └── 10
├── efi64
│ ├── ldlinux.e64
│ ├── libcom32.c32
│ ├── libutil.c32
│ ├── pxelinux.cfg -> ../pxelinux.cfg
│ ├── syslinux.efi
│ └── vesamenu.c32
└── pxelinux.cfg
└── default

....and copied the files:

$ cp
/usr/lib/syslinux/modules/bios/{ldlinux,vesamenu,libcom32,libutil}.c32
/usr/lib/PXELINUX/pxelinux.0
/mnt/data/netboot/bios

$ cp
/usr/lib/syslinux/modules/efi64/ldlinux.e64
/usr/lib/syslinux/modules/efi64/{vesamenu,libcom32,libutil}.c32
/usr/lib/SYSLINUX.EFI/efi64/syslinux.efi
/mnt/data/netboot/efi64

3 I then linked the pxelinux.cfg to the "bios" and "efi64" directories

 ln -rs pxelinux.cfg bios && ln -rs pxelinux.cfg efi64
  1. I linked memdisk to the netboot directory
    ln -s /usr/lib/syslinux/memdisk /mnt/data/netboot/

  2. I have generated a “win-pe-x64.iso” using microsoft’s “Windows ADK” and “Windows PE add-on” following your tutorial:
    https://github.com/beta-tester/RPi-PXE-Server/wiki/Create-a-WinPE-ISO

  3. I placed the “win-pe-x64.iso” file in /mnt/data/netboot

  4. I copied a mounted windows iso installation file on a samba directory:

    7.1 sudo mount /home/pi/SambaSharedDirectory/Win10_20H2_v2_EnglishInternational_x64.iso /media
    7.2 sudo rsync -av /media/ /mnt/data/netboot/boot/amd64/windows/10

smb.conf:

[10]
comment = Windows 10 (64 Bit) Install Files
path = /mnt/data/netboot/boot/amd64/windows/10
public = yes
printable = no
guest ok = yes
readonly = yes
browseable = yes
oplocks = no
level2 oplocks = no
locking = no
strict locking = no

  1. dnsmasq.conf

    port=0 # disable DNS server
    interface=eth0
    dhcp-range=192.168.111.0,proxy

    enable-tftp

    tftp-root=/mnt/data/netboot

    pxe-service=x86PC,"PXELINUX (BIOS)",bios/pxelinux
    pxe-service=x86-64_EFI,"PXELINUX (EFI)",efi64/syslinux.efi

    log-queries
    log-facility=/var/log/dnsmasq.log

  2. When I start the windows 10 installation, the client reports the following:

    Loading :: memdisk... ok
    Loading :: win-pe-x64.iso... ok
    Failed to exit boot services: 0x800000000002
    Booting kernel failed: Bad file number

Do you know how to solve this problem?

Thank you in advance

How to use this on bridge network

Hi, I want to use this on my Raspberry Pi. There is only one problem. My Raspberry has a bridged network interface. I see that your code only works on eth0

How can I make this work on interface br0?

auto br0
iface br0 inet static
address 192.168.1.4
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge_ports eth0
bridge_stp off
bridge_fd 0

[Not boot] The PXE function is not work on my Raspberry Pi3

Hi sir,
First of all, thanks for providing this great project.
The RPi PXE server does not work on my side.
I tried to install your default shell 1 and 2 files. (Download some ISO files on my 64GB card)
I also tried to modified some changes on the pass_2.sh (add/remove ISO path, change “DST_ROOT=/srv “or “/DST_ROOT=/srv to DST_ROOT=/media/server/srv”)

Did I miss something?

I reinstalled my system and failed over 20 times, so sad ....
Attaching three log files on this comment.
Thanks.

------------- System equipment ----------
a. RPi3 mode B

  • SD card: 16GB, 32GB, 64GB
  • USB device: SanDisk 32GB
  • OS: NOOBS_v2_8_1
    b. Client: Enable PXE IPv4/6 features in BIOS.

Wired LAN schematic:

  1. RPi3 – client
  2. RPi3- Hub - client

The Steps:
0. Plug a 64GB SD card on the RPi3 Model B.

  1. Plug a USB 32GB memory device on the RPi3.
  2. Power on and then boot to the desktop.
  3. $ sudo apt-get update
  4. $ sudo apt-get upgrade
  5. Umount my USB 32GB device. (sda1)
  6. $ sudo mkfs.ext4 -L PXE-Server /dev/sda1 (sda1 is my 32GB USB device, LABEL: PXE- Server)
  7. Copy the install shell files on the desktop.
  8. $ bash install-pxe-server_pass1.sh
  9. reboot the system
    -9. pi@raspberrypi:/media/server $ sudo mkdir -p ./backup/img
    -10.pi@raspberrypi:/media/server/backup $ sudo mkdir -p ./backup/iso
    -11.pi@raspberrypi:/media/server/backup $ sudo mkdir -p ./backup/tftp/boot
    -12.pi@raspberrypi:/media/server/backup $ sudo mkdir -p ./backup/tftp/boot
    13.pi@raspberrypi:~/Desktop/RPi-PXE-Server-master $ bash install-pxe-server_pass2.sh
  10. Reboot to RPi desktop.
  11. Done.
  12. The “PXE-E51: No DHCP or proxyDHCP offers were received.” Message is displayed on the client system.

check_service_status.txt
install1file_log.txt
install2file_log.txt

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.