GithubHelp home page GithubHelp logo

mvallim / live-custom-ubuntu-from-scratch Goto Github PK

View Code? Open in Web Editor NEW
373.0 24.0 177.0 622 KB

This procedure shows how to create a bootable and installable Ubuntu Live (along with the automatic hardware detection and configuration) from scratch.

Home Page: https://mvallim.github.io/live-custom-ubuntu-from-scratch/

License: GNU General Public License v3.0

Shell 100.00%
linux live-cd scratch bootstrap bios uefi ubuntu focal bionic

live-custom-ubuntu-from-scratch's People

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

live-custom-ubuntu-from-scratch's Issues

problem after create iso

**Describe the bug
after creating the iso, I get the busybox window

grub >

To reproduce
Steps to reproduce the behavior :

I use your script ./build.sh -

with the config.sh file (which I've modified with my programs):
here's the script:

`#!/bin/bash

This script provides common customization options for the ISO

Usage: Copy this file to config.sh and make changes there. Keep this file (default_config.sh) as-is

so that subsequent changes can be easily merged from upstream. Keep all customiations in config.sh

The version of Ubuntu to generate. Successfully tested: bionic, cosmic, disco, eoan, focal, groovy, jammy

See https://wiki.ubuntu.com/DevelopmentCodeNames for details

export TARGET_UBUNTU_VERSION="jammy"

The Ubuntu Mirror URL. It's better to change for faster download.

More mirrors see: https://launchpad.net/ubuntu/+archivemirrors

export TARGET_UBUNTU_MIRROR="http://us.archive.ubuntu.com/ubuntu/"

The packaged version of the Linux kernel to install on target image.

See https://wiki.ubuntu.com/Kernel/LTSEnablementStack for details

export TARGET_KERNEL_PACKAGE="linux-generic"

The file (no extension) of the ISO containing the generated disk image,

the volume id, and the hostname of the live environment are set from this name.

export TARGET_NAME="ubuntu-from-scratch"

The text label shown in GRUB for booting into the live environment

export GRUB_LIVEBOOT_LABEL="Try Ubuntu FS without installing"

The text label shown in GRUB for starting installation

export GRUB_INSTALL_LABEL="Install Ubuntu FS"

Packages to be removed from the target system after installation completes succesfully

export TARGET_PACKAGE_REMOVE="
ubiquity
casper
discover
laptop-detect
os-prober
"

Package customisation function. Update this function to customize packages

present on the installed system.

function customize_image() {
# install graphics and desktop
apt-get install -y
mate-core
software-properties-common
xorg
xserver-xorg-video-vesa
synaptic
xinit
lightdm
xfonts-base
python3-pip
nano

zotero

wget "https://www.zotero.org/download/client/dl?channel=release&platform=linux-x86_64" -O zotero64.tar.bz2
tar -xf zotero64.tar.bz2
mv Zotero_linux-x86_64 /opt/zotero
cd /opt/zotero
./set_launcher_icon

R et Rstudio

cd /
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | gpg --dearmor -o /usr/share/keyrings/r-project.gpg
echo "deb [signed-by=/usr/share/keyrings/r-project.gpg] https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/" | tee -a /etc/apt/sources.list.d/r-project.list
apt install --no-install-recommends r-base

wget https://download1.rstudio.org/electron/jammy/amd64/rstudio-2023.03.0-386-amd64.deb
apt install -f ./rstudio-2023.03.0-386-amd64.deb
cd /
rm rstudio-2023.03.0-386-amd64.deb zotero64.tar.bz2

cat < /etc/apt/preferences.d/nosnap
Package: snapd
Pin: release *
Pin-Priority: -1
EOF

cat < /etc/apt/preferences.d/firefox-for-nosnaps
Package: firefox*
Pin: release o=Ubuntu*
Pin-Priority: -1

Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 99
EOF

cat < /etc/apt/apt.conf.d/50unattended-upgrades-firefox
Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";
EOF

add-apt-repository ppa:mozillateam/ppa
apt install firefox

pip install jupyterlab

# useful tools
apt-get install -y \
libreoffice \
imagej \
ugene \
vlc \
python3-biopython 

apt update
apt upgrade

}

Used to version the configuration. If breaking changes occur, manual

updates to this file from the default may be necessary.

export CONFIG_FILE_VERSION="0.4"`

Desktop (please complete the following information):

  • ubuntu 22.04
  • firefox, brave
  • 22.04.2

Activate sshd service + add default PW for root

Hi @mvallim,

great writeup! I wounderd if you are able to add a preseed or cloudinit file, that automaticly set a hostname, default User with PW and starts a ssh server.

This Steps are needed if you want to PXE Boot the Maschine and configure it after wards with Ansible.

I am open for suggestions or ideas.

Best,
Daniel

This is more of a question then an issue but is there a way to make an ISO with this method that is strictly based on Debian?

I was reading the whole tutorial and my impression that casper and Ubiquity are the "most" Ubuntu specific packages. There is also the ubuntu-standard meta package but as it seems the single packages might be enough https://packages.ubuntu.com/jammy/ubuntu-standard.

Basically I'm looking to make a custom Debian ISO using the Ubuntu "method" with casper and Ubiquity, this is to make it work with wubiuefi on some systems which strictly supports the Ubuntu installation mode https://github.com/hakuna-m/wubiuefi

Sorry if this is offtopic and I know I'm looking for something extremely niche but been looking to do that for some months.

Secure Boot and Nvidia Drivers Installations

Hi,

Have you had any experience with creating an image which includes Nvidia drivers, or compiled drivers which require MOK enrollment?

Running with Nvidia Drivers requires secure boot, and the MOK key is enrolled during apt installation. Later the computer requires a reboot, and an enrollment from UEFI to the said key. I was wondering if that step can somehow be automated as part of the image.

Regards,

set -e # exit on error during chroot processes leaves host OS disfunctional

During chroot_build.sh, any errors - perhaps due to missing packages (lupin-casper - 22.04) - will exit before chroot_exit_teardown() can cleanup. This leaves the build system in a dis-functional state - in the case of building locally.
Adding trap chroot_exit_teardown ERR to build.sh is a way of exiting chroot_build.sh cleanly.

set -eE                  # exit on error
set -o pipefail         # exit on pipeline error
set -u                  # treat unset variable as error
trap chroot_exit_teardown ERR

removing the chroot during 'debootstap()' - before 'debootstap' - also cleans the build.sh workspace in case of EXIT on errors.

function debootstrap() {
    echo "=====> running debootstrap ... will take a couple of minutes ..."
    sudo rm -r chroot

ubuntu 20 not installing

Hi, I have a problem with ubuntu20 - it's not installing.
I'm using a re-made script that was working for ubuntu18. Under ubuntu20 I got no errors during fast check, got a normal boot menu, but the system goes to live boot instead of installation.

I'm using the following command:

menuentry "Install Ubuntu 20.04" {
    linux /casper/vmlinuz boot=casper automatic-ubiquity hostname=user debian-installer/locale=en_GB console-setup/layoutcode=us auto=true quiet splash ---
    initrd /casper/initrd
}

Where should I look for errors or why this may happen. When the system is up all packages I've installed are properly installed and the kernel is appropriate. I'm trying this with a virtual-box machine for ubuntu-x64.

Ubuntu Server Dcoumentation

Mainly I see this works in my test installations but it deploys the desktop version can some documentation be added to a server in memmory boot and perhaps update the readme?

When I run the script for create the iso .It give some erre

Hi,
Can you please help me on this .When I run the script it gives the below error.

ubnutu@ubnutu-VirtualBox:/root/scripts$ ./bulid.sh build_iso
=====> running build_iso ...
[sudo] password for ubnutu:
cp: cannot stat 'chroot/boot/initrd.img---generic': No such file or directory
ubnutu@ubnutu-VirtualBox:/root/scripts$

More explanation

Thank you for the work. I'm using your repository to create my own boot to RAM flavor.

Just wanted to get some more clarification on some of the commands. At the very end you are using grub-mkstandalone to create BIOS and UEFI image (I dont know the difference). My question is if I'm trying to partition using GPT is it enough to create only UEFI image? If so how would I modify xorriso command ? Thank you help much appreciated.

grub-mkstandalone \
   --format=x86_64-efi \
   --output=isolinux/bootx64.efi \
   --locales="" \
   --fonts="" \
   "boot/grub/grub.cfg=isolinux/grub.cfg"

sudo xorriso \
   -as mkisofs \
   -iso-level 3 \
   -full-iso9660-filenames \
   -volid "Ubuntu from scratch" \
   -eltorito-boot boot/grub/bios.img \
   -no-emul-boot \
   -boot-load-size 4 \
   -boot-info-table \
   --eltorito-catalog boot/grub/boot.cat \
   --grub2-boot-info \
   --grub2-mbr /usr/lib/grub/i386-pc/boot_hybrid.img \
   -eltorito-alt-boot \
   -e EFI/efiboot.img \
   -no-emul-boot \
   -append_partition 2 0xef isolinux/efiboot.img \
   -output "../ubuntu-from-scratch.iso" \
   -m "isolinux/efiboot.img" \
   -m "isolinux/bios.img" \
   -graft-points \
      "/EFI/efiboot.img=isolinux/efiboot.img" \
      "/boot/grub/bios.img=isolinux/bios.img" \
      "."

Could this be used to create a bootable docker host/node live system?

I was wondering if there was anything preventing this from being used to include Docker in the live system so that one could boot a Docker node from USB (using persistence or not) and running containers from a network-mounted location? If this hasn’t been tested, I would probably take some time over the holidays to see, but was wondering if anyone had tried this before. :) Appreciate the effort you’ve put into this.

Support creating secure-boot enabled images

Hello,

Right now, the generated images are not bootable « by default » on UEFI computers with microsoft keys, as the generated iso is not signed. Indeed, he grub-mkstandalone creates an efi boot file that is not signed (as we don't have access to the keys to do so). Is there a way to rely on grub-shim or other signed alternative to boot the iso without to have to deal with secure boot keys, in this project ?

Thanks !

Produced ISO fails to install in Virtualbox

Steps to reproduce:

  1. create docker instance w/ Ubuntu 20.04
  2. run README steps in docker container to produce ubuntu-from-scratch.iso
  3. create new VM in VirtualBox, attach ubuntu-from-scratch.iso as secondary volume
  4. boot live environment, select "Install Ubuntu" from the GRUB menu
  5. Go through the installation steps, select minimal install and download packages while installing.

Expected behavior:
Ubuntu installation process completes successfully

Actual behavior:
After package install completes and cleanup scripts are run, the following error is shown:

VirtualBox_lbtest_05_04_2021_17_11_49

Note: Removing secondary image and rebooting the VirtualBox image results in booting into grub with just the prompt, no selectable boot configurations:

VirtualBox_lbtest_05_04_2021_17_17_30

Add preseed configuration

Hi,

It would be great to see here instructions on how to use preseed.cfg file to install image with provided username and password.

Best,
Adam

After initiale build

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
How can I start over with the build?

Describe the solution you'd like
A clear and concise description of what you want to happen.
The chroot folder is still in folder, how to start after the iso file has been created?

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
I have to delete the chroot folder in order to start over.

Additional context
Add any other context or screenshots about the feature request here.
It would be nice to be able to continue with modifications from modified config file.

Copy extra files to chroot environment

Is your feature request related to a problem? Please describe.
To build my live iso, I need to copy some files to the chroot environment. Currently we can't do that with the script.

Describe the solution you'd like
It could be useful if all files inside a specific directory where copied to the chroot environment.

Describe alternatives you've considered
Maintaining a list with the files to copy can be considered but will be less useful.

Additional context
I'm willing to work on this contribution.

Persistant Storage for the USB Device using this manual

Hi All,

I was wondering if you could help with Persistance for this guide?

The guide works wonderfully! However I am unable to set persistance, when burning my ISO to USB.

Using Will Haleys custom Debian guide. this option is available, however for this guide, it is not.

Any help would be great! :)

Thanks,

Nick

Allow customization without fork

Is your feature request related to a problem? Please describe.
The existing scripts hard code some string constants that most users will likely change to meet their needs. For example the name of the ISO or the GRUB entries.

If I make changes to the scripts however, it becomes more difficult to merge upstream changes/fixes as I have made changes myself.

Ideally I could specify all the parameters I need to generate my ISO without having to fork this repo.

Describe the solution you'd like
There are a few strategies that could be used here:

  1. Express each customization as a command line parameter to the build.sh script.

Pros: common way for scripts to get custom params
Cons: maybe many parameters would be needed, will make the script more difficult to use, passing these params across scripts, parameter number or order changing breaks older versions.

  1. Express each customization as a search/replace operation. In this case there would be a property file specifying values, and a script that would simply search/replace in the shell scripts to substitute the actual values.

For example:
build.sh

...
menuentry "%%GRUB_LIVEBOOT_LABEL%%" {
   linux /casper/vmlinuz boot=casper nopersistent toram quiet splash ---
   initrd /casper/initrd
}

configure.sh

GRUB_LIVEBOOT_LABEL=somethingsomething

sed -i 's/%%GRUB_LIVEBOOT_LABEL%%/$GRUB_LIVEBOOT_LABEL/g' build.sh > build2.sh

Pros: fairly simple, only changes to script are string literals.
Cons: More scripts to run, possibly difficult to get the process fool proof.

  1. Look for a file, say configuration.sh in the same directory, if present source the script. Use well known variables that would be defined for each parameter.

Example:

configuration.sh

GRUB_LIVEBOOT_LABEL=somethingsomething

build.sh

...
if [ -f ./configuration.sh ]; then 
  source configuration.sh
fi
...
menuentry "$GRUB_LIVEBOOT_LABEL" {
...

pros: no mutation of script files, fairly simple
cons: requires all config to be expressed as variables, must have defaults in script?

I have not tested any of these approaches and of course there may be other ways too. @mvallim any thoughts here? Do you care about this sort of thing, or you'd just prefer people to fork and change their scripts as needed?

Describe alternatives you've considered
Likely I will go with option 3 and swap out string literals for variables and have a top level configuration script that defines each value.

Additional context
Add any other context or screenshots about the feature request here.

Boot from Pen Drive

Hello Vallim,
Thanks, This is working fine with ISO image and I'm able to boot Ubuntu with Ubuntu Custom ISO.
But when I create a bootable pen drive from Custom ISO then it doesn't work.
I'm using the tool Rufus-3.8 to create a bootable pen drive from Custom ISO.

Kindly help me to create a bootable pen drive from Ubuntu Custom ISO.

Regards,
Tejinder

how to avoid "Format Disk" popup window for D: drive and auto-amount of EFI?

After following the excellent instructions I am able to create a very usable USB stick that runs a dedicated program (Actually it is a bitcoin wallet. If you are interested, see https://github.com/monkey-jsun/eroas/)

I did modify the script a little so that I eventually have 4 partitions:

  1. Linux partition holding ISO filesystem
  2. EFI partition
  3. Linux partition holding "writable" persistent data
  4. FAT32 partition holding data for exchange with outside world

The annoying issue is right now everything I insert the USB into a windows machine it prompts me to format partition 1. Is there a way we can get rid of this by marking some flag to the partition?

It also auto-mount EFI partition with a popup window. Very annoying too. Windows normally ignore EFI partitions. Why not here?

Creating installation Live ISO with EFI support

Testing builds on Virtualbox with EFI enabled - ISO fails to run.
With EFI off, ubiquity crashes likely at Grub install stage.
Target system is "bionic".

During build process, grub-pc does not run?
Presume grub-install needs to run during build process.
May missing something from chroot_build like;
grub-install --target=x86_64-efi --efi-directory=/boot/efi --recheck --no-nvram --removable

Will test & update...

UEFI Support

It looks like it currently doesn't support UEFI, it would be awesome if you also added that!

is:open label:question Ubuntu 20.04

Do you planning version for Ubuntu 20.04 ?
I change archive from bionic on focal. Other steps in this same way but when I boot ISO Image, then bootloader find one error. I dont kwno how check what it is bad in ISO. Have you maybe any idea? I dont installed any optional packages.

Anyone know if this guide still works for noble?

Hi, first, thanks a lot for this guide, I just have one simple question, anyone know if this still works on noble desktop?
I've been using cubic for my images so far, but unfortunately it works less than optimal for noble.

Ubuntu 21.10 and 22.04(RC) Desktop Live (Ubuntu default) not using isolinux anymore

Hi,
Your solution is tested/validated for Ubuntu 20.04 (focal).
Looking at the Ubuntu 21.10 (and 22.04) LiveCD they don't include isolinux anymore.
We are currently implementing a pxeboot EFI (Secureboot) Full automatic Ubuntu installation, and all works fine on "old" hardware.
But the most recent hardware seem to not behave as it should ( ethernet driver/tcp stack issues), and testing the "standard" Ubuntu 22.04 (RC) Desktop Live iso shows our problem (HTTP ISO download during initial pxeboot bootloader fails to load iso after 250MB) is working as expected.

The problem here is that since isolinux is not used anymore with the latest 2 releases of Ubuntu, I don't have a clue how to rebuild the iso (xorriso command).

Ubuntu clearly "dropped" BIOS Boot from 21.10 on their liveCD, but I do not see this reflected in the documentation here (and @ubuntu).
Surely this would/should be documented somewhere, but I can't find it.
I'm wondering if, based on the experience here (very clear instructions) there is an answer to be found regarding 21.10/22.04.
As some point we'll need to follow anyways.

Conflicting licensing statements

Hello, I noticed that which license the project is licensed under is ambiguous.

Namely, the README.md states that the project is licensed under the Apache license and refers to the LICENSE file that contains the GNU GPLv3.0 license. :)

Update xorriso paramters for 22.04

I have been doing a lot of trial and error in my own from scratch ubuntu project to get 22.04 working with bios installers without the use of isolinux and also to fix rufus persistent mode.
My project is very different than yours and not publicly available yet but yours has been very helpful so I thought I would share what I have discovered.

As stated these flags should work without isolinux files (i am still using the folder name, i plan to change this) and enable both EFI/BIOS on a usb key while also getting Rufus ISO & Persistent mode to work again.

   xorriso -as mkisofs -r \
  -volid "${image_name}" \
  -full-iso9660-filenames \
  -J -J -joliet-long \
  -output "../$output_name" \
  --grub2-mbr /usr/lib/grub/i386-pc/boot_hybrid.img \
  -partition_offset 16 \
  --mbr-force-bootable \
  -append_partition 2 28732ac11ff8d211ba4b00a0c93ec93b isolinux/efiboot.img \
  -appended_part_as_gpt \
  -iso_mbr_part_type a2a0d0ebe5b9334487c068b6b72699c7 \
  -eltorito-boot isolinux/bios.img \
   -no-emul-boot \
   -boot-load-size 4 \
   -boot-info-table \
   --eltorito-catalog boot/grub/boot.cat \
   --grub2-boot-info \
  -eltorito-alt-boot \
  -e '--interval:appended_partition_2:::' \
    -no-emul-boot \
  "."

Support installing on both UEFI and BIOS systems

Is your feature request related to a problem? Please describe.
Currently, either grub-efi or grub-pc can be installed in the chroot environment but not both, so it seems that installing only grub-efi will make the installation fail on systems booted in legacy mode (BIOS) without an Internet connection. It seems OK with an Internet connection since it will download the package from the Internet.

Describe the solution you'd like
A way to support installing both UEFI and BIOS versions of grub with the same ISO.

Describe alternatives you've considered
Put grub debs in some directory and install them manually, but it's quite a hassle.

Additional context
The installation fails at the bootloader installation stage.

image

Just a question

How the kernel know the location of the root file system? I mean, in case of Linux installed on a hard drive, there's entry in the kernel command line that specify the root partition. But, for LiveCD I don't know where I should configure that. When I customize a LiveCD image, I get stuck at initramfs command line and the error "Can't find the root file system". Should I configure that in the initrd image itself? and how?

Is there bash script file for this process?

First of all, this document is amazingly clear and technically superb! My hats-off! I followed the instructions once and it worked like a charm.

The commands are so deterministic. I just wonder if you have a bash script hiding behind. If so, I think we all appreciate if you can share it. Many of us are looking for recipes to create our own customized livecd, and yours could be base for them.

Thanks again.

Suggestions for troubleshooting boot failure

Hi @mvallim , your work here is really fantastic. It's great that you spent the time to put all of this information together in a friendly way and are maintaining it with modern Ubuntu versions, unlike what's available in the Ubuntu wiki. Thank you!

I work on a Linux DE and distro called Regolith. Currently we use a GUI tool, Cubic, to generate the live install image, however as this is a manual process it requires a lot of time when generating new images. I have adapted your README into two shell scripts (attached), one that runs in the chroot and the parent. I have tested both bionic and focal releases, and have found that 1 out of 3 of my test machines (all fairly modern Lenovo Thinkpads), when selecting the USB device to boot into the Ubuntu-FS image, immediately returns to the boot menu. It's as-if the image is invalid. Two other machines work fine w/ the same image. All devices are configured with "secure boot" and UEFI-only boot modes.

Because the laptop which has an issue reports no error, just returns to the menu, I do not know where to start troubleshooting the issue. Do you have any suggestions or tools as to how I can determine why my image only boots on some computers?

scripts.zip

Step 9 - not automatically launching grub

Step 9 - Install packages needed for Live System
I copy/paste the command, but the grub installer does not launch (20.04 source) after running.

Not sure if there's a typo or something i missed

Stuck problem when iso booting

Describe the bug
I want to create a custom iso for Ubuntu 22.04 (jammy) server.
I'm running the script in the order it should be. I am successfully creating an iso. I have not encountered any errors until this step. But after making the iso bootable and going through the installation step, the installation gets stuck on the screen where the services are checked.
it stays in the "dispatcher daemon for systemd-networkd" step and does not jump.

I'm opening a second teminal with ALT+F2. i uninstall the service called neworkd and install it again. And this time he's stuck on the next step after that. I might be doing wrong? I'll be glad if you help.

To Reproduce
Steps to reproduce the behavior:

  1. ./build.sh setup_host
  2. ./build.sh debootstrap
  3. ./build.sh run_chroot
  4. ./build.sh build_iso
  5. Use the iso

Screenshots
chroot

Desktop (please complete the following information):

  • OS: Ubuntu 22.04.1 server

Failure to install on actual PC using EFI

Describe the bug
When installing ubuntu-from-scratch.iso into a virtualbox there is no problem, however when installing into a regular PC, at the end of the installation process I see a dialog with the error starting with "grub-efi-amd64-signed’ package failed to install..." and from this point the installation exits.

I have reproduced the problem on two computers, 1 laptop and 1 desktop PC.
I have reproduced the problem with both "secure boot" enabled and disabled in the BIOS. (the problem does not occur in "legacy mode")
I have reproduced the problem with the latest scripts and at commit cf054a6c9503a021c8ccb8eb0d8207265e564e3c (the last update before script refactoring)

To Reproduce
Steps to reproduce the behavior:
1.Build ISO, write to USB w/ dd
2. select Install Ubuntu from Scratch
3. go through installation process

Expected behavior
installation completes successfully

Additional context
After the failure I checked in /var/log for details regarding the error but didn't find anything.

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.