DigitalOcean Droplet: Docker, Nginx, NestJS Setup

Job ID: 38652474

Budget: $30 – $250 USD

I'm looking for an experienced DevOps engineer or developer with deep knowledge of Docker, Nginx, and NestJS to help me set up and troubleshoot current issues on my server (DigitalOcean Droplet).

Server:
• Operating System: Ubuntu
• Hosting: DigitalOcean Droplet.

2. Docker:
• Uses Docker Stack and Docker Compose to manage services.
• Services include multiple backend applications on NestJS, PostgreSQL, Redis, Adminer and Nginx as a reverse proxy.

3 Nginx:
• Configured to proxy requests to backend services.
• Configuration errors related to missing symbolic links and incorrect upstream settings.
4. GitLab Container Registry:
• Docker images are located in a private GitLab registry (registry.gitlab.com/***).
• There are problems accessing images with the latest and v1.0.0 tags: images not found (manifest unknown).
5. NestJS application:
• Returns 404 Not Found error when trying to access routes, for example, /api/offers/find-one.
• Logs show NotFoundException and routing issues.
6. Nginx logs:
• There are multiple errors related to attempts to access non-existent PHP scripts, indicating automated attacks.
• Problems with loading configuration files /etc/nginx/sites-enabled/, causing failures when restarting Nginx.

Required tasks:

1. Docker setup:
• Check and fix docker-compose.yml configuration for correct Docker Stack deployment.
• Make sure that all required Docker images are available in GitLab Container Registry with correct tags.
• If images are missing, help build and load images with the required tags (latest, v1.0.0).
2. Nginx setup:
• Fix Nginx configuration, eliminate errors with missing symbolic links.
• Ensure correct proxying of requests to backend services on NestJS.
• Set up SSL certificates (it is assumed that Let’s Encrypt is used).
3. NestJS App Setup:
• Check and fix routing in the app to avoid 404 Not Found errors.
• Ensure global prefixes and controllers are set up correctly.
4. Security:
• Ensure the server is protected from automated attacks related to attempts to access PHP scripts.
• Configure firewall rules and restrict access to critical routes and files.
5. Documentation and Knowledge Transfer:
• Provide brief documentation of the changes made.
• Provide recommendations for further maintenance of the server and Docker stack.
Related categories: Nginx Ubuntu Docker Backend Development Nest.js