Neko Nik Tech Blog and Projects

website·Indexed 31 days ago

https://www.nekonik.com

A collection of technical guides, software projects, and engineering insights by Nikhil Raj. Content covers Python development, FastAPI templates, Linux system administration, AWS services (EC2, S3, API Gateway), Git workflows, and home server configuration using Raspberry Pi.

Tokens
7.5K
Snippets
43
Records
72
Agent score
60%

What's inside Neko Nik

  1. Overview of FastAPI Template features

    The FastAPI Template is a project starter designed to streamline the development process by providing a robust foundation based on best practices. It includes the following pre-configured features:

    • Clean File Structure: An organized project layout for better readability and maintenance.
    • Virtual Environment Setup: Pre-configured dependency management to prevent conflicts between projects.
    • Production-Ready Deployment Scripts: Bash scripts designed for deploying applications in production environments.
    • Configurable SSL Setup: Options to ensure secure data transmissions via SSL.
    • Logging: Pre-configured logging that saves application details to a file.
    • Web UI for Logs: A user-friendly interface to view and search application logs.
  2. Overview of Ceph distributed storage

    Ceph is a free-software storage platform that implements object storage on a single distributed computer cluster. It provides a unified interface for object, block, and file-level storage. The system is designed to be self-healing, self-managing, and fault-tolerant using commodity hardware, eliminating single points of failure and scaling up to the exabyte level.
  3. Overview of Amazon S3 (Simple Storage Service)

    Amazon S3 is an object storage service designed for high scalability, data availability, and durability. It allows for the storage and retrieval of any amount of data from anywhere on the web. S3 ensures durability by storing data redundantly across multiple devices and facilities and provides security through encryption, access control policies, and data access auditing.
  4. Overview of Amazon API Gateway

    Amazon API Gateway is a fully managed service used to create, publish, and manage APIs at scale. It serves as a 'front door' for applications to expose backend services as secure APIs. Key features include request/response transformation, caching, automatic scaling to handle high traffic, and security integration with AWS Identity and Access Management (IAM) roles and Amazon Cognito.
  5. Overview of LSMTPD SMTP Daemon

    LSMTPD is a minimalistic, high-performance SMTP daemon written in Rust. It is designed to receive incoming emails and automatically forward them to an AMQP (Advanced Message Queuing Protocol) exchange, such as RabbitMQ. This architecture allows developers to build scalable, event-driven email processing pipelines where emails are handled by distributed AMQP consumers.
  6. Overview of Amazon EC2 (Elastic Compute Cloud)

    Amazon EC2 is a scalable virtual machine service that provides secure, resizable compute capacity in the cloud. It allows users to provision virtual servers called 'instances' and scale capacity up or down based on application needs. Key capabilities include elasticity for rapid scaling, a variety of instance types (general-purpose, memory-optimized, or GPU), and security integration via Virtual Private Cloud (VPC) and security groups.
  7. Overview of FastAPI Template features

    The FastAPI Template is a project boilerplate designed to reduce initial setup time for FastAPI applications. It provides a robust foundation adhering to best practices, including:

    • Clean File Structure: An organized directory layout for better readability and maintenance.
    • Virtual Environment Setup: Pre-configured dependency management to prevent environment conflicts.
    • Production-Ready Deployment: Included bash scripts for deploying the application to production environments.
    • Secure Connections: Configurable SSL setup options for data integrity.
    • Logging & Monitoring: Pre-configured logging that saves details to a file, accompanied by a web-based UI for searching and viewing logs.
  8. Architecture of the server update automation project

    The project uses a Master-Slave architecture to automate server updates and configuration management, utilizing a Git repository as the source of truth for JSON-based configuration and schema files. The update process is triggered via a webhook, which prompts the Master Server to instruct Slave Servers to apply updates to the target servers.
    Git Repository (JSON Configs/Schemas) ⮕ Webhook ⮕ Master Server ⮕ Slave Server(s) ⮕ Target Servers
  9. Neko Nik's technical expertise and stack

    Neko Nik is a software engineer specializing in Python programming and Full Stack development. The technical stack includes React.js, FastAPI, CSS, and Git. Additionally, there is extensive expertise in computer hardware, Ubuntu/Linux, operating systems, and the Linux kernel for system-level programming.
  10. Auth-N Security and Authentication Features

    Auth-N is an authentication API that provides the following security and management capabilities:

    • User Management: Handles registration, login, and logout processes.
    • Role-Based Access Control (RBAC): Allows definition of user roles and permissions for granular access control.
    • Password Policies: Supports password reset and change functionalities.
    • Multi-Factor Authentication (MFA): Supports passwordless login and two-factor authentication (2FA).
    • Enhanced Security: Implements JWT token authentication, IP-based restrictions, and CSRF protection.
    • Audit Logging: Tracks user actions and system activities.
    • Integration: Supports API key authentication and machine-to-machine communication.
  11. JSON Viewer and Editor feature overview

    The JSON Viewer and Editor is a lightweight tool designed for viewing and editing JSON files. Key capabilities include:

    • Formatting: Beautify JSON with indentation/line breaks or Minify by removing whitespace.
    • File Management: Open JSON data from a file, download data as a file, or edit and save as a new file.
    • Visualization: View JSON data as a tree structure for easier navigation of large files.
    • Data Manipulation: Copy the entire JSON payload or specific single items/objects to the clipboard.
    • Analysis: Count the number of items in the JSON data and identify the data type of each item.
    • Validation: Perform loose JSON validation to check for structural validity without validating specific values.
  12. Identify the process ID (PID) using a specific port

    To find which process is using a specific port, use netstat or ss. These commands list active connections and listening ports, allowing you to identify the Process ID (PID) associated with the target port.
    # Using netstat
    sudo netstat -tuln
    
    # Using ss (modern replacement for netstat)
    sudo ss -tuln