- 68
- 143 097
The Technology Sandbox
United States
เข้าร่วมเมื่อ 15 ก.พ. 2024
Join me as I experiment, tinker, and push the boundaries of what's possible in this ever-evolving digital landscape. From in-depth product reviews and hands-on demonstrations to insightful tutorials and thought-provoking discussions. I'm here to learn and to empower you with the knowledge and tools you need to navigate the exciting world of technology with confidence.
Linux Crash Course | Text Editors - Nano, Vim, Emacs
This video is part of the Linux Crash Course series. This video will continue exploring the Linux File System. In this video I will introduce three common text editors found on Linux systems.
Github Repo: github.com/rcravens/linux-crash-course
Github Repo: github.com/rcravens/linux-crash-course
มุมมอง: 119
วีดีโอ
Laravel Cloud Deployment Open Source Kit
มุมมอง 258วันที่ผ่านมา
‼️ Four Steps From Installation To Deployment ‼️ github.com/rcravens/kit 1️⃣ Installation - git clone github.com/rcravens/kit.git infra - cd infra - ./.code/bin/install.sh 2️⃣ ️Create Development Environment - kit new laravel 3️⃣ Provision Servers - kit make server prod - kit provision prod 4️⃣ Deployments - kit laravel make registry - kit laravel image - kit laravel:prod deploy 5️⃣ Migrations,...
Linux Crash Course | Redirection and Pipes - Output & Input, Chaining Commands
มุมมอง 13614 วันที่ผ่านมา
This video is part of the Linux Crash Course series. This video will continue exploring the Linux File System. In this video I will discuss redirecting stdin, stdout, and stderr. In addition, we will look a chaining commands together using pipes. Github Repo: github.com/rcravens/linux-crash-course
Linux Crash Course | File System - Wildcards, Find, Search
มุมมอง 8121 วันที่ผ่านมา
This video is part of the Linux Crash Course series. This video will continue exploring the Linux File System. In this video you will learn how to search the file system for files or content inside those files. Github Repo: github.com/rcravens/linux-crash-course
Linux Crash Course | File System - Permission
มุมมอง 106หลายเดือนก่อน
This video is part of the Linux Crash Course series. This video will continue exploring the Linux File System. In this video you will learn about permissions and how to secure access to files. Github Repo: github.com/rcravens/linux-crash-course
Linux Crash Course | File System - Create, Copy, Move, Link
มุมมอง 89หลายเดือนก่อน
This video is part of the Linux Crash Course series. This video will continue introducing the Linux File System. In this video you will learn how to create / remove directories, copy / move files, and everything you need to know about links. Github Repo: github.com/rcravens/linux-crash-course
Linux Crash Course | File System Basics - Navigation
มุมมอง 105หลายเดือนก่อน
This video is part of the Linux Crash Course series. This video will introduce the Linux File System. In this video you will learn how to navigate the file system. Github Repo: github.com/rcravens/linux-crash-course
Linux Crash Course | Linux Terminal - Shells, Basics, Help
มุมมอง 58หลายเดือนก่อน
This video is part of the Linux Crash Course series. This video will introduce the Linux Terminal and how to efficiently navigate command history, cursor position, and how to obtain help on any command. Github Repo: github.com/rcravens/linux-crash-course
Linux Crash Course | Introduction - History, Quick Setup
มุมมอง 16Kหลายเดือนก่อน
This video is part of the Linux Crash Course series. This video will discuss the history of Linux and help prepare a sandbox where you can practice as you follow along. Github Repo: github.com/rcravens/linux-crash-course
Code Challenge - Python | CodeWars - Calculating with Functions
มุมมอง 43หลายเดือนก่อน
Challenge URL: www.codewars.com/kata/525f3eda17c7cd9f9e000b39 Software development is about problem solving. It’s not just about writing code, but about understanding the problem at hand, breaking it down into manageable pieces, and finding the most efficient and effective solutions. In this series of videos, we will exercise our problem solving skills. #technologysandbox #codechallenge #codewars
Application Starter Kit With Templates
มุมมอง 9Kหลายเดือนก่อน
Quickly get your development environment up and running with this application starter kit. If you are looking for a bit more flexibility then this might be your solution. Here are some features: 1. Template Based - I want to be able to use the same kit for many different frameworks. So no matter if you are developing in Laravel or Django or just need to spin up a quick MySQL data server, there ...
Language Translation using AI AGENT in Laravel
มุมมอง 7Kหลายเดือนก่อน
Translation and localization can be a bit of a challenge. In this video, I will share with you an Artificial Intelligence (AI) agent that automates the translation workflow. Developers surround any text that should be translated by a special helper method. This automatically enters the text into the translation files. The AI Agent then translates this text into all the supported languages. The ...
Top 5 SECRETS to EXCEL as a Software Developer
มุมมอง 4.2Kหลายเดือนก่อน
‼️ Top 5 SECRETS to EXCEL at Software Development ‼️ In this video I share some insights from my 30 years of professional software development experience that will hopefully help take your skills to the next level. I will detail the following secrets / habits: 1️⃣ Master The Fundamentals 2️⃣ Quality Matters / Ownership Mindset 3️⃣ Embrace Continuous Learning 4️⃣ Understand the Bigger Picture 5️...
Application Starter Kit Simplifies Deployments
มุมมอง 8Kหลายเดือนก่อน
‼️ Four Steps From Installation To Deployment ‼️ 1️⃣ Installation 2️⃣ ️Create Development Environment 3️⃣ Provision Servers 4️⃣ Deployments Stick around after the four steps for bonus content that you do not want to miss! Quickly get your environment up and running with this application starter kit. If you are looking for a bit more flexibility then this might be your solution. Here are some fe...
Ansible - Getting Started | Intro | Basics | Examples
มุมมอง 14K2 หลายเดือนก่อน
In this video, I introduce Ansible by starting with key terminology and a behind-the-scenes look at how it operates. Next, I dive into the concept of inventory while demonstrating some ad-hoc examples using the command line. From there, I gradually introduce more advanced concepts through a series of playbooks, building up to a final playbook that provisions an EC2 instance in the Amazon cloud....
Docker Swarm for Laravel | Step by Step
มุมมอง 11K2 หลายเดือนก่อน
Docker Swarm for Laravel | Step by Step
Docker Swarm | Introduction | Step By Step Examples
มุมมอง 16K2 หลายเดือนก่อน
Docker Swarm | Introduction | Step By Step Examples
Docker Kit For Laravel - Amazon ECR Integration
มุมมอง 6402 หลายเดือนก่อน
Docker Kit For Laravel - Amazon ECR Integration
Docker Kit For Laravel - DEV and PROD Environments
มุมมอง 4923 หลายเดือนก่อน
Docker Kit For Laravel - DEV and PROD Environments
Docker Kit For Laravel (kit facade update) #docker #laravel
มุมมอง 11K3 หลายเดือนก่อน
Docker Kit For Laravel (kit facade update) #docker #laravel
Horizontally Scaling using Amazon Application Load Balancer (ALB) and Auto Scaling Group
มุมมอง 16K3 หลายเดือนก่อน
Horizontally Scaling using Amazon Application Load Balancer (ALB) and Auto Scaling Group
Horizontally Scaling Laravel/PHP In Amazon AWS
มุมมอง 2293 หลายเดือนก่อน
Horizontally Scaling Laravel/PHP In Amazon AWS
Vertically Scaling Laravel/PHP In Amazon AWS
มุมมอง 2114 หลายเดือนก่อน
Vertically Scaling Laravel/PHP In Amazon AWS
Nginx and PHP-FPM Performance Optimization
มุมมอง 5584 หลายเดือนก่อน
Nginx and PHP-FPM Performance Optimization
Scaling Laravel Horizon Workers and Scheduler
มุมมอง 2594 หลายเดือนก่อน
Scaling Laravel Horizon Workers and Scheduler
Amazon AWS ElastiCache Deployment #aws #redis
มุมมอง 1.4K4 หลายเดือนก่อน
Amazon AWS ElastiCache Deployment #aws #redis
Amazon AWS RDS Fully Managed Database Deployment
มุมมอง 1484 หลายเดือนก่อน
Amazon AWS RDS Fully Managed Database Deployment
MySQL Master / Slave Deployment in Amazon AWS
มุมมอง 2385 หลายเดือนก่อน
MySQL Master / Slave Deployment in Amazon AWS
CI/CD - Github 12 Example Workflows #cicd #github
มุมมอง 3625 หลายเดือนก่อน
CI/CD - Github 12 Example Workflows #cicd #github
Bob, you do an amazing job! And these series are real treasure. Thanks you!
This is a bit misleading. "e3" isn't Emacs. It can emulate some of Emacs's keybindings, depending on the command name you use to invoke it. But it can also emulate Vi's keybindings or the keybindings from Pico (precursor to Nano). To install Emacs, you would just run "sudo apt install emacs".
SUBSCRIBED !!!
starts with lots and lots of alphabet soup without any explanation. might be good for experts but not for me
Subscribed
still cant' wrap around the nginx 13: permission denied error
I only discover you today! Absolutely fantastic!
Yay, thank you!
Hi Bob, I like your strcture I came up with the same. Unfortunately I am facing the issues that I like to use a dockerignore file as well and here the problem starts the dockerignbore file need to reside in the build context, which when I use the structure you provided project - code - docker1 - docker2 the build command would look something like that "docker build -f docker1/Dockerfile" with cwd "path/to/proejct" as otherwise the code directory can't be access. Hence the ".dockerignore" file needs to reside in the root folder of the project. I rather would like to have the .dockerignore be combined with the Dockerfile itself. Any recommandations?
In my "kit" project (github.com/rcravens/kit), I use this structure to quickly create new development environments. I haven't specifically used a dockerignore file yet, so maybe I'll run into issues at some point. I'll need to find some time to test this out. In the meantime, this project has templates that separate the infrastructure (docker files) from the application code. Inside the docker-compose files, i am using relative paths to link in the volumes (e.g., "./../../../code/app_name:/var/www/html" in the volumes section). That works just fine. Do relative paths work in the dockerignore file? Like I said, haven't had a chance to try this out yet.
@@thetechnologysandbox Hi Bob, yes relative paths do work in the docker file. Could make things a little annoying in a way. There is also a way to use **/ignoreme*, which essetially ignores all files and folders that match "ignoreme*" in all subfolders of the docker context. Would be nice to have a tag to point to the dockerignore file that should be used OR use the dockerignore file of the same folder the dockerbuild file is located in. Thanks for your answer.
I'm looking into deploying Laravel on Swarm and this is incredbily useful, thank you! I was wondering, how do you handle DB migrations, scheduler, and queue workers in Swarm?
Honestly, not well at this time. That is a loose end that I need to go back and address. It is on my list of things to improve with the "kit" project (github.com/rcravens/kit). What I do currently is not at all "pretty" or "production worthy", but I do this: 1. Use `docker ps ls` (going by memory here...) to determine which node in the swarm is running the Laravel application. 2. SSH into that node. 3. Use `docker exec...` to run get a shell into the running container 4. Manually run the `php artisan migrate` command Painful! I want to get to the point where I can run a "kit command" to run artisan (or any other commands) inside any of the running containers. So something like `kit laravel run node1 php artisan migrate`. Not sure if I will get there, but it seems like it should be possible. If you have any suggestions....I am all ears! Great question. Not such a great answer.
Just thinking out loud...for the "kit run" command, i am probably going to deploy the image, but override the entry-point to allow me to run the desired commands. I do not have it at all worked out, but that will probably be the approach that I'll try.
I don't have it all worked out yet for the "kit run" command, but this process will work: 1. Gain shell access to the manager node. In my case, I have a jumpbox so something like: `ssh -o ProxyCommand="ssh -W %h:%p -i ./servers/larademo/.ssh/larademo-ec2-key-pair.pem ubuntu@54.173.66.115" -i ./servers/larademo/.ssh/larademo-ec2-key-pair.pem ubuntu@10.1.3.51` 2. Login to the container registry. In my case (AWS ECR): `aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 781477923825.dkr.ecr.us-east-1.amazonaws.com` 3. Run the "docker run" command to pull the image, start a container, and execute a command inside the container: `docker run -it 781477923825.dkr.ecr.us-east-1.amazonaws.com/larademo:latest php artisan migrate` I will be working on building out the "kit run <srv> <cmd>" command so that I can eventually do something like: `kit run larademo php artisan migrate` to accomplish this for me. Hope that helps!
Based on the above info, I was able to complete the “kit commands” to run migrations, horizon, scheduler, and what ever else you want to run. The commands look like: kit laravel:prod artisan migrate kit laravel:prod horizon start kit laravel:prod cron start Where “larval” is the application and “prod” is the server being updated. Laravel Cloud Deployment Open Source Kit th-cam.com/video/sUiXx6-mI44/w-d-xo.html
such a good playlist
Thank you!
Nice video!
Thanks!
I'm a beginner, but it looks like we will slightly pay the same cost between all thoses CPUs, I think that's great. For example two t2.micro cost the same and have the same power of one t2.2xlarge. So it is a lot easier for a new platform to just horizontally scaling during peaks with t2.micro then when average number of visitors grows switch to the next CPU capacity, cost should be probably the same. Of course this idea have to be tested on different scenarios. Thank you for your content!
[owner rwx] "They can read, write, and execute things inside that directory." None of that is correct. It means the user (r) can read the list of names and the types of the objects in that directory; (w) can create, rename, and delete objects in that directory; (x) can read the metadata (owner, group, permissions, timestamps) and can change into that directory (which is the (only) requirement for accessing any content). The permissions of a file in that directory determine if you can read, write, and/or execute it (assuming you can reach it (x)). Given that the directory has 750, noone except the owner and the group members can read any of those 644 files. [sudo !!] In general it is better to use the upward arrow key to get the last command line back for editing and prepend it with sudo. [alias] Talking about aliases it would have made a lot of sense to mention that everyone can easily create such aliases for themselves by adding the alias definitions to .bashrc or a dedicated aliases file. [ACL] In a 16min video about filesystem permissions I would have expected that ACL and overriding mount options (ro,noexec) are not explained in detail but at least mentioned.
👍
I would really love to see the website tutorial please 🙏🏽
Amazing video! Thank you so much!
Glad you liked it!
One of the most valuable videos on TH-cam I’ve watched in the last year.
R1,10101010000111100101101
How to handle separate php-fpm pool for other laravel app?
Creating a separate PHP-FPM pool for each application is not too hard. At a high-level, copy an existing www.conf file and name it something like "app_name.conf". Inside the file the variable to edit are: - "[www-data]" change this to be the pool name that you want - "user = www-data" change this the username you want - group = www-data" change this to the group you want - "listen.owner=" and "listen.group=" - update these to the new owner / group - "listen=/run/php/php8.3-fpm.sock" needs to be updated to a unique name i have a bunch of scripts that does this. for example: github.com/rcravens/devops-laravel/blob/master/deploy/create_app.sh#L168 On lines 168-181 I am performing the above actions. But in previous lines, I created the user for the app and other steps. I discuss these scripts here: th-cam.com/video/hK04PYM2X58/w-d-xo.html
can you do one with SystemD support?
Great question. I am currently working on a "Linux Crash Course". Let me see if I can add this to those videos.
B BMh Kl
For me, before watching this video, I usually use Immersive Translate to help me translate multiple languages. But now I am also interested in this new tool. I think I will try it if I can 😂.
Definitely give it a try. Let me know if you have any issues.
@@thetechnologysandbox ljjjfjlgafgphitlhhkhlhugplgg
I love this type of content, so much gems being delivered in such a short time
❤ hmm
What if your app uses a non aws rds database? Would you only create a worker node for the db? How does this work in docker swarm in a non aws environment?
First, thanks for watching! I think you generally have two choices: 1. Put the services (web, db, redis) all in the same Docker Swarm and let them communicate using a shared overlay network. I've done this but haven't create a video about this yet. It is possible. Your production docker compose will just look a lot more like your dev docker compose where it will contain the other services. 2. Isolate each service in their own Docker Swarm or in the case for db / redis maybe you leverage a managed service like RDS or ElastiCache. My recommendation is you put your data in managed services (RDS, ElastiCache) and have your applications deployed in the swarm and connected (via security groups) to the managed services. But if you need to host your own db, then i would choose the architecture that supports the scaling mechanism for this db. For example MySQL can scale out using master / slave configuration where you can have multiple slaves (read-replicas) to support the demand. In this case, I'd probably remove all the Docker / containerization and deploy these directly to EC2 instances that I manage. I would create security groups that allow my application (inside the docker swarm) to connect. I think this was you decouple your app and your db. Just my thoughts....hopefully that makes sense and is helpful!
Also good to see about full linting for code base and connect it to CI/CD and depends bot
At the end I am fond a person who can explain all these things with docker (prod, dev) and CI/CD No one explains it in a real and good way or just some small videos for 0.1 level. Thank you very much. I am creating my own environments for laravel and WordPress for now with infrastructure pattern and I am stuck in GitHub action one of my actions can see vendor files inside. Also, you have your own solution "kit" and it look cool becouse I start do on makefile my commands and now I am thinking about migrating it to your "kit" idea. If it possible can you make some videos about - Git Hub action makes a button for a rollback of a deployed project on the last version or version that we want of project. - Set up staging environment too. Thx for your work.
Thanks for the kind words. I'm hoping to show how the "kit" handles multiple deployment environments (prod, test, stage,...etc) here soon.
Great video with nice explanation. This video have saved me i have been looking for how to connect my laravel website with redis and i was wondering how i could get the redis password. But this video is dope and everything worked out fine for me and i have successfully connected my laravel webssite with redis!
thank you,i successful,this is good class
Could you record a video on how to use AWS for free for new users, what free features are included?
Enjoyed watchig this video, thanks! Very clear explanation, appreciate it
This is so odd, that I followed every steps but keep getting "504 Gateway Time-out" from Nginx .
Update: I had to add the rule to open port 6379
That was going to be my guess. Nice find!
👏
Thanks, helpful videos
Glad you enjoyed!
Hi Bob, thanks for this series. I found it extremely helpful. You are very good at explaining things clearly. I feel like there was no wasted time at all during the series. My only suggestion would be to adjust where the cards are at the end of the videos or make them pop up later. There were a few times where they popped up and covered the last few commands you were typing. Other than that, excellent work and thanks again!!
Thanks for the kind words. I appreciate the feedback. I will pay attention to when those pop up. Lately, I’ve tried to end with a “still shot” that is 10 seconds long to provide TH-cam with open space to place those cards.
Nice Video. How about running the project only in http
In the dev environment, that would not be hard. I think most of the work is in the nginx/web_site.conf file. Just remove the top section that redirects HTTP requests to HTTPS. Then setup the bottom server section to listen on port 80 and remove the two lines setting ssl_certificate and ssl_certificate_key. Something like this (untested): server { listen 80; server_name _ default; root "/var/www/html/public"; index index.html index.htm index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } access_log off; error_log /var/log/nginx/web_site.app-error.log error; sendfile off; client_max_body_size 100m; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors off; fastcgi_buffer_size 32k; fastcgi_buffers 16 16k; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; } location ~ /\.ht { deny all; } }
Thank you so much!!! From Philippines!
You're welcome!
Halo Sir! do you have a space or time to assist individuals on a paid service? i want to deploy my website on aws via Laravel forge. can you assist me please!
Sorry @samahnation, I do not have the time to offer anything like that. I do use forge to deploy to Digital Ocean. It seems pretty straight-forward, but I know deploying to AWS might be different. If I recall, their help at forge was pretty responsive.
@@thetechnologysandbox thank you!
Ok
Thank you so much!
You are welcome!
I cant find the .conf from the github link provided
I assume that you are talking about the "laravel-demo.conf" file that configures nginx to serve the application. For that file, I created it dynamically in the video, but here is a template that is pretty close: github.com/rcravens/devops-laravel/blob/master/deploy/_nginx.conf. This template you will need to replace the following placeholders: PORT with 80, XXXX with 8.3 to get it to function. Once you have it in place, you can run the "nginx -t" command to test the configuration for any issues. Hope that helps!
Subscribed!!
Thanks again for these videos Sir. I was just wondering how these ec2 Instances in the Target Group are different from Worker Nodes that are scaled in a kubernetes cluster?
Great question... I think the difference is on the granularity that makes up one application instance. In this video, each EC2 instance in the target group is build from an AMI an is a single purpose virtual machine that contains full application stack. So one EC2 instance = one application instance. The kubernetes cluster contains master and worker nodes that can host many individual containers (pods). In this case one pod = one application instance. So each k8 worker node is "general purpose" and can hose many applications or many instances of the same application. Another way to think about this is that the auto-scaling group in this video is scaling at the "infrastructure level" and the k8 is scaling at the "application level". You obviously could add more workers to the k8 cluster to scale the k8 infrastructure. In the end, either way works. I have some videos coming out on orchestration using docker swarm, kubernetes, and their managed versions in AWS (ECS, EKS). Hopefully those will also highlight the differences between the approach in this video and orchestration at the application / service level.
@@thetechnologysandbox Very many thanks again Sir. I will certainly be looking forward to the videos that explain the difference between the 2 approaches
Thank you Sir for these videos
You are welcome! Thanks for watching!
Thank you! Good video and I'll probably make a motorcycle tracker with this in a couple of months :)
Sounds like a nice project!
Help please. I have a site written in Laravel in Vuejs, when I want to update from Github I press the git pull command the site does not update, but when I enter the "npm run build" command everything updates but the Amazon Elastic Compute Cloud time on Free tier increases. Is there any way to bypass this so as not to waste additional time?
I’m away for the next couple of days. My guess is that I forgot to add “npm install” and “npm run build” in the docker file. Take a look near the bottom. As those of you don’t see them. Let me know how it goes and I’ll check when I get back in a few days.
I just pushed an updated Dockerfile that now includes the "npm install" and "npm run build" when creating the image using the "kit prod build" command. If I understand the issue, this should fix it. Please let me know. Thanks again for bringing this to my attention.
Why did you switch to this board?
I wanted to play around with a board with the ESP32 chip.
Thank you for the video.
You're welcome
AWESOME! Then, it will be easier implementing Laravel Reverb/WebSocket on the server?
I have Laravel Reverb in my list for future content. I haven't looked into those details yet. Hopefully it works for you, but let me know if you run into any issues.
@@thetechnologysandbox I have no Laravel Reverb project yet now... I'm beginner in Laravel, but I wonder how to implement Laravel Reverb into something like "YT Studio real-time chart" or "Google Analytics real-time visitor counter", in other case like real-time "transactions chart" of a Point Of Sales app. Ok, then, I'll be waiting for your Laravel Reverb content. And that's why I subscribe to your awesome channel.
Thanks you, i can learn more laravel with docker. I hope custom docker image with postgresql and minio.
Great suggestion!
Is it possible to achieve the installation of PHP, Nginx, Composer, NPM via user data while creating ec2 instance ?
Absolutely! This video is part of a introductory series with all the details on how to do this deployment manually. There is a series of 4 videos that talks about "infrastructure as code". The first video in that 4 part series is: th-cam.com/video/7xOpxpdLcfI/w-d-xo.html. You might also be interested in the follow up videos on CI/CD (th-cam.com/video/w3mxNdJPEL8/w-d-xo.html). BTW, the code used for the "devops videos" can be found here: github.com/rcravens/devops-laravel. In this repo, you will find some shell scripts that you can use to provision ubuntu and deploy your application. This is talked about in the above videos. Hope that helps.
@@thetechnologysandbox Appreciate your reply. I managed to get it work after a few days 😅 Out of curiosity, is Nginx and Apache able to sit together under single instances ?