Posts

Showing posts with the label docker

All Practice Series

Image
Introduction This is a comprehensive page about the technologies I have shared in series format. You can view brief introductions and links to directly access each series you are interested in. In the field of software development, to deploy a product from the initial idea to its release, the standard process typically involves several stages as follows: Database : Designing and implementing the database according to business requirements, storing data during the system's operation. Backend : Handling the main logic of the system, communicating with the database and services. Frontend : Building the interface for users to interact with the system, which could be a desktop, mobile, or web application. This usually includes implementing UI/UX and integrating APIs from the backend. DevOps : Deploying the system for use, which can be done on a server or in the cloud. Testing : Applying testing methods to ensure the product meets the standards for release. Of course, these are just stan...

Anti-spam requests with Nginx, NextJS and NestJS

Image
Introduction In the previous article, I provided instructions on using NextJS Proxy to check API rate limits simply. However, that application method has the following scalability flaws: Using lru-cache only stores data in memory, so when scaling to multiple pods, the rate limit check will be incorrect because pods do not share data with each other. In actual deployment, you rarely let the NextJS server receive requests directly like that, but instead use additional CDNs (Cloudfront, Nginx) to take advantage of edge locations and their data caching capabilities. Therefore, in this article, I will provide a more comprehensive implementation from CDN, NextJS and NestJS servers to handle request spamming, including: Blacklist: automatically block IPs marked as attacking the system. Whitelist: add static IPs and only allow these IPs to use important services, such as allowing partner IPs to use services or deploying internal services accessible only via company VPN. Rate Limit: limit the n...

Instructions for installing MinIO with Docker

Image
Introduction MinIO is a high-performance, open-source Object Storage system that is fully compatible with the Amazon S3 API. Key advantages include ultra-fast data processing speeds, a lightweight cloud-native architecture, easy scalability, and high security with advanced data encryption capabilities. Detail First, create a docker-compose.yml file with the following content, changing the YOUR_ACCESS_KEY and YOUR_SECRET_KEY values to suit your needs: services : minio : image : quay.io/minio/minio:latest container_name : minio-dev ports : - "9000:9000" - "9001:9001" environment : MINIO_ROOT_USER : YOUR_ACCESS_KEY MINIO_ROOT_PASSWORD : YOUR_SECRET_KEY volumes : - minio_data:/data command : server /data --console-address ":9001" volumes : minio_data : Run the docker container as follows: docker-compose up -d If you want to use an interface for easier management, you need to install the MinIO Client (...