While I’ve noted many times that I code on my Pixel Slate and my newer Acer Chromebook Spin 13 with 16 GB of memory, all of my coding is on the back-end. Meaning, I typically use Java or Python, along with some APIs and cloud services, to build small apps and complete homework for my Computer Science classes at the local community college.
It hasn’t taken me long to create a setup workflow in this case: Enable Linux in Chrome OS, download and install my preferred development environments, connect them to GitHub and go.
Setting up the same devices for full-stack web development though? I’ve never done that.
Luckily, John Stamp has. He’s a full-stack developer and he recently outlined his entire setup process for web development on a $200 Chromebook. It works well, or well enough, and the same process can be followed on just about any other Chromebook that supports Linux.
From reading the detailed process, which of course, could vary depending on the tools you may want to use, I learned a bunch. Clearly, there are more steps in John’s setup than mine, simply because there are more moving parts.
For instance, after enabling Linux on his Chromebook, John installs NodeJs, NPM, and XAMPP, all of which allow him to create web-based and stand-alone apps using JavaScript and PHP. Those tools are in addition to adding the Nautilus file manager and Atom code editor, both of which are useful for both devs and non-developers alike.
Along the way throughout the process, John shares little tips and tricks that are specific to using a Chromebook and even provides fixes for some of the most common issues you may encounter, such as using an IP address to connect to the Linux container and display errors when trying to run a local webserver.
Clearly, John put a ton of time and effort into this setup process, so if you want to take the plunge and do web development on your Chromebook using Linux, I highly recommend carefully reading his guide.
7 Comments
I have had Ubuntu 16.04 running under Crouton for quite a while on my 64 GB Asus C302, and it runs flawlessly. I thought I would give Crostini a look after reading this article, since the last time I looked, Crostini looked like dukey, with so many missing features compared to Crouton. I looked for a setting to “enable Linux” on the C302 and could not find it. A little Googling confirmed that the Asus C302 is not Crostini enabled. This is insane, my 16 GB Asus C202 IS Crostini enabled, but , with so little storage it did not look like a suitable machine – with Crouton and a bunch of Linux programs, there is under 3 GB storage left. Why was the C302, last year’s Asus flagship Chromebook, left behind? Will it ever be Crostini-enabled? I kind of doubt it, but with Crouton, I guess I really don’t care. A Chromebook in developer mode is at least as secure as any Windows machine.
There’s a known, open bug on the ChromeOS tracker about this, unless you stick to 100% English, you can’t code on Chromebooks.
Apps like VSCode don’t have access to the language switcher, so trying to write code / comments in Spanish, German, Japanese or anything is extremely frustrating. :-/
It’s super low priority, which is why I’m mentioning it here, in the hopes that Google can be nudged to tackle this problem sooner rather than later.
My company just released a nodejs app and npm module called setup-dev-env to automatically detect your platform/os and install a development environment customized for that platform with VSCode, Git, GitKraken, Node, MongoDB, and the main package manager for the platform. It’s been downloaded about 1500 times in the first week it was released, feel free to give it a try when you get tired of setting up manually:
https://github.com/tulaneadam/dev-env-setup
Meant to add that setup-dev-env is free, open source, and supports chromebooks/chrome os (crostini) as a main platform in addition to windows, mac, and linux.
P.S. Big fan of aboutchromebooks.com.
Being very new to ChromeOS, I’m pleased to hear that XAMPP can run on it.
I’m currently running XAMPP on a 9 year old Windows box (via Win11).
I use this for testing website edits locally before actual publishing (it’s great for that).
While that is working perfectly well, I’m anticipating having to transition off of that old hardware.
I have a very new and pretty powerful HP Chromebase unit that I intend to try this on.
Thanks for this information!
I’ve managed to install xampp on my HP Chromebase via John Stamp’s directions
referenced in this article. I have the Apache and ProFTPD severs up and running.
I’m having difficulty logging in via ftp from another machine on the same LAN.
Pretty sure this is due to the different ip address ranges used by ChromeOS and
the Linux container. I know this is not a support forum, but any suggestions on
where to go from here would be appreciated.
Thanks
Some further research indicates that ChromeOS will not allow me to access the XAMPP servers
via a separate machine on the same LAN. That is my desired mode of operating, and so this was
a dead end. I’ve been doing this on a different OS for several years, and it works well for me.
If you are doing your development work entirely on a single Chrome box and in the same Linux
container, it seems like this might still work for you.
The explanation is well described in a Google support post:
Excerpt:
“Every packet from your Linux (Beta) environment goes through two network hops before it ever reaches the physical interface. There’s not a way around this within the constraints of Chrome OS security hardening.”
Full Post:
https://support.google.com/chromebook/thread/59406567/wireless-interface-not-appearing-in-linux-apps-in-chrome-os?hl=en