ErrNotes
Real error logs — reproduced, fixed, and written down for developers.
Docker · Linux · Git · GitHub Actions · Cloudflare · nginx
Tools
JSON Formatter
Format and validate JSON
Base64 Encoder / Decoder
Encode and decode Base64
Regex Tester
Test regular expressions in real time
JWT Decoder
Decode JWT tokens in the browser
Timestamp Converter
Unix timestamp ↔ datetime
Cron Checker
Parse cron expressions and preview runs
Articles (127)
- Git Fix: git clone Leaves Submodule Directories Empty and Breaks the BuildAfter git clone, a submodule directory exists but is empty, and npm run build fails with a module resolution error. Here is the cause and how to fix it with git submodule update --init --recursive.
- Git Fix: git clone Leaves Files as Git LFS Pointer Text Instead of Real ContentAfter git clone, files tracked by Git LFS stay as small pointer text (version/oid/size) instead of the real binary content. Here is the cause and how to fix it with git lfs install and git lfs pull.
- Git Fix "remote rejected" on git push: File Exceeds GitHub's 100MB Limitgit push fails with "remote rejected" because a committed file exceeds GitHub's 100MB limit. Here is how to strip it from history with git filter-repo and prevent it from happening again with Git LFS.
- Docker Fix "Found orphan containers" Warning in docker composedocker compose up/down prints "Found orphan containers" and a container for a service you deleted from compose.yaml keeps running. Here is why, and how to clean it up safely with --remove-orphans.
- Git Fix "is already used by worktree" When Running git worktree addgit worktree add fails with "is already used by worktree" even after the directory is gone. Here is why deleting a worktree folder with rm leaves stale metadata, and how git worktree prune fixes it.
- Docker Fix "System has not been booted with systemd" When Starting Dockersystemctl start docker fails with "System has not been booted with systemd as init system" on a lightweight VPS. Here is why PID 1 is not systemd on some hosts, and how to start dockerd directly instead.
- nginx Fix "413 Request Entity Too Large" in nginxnginx rejects a file upload to a reverse-proxied API with 413 Request Entity Too Large even though the backend accepts it directly. Here is the client_max_body_size cause and the fix.
- Git Fix "fatal: not a git repository (or any of the parent directories): .git"How to fix "fatal: not a git repository (or any of the parent directories): .git" in git status or git add, including the common case of downloading a repo as a ZIP instead of cloning it.
- Node.js How to Fix npm EACCES Permission Denied Errornpm install -g pm2 on a DigitalOcean droplet threw EACCES: permission denied - the global prefix was root-owned /usr. Pointing it at the home dir fixed it.
- Node.js How to Fix "EADDRINUSE: Address Already in Use" in Node.jsA restarted nodemon server failed with EADDRINUSE: address already in use :::3000, caused by a zombie node process. lsof -i :3000 plus kill -9 freed the port.
- Node.js How to Fix "JavaScript Heap Out of Memory" in Node.jsA Next.js build on a 1GB VPS died with JavaScript heap out of memory. A 2GB swap file plus NODE_OPTIONS=--max-old-space-size=1536 fixed it for good.
- nginx How to Fix nginx 403 Forbidden Errornginx returns 403 Forbidden though index.html is 644. Cause: a missing execute bit on /home/deploy, found via namei -l and fixed with chmod o+x.
- Git How to Fix a Rejected Git Push (Non-Fast-Forward)git push fails with rejected (fetch first) - looks like a permissions issue, but it is a diverged branch. Fixed with git pull --rebase, then pushing again.
- Docker How to Fix Docker "Permission Denied" on docker.sockdocker.sock returns permission denied when running docker ps without sudo. Why chmod 666 resets after reboot, and the usermod -aG docker fix that persists.
- Node.js How to Fix npm ERESOLVE Dependency Tree ErrorAdding testing-library/react@14 to a React 17 app threw ERESOLVE unable to resolve dependency tree - its peer wants react@18. Downgrading to v13 fixed it.
- Git How to Fix Git Detached HEAD Stategit checkout on an old commit leaves you in detached HEAD; commits vanish from git log after switching branches. Recover them with git reflog and git branch.
- GitHub Actions How to Fix "Permission denied" on git push in GitHub ActionsGitHub Actions git push fails with 403 permission denied to github-actions[bot]. Fix needs both permissions: contents: write and a repo setting change.
- Docker docker compose logs: View and Follow Logs Across Multiple ServicesLearn how to use docker compose logs to view logs from all your services at once. Covers real-time following, filtering by service, and common error fixes.
- Docker docker save / load Command Guide: Exporting and Importing Images as FilesLearn how to export a Docker image to a tar file with docker save and import it with docker load, moving images between hosts without a registry.
- Git git diff Command Guide: How to Review Changes in GitComplete guide to the git diff command. Compare working tree vs staging, review staged changes, diff between commits and branches, and filter by file.
- Docker docker run Command Guide: Key Options and Common ErrorsLearn the docker run command syntax and key options like -d, -p, -v, --name, and --rm, plus fixes for common errors such as containers exiting immediately or port conflicts.
- Linux nohup Command Guide: Keep Processes Running After SSH DisconnectsLearn how to use nohup to keep a process running after your SSH session ends, including output redirection, combining it with & and disown, and common errors.
- Docker docker inspect Command Guide: Viewing Container and Image DetailsLearn how to use docker inspect to view detailed container and image info such as IP address, environment variables, mounts, and health checks, including --format and jq usage.
- Linux lsof Command Guide: Finding Which Process Is Using a Port or FileLearn how to use lsof to find which process is holding a port or file open, troubleshoot port conflicts and busy files, plus installation and common errors.
- Docker docker tag Command Guide: Tagging Images and Pushing to a RegistryLearn how to use docker tag to rename images and add version tags before pushing to Docker Hub or a private registry, including naming rules and common errors.
- Docker docker ps Command Guide: Listing, Filtering, and Formatting ContainersLearn how to list running and stopped containers with docker ps, including the -a, --filter, --format, and size options, plus common errors.
- Docker docker cp Command Guide: Copying Files Between Host and ContainerLearn how to copy files and directories between the host and a Docker container with docker cp, including stopped containers and common permission errors.
- Linux kill Command Guide: How to Terminate Processes with SIGTERM and SIGKILLLearn how to terminate Linux processes with the kill command. Covers the difference between SIGTERM and SIGKILL, when to use pkill or killall, and how to fix "no such process" errors.
- Docker docker stats Command Guide: Monitor Container CPU and Memory Usage in Real TimeLearn how to monitor container CPU, memory, and network usage in real time with docker stats. Covers custom formatting, filtering by container, and logging output over time.
- Git How to Find the Commit That Introduced a Bug with git bisectLearn how to use git bisect to binary-search your commit history and pinpoint exactly which commit introduced a bug, including the automated bisect run workflow.
- Docker Docker Restart Policy Explained: --restart Options for ContainersLearn how to use docker run --restart to auto-restart containers. Covers no, on-failure, always, and unless-stopped, plus how to apply it to running containers.
- Docker docker compose down: Stop and Remove Containers, Networks, and VolumesLearn how to use docker compose down to stop and remove containers. Covers removing volumes and images with practical options and common error fixes.
- Docker How to Use docker system prune to Free Up Disk SpaceLearn how to use docker system prune to remove stopped containers, unused images, volumes, and build cache. Covers all options with practical examples.
- Linux How to Set Environment Variables in Linux (export, .bashrc, Persistent)Learn how to set, view, and persist environment variables in Linux. Covers export command, .bashrc, .bash_profile, and /etc/environment for system-wide settings.
- Docker docker build Command Guide: Build Docker Images from a DockerfileLearn how to use docker build to create images from a Dockerfile. Covers tagging, build context, caching, build args, and multi-stage builds.
- Docker How to Delete Docker Images and Containers (with Examples)How to delete Docker images and containers with docker rmi and docker rm. Covers single deletions, bulk removal, force delete, and common errors.
- Docker docker logs Command Guide: View, Follow, and Filter Container LogsComplete guide to the docker logs command. Learn how to stream logs in real time (-f), limit output (--tail), add timestamps, filter by time, and extract errors.
- Linux How to Parse and Filter JSON with the jq CommandLearn how to use jq to pretty-print JSON from curl responses and extract specific fields with filters. Practical examples included.
- nginx nginx 404 Not Found: Causes and How to Fix ItWhy nginx returns 404 Not Found and how to fix it. Covers root path issues, try_files misconfiguration, file permissions, and alias vs root behavior.
- Docker How to Clean Up Docker Images, Containers, and Volumes (Prune Guide)Remove unused Docker images, containers, volumes, and build cache with docker image prune, docker system prune, and docker rmi. Includes cron automation and FAQ.
- GitHub Actions How to Build and Push Docker Images to Docker Hub with GitHub ActionsLearn how to automate Docker image builds and push to Docker Hub with GitHub Actions. Covers Docker Hub access tokens, Secrets setup, and PR-only build checks.
- Git How to Recover Lost Commits with git reflogLearn how to recover lost commits using git reflog after a git reset --hard or rebase gone wrong. Step-by-step guide with examples.
- Docker How to Manage Environment Variables with .env Files in docker-composeHow to use .env files in docker-compose to manage environment variables safely without hardcoding passwords or API keys.
- nginx How to Set Up Rate Limiting in nginxHow to configure nginx rate limiting using limit_req_zone and limit_req directives to protect against brute force attacks and excessive requests.
- Docker docker exec: Run Commands Inside a Container (with Examples)How to use docker exec to enter a running container, run one-off commands, pass env vars, and debug with practical examples for bash, sh, and docker-compose.
- Linux How to Set Up Aliases in Linux to Speed Up Your Workflow (.bashrc/.zshrc)How to set up aliases in .bashrc or .zshrc to shorten commands on Linux. Practical examples for Git, Docker, and shell functions included.
- Linux How to Keep SSH Sessions Alive with the screen Command on LinuxLearn how to use the Linux screen command to keep processes running after SSH disconnects. Covers session management, key bindings, and common pitfalls.
- nginx nginx location Directive Syntax and Priority GuideA guide to nginx location directive syntax and matching priority. Covers exact match, prefix match, and regex with practical config examples.
- Node.js How to Keep Node.js Apps Running in Production with PM2How to keep Node.js apps running on a VPS using PM2. Covers installation, startup, auto-start on server reboot, log management, and ecosystem config.
- Linux How to Use xargs to Batch Process Files and Input in LinuxA practical guide to the xargs command in Linux. Learn how to combine it with find and grep to delete or process files in bulk.
- Linux How to Extract and Process Text with the awk CommandLearn how to use the Linux awk command to extract columns, filter rows, and aggregate data. Real log analysis examples included.
- nginx How to Check nginx Access Logs and Error LogsA guide to finding and reading nginx access and error logs on Linux. Covers log locations, tail/grep for real-time monitoring, and log format explained.
- Linux How to Use the sed Command for Text Substitution and Editing in LinuxLearn how to use the sed command to substitute strings, delete lines, and extract text in Linux. Practical examples included.
- Linux How to Use ~/.ssh/config to Simplify SSH ConnectionsLearn how to configure ~/.ssh/config with host aliases and IdentityFile settings to manage multiple servers with short SSH commands.
- Linux How to Compress and Extract Files with tar and zip on LinuxCompress and extract files on Linux with tar (-czvf, -xzvf) and zip/unzip, including date-stamped log archives and the --exclude flag for skipping files.
- Linux How to Sync and Backup Files with rsyncExplains rsync -av for incremental backups instead of scp, covering trailing-slash behavior, --delete, --dry-run, and automating backups via cron.
- Linux How to Set Up Swap on Linux (swapfile, enable, check)Fixes VPS OOM Killer crashes on a 1GB RAM server by creating a swapfile with dd and mkswap, enabling it with swapon, and persisting it in /etc/fstab.
- Linux How to Manage Services with systemd (start/stop/enable/status)Manage Linux services with systemctl start, stop, enable, and status, view logs via journalctl, and write a custom systemd unit file for your own app.
- nginx How to Enable gzip Compression in nginxEnable gzip compression in the nginx.conf http block, then verify with curl -H Accept-Encoding: gzip -I and check for content-encoding: gzip in the reply.
- nginx nginx Reverse Proxy Setup: Expose a Node.js App on Port 80/443Set up nginx as a reverse proxy for a Node.js app on ports 80/443 using proxy_pass, add WebSocket upgrade headers, and route multiple apps by domain.
- nginx How to Set Up a Free SSL Certificate on nginx with certbot (Let's Encrypt)Get a free Let's Encrypt SSL cert for nginx with certbot --nginx -d example.com, review the generated config, and test renewal via certbot renew --dry-run.
- Linux Linux UFW Firewall Setup BasicsShows how to configure UFW on a VPS with sudo ufw allow ssh before sudo ufw enable, so you do not lock yourself out, plus port rules and ufw reset.
- Cloudflare Cloudflare Workers Introduction: Building Serverless FunctionsA hands-on intro to Cloudflare Workers: set up Wrangler, write your first serverless function, test locally, and deploy to the edge.
- Docker Docker Network Basics: bridge, host, and noneUnderstand Docker bridge, host, and none networks. Covers custom networks and docker-compose network configuration with practical examples.
- Git git cherry-pick: Apply a Specific Commit to Another BranchUse git cherry-pick abc1234 to bring one commit onto another branch, resolve a CONFLICT (content) error, and undo it safely with git revert.
- Git Git Rebase: How to Keep a Clean Commit HistoryFixes "error: failed to push some refs" after a git rebase, using git push --force-with-lease and resolving conflicts with git rebase --continue.
- Git How to Manage Git Tags and ReleasesHow to create, push, and delete Git tags for version management. Also covers creating a GitHub Release from a tag.
- Git GitHub Issues and Pull Requests: How to Use ThemHow to use GitHub Issues for task tracking and Pull Requests for code review. Covers the basic team development workflow from branch to merge.
- Linux How to Schedule Cron Jobs on Linux for Automated Task ExecutionLearn how to configure cron jobs with crontab on Linux to run scripts automatically. Covers cron expression syntax and log checking.
- Linux Basic curl Command Usage for API TestingLearn how to send HTTP requests with the curl command. Covers GET, POST, headers, authentication, and file download options.
- Linux How to Check Disk Usage on Linux (df and du)Learn how to check disk usage on Linux with df and du commands. Covers checking server free space and identifying large files clearly.
- Linux Linux File Permissions Guide (chmod/chown)Explains chmod numeric modes like 755 and 644, why chmod 600 is required for SSH keys, and how chown -R changes ownership recursively.
- Linux SSH Basics on Linux (How to Connect to a VPS)Learn the basics of SSH connections on Linux: connecting to a VPS, specifying ports, using key authentication, and configuring ~/.ssh/config.
- Linux How to Add and Remove Users on Linux (useradd/userdel)Create a non-root Linux user with useradd -m, set a password, add them to the sudo group with usermod -aG sudo, and remove users safely with userdel -r.
- Docker Set Up Docker on a VPS (Ubuntu)Step-by-step guide to installing Docker and Docker Compose on a VPS running Ubuntu 22.04, including user permissions and firewall setup.
- Windows Top 10 VSCode Extensions for Developer ProductivityTen must-have VSCode extensions including Prettier, GitLens, and GitHub Copilot. Includes extension IDs and setup tips for each.
- Git How to Use git stash to Save Work in ProgressHow to stash and restore uncommitted changes with git stash. Covers list, pop, apply, drop, and clear commands with practical examples.
- nginx nginx 502 Bad Gateway: Causes and How to Fix ItFix nginx 502 Bad Gateway: check for a stopped backend, correct proxy_pass port mismatches, and use Docker service names instead of localhost.
- Cloudflare How to Set Up Cloudflare Analytics on an Astro SiteHow to add Cloudflare Analytics to an Astro site. A free, cookie-free web analytics tool with simple script installation.
- GitHub Actions How to Schedule Workflows in GitHub Actions (cron)How to set up scheduled (cron) triggers in GitHub Actions. Includes UTC time conversion tips and how to also allow manual runs.
- Linux Linux Process Management (ps/kill/top)How to check and kill Linux processes using ps, kill, top, and pkill. Includes how to identify which process is using a port.
- Astro How to Set SEO Meta Tags in AstroHow to add SEO meta tags like title, description, and OGP to your Astro site, including a shared BaseHead component approach.
- Docker Dockerfile Basics: FROM, RUN, COPY, CMD, EXPOSELearn the basic Dockerfile instructions: FROM, RUN, COPY, CMD, and EXPOSE. Includes a build walkthrough and practical example.
- Windows How to Set and Check Environment Variables on WindowsHow to set and verify system and user environment variables on Windows using both the GUI and the command line, including PATH edits.
- Git How to View Commit History with git logLearn how to use git log to view commit history. Covers --oneline, --graph, --since, and other options for readable log output.
- Linux Monitor Linux Logs in Real Time with tail -fHow to use tail -f to monitor Linux log files in real time. Covers filtering with grep, monitoring Docker logs, and common log file paths.
- Node.js How to Use package.json Scripts to Automate TasksHow to define custom commands in the scripts field of package.json and run them with npm run. Includes pre/post hooks and special script names.
- Cloudflare How to Set Up Redirect Rules in CloudflareHow to create redirect rules in the Cloudflare dashboard to redirect old URLs to new ones with 301 or 302 status codes.
- Docker How to Persist Data with Docker VolumesLearn how to use Docker volumes to persist container data. Covers creating, mounting, and managing volumes with practical docker-compose examples.
- Linux How to Search Files with grep and find on LinuxHow to use grep to search file contents and find to locate files on Linux. Covers useful flags and combining the two commands with pipes.
- Astro How to Style Markdown Content in AstroHow to apply CSS styles to Markdown content in Astro using global CSS or the Tailwind typography plugin.
- GitHub Actions Speed Up GitHub Actions Builds with Node.js npm CacheHow to enable npm caching in GitHub Actions with actions/setup-node to reduce CI build times. Includes npm install vs npm ci comparison.
- Windows Set Up Windows TerminalHow to install Windows Terminal and configure it for daily development use. Covers keyboard shortcuts, changing the default shell, and WSL2 integration.
- Docker How to Fix the Docker "Port Already in Use" ErrorFix the Docker port already allocated error. Learn how to find which process is using a port and release it on Windows, Mac, and Linux.
- Git Git Remote Repository Operations (remote/fetch/pull/push)A reference for git remote, fetch, pull, and push commands. Covers checking, adding, and changing remote URLs and understanding the difference between fetch and pull.
- Linux Linux Permission Denied Error: Causes and FixesFixes "bash: ./script.sh: Permission denied" on Linux by running chmod +x, using sudo for root-only commands, or fixing ownership with chown.
- Cloudflare How to Set Environment Variables in Cloudflare PagesHow to add environment variables like API keys in Cloudflare Pages dashboard, and how to reference them in Astro or other frameworks.
- Git How to Resolve Merge Conflicts After git pullHow to identify and resolve merge conflicts that occur after git pull. Step-by-step guide from spotting conflict markers to committing the fix.
- GitHub Actions Managing Secrets in GitHub ActionsHow to store API keys and other sensitive values in GitHub Actions Secrets and reference them securely inside workflow files.
- Docker Docker Basic Commands Cheatsheet (run/stop/rm/ps)Quick reference for docker run, ps, stop, rm, and exec -it, plus the -p host-port:container-port format and why omitting -d runs in the foreground.
- Docker How to Use docker-compose: A Practical GuideSet up docker-compose.yml with nginx and mysql:8, run docker compose up -d and exec, and persist database data using named volumes, not anonymous ones.
- nginx nginx Basic Configuration File GuideA guide to writing nginx config files. Covers the server block, location directives, listen, root, and how to test and reload config.
- Node.js npm vs yarn: Differences and When to Use EachA comparison of npm and yarn covering command syntax, lock files, and speed. Includes a quick-reference command table to help you decide which to use.
- Git Generate an SSH Key and Add It to GitHubStep-by-step guide to generating an SSH key pair and registering the public key on GitHub. Includes connection verification and switching a remote URL to SSH.
- Windows How to Install WSL2 on WindowsInstall WSL2 on Windows with wsl --install, set up your Ubuntu username and password, and access Windows files from Linux via /mnt/c/Users/username/.
- Docker How to Install Docker on Windows and Get It RunningInstall Docker Desktop on Windows via wsl --install, fix BIOS virtualization errors, then verify it works with docker run hello-world.
- GitHub Actions GitHub Actions: How to Set Up Basic Auto-DeploySets up .github/workflows/deploy.yml to auto-run npm install and npm run build on every push to main, using actions/checkout and actions/setup-node.
- Linux Linux Basic Commands Cheatsheet (ls/cd/mkdir/rm)A cheatsheet for core Linux commands like ls, cd, mkdir, rm -rf, cp, and mv, including why rm -rf folder/ is irreversible and must be used carefully.
- Cloudflare How to Read Cloudflare Pages Build Logs and Fix ErrorsHow to open Cloudflare Pages build logs and fix common build errors. Covers the Deployments tab, log navigation, and typical failure causes.
- Git How to Set Up .gitignore and Exclude Files from GitFix a .gitignore that is not excluding already-tracked files: run git rm -r --cached filename, then commit so node_modules and .env stay ignored.
- Node.js How to Clear npm Cache and Fix Install IssuesFix broken npm installs with npm cache clean --force, or do a full reset by deleting node_modules and package-lock.json before running npm install again.
- Astro How to Add a New Page in AstroLearn how to add new pages in Astro using HTML or Markdown, including file placement, routing rules, and how to add links.
- Git Git Branch Commands: Create, Switch, and MergeCreate and switch branches with git switch -c, merge into main, then delete the merged branch with git branch -d in a full feature workflow.
- Windows How to Handle Paths with Spaces on WindowsHow to fix errors caused by spaces in Windows file paths. Covers quoting paths in the terminal and tips for avoiding spaces in project folders.
- Cloudflare How to Check SSL Settings for a Custom Domain on CloudflareHow to check and fix SSL settings for a custom domain on Cloudflare. Covers SSL mode selection and enabling Always Use HTTPS.
- Node.js Manage Node.js Versions with nvm (Windows and Mac)How to install and switch between Node.js versions using nvm on Windows and Mac. Includes .nvmrc setup for per-project version pinning.
- Git How to Install Git on Windows and Configure ItStep-by-step guide to installing Git for Windows and running the initial git config setup including username, email, and default branch name.
- Git How to Undo a Git Commit (Before and After Push)Undo a Git commit four ways: git reset --soft keeps changes, --hard discards them, --amend fixes the message, git revert undoes it after a push.
- Git How to Create a GitHub Repository and Push for the First TimeStep-by-step guide to creating a GitHub repository and pushing a local project to it for the first time.
- Windows npm Command Not Working on WindowsHow to fix 'npm is not recognized' errors on Windows. Covers Node.js installation, PATH setup, and PowerShell execution policy fixes.
- Astro How to Auto-Generate robots.txt and Sitemap in AstroHow to auto-generate sitemap.xml with the @astrojs/sitemap plugin and manually place robots.txt in your Astro site.
- Cloudflare Set Up a Custom Domain on Cloudflare Pages with XserverFull walkthrough for connecting an Xserver domain to Cloudflare Pages as a custom domain — from nameserver change to DNS setup and HTTPS.
- Cloudflare Cloudflare Pages GitHub Auto-Deploy Not Working: How to Fix ItCloudflare Pages stops auto-deploying and shows "disconnected from your Git account"? Re-authenticate GitHub, then force redeploy with an empty commit.
- SEO Google Search Console HTML File Verification with Astro + Cloudflare PagesHow to verify your Astro + Cloudflare Pages site in Google Search Console using the HTML file method, from downloading the file to submitting a sitemap.
- Astro How to Deploy Astro to Cloudflare PagesStep-by-step guide to deploying an Astro site to Cloudflare Pages, including GitHub integration and custom domain setup.
- Cloudflare Change Xserver Nameservers to CloudflareHow to change the nameservers of an Xserver domain to Cloudflare. Step-by-step guide from getting nameserver addresses to confirming Active status.
- Cloudflare How to Fix Cloudflare Pages Disconnected from GitHub (All Error Messages)Fix every Cloudflare Pages GitHub disconnection error — from suspended installations to deleted repos. Step-by-step solutions for all 6 warning messages.