The CodeKits notebook
Ideas into working code.
Practical tutorials, project walkthroughs and development notes. Explore the code, understand the structure, and build something of your own.
18 articles · Newest first

Ubuntu
Deploy React, Node.js and MySQL on One Ubuntu VPS
Deploy React, a Node.js API and MySQL on Ubuntu with Nginx and HTTPS. Includes a captioned video, starter source and PDF command sheets.
· 20 min read
Ubuntu
Debug a service that works only in your shell
Find why a Node app works in your terminal but fails under systemd by checking paths, identity, environment, permissions and service lifecycle.
· 5 min read
Ubuntu
Point a domain at your VPS and debug DNS
Connect a domain to an Ubuntu VPS, compare DNS answers and separate IPv6, certificate and reverse-proxy failures with practical commands.
· 5 min read
Ubuntu
Linux permissions for deployed applications
Diagnose Linux app permissions with ownership, directory traversal and service-account checks, then separate readable code from writable application data.
· 5 min read
Ubuntu
A Linux terminal command sheet for web developers
Learn the Linux commands behind an app deployment: paths, quoting, files, pipes, exit codes and safe inspection, with a small disposable exercise.
· 5 min read
Ubuntu
Manage a Node backend with PM2 on Ubuntu
Run a named Node backend with PM2, verify its account and health, persist the correct startup list, and rehearse targeted restart and rollback.
· 5 min read
Ubuntu
Read Linux network state without guessing
Use ip, ss and local HTTP checks to understand interfaces, routes, listeners and IPv4 versus IPv6 before changing your Ubuntu server.
· 5 min read
Ubuntu
Copy and verify a release with rsync
Copy a reviewed app revision into an inactive VPS release with rsync dry runs, explicit exclusions, checksum comparison and a separate promotion step.
· 5 min read
Ubuntu
Patch Ubuntu with a tested restart plan
Plan Ubuntu updates around backups, package review, controlled restarts and post-reboot checks so maintenance has a clear acceptance and recovery path.
· 5 min read
Ubuntu
From renting a VPS to a production app
Follow a practical Ubuntu VPS learning path: choose a server, deploy a frontend and API, protect MySQL, verify releases and practise recovery.
· 6 min read
Ubuntu
Deploy a frontend, backend and database together
Connect a frontend, API and MySQL through an explicit deployment contract, private credentials, readiness checks and compatible migrations.
· 4 min read
Ubuntu
Diagnose Nginx 502 errors after deployment
Trace a 502 from Nginx to the listening port, systemd process and application logs, then distinguish refusal, timeout and upstream errors.
· 4 min read
Ubuntu
Find Linux ports, processes and systemd services
Trace a Linux listening port to its process and systemd unit, distinguish bindings and connections, and avoid killing the wrong service.
· 4 min read
Ubuntu
Monitor HTTPS certificate expiry and renewal
Check the certificate visitors actually receive, test Certbot renewal separately, and rehearse an expiry alert without breaking HTTPS.
· 4 min read
Ubuntu
Route several apps through one Nginx domain
Route a website, API and WebSocket through one Nginx hostname with explicit prefix handling, forwarding headers and predictable tests.
· 4 min read
Ubuntu
Create server-health alerts with systemd timers
Build a bounded server-health check with deduplicated email alerts, recovery notices and a systemd timer, then test without harming services.
· 4 min read
Ubuntu
Set up an Ubuntu VPS without locking yourself out
Prepare an Ubuntu VPS with a sudo user, tested SSH keys, updates and UFW rules while keeping a working recovery path throughout.
· 4 min read
Ubuntu
Run a website, Node API and MySQL on one VPS
Plan a small single-VPS stack with clear service boundaries, memory and connection budgets, durable storage and a realistic recovery plan.
· 4 min read
