How to Deploy, Secure, and Automate Full-Stack Web Apps – Course for Beginners
Learn how to take a web application from local development to a secure, live production environment. You will learn how to manually configure an Ubuntu server, set up essential runtimes, establish automated CI/CD pipelines, and secure your site using HTTPS and Cloudflare. By tackling everything hands-on before introducing automation, you will gain a deep, foundational understanding of full-stack deployment and how to reliably host complex systems.⭐️ Links and resources ⭐️
Course handbook and documentation: https://github.com/ImadSaddik/FullStackDeploymentHandbook
Project source code: https://github.com/ImadSaddik/ImadSaddikWebsite
DigitalOcean ($200 free credit): https://m.do.co/c/4f9010fc5eb3
SSH config documentation: https://www.ssh.com/academy/ssh/config
Porkbun domain registrar: https://porkbun.com/
Let's Encrypt: https://letsencrypt.org/
Certbot: https://certbot.eff.org/
Cloudflare: https://www.cloudflare.com/
Nmap network scanner: https://nmap.org/
Pre-commit framework: https://github.com/pre-commit/pre-commit
Pipx: https://github.com/pypa/pipx
GitHub Actions documentation: https://docs.github.com/en/actions
Meilisearch UI dashboard: https://github.com/eyeix/meilisearch-ui
GoAccess log analyzer: https://goaccess.io/
Btop resource monitor: https://github.com/aristocratos/btop
Locust load testing framework: https://docs.locust.io/
NCDU disk usage analyzer: https://dev.yorhel.nl/ncdu/man
OWASP ZAP scanner: https://www.zaproxy.org/
Crontab Guru: https://crontab.guru/
Mozilla HTTP Observatory: https://observatory.mozilla.org/
Security Headers audit: https://securityheaders.com/
Nginx Playground: https://nginx-playground.wizardzines.com/
To connect with Imad Saddik, check out his social accounts:
LinkedIn: https://www.linkedin.com/in/imadsaddik/
YouTube: https://www.youtube.com/channel/UC1VK2jL-sTIBUK2riD0DkKw
❤️ Support for this channel comes from our friends at Scrimba – the coding platform that's reinvented interactive learning: https://scrimba.com/freecodecamp
Links mentioned in the course:
⭐️ Contents ⭐️
- 0:00:00 Introduction
- 0:01:50 Problem statement & philosophy
- 0:06:23 Module overview & roadmap
- 0:16:25 Repo & handbook resources
- 0:17:21 Module 1: Foundation
- 0:20:30 Droplet provisioning
- 0:25:33 SSH keys & ED25519 generation
- 0:35:15 First login & package updates
- 0:40:05 Sudo users & disable root login
- 0:49:56 SSH configs & client shortcuts
- 0:57:00 UFW firewall lockdown
- 1:07:59 Fail2ban defense setup
- 1:14:24 DigitalOcean recovery console
- 1:19:28 Module 2: Application runtime
- 1:21:40 SCP code transfer & permissions
- 1:27:48 Python virtualenv & FastAPI
- 1:34:14 Node.js, NVM & pnpm setup
- 1:38:16 Fix OOM errors with swap memory
- 1:46:53 Local tests via SSH tunneling
- 1:52:01 Gunicorn & Uvicorn workers
- 2:00:46 Supervisord process monitoring
- 2:06:01 Memory & zombie processes via Btop
- 2:21:08 Sync URLs with Vite proxy
- 2:31:58 Nginx reverse proxy installation
- 2:50:28 Fix 502 Gateway & permissions
- 3:01:55 Security headers & CSP
- 3:23:20 Module 3: Data & search
- 3:26:51 Self-host Meilisearch on Ubuntu
- 3:28:30 Standard vs system users
- 3:34:26 DB dumps, snapshots & migration
- 3:41:40 Secure keys & systemd service
- 3:51:55 Seed search & connect FastAPI
- 4:05:40 Automate daily snapshots
- 4:08:45 Meilisearch UI dashboard
- 4:16:52 Module 4: Global delivery
- 4:19:00 Custom domain registration
- 4:23:43 Configure DNS A & CNAME records
- 4:29:07 SSL via Let's Encrypt & Certbot
- 4:36:50 Automate 90-day SSL renewals
- 4:42:09 Cloudflare CDN edge caching
- 4:59:47 Restore real visitor IPs in Nginx
- 5:14:37 Eliminate SPA soft 404 traps
- 5:23:48 Port scanning with Nmap
- 5:29:37 Module 5: Automation pipeline
- 5:34:11 GitHub Rulesets branch protection
- 5:39:14 Local hygiene via pre-commit
- 5:57:31 Modular GitHub Actions CI
- 6:30:07 Software Composition Analysis
- 7:03:15 SAST scanning with Bandit
- 7:13:40 Live Meilisearch integration testing
- 7:26:55 E2E testing via Playwright
- 7:41:48 DAST scanning with OWASP ZAP
- 8:00:43 Frontend build & artifact generation
- 8:03:34 Automated backup & cleanup scripts
- 8:07:28 Passwordless visudo configuration
- 8:11:05 Secrets & manual deployment reviews
- 8:41:35 Sync production files via rsync
- 8:46:26 Dynamic env file generation
- 8:50:26 Atomic venv swap & rollbacks
- 8:58:56 Rolling restarts (Supervisor/Nginx)
- 9:09:23 Module 6: Optimization & maintenance
- 9:10:22 Parsing Nginx logs via GoAccess
- 9:14:58 Password-protected analytics dashboard
- 9:20:51 Solving CSP restrictions via nonces
- 9:29:57 Aggregating compressed logs via zgrep
- 9:33:05 Hourly automated dashboard updates
- 9:34:21 Real-time server monitoring via Btop
- 9:42:26 Block malicious bots with UFW
- 9:50:30 Load testing & latency via Locust
- 10:05:38 Disk usage analysis via NCDU
- 10:08:14 JournalD & Nginx log retention
- 10:10:40 Monthly cron maintenance scripts
- 10:14:10 Scheduled deep DAST scanning
- 10:25:19 Conclusion Receive SMS online on sms24.me
TubeReader video aggregator is a website that collects and organizes online videos from the YouTube source. Video aggregation is done for different purposes, and TubeReader take different approaches to achieve their purpose.
Our try to collect videos of high quality or interest for visitors to view; the collection may be made by editors or may be based on community votes.
Another method is to base the collection on those videos most viewed, either at the aggregator site or at various popular video hosting sites.
TubeReader site exists to allow users to collect their own sets of videos, for personal use as well as for browsing and viewing by others; TubeReader can develop online communities around video sharing.
Our site allow users to create a personalized video playlist, for personal use as well as for browsing and viewing by others.
@YouTubeReaderBot allows you to subscribe to Youtube channels.
By using @YouTubeReaderBot Bot you agree with YouTube Terms of Service.
Use the @YouTubeReaderBot telegram bot to be the first to be notified when new videos are released on your favorite channels.
Look for new videos or channels and share them with your friends.
You can start using our bot from this video, subscribe now to How to Deploy, Secure, and Automate Full-Stack Web Apps – Course for Beginners
What is YouTube?
YouTube is a free video sharing website that makes it easy to watch online videos. You can even create and upload your own videos to share with others. Originally created in 2005, YouTube is now one of the most popular sites on the Web, with visitors watching around 6 billion hours of video every month.