# Nife Documentation — llms-full.txt # https://docs.nife.io # Full text content of all Nife platform documentation pages. # Generated automatically — do not edit manually. # Nife is a multi-cloud deployment and edge orchestration platform for Kubernetes. --- ## Introduction to Nife | Multi-Cloud Deployment Platform URL: https://docs.nife.io/Introduction/Nife `} Nife is a developer-friendly serverless platform designed to simplify the management, deployment, and scaling of applications globally. Unlike traditional cloud deployment models, Nife runs applications close to end-users — reducing latency, bandwidth costs, and performance overhead at the edge. ### Who Is Nife For? Nife is built for developers and businesses that need a streamlined way to deploy and scale applications globally, without managing underlying infrastructure or dealing with the performance penalties of centralized cloud regions. ### Benefits of Using Nife - **Proximity to End-Users:** Deploy applications close to your users, minimizing latency and improving experience. - **Simplified Deployment:** Fast, continuous deployments with a built-in versioning framework to manage applications effectively. - **Serverless Architecture:** Run web applications, APIs, and event-driven functions without managing servers or underlying infrastructure. - **Global Scalability:** Deploy across multiple locations in North America, Latin America, Europe, and APAC using an intelligent load balancer with rule-based geo-routing. ### Key Features of Nife Developer-Friendly Simple interface and workflows designed for shipping fast, with straightforward processes for deploying and managing applications. Serverless Functionality Focus on your code, not infrastructure — Nife handles all underlying platform management automatically. Intelligent Load Balancing Rule-based geo-routing ensures optimal performance and scalability across regions worldwide. --- ## Explore the Nife Platform - 🌐 [nife.io](https://nife.io) — Learn about the full Nife edge cloud platform - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in and start deploying - 📦 [OpenHub](https://openhub.nife.io) — Deploy open source apps in one click ([browse OpenHub guides](/Guides/Openhub)) - 🛠️ [Free Developer Tools](https://freetools.nife.io) — PDF, QR, JSON, URL tools and more - 📝 [Nife Blog](https://blog.nife.io) — Tutorials, DevOps guides, and cloud insights ### Supported Tech Stack [Request a demo](https://nife.io/contact-us) to see how Nife can transform the way you deploy and manage applications globally. --- ## Deploy Your First App on Nife | Docker Container Deployment Guide URL: https://docs.nife.io/Quick-Start/Deploy-First-App Everything you need to know to deploy an application using a Docker image on Nife. Nife natively supports pre-built container images. With containers, you can embed all the system dependencies your app needs — Nife handles the rest. Deploying a containerized app takes just a few minutes. ## Deploy the First Service of Your App Nife organises workloads into **Apps**. Each App can run one or more Docker-based Services, and each Service can be deployed across multiple global regions. You can read more in the [App Management Overview](/UI-Guide/Apps-&-their-Management/App-management/Overview). When you deploy a Service on Nife, you have a few customizable settings. All settings can be updated after the initial deployment. ### Step 1 — Choose Your Docker Image Enter the Docker image you want to deploy. Use a specific tag (not `latest`) to make upgrades and rollbacks traceable. If needed, you can override the default command and arguments of your Docker image from the configuration screen. ### Step 2 — Deploy from a Public Registry To deploy from a public registry, reference the full image path including the domain: ```text registry.registrydomain.tld/IMAGE_NAME:TAG ``` For example, to deploy from Docker Hub: ```text docker.io/myorg/myapp:v1.0.0 ``` Want to try it with a real example? [Follow the Docker deployment tutorial](/deploy/docker/openrtist). ### Step 3 — Deploy from a Private Registry To pull from a private registry, Nife needs credentials stored as a secret. You can create registry secrets from the **Settings → Variables** tab. Learn more: [Private Container Registry Secrets](/Quick-Start/Private-Registry). ## Configure Your Service Once the image is set, configure the following before deploying: - **Ports** — set the network port(s) your application listens on - **Environment variables** — add any runtime config your app needs - **Secrets** — attach registry or API secrets securely - **Regions** — select one or more global locations where your service will run ## Deploy and Check Status After clicking **Deploy**, you are redirected to the service page. From there you can: - Access your app via its public URL (if exposed publicly) - View individual nodes, their regions, and health status - Check the **Logs** tab if any nodes are unhealthy or deployment is failing :::tip If your deployment is failing, check the Logs panel first. Common causes are incorrect port configuration, missing environment variables, or a private image without a registry secret attached. ::: ## Related Resources - 🚀 [Launch Dashboard](https://launch.nife.io) — Open the Nife dashboard and start deploying - 📦 [Docker Deployment Tutorial](/deploy/docker/openrtist) — Step-by-step example with a real app - 🔐 [Private Registry Secrets](/Quick-Start/Private-Registry) — Connect to private image registries - 🌐 [nife.io](https://nife.io) — Learn more about the Nife platform --- ## Deploy Static Sites with GitHub Actions | Nife URL: https://docs.nife.io/Quick-Start/Deploy-Site-With-Git Learn to deploy static sites using GitHub Actions with Nife. Automatically deploy your site on every push to GitHub with just 3 simple steps. --- ## Overview Setting up automated deployments for your static site on Nife takes just 3 steps: 1. **Deploy Your Site** - Get your site live on Nife 2. **Setup GitHub CI/CD** - Configure automatic deployments 3. **Verify & Monitor** - Confirm everything is working Let's get started! --- ## Step 1: Deploy Your Site Before setting up GitHub CI/CD automation, your site needs to be deployed to Nife for the first time. ### Option A: Deploy Using Nife Dashboard 1. Head to [launch.nife.io](https://launch.nife.io/) and create an account (or log in). 2. From the left navigation menu, go to **Applications**. 3. Open the **Sites** tab. 4. Click **New Site**. 5. Provide your GitHub repository URL and select the branch you want to deploy. 6. Configure your deployment settings, such as the framework, build requirements, install command, build command, and build output directory. 7. If your repository is private, provide the required authentication details. 8. Click **Deploy Site** Your site is now live on Nife! ### Option B: Deploy Using nifectl CLI Run the deployment command: ```bash nifectl site deploy ``` When prompted, provide: - **Site name** - Name your static site - **Source code** - Your GitHub repository URL (e.g., `https://github.com/username/my-site`) - **Build directory** - Where your built files are (e.g., `dist/`, `build/`, `public/`) The CLI will automatically create your `nife.toml` configuration file and deploy your site. ### What Happens Next After deployment: - ✅ Your site is live with a Nife URL - ✅ A `nife.toml` configuration file is created - ✅ You're ready to set up GitHub CI/CD --- ## Step 2: Setup GitHub CI/CD Now that your site is deployed, configure automatic deployments on every GitHub push using Nife Dashboard's guided setup. ### Access CI/CD Setup in Nife Dashboard 1. Log in to [launch.nife.io](https://launch.nife.io/) 2. Go to your **Site** 3. Look for **Setup GitHub CI/CD** button 4. Click it to open the guided setup ### Follow the 3 Steps in Dashboard The Nife Dashboard will guide you through 3 simple steps: **Step 1: Configure Workflow** - Download the GitHub Actions workflow template from the dashboard - Or copy this workflow to your repository as `.github/workflows/deploy-site.yml`: ```yaml name: Deploy Site to Nife on: push: branches: - main - master jobs: deploy: name: Deploy to Nife runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Deploy Site to Nife uses: nifetency/nife-actions@2.4 env: NIFE_ACCESS_TOKEN: $} with: args: "site redeploy --yes" ``` This workflow automatically deploys your site on every push to `main` or `master` branches. **Step 2: Download nife.toml** Before downloading, add your GitHub repository URL: 1. In the dashboard, locate the **Git URL** input field 2. Enter your GitHub repository URL: ``` https://github.com/your-org/your-repo ``` 3. The dashboard will auto-populate the `nife.toml` configuration with your git URL 4. Click **Download nife.toml** 5. Save the file to your repository root 6. Commit and push to GitHub: ```bash git add nife.toml git commit -m "Add Nife site configuration with GitHub URL" git push ``` The `nife.toml` file now contains your site configuration with the git URL automatically set for deployments. **Step 3: Add Nife Access Token** - Generate an API token from the dashboard - Add it as a GitHub Secret named `NIFE_ACCESS_TOKEN` - The dashboard provides step-by-step instructions ### Commit Everything to GitHub Once you've completed all 3 steps, commit your changes: ```bash git add .github/workflows/deploy-site.yml nife.toml git commit -m "Setup Nife GitHub Actions CI/CD" git push ``` GitHub Actions is now configured and ready to deploy automatically! --- ## Step 3: Verify & Monitor Test your setup and confirm everything works. ### Trigger Your First Deployment Make a test commit to trigger the workflow: ```bash # Make a small change echo "# Site updated" >> README.md # Commit and push git add README.md git commit -m "test: verify GitHub Actions deployment" git push ``` ### Monitor the Deployment 1. Go to your GitHub repository 2. Click **Actions** tab 3. Watch your workflow run in real-time 4. See deployment status and logs **Workflow should show:** - ✅ Checkout code - Success - ✅ Deploy Site to Nife - Success - 🟢 Workflow complete ### Verify Site Updated 1. Go to [launch.nife.io](https://launch.nife.io/) 2. Click on your **Site** 3. View the live URL 4. Check that your changes are live **Congratulations!** Your site now deploys automatically on every push! 🎉 --- ## How It Works Here's what happens when you push code: ``` 1. You push to GitHub (main/master branch) ↓ 2. GitHub Actions workflow triggers automatically ↓ 3. Checkout your repository code ↓ 4. Execute "site redeploy --yes" command ↓ 5. Nife reads nife.toml configuration ↓ 6. Pulls latest code from GitHub ↓ 7. Runs build command (npm run build, etc.) ↓ 8. Deploys built files to Nife ↓ 9. Site is live with your changes (seconds later) ``` --- ## Supported Frameworks Works with any framework that produces static files: - **React** - `npm run build` - **Vue** - `npm run build` - **Next.js** - `npm run build` - **Astro** - `npm run build` - **Jekyll** - `jekyll build` - **Hugo** - `hugo` - **Gatsby** - `gatsby build` - **Eleventy** - `eleventy` - **Svelte** - `npm run build` - **Static HTML** - No build needed --- ## Troubleshooting ### Workflow doesn't trigger - Verify `.github/workflows/deploy-site.yml` exists - Check file is committed and pushed to GitHub - Ensure workflow is on correct branch (`main` or `master`) ### "NIFE_ACCESS_TOKEN not found" error - Go to GitHub Settings → Secrets and verify token exists - If missing, add it again from Nife Dashboard - Make sure secret name is exactly `NIFE_ACCESS_TOKEN` ### "Site not found" error - Verify site exists in Nife Dashboard - Check `nife.toml` is in repository root - Ensure site name in `nife.toml` matches Nife Dashboard - Verify `git-url` points to correct GitHub repository ### Site doesn't update after push - Check GitHub Actions logs for errors - Verify `git-url` and `git-branch` in nife.toml are correct - Ensure build command works locally: `npm run build` - Check that output directory matches `output` field in nife.toml ### Deployment timeout - Check if site is very large - Review GitHub Actions logs for details - Increase timeout in workflow: `timeout-minutes: 15` --- ## Best Practices ✅ **Keep nife.toml in Git** - Version control your deployment configuration ✅ **Use meaningful commits** - Track what changed in each deployment ✅ **Test locally first** - Run build command before pushing ✅ **Protect main branch** - Require reviews before merging ✅ **Monitor deployments** - Check Actions tab after pushing ✅ **Regenerate tokens** - Update tokens every 30-60 days ✅ **Use specific build commands** - Ensure correct output ✅ **Verify output directory** - Match `output` field in nife.toml --- ## Environment Variables If your build needs environment variables: 1. Go to GitHub repository Settings 2. **Secrets and variables → Actions** 3. Add variables like `REACT_APP_API_URL` 4. Reference in your code normally 5. GitHub Actions automatically includes them in deployments --- ## Next Steps Your static site is now set up for automated deployments! What's next? 1. **Deploy more frequently** - Push updates without manual steps 2. **Add environment variables** - Store secrets securely 3. **Scale to multiple sites** - Deploy multiple sites with Nife 4. **Monitor performance** - Use Nife dashboard to track metrics 5. **Set up alerts** - Get notified of deployment issues --- ## More Resources - [Nife Documentation](https://docs.nife.io/) - [GitHub Actions Documentation](https://docs.github.com/en/actions) - [Nife CLI Site Reference](/CLI/site) - [Static Site Deployment Guide](/Quick-Start/Deploy-First-App) --- © [Nife](https://nife.io/) - Deploy anything, anywhere --- ## Deploy with Git Actions on Nife | GitHub CI/CD Integration URL: https://docs.nife.io/Quick-Start/Nife-GIT-Actions Learn to deploy actions using Git Actions --------------------------------------------------------------------------------------------- ## Continuous Deployment Using Nifectl (CLI) with GitHub 1. Ensure that your project code is available on GitHub.. 2. Get a Nife API token with nifectl auth token or login to the UI and fetch the Token 3. Go to your newly created repository on GitHub and select Settings. 4. Go to Secrets and create a secret called `NIFE_ACCESS_TOKEN` retrieved in Step Two 5. Clone the repository to your local machine to edit it 6. Create .github/workflows/main.yml with these contents ```yaml name: Deploy to Nife on: [push] jobs: deploy: name: Deploy proxy runs-on: ubuntu-latest steps: # This step checks out a copy of your repository. - uses: actions/checkout@v2 # This step runs . - uses: nifetency/nife-actions@2.4 env: NIFE_ACCESS_TOKEN: $} with: args: "deploy --remote-only" ``` 7. Commit your changes and push them up to GitHub. The next changes and pushes will trigger based on the workflow. In this case, new images will be automatic deployed 8. Monitor the Action Tabs in the project repository to view the logs. ## Continuous Deployment Using Nife-Deploy(UI) with GitHub 1. Add your Github PAT Here: [https://launch.nife.io/settings/token](https://launch.nife.io/settings/token). (If you need assistance obtaining Github PAT, refer to our [step-by-step guide](/UI-Guide/Variables/Github-PAT).) 2. Deploy your application using code deployment. [Know more](/UI-Guide/Apps-&-their-Management/Deployment-Types) 3. Copy your Nife API token from [https://launch.nife.io/settings/token](https://launch.nife.io/settings/token), go to your repository on GitHub, select **Settings**, navigate to **Secrets**, and create a new secret called `NIFE_ACCESS_TOKEN`, then paste the copied access token. 4. Clone the repository to your local machine to edit it. 5. Download the `Config.toml` file from your app configuration page and rename it to `nife.toml`. 5. Edit the your app toml file + Attach `/archive/refs/heads/main.zip` to your GitHub link: ```toml github = "/archive/refs/heads/main.zip" ``` + Relpace build part ```toml [build] builtin = "GitHub" ``` 7. Move the `nife.toml` file to the root folder of your project, then commit and push it to GitHub. 8. Open your app's **Scale** section. [Know More](/UI-Guide/Apps-&-their-Management/App-management/Scale). Click on **Integrate CI/CD with GitHub** and then click on `Commit`. This pushes the `main.yaml` file to GitHub, which will trigger the workflow. New images will be automatically deployed upon successful completion. 9. Monitor the **Actions** tab in your GitHub repository to view the logs. ## More Find [GitHub Actions on MarketPlace](https://github.com/marketplace/actions/github-action-for-deploying-on-nife) Learn More [GitHub Actions Documentation](https://help.github.com/en/actions) --- ## Nife CLI Installation Guide | nifectl Setup URL: https://docs.nife.io/Quick-Start/nifectl-Installation Installing the Nife CLI to deploy serverless applications from the terminal. You can install it using the installers below, or download a release binary from the GitHub releases page. macOS Linux Windows GitHub ## Linux and macOS 1. Launch the terminal. 2. Run the command: ```bash curl -L https://api.nife.io/release/install.sh | sh ``` This creates a .nife folder and adds it to the PATH variable. ## Windows 1. Launch the command prompt. 2. Run the command: ```powershell iwr https://api.nife.io/release/install.ps1 -useb | iex ``` ## GitHub If you want to install it directly from GitHub, download it from the [Nife GitHub releases](https://github.com/nifetency/nife-release/releases/latest). ## Homebrew If you use Linux or macOS, you can install using Homebrew. Set up the brew tap: ```bash brew tap nifetency/homebrew-tap ``` Install the CLI directly from Homebrew: ```bash brew install nifetency/tap/nifectl ``` You can manage all upgrades to the CLI from the Homebrew Tap. ## Nife UI You can download nifectl directly from our UI [here](https://launch.nife.io/settings/libraries). ## Related Resources - 🛠️ [Free Developer Tools](https://freetools.nife.io) — Useful tools for developers - 🚀 [Launch Dashboard](https://launch.nife.io) — Open the Nife dashboard - 🌐 [nife.io](https://nife.io) — Learn more about Nife --- ## Install Nife Monolith Agent on Standalone Servers URL: https://docs.nife.io/Quick-Start/Monolith-Agent-Installation Learn how to install the Nife Monolith Agent on your standalone servers. This guide walks you through deploying applications on your own hardware using the BYOH (Bring Your Own Hardware) approach. --- ## What is Monolith Agent? The Nife Monolith Agent is a lightweight service that runs on your servers, allowing Nife to manage and monitor your applications. It enables you to use Nife's platform with your own infrastructure—bringing flexibility, control, and cost efficiency. **Key Benefits:** - Deploy applications on your own servers - Full control over your infrastructure - Use Nife's management and monitoring features - Seamless integration with your existing hardware - Support for multiple servers and scaling --- ## Prerequisites Before installing the Monolith Agent, ensure you have: - A standalone server (physical or cloud-hosted) - Supported OS: **macOS**, **Linux**, or **Windows** - **Root/Administrator Access Required:** - **Linux:** `sudo` access or root user privileges (required for installation) - **Windows:** Administrator privileges (must run as Administrator) - **macOS:** Administrator/sudo access - Network connectivity to Nife API servers - At least 2GB RAM and 10GB disk space - Port 5050 available (default agent port) --- ## Step 1: Download the Installer The first step is downloading the Monolith Agent installer for your operating system. ### Access the Installation Wizard 1. Log in to [launch.nife.io](https://launch.nife.io/) 2. From the left navigation menu, go to **Virtualmachines→ Standalone Servers** 3. Click **Add Server** button 4. The installation wizard opens ### Download for Your Operating System Choose your operating system: **For macOS:** ```bash # Download the macOS installer # Run the downloaded .pkg file # Follow the installation prompts ``` **For Linux:** ```bash # IMPORTANT: Installation requires sudo access # Download the Linux installer # Install with sudo: sudo bash ./monolith-agent-linux.sh # Or use the command-line installation script with sudo: curl -L https://api.nife.io/release/monolith/install.sh | sudo sh ``` ⚠️ **Note:** Linux installation requires `sudo` privileges or root user access. You will be prompted for your password during installation. **For Windows:** ```powershell # IMPORTANT: Run PowerShell as Administrator # Right-click PowerShell icon and select "Run as Administrator" # Download the Windows installer # Double-click the .exe file to run as Administrator # Or use the PowerShell installation script (as Administrator): iwr https://api.nife.io/release/monolith/install.ps1 -useb | iex ``` ⚠️ **Critical:** Windows installation requires **Administrator privileges**. 1. Right-click PowerShell or Command Prompt 2. Select "Run as Administrator" 3. Run the installer script If you try to install without Administrator rights, the installation will fail. ### Installation Details The installer will: - ✅ Download the Monolith Agent binary - ✅ Configure the system service - ✅ Start the agent service on port 5050 - ✅ Enable automatic startup on server reboot **Installation Port:** The agent runs on port 5050 by default and needs network connectivity to Nife API servers. --- ## Step 2: Add Server IP Access After the installer finishes, you need to register the server in Nife by providing its IP address and a name. ### Server Registration Form Fill in the following details: **Server Name** - Enter a descriptive name for your server (e.g., `prod-server-1`, `api-host`, `web-01`) - Use lowercase letters, numbers, and hyphens - Make it meaningful for easy identification - Example: `prod-server-1` **Server IP Address (with port)** - Enter the IP address and port of your server - Format: `IP:PORT` (e.g., `43.204.217.109:5050`) - Make sure port 5050 is accessible from the internet - If using a different port, update accordingly - Example: `43.204.217.109:5050` ### Steps to Add Server 1. In the **Standalone Server Management** dashboard 2. Click **Add Server** button 3. Complete **Step 1: Download the Installer** (already done on your server) 4. In **Step 2: Add Server IP Access**, enter: - **Server Name:** `prod-server-1` - **Server IP Address (with port):** `43.204.217.109:5050` 5. Click **Add Server** button 6. Wait for connection verification --- ## Step 3: Verify Server Connection After adding the server details, Nife will attempt to connect to your server. ### Connection Status The dashboard shows server status: - **Active** - Server is running and connected to Nife - **Inactive** - Server is not reachable or agent is not running - **Offline** - Server was previously connected but is now unreachable ### Viewing Server Details Once connected, you can: - **View Details** - See server information, logs, and metrics - **Monitor Resources** - Check CPU, Memory, and Disk usage - **Manage Services** - Start, stop, and restart services - **View Metrics** - Monitor performance and health ### Server Information Displayed - **Server Name** - Custom name you assigned - **IP Address** - Server's IP and port - **Status** - Connection status (Active/Inactive) - **CPU Usage** - Percentage of CPU utilized - **Memory Usage** - RAM consumption - **Disk Usage** - Storage utilization - **Services** - Running services count - **Last Updated** - Last status check timestamp --- ## Managing Your Standalone Servers ### Dashboard Overview The **Standalone Server Management** dashboard provides: **Server Cards** - Each server shows: - Server name and status - IP address and port - Real-time metrics (CPU, Memory, Disk) - Service count - Quick actions (View Details, Edit, Delete) **Quick Actions** - **Refresh** - Update all server statuses - **Add Server** - Register a new server - **View Details** - See full server information - **Edit** - Modify server settings - **Delete** - Remove server from Nife ### Monitoring Server Health 1. Check the dashboard regularly 2. Monitor CPU, Memory, and Disk usage 3. View logs for any issues 4. Set up alerts for critical metrics 5. Review service status ### Scaling with Multiple Servers You can register multiple servers: 1. Repeat the installation process on each server 2. Assign unique names to each server 3. Monitor all servers from one dashboard 4. Deploy applications across servers 5. Load balance with multiple servers --- ## Deploying Applications Once your server is registered and active, you can deploy applications: 1. Go to **Applications** 2. Click **Create New Application** 3. Select **Standalone Server** as deployment target 4. Choose your server from the list 5. Configure application settings 6. Deploy your application The agent will pull your code, build, and run your application on the server. --- ## Best Practices ✅ **Use Descriptive Names** - Make server names clear and meaningful ✅ **Monitor Regularly** - Check server health and metrics frequently ✅ **Keep Agent Updated** - Update Monolith Agent periodically ✅ **Secure Your Servers** - Use strong firewall rules and security groups ✅ **Backup Important Data** - Implement regular backups ✅ **Monitor Resources** - Set up alerts for high CPU/Memory usage ✅ **Plan Capacity** - Ensure sufficient resources for your applications ✅ **Document Setup** - Keep records of your server configuration ✅ **Use HTTPS** - Enable SSL/TLS for secure communication ✅ **Regular Updates** - Keep OS and dependencies updated --- ## Security Considerations ### Firewall Configuration Ensure proper firewall rules: **Allow Inbound:** - Port 5050 (Monolith Agent) from Nife API servers - SSH/RDP for remote management (restrict to your IPs) **Allow Outbound:** - HTTPS (port 443) to Nife API servers - Package managers (for application dependencies) - Any ports your applications need ### Network Security - Use VPN or private networks if possible - Implement IP whitelisting where applicable - Use strong authentication for server access - Regularly audit access logs - Keep SSH keys secure ### Agent Security - The agent uses encrypted communication - Authentication tokens are secure - Regular security updates are released - Monitor agent logs for suspicious activity --- ## Advanced Configuration ### Custom Port To use a port other than 5050: 1. During installation, specify custom port 2. Update firewall rules for new port 3. Update server IP in Nife dashboard with new port 4. Example: `43.204.217.109:8050` ### High Availability Setup For production deployments: 1. Deploy agent on multiple servers 2. Use load balancer in front of servers 3. Monitor server health continuously 4. Configure auto-restart policies 5. Implement health checks ### Scaling Considerations - Monitor resource usage on each server - Add new servers as load increases - Distribute applications across servers - Use load balancing for traffic distribution - Plan for redundancy and failover --- ## Support and Resources **Documentation:** - [Nife Documentation](https://docs.nife.io/) - [Standalone Server Management Guide](https://docs.nife.io/Infrastructure/Standalone-Servers) - [Application Deployment Guide](https://docs.nife.io/Deploy-App/Deploy-application) **Community:** - [Nife Community Forum](https://community.nife.io/) - [GitHub Issues](https://github.com/nifetency/nife) **Support:** - [Support Portal](https://support.nife.io/) - Email: support@nife.io --- ## Conclusion You've successfully installed the Nife Monolith Agent on your standalone server! You can now: ✅ Deploy applications to your own infrastructure ✅ Monitor server health and performance ✅ Manage multiple servers from one dashboard ✅ Leverage Nife's platform features on your hardware For next steps: 1. Deploy your first application 2. Set up monitoring and alerts 3. Configure additional servers 4. Explore advanced features Get started deploying now at [launch.nife.io](https://launch.nife.io/)! --- © [Nife](https://nife.io/) - Deploy anything, anywhere --- ## Private Docker Registry Support | Nife URL: https://docs.nife.io/Quick-Start/Private-Registry The simplest way to deploy application on Nife is via Containers ### Private Registries Nife supports the deployment of containers hosted Public Registry. We also support private registries - GitHub Container Registry (ghcr.io) - GitLab Container Registry - DockerHub Private repositories ### Github PAT Access Nife can deploy code directly from a GIT repository. But to enable this, [GIT Private Access Token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) needs to be added to Nifes Secret Vault. ### Coming Soon - More Private-Registry Support For continuous delivery pipeline with a secure private registry especially to protect your intellectual property. We are in process to support the following Private Registries. Azure Container Registry (ACR) DigitalOcean Container Registry GCP Container Registry AWS Elastic Container Registry (ECR) --- ## Deploy and Configure Cluster Agent URL: https://docs.nife.io/Quick-Start/cluster-agent Connect and manage your Kubernetes clusters using **Nife Cluster Agent**. Deploy applications, monitor resources, perform security scans, health checks, and export metrics directly from your infrastructure using **Bring Your Own Cloud (BYOC)**. --- ## Overview The Nife Cluster Agent enables you to: - **Deploy Applications** - Deploy containerized applications directly to your clusters - **Monitor Resources** - Track CPU, memory, disk, and active connections in real-time - **Health Checks** - Monitor application and cluster health status - **Security Scanning** - Identify vulnerabilities and security issues - **Metrics Export** - Export performance metrics for analysis and alerting - **Configuration Management** - Manage cluster configurations and settings :::info The Cluster Agent is lightweight and runs as a Kubernetes deployment, requiring minimal resources on your cluster. ::: --- ## Step 1: Access the Clusters Dashboard 1. Log in to your **Nife Dashboard**. 2. Navigate to **Clusters** from the left sidebar. 3. You'll see an overview of all connected clusters and agents. :::tip If you haven't added any agents yet, you'll see a "No agents deployed" message with a call-to-action to add your first agent. ::: --- ## Step 2: Add a New Agent 1. Click the **Add Agent** button in the Clusters page. 2. A modal dialog will appear with fields to configure your agent. ### Configure Agent Details Fill in the following information: **Cluster Name** - Enter a unique, descriptive name for your cluster (e.g., `my-cluster`, `production-cluster`) - This helps identify your cluster in the dashboard **Region Code** - Provide a region identifier or code for your cluster location - Used internally to identify the cluster geographically (e.g., `us-east-1`, `eu-west-1`) - Useful for multi-cluster management across regions **Agent Capabilities** - Select which capabilities you want to enable for this agent: - **Deploy** - Deploy applications to the cluster - **Monitor** - Monitor cluster resources and metrics - **Health Check** - Perform health checks on applications - **Security Scan** - Run security vulnerability scans - **Metrics Export** - Export metrics for external systems - **Config** - Manage cluster configuration Select all capabilities that match your requirements. You can modify these permissions later. :::info All capabilities are recommended for full cluster management functionality. ::: --- ## Step 3: Generate Agent Token 1. After configuring the agent details, click the **Generate Token** button. 2. Your agent token will be displayed with a security warning. ### Important Security Information :::warning **Store your token securely** - The token will only be displayed once. Copy it immediately to a secure location before closing this dialog. You cannot retrieve it later. ::: **Token Details Displayed:** - **Cluster ID** - Unique identifier for your cluster (e.g., `8675532a-96fd-4e4-bd9e-5f98267c0d5e`) - **Expiration Date** - When the token will expire (e.g., `Jul 10, 2027`) - **Capabilities** - Summary of enabled agent capabilities - **Token Value** - The secure token string used for cluster authentication - **Install Command** - Pre-configured shell command to deploy the agent ### Copy Token Click the **Copy Token** button to copy the token to your clipboard. Store it securely in your password manager or secure vault. --- ## Step 4: Copy and Execute Install Command 1. Click the **Copy** button next to the **Install Command**. 2. The complete installation command will be copied to your clipboard. The install command looks like: ```bash curl -sL https://api.nife.io/release/agent/install.sh | sh -s -- \ --token d9d83e8af3ebb7808bf8cf86cc255d92230e8163a4df5770169238b64 \ --cluster 8675532a-96fd-4e4-bd9e-5f98267c0d5e ``` :::tip This command automatically detects your system type and downloads the appropriate agent installer. ::: --- ## Step 5: Deploy Agent to Your Cluster 1. Open a terminal with access to your Kubernetes cluster (via `kubectl`). 2. Paste and execute the install command. ```bash curl -sL https://api.nife.io/release/agent/install.sh | sh -s -- \ --token \ --cluster ``` ### Installation Process The script will automatically: - Create a `nife-system` namespace for the agent - Deploy required Kubernetes RBAC (Role-Based Access Control) resources - Configure service accounts and cluster roles - Deploy the Nife Agent as a Kubernetes deployment - Install Prometheus Operator for metrics collection - Apply monitoring configurations - Set up security scanning components :::success When the installation completes successfully, you'll see the message: **"Nife Agent installed successfully!"** ::: --- ## Step 6: Verify Agent Connection After installation, return to the **Nife Dashboard** and refresh the Clusters page. 1. Your cluster should now appear in the cluster list with a **CONNECTED** status. 2. Click on your cluster to view detailed information. ### Monitor Agent Status On the cluster details page, you can see: **Connection Status** - A green checkmark indicates the agent is actively connected - Last heartbeat timestamp shows when the agent last communicated - Cluster ID confirms the correct agent is running **Resource Metrics** - **CPU** - Current CPU usage percentage (e.g., 61.1%) - **Memory** - Current memory usage percentage (e.g., 55.6%) - **Disk** - Current disk usage percentage (e.g., 15.1%) - **Active Connections** - Number of active connections to the cluster **Agent Capabilities** - View all enabled capabilities as status tags: - `workload_management` - Application deployment capability - `resource_monitoring` - Resource monitoring enabled - `security_scanning` - Security scan capability active - `health_checks` - Health check monitoring enabled - `config_management` - Configuration management enabled - `connectivity` - Cluster connectivity verified - `ping` - Agent responsiveness confirmed **Security Status** - View the current security scan results - Security Agent Active status - Number of security findings from the last scan :::tip The **Deploy App** button is now active, allowing you to deploy applications directly to your connected cluster. ::: --- ## Step 7: Deploy Applications to Your Cluster With your agent successfully connected, you can now deploy applications. 1. Click the **Deploy App** button on your cluster page. 2. A deployment configuration modal will appear. ### Configure Application Deployment Fill in the application details: **Organization** - Select the organization owning this application **Application Name** - Enter a unique name for your application (e.g., `application-deploy`) - Use lowercase letters, numbers, and hyphens **Docker Image** - Specify the container image to deploy (e.g., `nginx:latest`, `myapp:v1.0.0`) - Must be accessible from your cluster **Internal Port** - Specify the port your application listens on (e.g., `3000`, `8080`) - This is the container's internal port, not the host port **Replicas** - Define the number of application instances to run (e.g., `1`, `3`) - Higher replicas provide better availability and load distribution **CPU Allocation** - Specify CPU resources (e.g., `0.5 vCPU`, `1 vCPU`) - Used for resource scheduling and limiting **Memory Allocation** - Specify memory resources (e.g., `512MB`, `1024MB`, `2GB`) - Used for memory scheduling and limiting **Environment Variables** (Optional) - Add key-value pairs for application configuration - Example: `TOKEN=value`, `DEBUG=true` - Click **Add** to include additional environment variables :::info Resource requests ensure the application has adequate CPU and memory. Limits prevent the application from consuming excessive resources. ::: Click **Deploy** to start the deployment process. --- ## Next Steps After your Cluster Agent is successfully deployed: ### Monitor Cluster Health - View real-time resource usage (CPU, memory, disk) - Track active connections and agent health - Monitor application status and performance ### Configure Security Scanning - Enable automated security vulnerability scanning - Review security findings and compliance issues - Set up security alerts and notifications ### Setup Metrics Export - Export metrics to external monitoring systems - Integrate with Prometheus, Grafana, or other tools - Create dashboards and alerts based on cluster metrics ### Deploy Multiple Applications - Deploy multiple containerized applications to your cluster - Manage application configurations and environment variables - Scale applications by adjusting replica counts ### Manage Multi-Region Clusters - Connect agents across multiple geographic regions - Centrally manage cluster configurations - Monitor health and performance across your infrastructure --- --- ## Nifectl Quickstart | Deploy Your First App in 5 Minutes URL: https://docs.nife.io/Quick-Start/Nifectl Learn **Nife in less than 5 minutes**. ## Prerequisites Install the Nifectl CLI before starting. See the [CLI Installation Guide](/Quick-Start/nifectl-Installation) for macOS, Linux, and Windows instructions. ## Sign Up and Log In 1. Create an account: ```bash nifectl auth signup ``` This opens a browser to complete registration. 2. Log in with your credentials: ```bash nifectl auth login --email janedoe@app.com --password yourpassword ``` Replace `janedoe@app.com` and `yourpassword` with your registered email and password. ## Initialize Your Application Run `init` in your project directory and follow the prompts: ```bash nifectl init ``` Example session: ```text ? App Name (leave blank to use an auto-generated name) sample-now ? Select organization: NIFE-APPS (nife-apps) ? Select builder: Image (Use a public Docker image) ? Select Image: nife123/node-hello:latest ? Select Internal Port: 4000 New app created Name = sample-now Organization = nife-apps Version = 0 Status = New Hostname = ``` ## Deploy the Application ```bash nifectl deploy ``` Your app will be built and deployed. Once complete, the terminal will display the public hostname where your application is accessible. ## Scale to Multiple Regions Deploy your app to additional global regions with the `regions` command: ```bash nifectl regions add ``` Available regions include Mumbai (IND), London (EUR), Paris (EUR-3), Ohio (USA), and Santiago (SA). Run `nifectl platform regions` to see the full current list. ## Next Steps - [Full CLI Reference](/CLI/help) — all nifectl commands and flags - [Deploy With Git Actions](/Quick-Start/Nife-GIT-Actions) — automate deployments on push - [Private Registry](/Quick-Start/Private-Registry) — deploy from private Docker registries --- ## Nifectl Commands URL: https://docs.nife.io/Quick-Start/nifectl-commands ### About `nifectl` is a command line interface to the nife.io platform. It allows users to manage authentication, application initialization, deployment, network configuration, logging and more with just the one command. Initialize an app with the `init` command. Deploy an app with the `deploy` command. View a deployed web application with the `open` command. Check the status of an application with the status command. To read more, use the `docs` command to view Nife's help on the web. ### Usage ```bash nifectl [command] [flags] ``` ### Available Commands * [apps](/CLI/apps) - Manage apps * [auth](/CLI/auth) - Manage authentication * [builtins](/CLI/builtins) - View and manage nifectl deployment builtins * [config](/CLI/config) - Manage an app's configuration * [dashboard](/CLI/dashboard) - Open web browser on Nife Web UI for this app * [deploy](/CLI/deploy) - Deploy an app to the Nife platform * [destroy](/CLI/destroy) - Permanently destroys an app * [docs](/CLI/docs) - View Nife documentation * [help](/CLI/help) - Help about any command * [history](/CLI/history) - List an app's change history * [init](/CLI/init) - Initialize a new application * [list](/CLI/list) - Lists your Nife resources * [logs](/CLI/logs) - View application logs * [metrics](/CLI/metrics) - Lists monitoring metrics for applications * [move](/CLI/move) - Move an app to another organization * [open](/CLI/open) - Open browser to current deployed application * [orgs](/CLI/orgs) - Commands for managing Nife organizations * [platform](/CLI/platform) - Nife platform information * [regions](/CLI/regions) - Manage regions * [releases](/CLI/releases) - List app releases * [resume](/CLI/resume) - Resume an application * [site](/CLI/site) - Deploy and manage static sites * [status](/CLI/status) - Show app status * [suspend](/CLI/suspend) - Suspend an application * [secrets](/CLI/secrets) - Manage application secrets * [version](/CLI/version) - Show version information for the nifectl command ### Options ```bash -t, --access-token string Nife API Access Token -h, --help help for nifectl -j, --json json output ``` ## Related Resources - 🛠️ [Free Developer Tools](https://freetools.nife.io) — Useful tools for developers - 🚀 [Launch Dashboard](https://launch.nife.io) — Open the Nife dashboard - 🌐 [nife.io](https://nife.io) — Learn more about Nife --- ## OneClick Deployment URL: https://docs.nife.io/Quick-Start/oneclick-deployment Deploy your applications and static websites directly from **GitHub**, **GitLab**, or **Bitbucket** using **Nife OneClick Deployment**. --- # Application Deployment ## Step 1: Start Deployment 1. Open the **[Deploy on Nife](https://launch.nife.io/deploy-app/start)** page. 2. Paste your Git repository URL. 3. Click **Deploy Application**. :::info Supported Git providers: - GitHub - GitLab - Bitbucket ::: --- ## Step 2: Configure and Build Your Application Configure your application before starting the build. Provide the following details: - Internal Port - External Port - Environment Variables - Build Configuration (Optional) Choose one of the available build configurations: - **Auto-Dockerize with Runtime** – Automatically generates a Dockerfile based on the detected application runtime. - **Add Custom Dockerfile** – Write or upload your own Dockerfile. - **Specify Dockerfile Path** – Use an existing Dockerfile from your repository. If no build configuration is selected, Nife automatically detects your application type and uses the Dockerfile in your repository root, or generates one if required. Click **Start Build**. After the build completes successfully, click **Continue**. --- ## Step 3: Review and Deploy Review the deployment summary. Verify the following information: - Application Name - Repository - CPU & Memory - Replica Count - Port Configuration - Deployment Region - Estimated Monthly Cost Before deployment, Nife validates: - Container Image - Infrastructure as Code (IaC) Click **Deploy to Region**. --- ## Deployment Complete Once the deployment is complete, your application is available with: - Public URL :::success Your application has been successfully deployed. ::: --- # Next Steps After deployment, you can: - Configure a custom domain. - Monitor application logs and metrics. - Set up GitHub Actions for automatic deployments. - Scale your applications as needed. --- ## OneClick Site Deployment URL: https://docs.nife.io/Quick-Start/oneclick-site-deployment Deploy static websites directly from **GitHub**, **GitLab**, or **Bitbucket** using **Nife OneClick Site Deployment**. --- ## Step 1: Start Site Deployment 1. Open the **[Deploy on Nife](https://launch.nife.io/deploy-site/start)** page. 2. Paste your Git repository URL. 3. Click **Deploy this Site**. Nife automatically detects your repository and redirects you to the Site Deployment configuration page. :::info Supported frontend frameworks include: - React - Vue - Angular - Astro - Vite - Next.js (Static Export) ::: --- ## Step 2: Configure and Deploy Review or modify the detected configuration. Configure the following settings: - Framework - Install Command - Build Command - Output Directory - Environment Variables (Optional) Review the deployment summary, including: - Site Name - Repository - Branch - Deployment Type Click **Deploy Site**. :::tip Nife automatically detects your frontend framework and pre-fills the recommended build configuration. You can modify these settings if required. ::: --- ## Step 3: Deployment Complete During deployment, Nife automatically: - Clones your Git repository - Installs project dependencies - Builds the application - Generates production assets - Deploys the site to the edge - Configures HTTPS/SSL - Generates a public URL :::success Your static site has been successfully deployed and is ready to share. ::: --- # Next Steps After deployment, you can: - Configure a custom domain. - Monitor deployment logs. - Redeploy from the latest Git commit. - Set up GitHub Actions for automatic deployments. --- ## Managing Alerts & Automated Notifications | Nife Deploy URL: https://docs.nife.io/Alerts/Alerts-Overview Alerts help you stay informed about important events in your applications and infrastructure. Get notified when issues occur so you can respond quickly. ## What are Alerts? Alerts are automated notifications that trigger when specific conditions are met in your system. For example: - Your application CPU usage exceeds 80% - An API endpoint stops responding - Database connection fails - Memory usage reaches a critical level Instead of constantly monitoring your dashboard, alerts bring problems to your attention automatically. --- ## Why Use Alerts? **Benefits of Using Alerts:** - 🔔 Get notified immediately when problems occur - ⚡ Faster response time to issues - 📊 Reduce manual monitoring overhead - 🎯 Focus on what matters most - 👥 Keep your team synchronized --- ## Getting Started with Alerts ### Accessing the Alerts Page 1. Log into your Nife dashboard 2. Click **Alerts** in the main navigation menu 3. You'll see two tabs: **Alert Rules** and **Alert Config** ### Understanding the Dashboard When you open Alerts, you'll see key information at the top: **Active Alerts Badge** Shows how many alerts are currently firing. The badge turns red if there are critical alerts. **Alert Statistics** - **Total Rules**: How many alert rules you've set up - **Enabled Rules**: How many rules are currently active - **Critical Alerts**: Number of critical severity alerts - **Warning Alerts**: Number of warning severity alerts --- ## Quick Start: Create Your First Alert ### Step 1: Start a New Rule Click the **New Rule** button on the Alerts page. ### Step 2: Define the Trigger Choose what should trigger the alert: - CPU usage > 80% - Memory usage > 90% - API response time > 5 seconds - Error rate > 5% - Service unavailable ### Step 3: Set Severity Choose how serious this is: - **Critical**: Immediate action needed - **Warning**: Soon, but not emergency - **Info**: Nice to know ### Step 4: Name It Give it a clear name: - ✅ "High CPU Usage on Production API" - ❌ "Rule 1" ### Step 5: Save and Enable Click **Save**, then toggle **Enabled** to turn it on. **Congratulations!** Your first alert is now monitoring your system. --- ## Two Types of Alerts ### Standard Alerts Page Located at: **Alerts** in main menu **For:** - Creating and managing alert rules - Configuring notification channels - Setting up your alert system **Features:** - Alert Rules Tab - Create and manage rules - Alert Config Tab - Set up notifications ### SRE Alerts Page Located at: **SRE** → **Alerts** **For:** - Real-time alert monitoring - Responding to active alerts - Team collaboration **Features:** - View firing, acknowledged, and resolved alerts - Acknowledge alerts you're investigating - Resolve alerts once fixed - Filter by status and severity --- ## Alert Status Lifecycle Alerts move through different statuses as they're handled: ``` Firing 🔔 (Red) ↓ You click Acknowledge Acknowledged ⏱️ (Yellow) ↓ You click Resolve Resolved ✓ (Green) ``` ### Firing Status - Alert condition is currently true - Requires attention - Click "Acknowledge" to claim it ### Acknowledged Status - Someone is investigating - Shows who acknowledged it - Ready to be resolved ### Resolved Status - Issue is fixed - Kept for historical records - No further action needed --- ## Severity Levels Choose the right severity for each alert: | Severity | When to Use | Example | |----------|-----------|---------| | **Critical** 🔴 | Immediate action needed | Application is down | | **Warning** 🟠 | Soon, but not emergency | High error rate detected | | **Info** 🟡 | FYI, nice to know | New deployment completed | --- ## Next Steps Now that you understand the basics: 1. [Create Your First Alert Rule](/Alerts/Creating-Alert-Rules) - Step-by-step guide 2. [Configure Notifications](/Alerts/Alert-Configuration) - Set up how you're notified 3. [Respond to Alerts](/Alerts/Responding-To-Alerts) - Handle active alerts --- ## Common Alert Scenarios **Monitor Your Website:** - Create alert for "Website Down" (Critical) - Create alert for "High Response Time" (Warning) **Monitor Your Database:** - Create alert for "High CPU Usage" (Critical) - Create alert for "Low Disk Space" (Critical) **Monitor Your API:** - Create alert for "High Error Rate" (Warning) - Create alert for "Slow Response Time" (Warning) --- ## Getting Help ### Built-in Help Click the **?** icon on the Alerts page for quick help ### Contact Support - Email: support@nife.io - Dashboard: Available in the chat widget --- ## Applications Dashboard Overview - Deploy & Manage Apps | Nife URL: https://docs.nife.io/Applications/overview The Applications Dashboard provides a unified interface for managing all deployed applications, static sites, databases, and standalone services across your infrastructure. ## Dashboard Features ### Application Management The Applications Dashboard allows you to: - **View all applications**: See all deployed apps across different types - **Filter by type**: View Apps, Sites, Databases, or Standalone services separately - **Monitor status**: Track running, deploying, paused, and stopped applications - **Control applications**: Start, pause, restart, and delete apps - **Access services**: Open deployed sites and copy URLs - **Manage replicas**: Monitor and scale application instances - **Regional deployment**: View applications across multiple regions - **Export data**: Download application information for analysis - **Bulk operations**: Perform actions on multiple applications ### Application Types Supported **Applications** - Containerized microservices - API servers - Custom services - Long-running processes - Scalable workloads **Sites** - Static websites - Single-page applications (SPAs) - Documentation sites - Portfolio sites - JAM stack applications **Databases** - PostgreSQL - MySQL - MongoDB - Redis - Other data stores **Standalone Services** - Docker container services - Custom monolith services - Server-based applications - Non-managed services ## Dashboard Layout ### Page Header **Title and Description** - "Applications" title with management description - Total application count badge **Key Metrics** - **Running/Active**: Number of active applications - **Deploying**: Applications currently being deployed - **Replicas/Services**: Total replica count or service count - **Regions**: Number of deployment regions ### Quick Action Buttons **Refresh Button** - Click to reload application data - Shows loading indicator while refreshing - Updates statuses in real-time - Disabled during active operations **Filter Toggle Button** - Click to show/hide filter panel - Highlighted when filters active - Lets you filter by search, status, region **View Mode Toggle Buttons** - List/Table icon: Switch to table view - Grid/Card icon: Switch to card view - Choose your preferred layout **Primary Action Button** - "Deploy App": Create new applications - "New Site": Create new static sites - "New Database": Create new databases - Button changes based on selected tab ## Application Tabs Navigate between different application types using tabs at the top of the content area: **All Tab** - Shows all applications - Combines Apps, Sites, Databases - No application type filtering - Useful overview of all deployments **Apps Tab** - Only containerized applications - Excludes sites and databases - Shows microservices and custom services - Scalable application workloads **Sites Tab** - Only static websites - Sites deployed to CDN - JAM stack applications - No dynamic backends included **Database Tab** - Only database services - Data stores and caches - PostgreSQL, MySQL, MongoDB, etc. - Persistent data layer **Standalone Tab** - Services on managed servers - Monolith-based applications - Server-based deployments - Custom infrastructure services ## Filter Panel When filters are shown, you can refine your application list: ### Search Box - Search by application name - Real-time filtering as you type - Case-insensitive matching - Shows matching results instantly ### Status Filter - All Statuses: Show all applications - Running: Active applications - Deploying: Currently being deployed - Paused: Temporarily paused - Stopped: Powered off - Failed: Deployment failed - Other status values as applicable ### Region Filter - All Regions: Show all regions - US East: US East Coast - US West: US West Coast - Europe: European regions - Asia: Asia Pacific regions - Other available regions ## Application Metrics at a Glance The header shows key metrics: **Running/Active Count** - For Apps/Databases: Running applications - For Standalone: Active services - Real-time status indicator - Color-coded display **Deploying Count** - Applications currently being deployed - Only shown for non-standalone - Indicates ongoing deployments - Disappears when complete **Replicas/Services Count** - For Apps: Total replica instances - For Standalone: Total services - Indicates scale - Sum across all applications **Regions Count** - Number of unique deployment regions - Only shown for non-standalone - Global distribution indicator - Affects latency ## Application Display ### Table View Displays applications in a table format with columns: | Column | Information | |--------|-------------| | Name | Application name | | Status | Current state | | Deployment Type | Apps, Site, Database, etc. | | Replicas/Services | Replica count or service count | | Region | Primary region | | Deployment Strategy | Rolling, Blue-Green, etc. | | Actions | Manage buttons | **Interactive Features** - Click row to select checkbox - Checkbox for bulk operations - Sort columns (if enabled) - Scroll horizontally for more columns - Column visibility controls ### Card View Displays applications as visual cards: **Card Information** - Application name and icon - Status badge - Type indicator - Quick action buttons - Region and replica info **Interactive Features** - Click card for operations menu - Hover for additional info - Status color coding - Quick access buttons ## Status Indicators ### Application Status Colors | Status | Color | Meaning | |--------|-------|---------| | Running | Green | Active and operational | | Deploying | Blue | Currently being deployed | | Paused | Yellow | Temporarily paused | | Stopped | Gray | Powered off | | Failed | Red | Deployment or operation failed | ### Status Badge Each application shows: - Current status - Visual color indicator - Text label - Last update time (optional) ## Actions Menu Each application has an actions dropdown with available options: **View Details** - Opens application detail page - Shows full configuration - Displays metrics and logs - Available for all types **Open Site** (Sites only) - Opens site in new browser tab - Direct access to deployed site - Requires deployed URL **Copy URL** (Sites only) - Copies site URL to clipboard - Useful for sharing - Shows confirmation message **Pause** (Apps/Databases only) - Temporarily stop application - Pauses all instances - Frees some resources - Quick resume available **Resume** (When paused) - Restart paused application - Restores full functionality - Takes seconds to restart **Restart** - Gracefully restart application - Stops and starts services - Refreshes all instances - May have brief downtime **Delete** - Permanently remove application - Irreversible action - Requires confirmation - Data may be lost ## Selection and Bulk Operations ### Selecting Applications **Individual Selection** 1. Check checkbox on application 2. Application is highlighted 3. Shows selected count **Select All** - Click "Select All" button - All visible applications selected - Useful for bulk operations **Deselect** - Uncheck individual boxes - Or "Deselect All" button - Removes from selection ### Bulk Actions **Delete Selected** - Delete multiple apps at once - Shows selection count in menu - Confirmation dialog required - More efficient than individual deletion **Export Selected** - Export only selected apps - CSV or JSON format - Smaller file size - Focused data ## Empty States ### No Applications When no applications exist: - Helpful message displayed - Description: "No applications deployed" - "Deploy App" button to create first app ### No Results from Filters When filters match nothing: - Message: "No applications found" - Suggestion: "Try adjusting your filters" - Clear specific filters to reset ### No Standalone Services When Standalone tab has no services: - Message: "No services registered" - Instructions: "Add a server first" - Link to server setup ## Loading States While data loads: - Skeleton placeholders display - Header appears first - Metrics cards load - Application list loads as data arrives ## Error Handling If there's an issue: - Error message displays with details - "Retry" button to reload - Application continues to function - Contact support option if needed ## Data Refresh ### Auto-Refresh - Background refresh (if configured) - Updates data silently - Shows latest status ### Manual Refresh - Click Refresh button - Shows loading spinner - Updates all application data - Refetches from cloud providers ## Export Functionality ### Export Options **Export as CSV** 1. Click overflow menu (three dots) 2. Select "Export as CSV" 3. File downloads to computer 4. Open in spreadsheet application **Export as JSON** 1. Click overflow menu 2. Select "Export as JSON" 3. File downloads 4. Use for analysis or integration **Exported Data Includes** - Application name - Type (app, site, database, standalone) - Current status - Replicas/services count - Region - Deployment strategy ## Keyboard Shortcuts - **Escape**: Close any open menus/dialogs - **Ctrl/Cmd + F**: Focus search field - **Tab**: Navigate through applications ## Navigation Tips 1. **Start with All Tab**: Get overview of everything 2. **Use Filters**: Focus on what you need 3. **Change View**: Use layout that suits your preference 4. **Bulk Operations**: Select multiple for efficiency 5. **Export for Analysis**: Regular backups of metadata ## Best Practices 1. **Regular Monitoring**: Check dashboard daily 2. **Use Filters**: Keep list manageable 3. **Organize Names**: Use consistent naming 4. **Document Changes**: Track modifications 5. **Monitor Growth**: Plan for scaling 6. **Clean Up**: Delete unused applications ## Key Concepts and Terminology **Application**: Containerized service or code deployed to Nife platform for serving traffic **Dashboard**: Unified interface for viewing and managing all deployments across types and regions **Replicas**: Multiple instances of an application for horizontal scaling and redundancy **Region**: Geographic location where applications are deployed and executed **Status**: Current operational state of application (Running, Deploying, Paused, Stopped, Failed) ## Quick Navigation Guide - [Deploy new applications](/Deploy-App/Application/Deploy-application) - Create and launch applications - [Understand application types](/Applications/types) - Apps vs Sites vs Databases vs Standalone - [Manage running applications](/Applications/managing) - Control and operate deployed apps - [Scale for growth](/Applications/scaling) - Handle increased demand - [View detailed information](/Applications/details) - Access complete configuration and metrics ## Next Steps - [Application Types Guide](/Applications/types) - Learn which type fits your needs - [Managing Applications](/Applications/managing) - Control and monitor running apps - [Application Details](/Applications/details) - View detailed configuration and metrics - [Scaling Applications](/Applications/scaling) - Plan for growth and high availability --- ## Billing & Subscriptions Overview - Manage Plans & Payments | Nife URL: https://docs.nife.io/Billing/Billing-Overview Manage your subscription plan, payment methods, and view all your billing information in one centralized location. --- ## What is Billing Management? The Billing section helps you: **Subscription Management** 📋 - View your current subscription plan - Change to different plans - Monitor billing dates - Track renewal information **Payment Management** 💳 - Update payment methods - View payment history - Manage billing information - Download invoices **Invoice & History** 📜 - Track all past invoices - View upcoming charges - Download receipts - Export billing data **Cost Control** 💰 - Monitor monthly costs - View upcoming invoices - Plan your budget - Track spending --- ## Key Features ### Current Subscription Overview See details about your active plan at a glance: - **Plan Name**: Your current subscription plan - **Monthly Cost**: Monthly subscription fee - **Status**: Active, Cancelled, or other status - **Renewal Date**: When your next billing cycle begins - **Plan Features**: Available features in your plan ### Plan Management **Change Your Plan** - Upgrade to a higher tier plan - Downgrade to save costs - Change plans anytime - No long-term contracts - Pro-rated billing applied **Cancel Subscription** - Cancel at any time - Provide cancellation reason (optional) - Service continues until period end - Reactivate anytime - No penalties ### Payment Methods **Manage Payment** - Update payment card - Change payment method - Secure payment processing - Multiple payment options ### Upcoming Invoice **Preview Next Charge** - See what you'll be charged - Breakdown of costs - Tax information - Payment due date - Advance notice before billing ### Billing History **Access Past Records** - View all past invoices - Filter by date or status - Download invoice PDFs - Export invoice data - Detailed transaction history --- ## Navigation to Billing Section **From Dashboard:** 1. Click your **Account** or **Profile** menu (top right) 2. Select **Billing & Subscriptions** 3. Or navigate to: **Settings** → **Billing** **Direct Access:** - Billing page displays all billing information - Organized into clear sections - Easy to navigate and understand --- ## Understanding Your Subscription ### Plan Types **Starter Plan** - Entry-level plan - Limited resources - Basic features - Perfect for testing **Pro Plan** - Enhanced features - More resources - Advanced capabilities - Suitable for production **Enterprise Plan** - Full features - Maximum resources - Priority support - Custom solutions ### Billing Cycles **Monthly Billing** - Charged every 30 days - Auto-renewal - Can cancel anytime - Upgrade/downgrade anytime --- ## Common Actions ### Changing Your Plan :::info Upgrading or downgrading your plan can be done instantly without service interruption. ::: **To change plan:** 1. Go to **Billing & Subscriptions** 2. Click **Change Plan** button 3. Select your new plan 4. Confirm the change 5. Changes apply immediately ### Cancelling Your Subscription **To cancel:** 1. Go to **Billing & Subscriptions** 2. Click **Cancel Subscription** button 3. Optionally provide cancellation reason 4. Confirm cancellation 5. Service continues until period end :::warning Cancellation cannot be undone immediately. You'll need to reactivate to continue service. ::: ### Updating Payment Method **To update payment:** 1. Go to **Billing & Subscriptions** 2. In **Upcoming Invoice** section, click **Update Payment Method** 3. Enter new payment details 4. Confirm the update 5. New method applied to next billing cycle ### Downloading Invoices **To download invoice:** 1. Go to **Billing & Subscriptions** 2. Scroll to **Billing History** section 3. Find the invoice you want 4. Click **Download** button 5. Invoice saves to your computer ### Exporting Billing Data **To export all invoices:** 1. Go to **Billing & Subscriptions** 2. Click **Export Invoices** (in actions menu) 3. Choose export format (JSON or CSV) 4. File downloads automatically 5. Use for accounting or records --- ## Understanding Billing Concepts ### Billing Cycle The period between billing dates: - **Start Date**: When your current cycle begins - **End Date**: When your next billing occurs - **Monthly**: Standard 30-day cycle - **Pro-rated**: Charges adjusted for partial months ### Invoice A statement of charges for your account: - **Invoice Number**: Unique identifier - **Amount**: Total charged - **Date**: When invoice was issued - **Status**: Paid, Unpaid, or Overdue - **Due Date**: Payment deadline ### Tax Sales tax applied based on: - **Location**: Your billing location - **Service Type**: Services being purchased - **Local Rates**: Applicable tax percentage - **Itemized**: Shown separately on invoice ### Subtotal vs Total **Subtotal** - Base service cost - Before tax and fees - Monthly plan price **Total** - Subtotal + tax - Final amount charged - What you'll be billed --- ## Payment Methods Accepted **Credit Cards** - Visa - Mastercard - American Express - Discover **Digital Payment** - PayPal - Google Pay - Apple Pay **Security** - PCI DSS compliant - Encrypted transmission - Secure payment gateway - No data stored locally --- ## Billing Issues & Troubleshooting ### Payment Failed **If payment fails:** 1. Check payment method validity 2. Ensure sufficient funds 3. Try again after 24 hours 4. Update payment method 5. Contact billing support if issue persists :::warning Failed payments may result in service suspension. Update your payment method immediately. ::: ### Missing Invoice **If invoice is missing:** 1. Check email inbox and spam folder 2. Go to Billing History in dashboard 3. Download invoice directly 4. Contact billing support with dates ### Incorrect Charge **If charged incorrectly:** 1. Review your invoice carefully 2. Check your current plan details 3. Verify pro-rating calculations 4. Contact support with invoice details 5. Provide explanation of discrepancy ### Refund Requests **To request refund:** 1. Contact billing support 2. Provide invoice details 3. Explain refund reason 4. Support will review 5. Response within 5-7 business days --- ## Billing Support ### Getting Help **Support Channels** - Email: support@nife.io - Live Chat: Available in dashboard - Help Center: Billing FAQ section - Documentation: https://docs.nife.io/billing **Response Times** - Urgent issues: 1-2 hours - General inquiries: 1 business day - Refund requests: 5-7 business days ### What to Provide When contacting billing support, provide: - Your account email - Invoice number (if applicable) - Description of issue - Any error messages - Screenshots if applicable --- ## Billing Best Practices 1. **Review Invoices**: Check invoices when received 2. **Monitor Usage**: Keep track of your consumption 3. **Plan Ahead**: Upgrade before reaching limits 4. **Update Payment**: Keep payment method current 5. **Export Records**: Maintain billing records 6. **Understand Pricing**: Review plan details 7. **Budget Planning**: Use invoice history to plan 8. **Communicate**: Contact support for questions --- ## Key Billing Concepts **Subscription**: Monthly or annual service plan with recurring charges **Plan**: Different service tiers (Starter, Pro, Enterprise) with varying features **Invoice**: Bill documenting charges for services provided **Billing Cycle**: Period between billing dates (typically 30 days) **Payment Method**: How you pay (credit card, PayPal, digital wallets) **Renewal Date**: When your next billing cycle begins ## Quick Navigation Guide - [Plans & Pricing](/Billing/plans) - Explore available plans and pricing - [Payment Methods](/Billing/payment) - Add and manage payment methods - [Managing Subscription](/Billing/managing) - Change, upgrade, or cancel plans - [Invoices & History](/Billing/invoices) - View and download invoices ## Getting Started with Billing Understanding your billing helps you: - Control monthly costs - Choose the right plan - Manage payment information - Track spending history - Plan your budget ## Next Steps - [Plans and Pricing](/Billing/plans) - Explore subscription tiers and features - [Managing Your Subscription](/Billing/managing) - Change or upgrade plans - [Payment Methods](/Billing/payment) - Manage payment information securely - [Invoices and History](/Billing/invoices) - Access billing records ## Related Resources - 🌐 [nife.io](https://nife.io) — View Nife platform plans and pricing - 🚀 [Launch Dashboard](https://launch.nife.io) — Manage your subscription --- ## Managing Kubernetes Clusters - BYOC Guide | Nife Deploy URL: https://docs.nife.io/Clusters/Clusters-Overview Connect and manage your Kubernetes clusters across AWS, Google Cloud, Azure, and other providers using Nife's Bring Your Own Cloud (BYOC) solution. ## What are Clusters? Clusters are Kubernetes environments that you connect to Nife. They allow you to: - Deploy and manage applications globally - Monitor cluster health and performance - Deploy agents for enhanced capabilities - Scale applications across regions - Access real-time logs and AI-powered analytics --- ## Getting Started ### Accessing Clusters 1. Log into your Nife dashboard 2. Click **Clusters** in the main navigation menu 3. You'll see your connected clusters and management options ### Dashboard Overview **Key Information Displayed:** - **Connected Clusters**: Number of clusters you've connected - **Active Agents**: Agents deployed across your clusters - **Requested Regions**: Regions you've requested for expansion - **Available Clusters**: Nife-managed clusters ready to connect --- ## Two Ways to Connect ### 1. Standalone Cluster (Self-Managed) Connect your own Kubernetes cluster using a kubeconfig file. **Perfect for:** - Existing Kubernetes clusters you already manage - On-premise installations - Custom cluster setups **What you need:** - Your kubeconfig file - Cluster name - Region code ### 2. BYOC (Bring Your Own Cloud) Connect cloud infrastructure from major cloud providers. **Supported Providers:** - ☁️ Amazon Web Services (AWS) - ☁️ Google Cloud Platform (GCP) - ☁️ Microsoft Azure **Benefits:** - One-click connection to cloud resources - Automatic credential management - Built-in monitoring and scaling - Cloud-native integration --- ## Cluster Status Reference | Status | Meaning | Action | |--------|---------|--------| | **Connected** | Cluster is active and running | Ready for deployments | | **Pending** | Cluster is being configured | Wait for setup to complete | | **Disconnected** | Cluster connection lost | Reconnect or investigate | | **Error** | Cluster has issues | Check logs and troubleshoot | --- ## What You Can Do ### View Cluster Details - See cluster configuration - Monitor resource usage - Check agent status - View deployment history ### Manage Agents - Deploy monitoring agents - Check agent health - Rotate agent tokens - Configure capabilities ### Monitor Performance - Real-time metrics (CPU, memory, disk) - Pod logs and streaming - Security findings - AI-powered log analysis ### Request Resources - Request new regions - Request additional capacity - Check region status --- ## Cluster Components ### Agents Small services deployed on your cluster that: - Monitor cluster health - Collect metrics - Stream logs - Run security scans - Enable Nife platform features ### Kubeconfig Configuration file that contains: - Cluster connection details - Authentication credentials - Context information ### Region Geographic location where your cluster runs: - Used for global deployments - Important for latency optimization - Impacts data residency --- ## Next Steps 1. **[Connect Your First Cluster](/Clusters/Connecting-Clusters)** - Step-by-step connection guide 2. **[Deploy Agents](/Clusters/Deploying-Agents)** - Enable cluster monitoring 3. **[Manage Cluster Resources](/Clusters/Managing-Resources)** - Monitor and optimize --- ## Common Questions **Q: Can I connect multiple clusters?** A: Yes, you can connect unlimited clusters to manage them all from one place. **Q: Is my data secure?** A: Yes, all connections are encrypted and authenticated. You maintain control of your infrastructure. **Q: What permissions do I need?** A: You need cluster admin access to connect a cluster and deploy agents. --- ## Getting Help **Built-in Help:** Click the **?** icon on the Clusters page **Documentation:** - [Connecting Clusters](/Clusters/Connecting-Clusters) - [Deploying Agents](/Clusters/Deploying-Agents) - [Monitoring and Logs](/Clusters/Monitoring-Logs) **Contact Support:** support@nife.io --- ## Managed Databases: MySQL, PostgreSQL, MongoDB & Redis | Nife Docs URL: https://docs.nife.io/Databases/Databases-Overview Deploy and manage fully-managed database instances with automatic backups, high availability, and scaling. ## Quick Navigation - **[Databases Overview](/Databases/Databases-Overview)** - Overview & benefits - **[Creating Databases](/Databases/Creating-Databases)** - Step-by-step setup guide - **[Connecting to Databases](/Databases/Connecting-Databases)** - Connection strings & methods - **[Managing Databases](/Databases/Managing-Databases)** - Monitoring & scaling guide - **[Backup & Recovery](/Databases/Backup-Recovery)** - Disaster recovery & protection ## Supported Databases Nife supports multiple popular database engines: | Database | Best For | Versions | |----------|----------|----------| | **PostgreSQL** | Relational data, complex queries | 16.1, 15.6, 14.11, 13.14 | | **MySQL** | Web applications, LAMP stack | 8.0.35, 8.0.34, 5.7.44 | | **MariaDB** | MySQL drop-in replacement | 11.2.2, 10.11.6, 10.6.16 | | **MongoDB** | Document databases, flexible schema | 7.0.5, 6.0.13, 5.0.24 | | **Redis** | Caching, sessions, real-time data | 7.2.4, 7.0.15, 6.2.14 | --- ## Why Managed Databases? ### Benefits **Automatic Backups** 🔄 - Daily backups included - Point-in-time recovery - Backup retention policies - Zero data loss protection **High Availability** 📊 - Automatic failover - Multi-zone replication - Redundancy built-in - 99.9% uptime SLA **Secure** 🔒 - SSL/TLS encryption - Encrypted at rest - Secure credentials - Access control **Scalable** 📈 - Automatic scaling - Add storage as needed - Vertical and horizontal scaling - No downtime scaling **Maintained** 🛠️ - Automatic patching - Version updates - Performance tuning - Monitoring included --- ## Database Lifecycle ### 1. Create Database Choose database type, configure settings, and deploy. ### 2. Connect Applications Get connection credentials and connect your apps. ### 3. Manage & Monitor Monitor performance, backups, and resource usage. ### 4. Scale & Update Scale storage, upgrade versions, optimize performance. ### 5. Backup & Recovery Automated backups and recovery options. ### 6. Delete (Optional) Archive and delete when no longer needed. --- ## Key Information ### Connection Details After creating a database, you receive: - **Hostname**: Unique endpoint to connect - **Port**: Database-specific port - **Username**: Root or admin account - **Password**: Secure password - **Connection String**: Ready-to-use format ### Storage Sizes Available options: - 1 GB - Small development - 5 GB - Small production - 10 GB - Medium workloads - 15 GB - Large workloads - 20 GB - Very large - 50 GB - Enterprise - 100 GB - Large enterprise ### Regions Deploy in multiple regions: - US East (N. Virginia) - US West (Oregon) - EU (Ireland) - EU (Frankfurt) - Asia Pacific (Mumbai) - Asia Pacific (Singapore) Choose based on: - User location - Compliance requirements - Data residency rules - Latency optimization --- ## Next Steps 1. **[Creating Databases](/Databases/Creating-Databases)** - Step-by-step creation guide 2. **[Connecting to Databases](/Databases/Connecting-Databases)** - Connect from your applications 3. **[Managing Databases](/Databases/Managing-Databases)** - Backup, scale, monitor 4. **[Backup & Recovery](/Databases/Backup-Recovery)** - Data protection --- ## Common Questions **Q: Are backups included?** A: Yes, automatic daily backups are included with every database. **Q: Can I change the database version?** A: Yes, you can upgrade to newer versions. Some downgrades may be possible. **Q: Is my data encrypted?** A: Yes, data is encrypted in transit (SSL/TLS) and at rest. **Q: Can I scale my database?** A: Yes, you can increase storage and compute resources anytime. **Q: What's the uptime guarantee?** A: 99.9% uptime SLA is guaranteed for managed databases. --- ## Getting Help **Built-in Help:** Click the **?** icon on the database page **Documentation:** - [Creating Databases](/Databases/Creating-Databases) - [Connecting to Databases](/Databases/Connecting-Databases) - [Managing Databases](/Databases/Managing-Databases) **Contact Support:** support@nife.io --- ## Application Overview | Manage Your Nife Deployments | Nife Docs URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/App-Overview The Application Overview gives you a high-level summary of your deployed application's health, status, and key metrics. ## Applications Dashboard View ![Applications Dashboard](/img/overview/applications-dashboard.png) The **Applications** page provides a centralized view to manage and monitor all your deployed applications across regions. It allows you to track application status, access endpoints, and control deployments from a single interface. --- ### Applications Table The table displays detailed information for each application: - **Name** – Name of the application - **Status** – Current state (e.g., Running, Deploying) - **URL** – Public endpoint of the application - **Replicas** – Number of instances running - **Region** – Deployment location - **Deployment Strategy** – Method used for updates (e.g., rolling) - **Actions** – Options to manage the application --- --- ## Custom Domains Management & DNS Configuration Guide | Nife Docs URL: https://docs.nife.io/Domains/Domains-Overview Connect custom domains to your applications and sites with automatic SSL certificates and analytics. ## Quick Navigation - **[Domains Overview](/Domains/Domains-Overview)** - Overview & benefits - **[Adding Custom Domains](/Domains/Adding-Custom-Domains)** - Step-by-step setup - **[DNS Configuration](/Domains/DNS-Configuration)** - DNS setup guide - **[SSL Certificates](/Domains/SSL-Certificates)** - HTTPS & security - **[Monitoring Domains](/Domains/Monitoring-Domains)** - Analytics & health --- ## What are Domains? Domains are web addresses that point to your applications: - **Default Domain**: `myapp.nifetency.com` (auto-provided) - **Custom Domain**: `myapp.com` (your own domain) ### Benefits of Custom Domains **Professional Image** 🏢 - Use your own brand domain - Custom domain name - Professional appearance - Build credibility **Better Control** 🎛️ - Your own domain ownership - SEO benefits - Email associated with domain - Business branding **HTTPS Security** 🔒 - Automatic SSL certificates - Secure connections - Encrypted data transfer - Trust indicators **Analytics & Monitoring** 📊 - Track domain traffic - Monitor performance - View access logs - Analyze usage patterns --- ## Domain Types ### Default Nife Domain Automatically provided for each resource: ``` Application: myapp.nifetency.com Site: mysite.nifetency.com ``` **Features:** - ✅ Free - ✅ Automatic SSL - ✅ No setup needed - ✅ Always available - ✅ Instant deployment **Good for:** - Testing and development - Temporary deployments - Quick prototyping --- ### Custom Domains Your own registered domain: ``` myapp.com www.myapp.com api.myapp.com blog.myapp.com ``` **What you need:** - Registered domain (GoDaddy, Namecheap, etc.) - Access to domain registrar - DNS editing capability - 5-10 minutes for setup **Features:** - ✅ Professional branding - ✅ Automatic SSL/HTTPS - ✅ Full control - ✅ Email domain available - ✅ Multiple subdomains --- ## Dashboard Overview ### Key Information **Applications** Number of apps with domains available **Static Sites** Number of static sites with domains **Custom Domains** Count of custom domains configured **SSL Secured** Number of domains with HTTPS protection ### Quick Actions **Refresh** Update domain information from latest state **Map Custom Domain** Add a new custom domain to app or site --- ## Domain Statuses | Status | Meaning | Action | |--------|---------|--------| | **Active** | Domain working correctly | No action needed | | **Pending** | Being configured | Wait for completion | | **Error** | Configuration issue | Check DNS settings | | **Expired** | Domain expired | Renew domain | --- ## Next Steps 1. **[Adding Custom Domains](/Domains/Adding-Custom-Domains)** - Set up your domain 2. **[DNS Configuration](/Domains/DNS-Configuration)** - Point domain to app 3. **[SSL Certificates](/Domains/SSL-Certificates)** - Secure your domain 4. **[Monitoring Domains](/Domains/Monitoring-Domains)** - Track usage --- ## Common Questions **Q: Do I need a custom domain?** A: No, your default nife domain works fine. Custom domains are optional for professional branding. **Q: How long does setup take?** A: Usually 5-30 minutes depending on DNS propagation. **Q: Is SSL automatically enabled?** A: Yes, all domains get free SSL certificates automatically. **Q: Can I use multiple domains?** A: Yes, you can map multiple custom domains to the same application. **Q: What if my domain is registered elsewhere?** A: You can still use it. Just point DNS records to your Nife app. --- ## Getting Help **Built-in Help:** Click the **?** icon on the domains page **Documentation:** - [Adding Custom Domains](/Domains/Adding-Custom-Domains) - [DNS Configuration](/Domains/DNS-Configuration) - [SSL Certificates](/Domains/SSL-Certificates) **Contact Support:** support@nife.io --- ## Application Monitoring Guide: Uptime, DNS & Traffic URL: https://docs.nife.io/Monitoring/Overview The **Monitoring** dashboard in Nife Deploy provides comprehensive real-time visibility into your applications' performance, availability, and traffic patterns. Track uptime, analyze HTTP traffic, monitor DNS performance, and identify potential issues before they impact your users. ## What is Monitoring? Monitoring is the continuous observation of your applications and infrastructure to understand their behavior, performance, and health. With Nife's monitoring tools, you can: - Track real-time uptime and availability - Analyze HTTP traffic patterns and performance - Monitor DNS resolution performance - Detect issues before they become critical - Export data for analysis and reporting --- ## Why Monitor Your Applications? **Key Benefits of Monitoring:** - 🚀 Identify performance bottlenecks quickly - 🛡️ Detect security threats in real-time - 📊 Understand traffic patterns and user behavior - 🔍 Troubleshoot issues with historical data - 💰 Optimize costs by understanding resource usage - 🎯 Maintain SLA compliance --- ## Monitoring Dashboard Overview The Monitoring dashboard consolidates four key monitoring perspectives: ### 1. **HTTP Traffic** Analyze request patterns, bandwidth usage, and traffic distribution across regions and countries. **Key Metrics:** - Total requests - Cache hit rate - Security threats - Unique visitors ### 2. **DNS Metrics** Monitor DNS query performance and resolution times for your applications. **Key Metrics:** - Query response times - Query volume - Record types - Geographic performance ### 3. **DNS Analytics** Deep dive into DNS query patterns and statistics for advanced analysis. **Insights:** - Query pattern trends - Query type distribution - DNSSEC status - Unusual behavior detection ### 4. **Uptime** Track application availability and performance with minute-level granularity. **Key Metrics:** - Response time - Uptime percentage - SSL certificate expiration - Service availability status --- ## Getting Started ### Accessing the Monitoring Dashboard 1. Log in to your Nife Deploy account 2. Navigate to **Monitoring** from the main sidebar 3. You'll see the Monitoring dashboard with four tabs ### Quick Navigation - **View HTTP Traffic Analytics** → Go to [HTTP Traffic](/Monitoring/HTTP-Traffic) - **Monitor DNS Performance** → Go to [DNS Metrics](/Monitoring/DNS-Metrics) - **Analyze DNS Queries** → Go to [DNS Analytics](/Monitoring/DNS-Analytics) - **Track Uptime** → Go to [Uptime Monitoring](/Monitoring/Uptime-Monitoring) --- ## Key Concepts ### Real-Time Monitoring Data updates automatically at regular intervals: - Uptime data: Every 1-5 minutes - HTTP traffic: Daily updates - DNS metrics: Every 5-15 minutes ### Historical Data Access and analyze past data for trend identification: - HTTP traffic: Last 30 days (configurable) - DNS metrics: Last 7 days rolling window - Uptime data: Full historical access ### Alerts Integration Combine monitoring with alerts to get notified automatically. See [Alerts Documentation](/Alerts/Alerts-Overview) for more details. --- ## Monitoring Dashboard Layout The dashboard is organized into four tabs: 1. **HTTP Traffic Tab** - Configuration panel - Metric cards (Requests, Cache Rate, Threats) - Traffic charts and visualizations - Daily statistics table - Export functionality 2. **DNS Metrics Tab** - Application selector - Performance indicators - Detailed metrics display 3. **DNS Analytics Tab** - Query pattern analysis - Type distribution charts - Advanced analytics 4. **Uptime Tab** - Application selector - Time range selector - Status indicators - Response time charts --- ## Best Practices ### Daily Monitoring - ✅ Review uptime percentage each morning - ✅ Check for security threats - ✅ Monitor traffic trends - ✅ Verify certificate expiration dates (weekly) ### Performance Optimization - ✅ Maintain cache hit rate above 80% - ✅ Keep average response time below 200ms - ✅ Monitor top traffic sources - ✅ Review DNS metrics weekly ### Security & Alerts - ✅ Review security threats regularly - ✅ Set up alerts for degradation - ✅ Monitor unusual traffic patterns - ✅ Keep SSL certificates renewed --- ## Common Tasks ### Monitor Application Uptime 1. Navigate to **Uptime** tab 2. Select your application 3. Choose time range (1h, 3h, 24h) 4. Review metrics and charts ### Analyze Traffic Patterns 1. Go to **HTTP Traffic** tab 2. Enter Cloudflare Zone ID 3. Select date range 4. Review charts and statistics ### Check DNS Performance 1. Click **DNS Metrics** tab 2. Select your application 3. Review performance indicators ### Export Data for Reporting 1. Open **HTTP Traffic** tab 2. Click **Export** button 3. CSV file downloads automatically --- ## Troubleshooting ### No Data Showing - Ensure application is selected and deployed - Wait 5+ minutes for initial data collection - Verify DNS records are properly configured ### Data Load Issues - Check internet connection - Refresh the dashboard - Verify Cloudflare Zone ID is correct - Check API permissions --- ## Related Documentation - [HTTP Traffic Analysis](/Monitoring/HTTP-Traffic) - Detailed HTTP traffic monitoring - [DNS Metrics](/Monitoring/DNS-Metrics) - DNS performance monitoring - [DNS Analytics](/Monitoring/DNS-Analytics) - Advanced DNS analysis - [Uptime Monitoring](/Monitoring/Uptime-Monitoring) - Application availability tracking - [Alerts](/Alerts/Alerts-Overview) - Set up automated notifications - [Applications Management](/UI-Guide/Apps-&-their-Management/App-management/Overview) - Manage your applications --- ## Need Help? For more detailed information on each monitoring feature, see the related documentation pages. Contact our support team if you have any questions or issues. ## Related Resources - 🚀 [Launch Dashboard](https://launch.nife.io) — Monitor your apps on Nife - 📖 [Blog: How a Website Loads](https://blog.nife.io/post/how-a-website-loads-the-life-of-an-http-request/) - 🌐 [nife.io](https://nife.io) — Nife's edge cloud platform --- ## Create & Manage Organizations: Team Management Guide | Nife Docs URL: https://docs.nife.io/organizations/overview Learn how to create new organizations, view existing ones, and manage their settings. ## Accessing Organizations 1. Click on **Organizations** in the main navigation menu 2. You'll see the Organizations page with all your organizations listed --- ## View Organizations The Organizations tab displays all organizations you're a member of in a grid view. Each organization card shows: - **Organization Name** - The name you gave it - **Region** - The region where resources are deployed - **Member Avatars** - Quick view of team members - **Member Count** - Total number of members - **Type Badge** - Shows if it's your default organization --- ## Create a New Organization ### Steps 1. Click the **Create Organization** button (top right) 2. Enter an **Organization Name** - Use letters, numbers, spaces, hyphens, and underscores - Keep it descriptive and memorable 3. Click **Create** ### Organization Name Guidelines ✓ Use clear, descriptive names ✓ Include context (e.g., "Production US-East" instead of just "Prod") ✓ Keep it concise but meaningful ✗ Avoid special characters or very long names ### Examples - `Production Team` - `Development Environment` - `Client-Project-Staging` - `API-Services` - `Mobile-App-Team` --- ## View Organization Details Click on any organization card to: - See all members in the organization - Invite new members - Change member roles - Remove members --- ## Delete an Organization ### Steps 1. Click the **Delete** button (trash icon) on the organization card 2. Confirm the deletion in the dialog 3. The organization will be permanently deleted ### Important ⚠️ **This action cannot be undone** ⚠️ All resources in the organization will be deleted ⚠️ Make sure all important data is backed up first --- ## Organization Regions Regions determine where your organization's resources are deployed. Common regions include: - **US-East** - United States East Coast - **US-West** - United States West Coast - **EU-Central** - European Region - **APAC** - Asia-Pacific Region You can see the region on each organization card. --- ## Default Organization Your first organization is automatically set as the default. This is where new resources are created by default. You can identify the default organization by the "Default Organization" badge on the card. --- ## Organization Member Count The organization card displays: - **Member Avatars** - Visual representation of team members - **+N More** - If organization has more than 5 members - **Total Count** - See exact member count when viewing organization details --- ## Tips and Best Practices ✓ **Create Separate Organizations** - Use different orgs for different teams or projects ✓ **Clear Naming** - Use organization names that clearly describe their purpose ✓ **Document Purpose** - Keep track of what each organization is for ✓ **Regular Review** - Periodically review organization membership ✓ **Archive Old Orgs** - Delete organizations you no longer need --- ## Troubleshooting ### Can't create an organization? - Check that the organization name is valid (no special characters) - Make sure the name isn't already taken - Verify you have permission to create organizations ### Organization not showing up? - Refresh the page - Click the refresh button (top right) - Wait a few moments for it to load ### Want to see more details? Click on the organization card to open the member management dialog and see all members. --- ## Next Steps - [Manage Organization Members](./Managing-Members.mdx) - [Manage Organizational Secrets](./Organizational-Secrets.mdx) - [Migrate Organizations](/organizations/migrate) --- ## Track & Optimize Cloud Costs | Nife Docs URL: https://docs.nife.io/overview/costs Monitor your infrastructure costs and optimize spending. ## Understanding Costs The **Monthly Cost** metric on your dashboard shows your estimated monthly spending based on: - **Compute** - Application and VM resources - **Storage** - Database and file storage - **Bandwidth** - Data transfer - **Other services** - Monitoring, backups, etc. ## Cost Breakdown ### By Resource Type **Applications:** - Cost depends on instance size - Higher specs = Higher cost - Multiple instances = More cost **Virtual Machines:** - Hourly billing - Depends on specs (CPU, RAM) - Running costs apply **Databases:** - Based on instance size - Storage capacity used - Backup storage **Storage:** - Per GB per month - Includes databases and files - Archival storage cheaper **Bandwidth:** - Outbound data transfer - Per GB charged - Inbound usually free ## Reading Cost Metrics ### Total Monthly Cost **Estimated spending for current month** - Calculated from actual usage - Updated regularly - Useful for budgeting ### Cost Trend **Change compared to last month** - **+20%** - 20% higher than last month - **-10%** - 10% lower than last month - **0%** - Same as last month **What it means:** - Increasing = Growing infrastructure or usage - Decreasing = Optimizing or scaling down - Spikes = New deployments or services ## Cost Optimization Strategies ### 1. Right-Size Resources **Problem:** Using larger instances than needed **Solution:** 1. Monitor actual usage (CPU, memory) 2. Identify oversized instances 3. Downsize to match needs 4. Monitor impact 5. Repeat quarterly **Savings:** Up to 40% on compute ### 2. Remove Unused Resources **Problem:** Running resources you don't need **Solution:** 1. Audit all deployments 2. Stop or remove unused apps 3. Delete old databases 4. Archive old data 5. Remove test instances **Savings:** 10-30% typically ### 3. Use Auto-Scaling **Problem:** Paying for peak capacity always **Solution:** 1. Set up auto-scaling rules 2. Scale down during off-hours 3. Scale up for peak times 4. Automatic adjustment 5. Pay for what you use **Savings:** 20-50% for variable workloads ### 4. Optimize Database Usage **Problem:** Large databases consume resources **Solution:** 1. Clean up old data 2. Archive historical data 3. Optimize queries 4. Use appropriate instance size 5. Regular maintenance **Savings:** 15-30% on database costs ### 5. Consolidate Services **Problem:** Multiple small instances = overhead **Solution:** 1. Combine related services 2. Use shared resources 3. Microservices → Monolith (if appropriate) 4. Reduce instance count 5. Maintain performance **Savings:** 20-40% typically ### 6. Choose Right Regions **Problem:** Some regions cost more **Solution:** 1. Check region pricing 2. Deploy to cheaper regions 3. Use multi-region strategically 4. Consider latency trade-off 5. Balance cost vs performance **Savings:** 10-20% based on region ## Budget Management ### Set Budget Targets 1. Calculate acceptable monthly spend 2. Add 20% buffer for growth 3. Review quarterly 4. Adjust as needed ### Track Spending 1. Check cost metric weekly 2. Note major changes 3. Document deployments 4. Correlate cost with activity ### Alert on Overages 1. Set budget alerts 2. Notify team on spike 3. Investigate unexpected increases 4. Take corrective action ## Cost Reduction Checklist - [ ] Review all running applications - [ ] Remove unused apps - [ ] Check for orphaned databases - [ ] Verify instance sizes are appropriate - [ ] Look for expensive regions - [ ] Enable auto-scaling where applicable - [ ] Clean up old data - [ ] Optimize database queries - [ ] Archive historical data - [ ] Consider reserved instances (if available) ## Common Cost Scenarios ### Scenario: Cost Keeps Growing 1. Check what changed 2. Review new deployments 3. Monitor resource usage 4. Identify expensive resources 5. Optimize or remove **Questions to ask:** - What's using the most resources? - Can we optimize that resource? - Is it necessary? - Can it run on smaller instance? ### Scenario: Sudden Cost Spike 1. Check recent changes 2. Look for new deployments 3. Review alert logs 4. Identify cause 5. Take action **Common causes:** - New large database - Runaway process - High traffic - Inefficient code - Misconfiguration ### Scenario: Want to Reduce Costs 1. Audit all resources 2. Identify optimization opportunities 3. Prioritize by impact 4. Implement changes 5. Monitor results **Quick wins:** - Remove unused resources (10-15%) - Right-size instances (10-20%) - Clean up storage (5-10%) - Stop overnight services (5-10%) ## Billing Details ### Where to Find Details 1. Go to **Billing** or **Payments** section 2. View detailed cost breakdown 3. See charges by resource 4. Download invoices 5. Export for analysis ### Understanding Invoices **Invoice shows:** - Charge date - Billing period - Usage details - Unit cost - Total charge **Review:** - Accuracy of charges - Expected amounts - Unusual items - Compare with previous ## Cost Forecasting **Use historical data to predict:** - Next month's spending - Quarterly costs - Annual costs - Growth trajectory **Plan for:** - Budget allocation - Scaling costs - Seasonal variations - Business growth ## Payment Methods **Available options:** - Credit card - Bank transfer - Monthly invoicing - Prepaid credits **Manage in:** - Settings → Billing - Payment method section - Invoice preferences ## Tips for Cost Efficiency ✓ **Monitor regularly** - Weekly cost checks ✓ **Set alerts** - Know about spikes early ✓ **Plan ahead** - Budget for growth ✓ **Right-size** - Match resources to needs ✓ **Clean up** - Remove unused resources ✓ **Automate** - Use auto-scaling ✓ **Archive** - Move old data ✓ **Consolidate** - Combine services ✓ **Optimize** - Efficient code ✓ **Question** - Do you really need it? ## Related Topics - [Understanding Metrics](./Understanding-Metrics.mdx) - [Resource Monitoring](./Resource-Monitoring.mdx) - [Quick Deploy](./Quick-Deploy.mdx) - [Scaling Applications](../Deploy/Deploy.mdx) ## Getting Help For cost questions: 1. Review billing section 2. Check documentation 3. Contact support with: - Screenshots of charges - Time period in question - Explanation of usage --- ## Alert Management & Response | Nife Docs URL: https://docs.nife.io/overview/alerts Learn about the alerts on your dashboard and how to respond to them. ## What are Alerts? Alerts are notifications about issues, warnings, or important events in your infrastructure. They help you: - **Detect problems** - Before they impact users - **Respond quickly** - To critical issues - **Monitor health** - Of your entire system - **Track changes** - Important events and updates ## Alert Types ### Critical Alerts 🔴 **Immediate action required** - Service down or unavailable - Data loss risk - Security issue - Resource exhaustion **Response time:** Immediately (within minutes) ### Warning Alerts 🟡 **Attention needed soon** - High resource usage - Performance degradation - Configuration issues - Approaching limits **Response time:** Within hours ### Info Alerts ⚪ **Informational only** - Successful deployment - Maintenance completed - Configuration changes - Routine information **Response time:** For reference ## Alert Severity Levels | Severity | Icon | Color | Meaning | Action | |----------|------|-------|---------|--------| | Critical | 🔴 | Red | Urgent issue | Immediate | | Warning | 🟡 | Orange | Needs attention | Soon | | Info | ⚪ | Blue | FYI | Reference | ## Reading Alert Messages Each alert shows: - **Alert title** - What the issue is - **Severity** - How urgent it is - **Timestamp** - When it occurred - **Details** - More information about the issue ### Example Alert Messages **Critical Alert:** "Application down: Payment Service unavailable for 5 minutes" - Severity: Critical - Action: Investigate immediately - Next step: Check app status, restart if needed **Warning Alert:** "High CPU usage: API server 85% utilization" - Severity: Warning - Action: Monitor or scale up - Next step: Check performance, increase resources **Info Alert:** "Deployment successful: New version of website deployed" - Severity: Info - Action: None required - Next step: Monitor for issues ## Viewing Alerts ### On Dashboard 1. Find the **Active Alerts** section 2. See up to 5 recent alerts 3. Click alert for more details ### Full Alert List 1. Click **View All** in alerts section 2. Or navigate to **Monitoring** → **Alerts** 3. See complete alert history 4. Filter and search alerts ## Responding to Alerts ### Critical Alert Response 1. **Read the alert** - Understand the issue 2. **Assess impact** - How does this affect users? 3. **Take action**: - Restart service - Scale up resources - Rollback deployment - Contact support 4. **Verify fix** - Confirm issue is resolved 5. **Document** - Note what happened and how you fixed it ### Warning Alert Response 1. **Investigate** - Understand the cause 2. **Monitor** - Watch the situation 3. **Take action if needed**: - Optimize performance - Increase resources - Fix configuration 4. **Prevent recurrence** - Plan long-term solution ### Info Alert Response 1. **Review** - Note the information 2. **Archive** - Mark as read if needed 3. **No action usually required** ## Common Alert Scenarios ### Scenario: High CPU Usage Alert **Alert:** "CPU usage: 95% on app server" **Actions:** 1. Check what's using CPU 2. Optimize code if possible 3. Increase instance size 4. Add more instances 5. Monitor improvement ### Scenario: Deployment Failed Alert **Alert:** "Deployment failed: Image pull error" **Actions:** 1. Check Docker image registry 2. Verify credentials 3. Check image availability 4. Retry deployment 5. Investigate root cause ### Scenario: Database Connection Alert **Alert:** "Database connections: 450/500 limit" **Actions:** 1. Check database query efficiency 2. Add connection pooling 3. Increase connection limit 4. Optimize queries 5. Monitor usage ### Scenario: Service Down Alert **Alert:** "Application unavailable: API Service" **Actions:** 1. Check service status immediately 2. Review recent changes 3. Check logs for errors 4. Restart service if safe 5. Rollback if necessary 6. Contact support if needed ## Alert Management ### Marking Alerts as Read 1. In the alerts section, click **Mark all as read** 2. Or click individual alert to mark 3. Read alerts stay visible but marked ### Viewing Alert History 1. Go to **Monitoring** → **Alerts** 2. See all alerts (new and old) 3. Filter by severity 4. Filter by date range 5. Search by keyword ### Setting Alert Rules Create custom alerts for: - Specific resources - Threshold values - Application errors - Performance metrics See [Alert Configuration](../Alerts/Alert-Configuration.mdx) for details. ## Best Practices for Alert Management ✓ **Act quickly on critical alerts** - Don't delay ✓ **Read the full message** - Understand context ✓ **Document responses** - Keep records ✓ **Set up notifications** - Get alerted via email or Slack ✓ **Review alert history** - Identify patterns ✓ **Adjust thresholds** - Reduce false alarms ✓ **Team communication** - Notify team of issues ✓ **Escalate if needed** - Contact support for help ## Preventing Alerts ### Proactive Monitoring 1. **Regular checks** - Review metrics daily 2. **Capacity planning** - Don't run near limits 3. **Code optimization** - Reduce resource usage 4. **Health checks** - Ensure services are responding 5. **Load testing** - Test before high-traffic events ### Configuration 1. **Set reasonable thresholds** - Not too sensitive 2. **Right-size resources** - Match actual needs 3. **Plan growth** - Scale before hitting limits 4. **Automate scaling** - Use auto-scaling rules 5. **Redundancy** - Have backups for critical services ## Alert Notifications ### Email Notifications - Receive critical alerts via email - Immediate for urgent issues - Digest emails for less urgent ### Slack Notifications - Real-time alerts in Slack - Integrate with your workflow - Team visibility ### Configure Notifications 1. Go to **Settings** → **Notifications** 2. Choose notification method 3. Select alert types to receive 4. Set notification schedule ## Troubleshooting ### Not Receiving Alerts? 1. Check notification settings 2. Verify email address 3. Check Slack workspace connection 4. Look in spam/junk folder 5. Contact support if still not working ### Getting too many alerts? 1. Adjust threshold values 2. Remove false alarm rules 3. Group related alerts 4. Filter less important severities 5. Set quiet hours if available ### Alert seems wrong? 1. Verify the data it's based on 2. Check system status independently 3. Investigate recent changes 4. Consider updating threshold 5. Report to support if it's a bug ## Related Topics - [Understanding Metrics](./Understanding-Metrics.mdx) - [Resource Monitoring](./Resource-Monitoring.mdx) - [Creating Alert Rules](../Alerts/Creating-Alert-Rules.mdx) - [Alert Configuration](../Alerts/Alert-Configuration.mdx) --- ## Quick Deploy Applications | Nife Docs URL: https://docs.nife.io/overview/quick-deploy Deploy applications, sites, and databases instantly with one click from your dashboard. ## What is Quick Deploy? Quick Deploy is a fast-access deployment tool on your dashboard that lets you: - **Deploy applications** - From Docker images or Git repositories - **Create sites** - Deploy static or dynamic websites - **Setup databases** - Launch new database instances - **Get started quickly** - No navigation needed ## Accessing Quick Deploy On your dashboard, look for the **Quick Deploy** section with a lightning bolt icon. You'll see three buttons: - **Deploy App** - Deploy a new application - **Deploy Site** - Deploy a static or dynamic site - **New Database** - Create a database instance - **View All Options** - See all deployment types ## Deploy Application ### Steps 1. Click **Deploy App** on the dashboard 2. Choose deployment source: - **Docker Image** - From a Docker registry - **Git Repository** - From GitHub, GitLab, etc. 3. Fill in required details: - **Application name** - **Repository or image URL** - **Environment variables** (if needed) 4. Click **Deploy** 5. Monitor deployment progress ### Deployment Methods #### Docker Image Use an existing Docker image from: - Docker Hub (e.g., `nginx:latest`) - Private registry (if authenticated) - Public registries **Steps:** 1. Enter image URL 2. Set ports if needed 3. Add environment variables 4. Deploy **Example:** `ghcr.io/myuser/myapp:latest` #### Git Repository Deploy from your code repository: - GitHub, GitLab, Bitbucket - Automatic builds from source - Auto-deploy on push (optional) **Steps:** 1. Select repository 2. Choose branch 3. Set build parameters 4. Deploy **Example:** `https://github.com/username/my-app.git` ## Deploy Site ### Steps 1. Click **Deploy Site** on the dashboard 2. Choose site type: - **Static Site** - HTML, CSS, JavaScript only - **S3 Deployment** - From S3 bucket - **Dynamic Site** - Node.js, Python, etc. 3. Upload files or configure: - Select files to deploy - Set configuration - Add environment variables 4. Click **Deploy** ### Site Deployment Options #### Static Site - Pure HTML/CSS/JavaScript - Fastest deployment - No backend needed - Upload folder with files #### S3 Deployment - Deploy from AWS S3 - Large file handling - Version management - Origin protection #### Dynamic Site - Need application runtime - Support for backend - Database connectivity - More configuration options ## Create Database ### Steps 1. Click **New Database** on the dashboard 2. Choose database type: - **PostgreSQL** - Open-source relational - **MySQL** - Widely used relational - **MongoDB** - Document database - **Redis** - In-memory data store - **MariaDB** - MySQL compatible 3. Configure: - **Database name** - **Username and password** - **Size/resources** - **Backup settings** 4. Click **Create** 5. Wait for database to be ready ### Database Configuration **Resource Selection:** - Small - For development - Medium - For production small apps - Large - For high-traffic apps - Custom - Specific requirements **Backup Settings:** - Daily backups - Retention period - Restore options ## Deployment Best Practices ### Before Deploying ✓ **Test locally** - Ensure code works ✓ **Check configuration** - Environment variables set ✓ **Review resources** - Enough capacity allocated ✓ **Plan timing** - Deploy during low traffic ✓ **Notify team** - Let team know about deployment ### During Deployment ✓ **Monitor progress** - Watch deployment status ✓ **Don't refresh** - Let deployment finish ✓ **Check logs** - Watch for errors ✓ **Have rollback plan** - Know how to revert ### After Deployment ✓ **Test application** - Verify it works ✓ **Check logs** - Look for warnings ✓ **Monitor metrics** - Watch resource usage ✓ **Alert setup** - Configure monitoring ✓ **Document** - Note what was deployed ## Common Deployment Scenarios ### Deploying Simple App 1. Have Docker image ready 2. Click **Deploy App** 3. Select **Docker Image** 4. Paste image URL 5. Set environment variables 6. Deploy and monitor **Example:** Deploying Nginx - Image: `nginx:latest` - Port: 80 - No environment variables needed ### Deploying Website 1. Have website files ready 2. Click **Deploy Site** 3. Select **Static Site** 4. Upload site folder 5. Set domain (optional) 6. Deploy **Files needed:** - index.html - CSS files - JavaScript files - Images - Other assets ### Adding Database to App 1. First create the database - Click **New Database** - Choose type - Set name and password 2. Deploy the application - Click **Deploy App** - Set database connection string as environment variable 3. Monitor both ## Troubleshooting Deployments ### Deployment Fails **Check:** 1. Image/repository URL is correct 2. Access credentials are valid 3. Resource limits aren't exceeded 4. Port isn't already in use **Solutions:** 1. Verify URL format 2. Check credentials 3. Free up resources 4. Use different port ### Application Won't Start **Check:** 1. Environment variables are set 2. Port is available 3. Logs for error messages 4. Resource requirements **Solutions:** 1. Add missing variables 2. Change port 3. Read error logs carefully 4. Increase resources ### Slow Deployment **This is normal if:** - Downloading large images - Building from source code - First deployment takes longer **Speed up:** - Use smaller images - Pre-build locally - Use binary deployments ## Deployment Limits Be aware of: - **Application size limits** - Max file size - **Resource limits** - CPU, memory per instance - **Database size limits** - Storage capacity - **Bandwidth limits** - Data transfer Contact support if you need larger resources. ## Next Steps - [Monitor Recent Deployments](../Monitoring/Monitoring-Overview.mdx) - [Manage Applications](../Deploy/Deploy.mdx) - [Database Setup](../Databases/Databases-Overview.mdx) - [Configure Environment](../Configure/Configure.mdx) ## Tips and Tricks ✓ Use **View All Options** for more deployment types ✓ Save deployment configurations as templates ✓ Use Git auto-deploy for CI/CD workflows ✓ Set up alerts after deployment ✓ Regular backups for databases ✓ Monitor resource usage after deployment --- ## Dashboard Quick Reference | Cheat Sheet & Tips | Nife Docs URL: https://docs.nife.io/overview/quick-reference Quick tips, shortcuts, and helpful information for your dashboard. ## Dashboard at a Glance | Section | What It Shows | Action | |---------|--------------|--------| | **Metrics Cards** | Key statistics | Click to view details | | **Quick Deploy** | Fast deploy options | Click to deploy | | **Recent Deployments** | Latest activity | Click to see history | | **Active Alerts** | Important notifications | Click to investigate | | **Resource Trends** | Usage over time | Select date range | | **Regional Distribution** | Apps by region | Visual breakdown | ## Metric Color Key | Metric | Color | What It Shows | |--------|-------|---------------| | Applications | Blue | App count | | Running Apps | Green | Active apps | | VM Instances | Purple | Server count | | Monthly Cost | Orange | Spending estimate | ## Quick Actions | Action | Steps | Purpose | |--------|-------|---------| | Refresh | Click Refresh button | Get latest data | | Deploy App | Click "Deploy App" | New application | | Deploy Site | Click "Deploy Site" | New website | | New Database | Click "New Database" | Create DB | | Export | Click Export | Download data | ## Keyboard Shortcuts | Shortcut | Action | |----------|--------| | `R` | Refresh dashboard | | `D` | Quick deploy | | `1` | View applications | | `2` | View databases | ## Status Indicators | Indicator | Meaning | Action | |-----------|---------|--------| | 🟢 Green | Running/Good | Monitor | | 🟡 Yellow | Warning | Investigate | | 🔴 Red | Critical | Act now | | ⚪ Gray | Inactive | Review | ## Reading Metrics ### Applications - **Total:** All your apps - **Running:** Currently active - **Trend:** Change vs last week ### Cost - **Monthly:** Estimated spending - **Trend:** Change vs last month - **Sparkline:** 7-day pattern ### Resources - **CPU:** Processor usage % - **Memory:** RAM usage % - **Storage:** Disk usage % ## Common Tasks | Task | Steps | |------|-------| | Deploy new app | Quick Deploy → Deploy App | | Check status | View metric cards | | See recent activity | View Recent Deployments | | Address alert | Click alert → Take action | | Monitor resources | Check Resource Trends | | Track spending | Check Monthly Cost | | Export data | Click Export button | ## Alert Severity Quick Guide | Severity | Symbol | Timeframe | Action | |----------|--------|-----------|--------| | Critical | 🔴 | Immediate | Now | | Warning | 🟡 | Soon | Hours | | Info | ⚪ | Reference | FYI | ## Cost Reference | Item | Cost Factor | Optimization | |------|-------------|--------------| | Apps | Instance size | Right-size | | VMs | CPU/Memory | Consolidate | | Database | Size/Type | Optimize queries | | Storage | GB used | Archive old data | | Bandwidth | Data transfer | Cache/CDN | ## Deployment Quick Tips ✓ **Apps:** Docker image or Git repo ✓ **Sites:** Upload files or S3 ✓ **Database:** Choose type, set password ✓ **Monitor:** Watch recent deployments ✓ **Alerts:** Create for new apps ## Resource Ranges (Normal) | Resource | Light | Normal | High | Critical | |----------|-------|--------|------|----------| | CPU | 0-30% | 30-70% | 70-90% | 90%+ | | Memory | 0-40% | 40-70% | 70-85% | 85%+ | | Storage | 0-50% | 50-80% | 80-90% | 90%+ | ## Time-Based Guides ### Daily - [ ] Check metric cards - [ ] Review alerts - [ ] Monitor active deployments ### Weekly - [ ] Analyze resource trends - [ ] Review cost changes - [ ] Check regional distribution ### Monthly - [ ] Full infrastructure review - [ ] Cost analysis - [ ] Capacity planning - [ ] Optimization review ### Quarterly - [ ] Strategic review - [ ] Growth analysis - [ ] Budget planning - [ ] Right-sizing decisions ## Troubleshooting Quick Guide | Issue | Check First | Solution | |-------|-------------|----------| | Metrics slow to load | Internet connection | Refresh page | | Can't deploy | Resource limits | Check capacity | | High cost spike | Recent deployments | Review new resources | | Frequent alerts | Alert thresholds | Adjust sensitivity | | Deployment failed | Error logs | Check image/repo | ## Useful Links | Destination | Purpose | |-------------|---------| | Applications | View all apps | | Billing | Check invoices | | Monitoring | Full alert management | | Settings | Configure dashboard | | Support | Get help | ## Best Practices Summary ✓ **Check daily** - Build habit ✓ **Act on alerts** - Don't delay ✓ **Monitor trends** - Watch patterns ✓ **Optimize regularly** - Save money ✓ **Plan ahead** - Forecast needs ✓ **Document changes** - Track history ✓ **Set thresholds** - Smart alerts ✓ **Right-size** - Match needs ✓ **Archive data** - Reduce costs ✓ **Backup critical** - Protect important ## Quick Reference Tables ### Metric Trends Interpretation | Trend | Meaning | Action | |-------|---------|--------| | ↑ 20% | Significant increase | Investigate | | ↑ 5% | Small increase | Monitor | | → 0% | Stable | OK | | ↓ 5% | Small decrease | Monitor | | ↓ 20% | Significant decrease | Check if intended | ### Department Workloads | Team | Typical Resources | Cost Focus | |------|------------------|-----------| | Dev | Few apps, DBs | Optimization | | QA | Test instances | Idle resource cleanup | | Prod | Multiple apps | HA, redundancy | | Ops | Monitoring, VMs | Resource efficiency | ## When to Contact Support - Unexpected behavior - Error messages - Deployment failures - Performance issues - Billing discrepancies - Feature requests - Account issues ## Related Documentation - [Understanding Metrics](./Understanding-Metrics.mdx) - [Managing Alerts](./Managing-Alerts.mdx) - [Quick Deploy](./Quick-Deploy.mdx) - [Resource Monitoring](./Resource-Monitoring.mdx) - [Cost Tracking](./Cost-Tracking.mdx) ## Pro Tips 💡 **Use date range picker** for detailed analysis 💡 **Set budget alerts** to prevent surprises 💡 **Export data** monthly for records 💡 **Schedule reviews** with your team 💡 **Document decisions** for future reference 💡 **Check competitor** pricing quarterly 💡 **Automate** where possible 💡 **Test changes** in staging first --- ## Resource Monitoring & Optimization | Nife Docs URL: https://docs.nife.io/overview/resources Monitor your infrastructure resource usage and understand utilization trends. ## What are Resource Metrics? Resource metrics show how much CPU, memory, and storage you're using: - **CPU Usage** - Processor utilization percentage - **Memory Usage** - RAM consumption percentage - **Storage Usage** - Disk space used percentage ## Reading the Resource Chart The dashboard shows a **Resource Utilization Trends** chart displaying: - X-axis: **Time** - Hourly or daily timestamps - Y-axis: **Usage %** - Percentage of total capacity - Three lines: **CPU**, **Memory**, **Storage** ### Understanding the Chart **High usage (`75%+`):** - Close to capacity limits - May need scaling - Could cause slowdowns **Medium usage (50-75%):** - Good utilization - Room for growth - Watch for spikes **Low usage (0-50%):** - Excess capacity - Could consolidate - Room for growth ## CPU Usage **What it means:** - How much processor power you're using - Higher = More processing happening - Percentage of total CPU capacity **Normal ranges:** - **0-30%** - Light usage, fine - **30-70%** - Normal operation - **70-90%** - Heavy usage, monitor - **`90%+`** - Critical, needs scaling **High CPU causes:** - Code inefficiency - Too many requests - Complex calculations - Memory issues forcing swap **Solutions:** 1. **Optimize code** - Make algorithms faster 2. **Scale up** - Larger instance 3. **Scale out** - More instances 4. **Cache results** - Reduce recalculation 5. **Load balance** - Distribute traffic ## Memory Usage **What it means:** - How much RAM (temporary storage) you're using - Higher = More data in memory - Percentage of allocated memory **Normal ranges:** - **0-40%** - Light usage - **40-70%** - Good utilization - **70-85%** - Getting high - **`85%+`** - Very high, optimize **High memory causes:** - Memory leaks in application - Large datasets in memory - Insufficient allocation - Caching too much data **Solutions:** 1. **Fix leaks** - Debug application 2. **Optimize data** - Use efficient structures 3. **Increase RAM** - Add more memory 4. **Reduce cache** - Be selective 5. **Stream data** - Process chunks ## Storage Usage **What it means:** - How much disk space you're using - Permanent storage for files, databases, logs - Percentage of allocated storage **Normal ranges:** - **0-50%** - Light usage, fine - **50-80%** - Good utilization - **80-90%** - Getting full - **`90%+`** - Critical, add space **High storage causes:** - Large databases - Many files/logs - Unused backups - Temp files not cleaned **Solutions:** 1. **Clean up** - Remove unused files 2. **Archive** - Move old data 3. **Compress** - Reduce file size 4. **Add storage** - Increase capacity 5. **Manage logs** - Clean old logs ## Time Range Selection Change the date range to see: - **Last 24 hours** - Hourly breakdown - **Last 7 days** - Daily trends - **Last 30 days** - Monthly overview - **Custom range** - Specific dates **Why check different periods:** - Identify patterns - Spot problems early - Plan capacity - Forecast growth ## Identifying Patterns Look for patterns in your data: ### Spikes - Sudden increases - May indicate problem - Or normal peak traffic - Investigate if unexpected ### Trends - Gradual increase over time - Indicates growing usage - Plan scaling - May need optimization ### Cycles - Daily patterns (business hours higher) - Weekly patterns (weekday vs weekend) - Monthly patterns (seasonal) - Plan accordingly ## Resource Optimization Tips ### CPU Optimization ✓ Profile your application ✓ Optimize hot code paths ✓ Use caching appropriately ✓ Implement rate limiting ✓ Use async processing ### Memory Optimization ✓ Fix memory leaks ✓ Use efficient data structures ✓ Stream large files ✓ Clear unused objects ✓ Monitor allocations ### Storage Optimization ✓ Compress old data ✓ Archive unused files ✓ Clean temporary files ✓ Database optimization ✓ Log rotation ## Scaling Decisions ### When to Scale Up **Signs:** - Consistent high usage (`>80%`) - Frequent alerts - Performance complaints - Peak traffic causing issues **Options:** 1. **Increase instance size** - More resources 2. **Add more instances** - Horizontal scaling 3. **Optimize code** - Use resources efficiently 4. **Use auto-scaling** - Automatic adjustment ### When to Scale Down **Signs:** - Consistently low usage (`<30%`) - Money being wasted - Excess capacity - Consolidation opportunity **Options:** 1. **Reduce instance size** - Fewer resources 2. **Reduce instance count** - Fewer machines 3. **Combine services** - Share resources 4. **Use spot instances** - Cheaper options ## Monitoring Best Practices ✓ **Regular checks** - Review metrics daily ✓ **Set baselines** - Know your normal usage ✓ **Track trends** - Watch for changes ✓ **Compare periods** - Week over week ✓ **Alert setup** - Know when to worry ✓ **Document** - Record capacity planning decisions ## Common Scenarios ### Scenario: Sudden CPU Spike 1. Check time - Traffic peak? 2. Review deployments - New code? 3. Check alerts - Any errors? 4. Monitor - Will it come down? 5. Act if persistent - Investigate or scale ### Scenario: Growing Memory Usage 1. Check for memory leaks 2. Review recent changes 3. Monitor growth rate 4. Increase memory if needed 5. Restart service if persistent ### Scenario: Storage Almost Full 1. Run cleanup 2. Archive old data 3. Delete temp files 4. Check database size 5. Add storage if needed ### Scenario: Consistent High Usage 1. Current sizing adequate? 2. Cost-benefit analysis 3. Performance acceptable? 4. Plan upgrade 5. Schedule migration ## Resources and Documentation - [Cost Tracking](./Cost-Tracking.mdx) - [Understanding Metrics](./Understanding-Metrics.mdx) - [Managing Alerts](./Managing-Alerts.mdx) - [Application Performance](../Deploy/Deploy.mdx) - [Scaling Applications](../Deploy/Deploy.mdx) ## Getting Help If you need help: 1. Check resource metrics first 2. Review alert messages 3. Check documentation 4. Contact support with: - Screenshots of metrics - Time period of issue - What changed recently --- ## Dashboard Metrics Explained | Nife Docs URL: https://docs.nife.io/overview/metrics Learn what each metric on your dashboard represents and how to use them. ## Top-Level Metrics ### Applications **Shows the total number of applications deployed in your account** - **Total Apps** - All applications including running and stopped - **Running Apps** - Currently active and accessible applications - **Stopped Apps** - Paused or inactive applications **What it means:** - Increasing apps = Growing infrastructure - High number of stopped apps = Potential cleanup needed - Running vs total ratio shows utilization **Example:** - Total: 15 apps - Running: 12 apps - Interpretation: 80% of your apps are active ### VM Instances **Virtual machines (servers) you've deployed** - Each VM is a standalone server - Can run applications and services - Uses compute resources (CPU, memory) **What it means:** - More VMs = More capacity - High VM count = Higher costs - Unused VMs = Wasted resources ### Organizations **Team workspaces in your account** - Each organization can have multiple applications - Different teams can use different organizations - Separate billing and resource management **What it means:** - More organizations = More team structure - Useful for large teams or multiple projects - Makes management and access control easier ### Databases **Database instances deployed** - MySQL, PostgreSQL, MongoDB, etc. - May be managed or unmanaged - Store application data **What it means:** - Number of databases backing your apps - Each database takes storage and compute - Important for data management ### Monthly Cost **Estimated spending based on resource usage** - Calculated from compute, storage, bandwidth - Updated regularly as you use resources - Shows trend compared to previous period **What it means:** - Increasing cost = Using more resources - High cost may need optimization - Monitor to budget effectively ## Sparkline Trends Each metric card shows a **sparkline** (small chart) showing the trend over the last 7 days. ### Reading Sparklines **Upward trend** 📈 - Metric is increasing - May be intentional (scaling up) - Or may need investigation **Downward trend** 📉 - Metric is decreasing - Could be good (optimizing) - Or concerning (losing capacity) **Flat trend** ➡️ - Metric is stable - No major changes - Consistent usage **% Change indicator** Shows percentage change compared to one week ago: - **+15%** - 15% increase from last week - **-8%** - 8% decrease from last week - **0%** - No change ## Metric Colors Each metric has an associated color: - **Blue** - Applications - **Green** - Running/Active resources - **Purple** - VM Instances - **Orange** - Costs ## Understanding Changes ### Applications Metric Changes **Increasing:** - You're deploying new applications - Team is growing - Project scope expanding **Decreasing:** - Removing unused applications - Consolidating services - Simplifying infrastructure **Should I be concerned?** - No specific number is "right" - Match your needs and budget - Monitor trends over time ### Cost Metric Changes **Increasing:** - More resources deployed - Using more bandwidth - Higher compute requirements **Decreasing:** - Scaling down resources - Optimizing infrastructure - Removing unused services **Action items:** - Review cost details in Billing section - Identify expensive resources - Optimize or remove as needed ### Resource Changes **VM Instances increasing:** - Adding more servers - Scaling horizontally - Expect cost increase **VM Instances decreasing:** - Removing servers - Consolidating resources - Cost savings ## Comparing Time Periods Use the **Date Range Picker** to compare different periods: 1. Select a date range 2. View metrics for that period 3. Compare with current metrics **Examples:** - Compare last week vs this week - Track monthly growth - Identify seasonal patterns ## Alert Indicators Some metrics show **alert status**: - 🟢 Green = All good - 🟡 Yellow = Attention needed - 🔴 Red = Critical issue **What triggers alerts:** - High error rates - Resource exhaustion - Failed deployments - Cost overages ## Metric Accuracy ### Why metrics update - Real-time monitoring - API queries to servers - Aggregated from multiple sources - Small delays are normal (1-2 minutes) ### Manual refresh Click the **Refresh** button to: - Get latest data immediately - Clear any stale information - Update all metrics at once ## Tips for Monitoring Metrics ✓ **Check daily** - Build a habit ✓ **Watch trends** - Look for patterns ✓ **Set goals** - Know your target metrics ✓ **Act on alerts** - Don't ignore warnings ✓ **Document changes** - Track your growth ✓ **Compare periods** - Week over week, month over month ## Common Metric Scenarios ### Scenario: Rising Costs 1. Check metric details 2. Identify expensive resources 3. Consider optimization: - Right-size instances - Remove unused resources - Use auto-scaling - Choose cost-effective regions ### Scenario: High Application Count 1. Review which apps are active 2. Archive unused applications 3. Consolidate similar services 4. Consider using fewer organizations ### Scenario: Growing VM Usage 1. Check utilization (CPU, memory) 2. Ensure VMs are needed 3. Look for rightsizing opportunities 4. Consider auto-scaling options ### Scenario: New Alerts 1. Read alert message 2. Determine urgency 3. Take action or investigate 4. Resolve or escalate ## Related Topics - [Managing Alerts](./Managing-Alerts.mdx) - [Resource Monitoring](./Resource-Monitoring.mdx) - [Cost Tracking](./Cost-Tracking.mdx) - [Quick Deploy](./Quick-Deploy.mdx) --- ## Dashboard Overview | Nife Docs URL: https://docs.nife.io/overview The Dashboard Overview is your central hub for monitoring your entire infrastructure at a glance. View real-time metrics, track deployments, manage alerts, and monitor costs all from one place. ## What is the Dashboard? Your Dashboard is a comprehensive control center that shows: - **Real-time metrics** - Live counts of your applications and resources - **Recent activity** - Latest deployments and system events - **Active alerts** - Important notifications requiring attention - **Resource utilization** - CPU, memory, and storage trends - **Cost tracking** - Monthly spending and billing information - **Quick actions** - Fast access to common deployment tasks ## Key Dashboard Sections ### 📊 Metrics Cards Top-level statistics showing your infrastructure at a glance: - **Applications** - Total and running applications - **VM Instances** - Virtual machines deployed - **Organizations** - Your team structures - **Databases** - Deployed databases - **Monthly Cost** - Current spending ### 🚀 Quick Deploy One-click access to deploy applications, sites, or databases without navigating through multiple menus. ### 📋 Recent Deployments See your latest deployments with status, version, region, and timestamp information. ### 🔔 Active Alerts Monitor system alerts and warnings in real-time so you can respond quickly to issues. ### 📈 Resource Utilization View CPU, memory, and storage usage trends over time to understand your infrastructure patterns. ### 🌍 Regional Distribution See how your applications are distributed across different regions for load balancing insights. ## Getting Started 1. **Log in to Nife** - Access the dashboard after authentication 2. **Review metrics** - Check top-level statistics 3. **Check alerts** - Address any active warnings 4. **View recent deployments** - Track your latest changes 5. **Monitor resources** - Keep an eye on utilization trends ## Dashboard Features ### Real-Time Monitoring - Auto-updating metrics - Live status information - Current resource usage ### Quick Actions - Deploy applications instantly - Create databases on-demand - Access settings quickly ### Data Export - Download dashboard data as JSON - Share metrics with team - Create reports ### Customization - Date range selection for trends - Filter by organization - Refresh data manually ## Common Tasks ### Check Infrastructure Status 1. Look at the metric cards at the top 2. Review the alert section 3. Check resource utilization trends ### Deploy Quickly 1. Click "Deploy App", "Deploy Site", or "New Database" 2. Select your deployment type 3. Complete the deployment wizard ### Monitor Performance 1. View resource utilization chart 2. Select different date ranges 3. Analyze CPU, memory, and storage trends ### Respond to Alerts 1. Check Active Alerts section 2. Click alert to view details 3. Take corrective action 4. Mark as resolved ## Dashboard Metrics Explained ### Applications - **Total** - All applications in your account - **Running** - Currently active applications - **Inactive** - Stopped or paused applications ### Resources - **VM Instances** - Virtual machines (servers) - **Databases** - Database instances - **Organizations** - Team workspaces ### Cost - **Monthly Cost** - Estimated monthly spending - **Cost Trend** - How spending is changing ### Alerts - **Count** - Number of active alerts - **Severity** - Critical, warning, or info level ## Status Indicators Different colors indicate status: - 🟢 **Green/Success** - Everything running properly - 🟡 **Yellow/Warning** - Attention needed - 🔴 **Red/Critical** - Immediate action required - ⚪ **Gray** - Inactive or pending ## Best Practices ✓ **Check daily** - Review your dashboard regularly ✓ **Address alerts** - Don't ignore active warnings ✓ **Monitor trends** - Watch resource utilization patterns ✓ **Plan capacity** - Use trends to forecast needs ✓ **Track costs** - Monitor spending trends ✓ **Document changes** - Keep track of deployments ## Next Steps - [View and Understand Metrics](./Understanding-Metrics.mdx) - [Manage Alerts](./Managing-Alerts.mdx) - [Deploy Applications](./Quick-Deploy.mdx) - [Monitor Resources](./Resource-Monitoring.mdx) - [Track Costs](./Cost-Tracking.mdx) --- ## App Management Overview | Nife Docs URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Overview Once the app is selected, you will find more information on the App 1. [Overview](/UI-Guide/Apps-&-their-Management/App-management/App-Overview) - status, active regions and link to the app 2. [Configuration](/UI-Guide/Apps-&-their-Management/App-management/Configuration) - the information centre for your configuration 3. [Scale](/UI-Guide/Apps-&-their-Management/App-management/Scale) - allows to extend regions and locations 4. [Metrics](/UI-Guide/Apps-&-their-Management/App-management/Metrics) - application metrics 5. [Activity](/UI-Guide/Apps-&-their-Management/App-management/Activity) - application status with user information and timestamp 6. [Logs](/UI-Guide/Apps-&-their-Management/App-management/Logs) - logs of the application 7. [Settings](/UI-Guide/Apps-&-their-Management/App-management/Settings) - app related options like move (source and destination), suspend and delete 8. [A/B Testing](/UI-Guide/Apps-&-their-Management/App-management/Deployment-Strategies/AB-testing) - run two variants side by side, split traffic, and declare a winner :::tip For a comprehensive guide on the application dashboard and its components, please visit the [App Overview](/UI-Guide/Apps-&-their-Management/App-management/App-Overview) documentation. ::: --- ## Virtual Machine Management | Nife URL: https://docs.nife.io/VM-Management/overview Nife provides a unified interface for managing virtual machines across multiple cloud providers. With VM Management, you can create, configure, monitor, and control virtual machine instances hosted on AWS, Google Cloud Platform (GCP), and Microsoft Azure from a single dashboard. ## Overview The VM Management system allows you to: - **Create VM Instances**: Provision new virtual machines on your preferred cloud provider - **Manage Lifecycle**: Start, stop, restart, and delete VM instances - **Monitor Performance**: Track resource usage and instance health - **Configure Credentials**: Securely store and manage cloud provider credentials - **Multi-Cloud Support**: Work seamlessly across AWS, GCP, and Azure - **Export Data**: Export VM instance information in CSV or JSON formats ## Key Features ### Unified Dashboard View all your VM instances across different cloud providers in one centralized location with rich filtering and search capabilities. ### Multi-Cloud Support - **AWS**: Amazon EC2 instances with IAM credential management - **GCP**: Google Compute Engine instances with service account authentication - **Azure**: Virtual machines with service principal authentication ### Instance Management - Start, stop, and restart instances - Configure instance settings - View detailed instance information - Monitor instance health and status ### Organization-Based Access Manage VM instances at the organization level with proper access controls and isolation. ### Data Export Export your VM inventory as CSV or JSON for reporting and analysis. ## Use Cases ### Development Teams Quickly provision development and testing environments across multiple cloud providers. ### Production Infrastructure Manage production VM instances with monitoring, backups, and disaster recovery capabilities. ### Cost Optimization Track and optimize your cloud spending by managing resources across providers. ### Multi-Cloud Strategy Maintain flexibility by distributing workloads across different cloud providers. ## Getting Started To get started with VM Management: 1. **Access VM Management**: Navigate to the VM Management section in your Nife dashboard 2. **Create VM Instances**: Add your first VM instance by selecting your cloud provider 3. **Configure Credentials**: Provide the necessary credentials for your cloud provider 4. **Monitor & Manage**: Use the dashboard to monitor and manage your instances ## FAQ **Can I manage VMs from different cloud providers in one dashboard?** Yes! Nife's unified dashboard lets you manage AWS EC2, GCP Compute Engine, and Azure VMs all in one place. **Is my cloud provider data secure?** Yes. Credentials are encrypted and securely stored. Nife never stores your instance data, only references. **What cloud providers does Nife support?** Nife supports AWS, Google Cloud Platform (GCP), and Microsoft Azure with full management capabilities. **Can I automate VM operations?** Yes. Use Nife's automation features to schedule start/stop operations and create management workflows. ## Next Steps - [Creating VM Instances](/VM-Management/creating-vms) - Set up your first VM - [Managing VM Instances](/VM-Management/managing-vms) - Control your instances - [Cloud Provider Configuration](/VM-Management/cloud-provider-setup) - Configure your cloud providers - [Monitoring VMs](/VM-Management/monitoring-vms) - Monitor performance --- --- ## VMs Dashboard Overview | Multi-Cloud VM Management | Nife URL: https://docs.nife.io/VMs/overview The VMs Dashboard provides a comprehensive interface for managing all your virtual machine instances across AWS, Google Cloud Platform (GCP), and Microsoft Azure in one unified location. ## Dashboard Features ### Complete Instance Management The VMs Dashboard allows you to: - **View all VMs**: See all your virtual machine instances across different cloud providers - **Monitor Status**: Real-time instance status including running, stopped, and paused states - **Control Instances**: Start, stop, restart, and configure VM instances - **Delete Instances**: Remove VM instances when no longer needed - **Access Details**: View comprehensive information about each instance - **Export Data**: Export VM inventory as CSV or JSON ### Multi-Cloud Integration Work seamlessly with: - **AWS EC2**: Amazon Elastic Compute Cloud instances - **GCP Compute Engine**: Google Cloud virtual machine instances - **Azure Virtual Machines**: Microsoft Azure VM deployments - **Monolith Instances**: Docker-based monolith deployments ## Dashboard Layout ### Page Header The top of the VMs Dashboard displays: **Title and Description** - "Virtual Machines" title with description of unified control - Total VM count badge **Key Metrics** - **Running**: Number of active VM instances - **Stopped**: Number of stopped instances - **Providers**: Count of cloud providers in use - **Zones**: Number of deployment zones/regions ### Quick Action Buttons **Refresh Button** - Click to reload VM instance data - Shows loading spinner while refreshing - Updates status and metrics in real-time **Filter Toggle Button** - Click to show/hide filter panel - Highlighted when filters are active - Lets you filter by search, status, and provider **View Mode Toggle** - Switch between Card View and Table View - Cards: Visual overview of each instance - Table: Detailed information in columns **Create VM Button** - Primary action button - Opens create VM interface - Links to VM creation workflow ### Additional Actions Located in the overflow menu: - **Export as CSV**: Download instance list as spreadsheet - **Export as JSON**: Download instance data in JSON format ## Monolith Instances Section If you have Docker-based monolith deployments, they appear in a dedicated section: **Monolith Cards** - Instance name and IP address - User information - Creation date - Manage button to access monolith configuration Each monolith displays: - 🐳 Docker icon indicator - Instance name - IP address for access - Associated user - Creation timestamp - Manage button for configuration ## Filter Panel When filters are enabled, you can refine your VM list: **Search Box** - Search by instance name or organization name - Real-time filtering as you type - Shows matching results instantly **Status Filter** - All Status: Show all instances regardless of state - Running: Show only active instances - Stopped: Show only powered-off instances - Paused: Show only temporarily paused instances **Type Filter** - All Types: Show all cloud provider instances - AWS: Show only Amazon EC2 instances - GCP: Show only Google Compute instances - Azure: Show only Microsoft Azure instances ## VM Instance Cards Each VM instance displays as an interactive card with: ### Card Header - **Instance Icon**: Visual indicator of cloud provider (AWS ☁️, GCP 🟠, Azure 🔵) - **Instance Name**: The name you assigned to the VM - **Provider Info**: Cloud provider type and zone/region - **Organization**: Which organization owns the instance - **Status Badge**: Current state with visual indicator ### Status Indicators - **Running** (Green): Instance is active and operational - **Stopped** (Gray): Instance is powered off - **Paused** (Yellow): Instance is temporarily paused - **Terminated** (Red): Instance has been deleted or terminated ### Quick Action Buttons Available buttons on each card: **Settings Button** (⚙️) - Opens instance configuration - Allows you to modify settings **Restart Button** (↻) - Restarts the running instance - Useful after configuration changes **Play/Pause Button** - Shows Play (▶️) if instance is stopped - click to start - Shows Pause (⏸️) if instance is running - click to stop - Toggles instance power state **Delete Button** (🗑️) - Removes the instance permanently - Opens confirmation dialog - Cannot be undone - ensure backup first **Expand Icon** (→) - Opens detailed instance panel - Shows full instance information ### Card Content **Instance Information** - Instance ID (with 🆔 icon) - Zone/Region (with 📍 icon) - Cloud Provider (with ☁️ icon) - Created By user (with 👤 icon) **Recent Activity** - Latest instance activities - Activity messages with timestamps - Up to 2 most recent activities shown **Additional Actions** - **Console**: Access instance browser console - **SSH**: Connect via SSH terminal - **Snapshots**: Manage instance backups and snapshots - **Monitoring**: View performance metrics and health ## Detail Panel Click on any VM card to open the detail panel: **Right-side Panel** displays: - Complete instance configuration - Resource allocation details - Storage and volume information - Network settings - Recent activity log - Performance metrics - Advanced configuration options **Close Panel** - Click the X button to close - Click outside the panel - Press Escape key ## Empty States ### No VMs Created When you have no VM instances: - Helpful message: "No virtual machines yet" - Description: "Create your first VM instance to get started" - Quick action: "Create VM" button ### No Results from Filters When filters return no matches: - Message: "No VMs found" - Suggestion: "Try adjusting your search or filter criteria" - Clear filters to see all instances ## Loading States While data is loading: - Skeleton placeholders show loading progress - Header information displays first - Filter panel loads next - VM cards appear as data arrives ## Error Handling If there's an issue loading VMs: - Error message displays with details - "Retry" button to reload data - Contact support option if problem persists ## Data Refresh ### Auto-Refresh - Dashboard automatically refreshes every 30 seconds - Updates status and metrics silently - Shows latest information without manual intervention ### Manual Refresh - Click the Refresh button in the header - Displays loading spinner while updating - Updates all VM data and metrics ## Keyboard Shortcuts - **Escape**: Close detail panel - **Click outside panel**: Close detail panel - **Ctrl/Cmd + F**: Focus search field ## Status Monitoring ### Color Coding - **Green**: Running instances are healthy and active - **Gray**: Stopped instances are powered off - **Yellow**: Paused instances are temporarily inactive - **Red**: Terminated instances have been deleted ### Pulsing Indicator - Running instances show a pulsing dot in the status badge - Visual indicator of active status - Helps quickly identify running instances ## Performance Tips 1. **Use Filters**: Filter by status or provider to focus on what you need 2. **Search**: Use search to quickly find specific instances 3. **View Mode**: Switch to table view for dense information display 4. **Refresh**: Click refresh to ensure you have latest data 5. **Export**: Export data for reporting and backup ## Metrics at a Glance The dashboard header shows key metrics: - **Total VMs**: All instances across all providers - **Running**: Active instances ready for use - **Stopped**: Powered-off instances - **Providers**: Different cloud platforms in use - **Zones**: Geographic regions/zones in use ## Multi-Provider Management Work across multiple cloud providers seamlessly: **AWS Instances** - ☁️ Icon indicates AWS - Show AWS region (e.g., us-east-1) - AWS-specific operations available **GCP Instances** - 🟠 Icon indicates GCP - Show GCP zone (e.g., us-central1-a) - GCP-specific operations available **Azure Instances** - 🔵 Icon indicates Azure - Show Azure region name - Azure-specific operations available ## Next Steps - [Managing VMs](/VMs/managing) - Control instances and perform operations - [VM Instance Details](/VMs/instance-details) - Access detailed information - [Console and SSH Access](/VMs/access) - Connect to instances - [Monitoring Performance](/VMs/monitoring) - Track metrics and health - [Export and Reporting](/VMs/export) - Export data for analysis --- --- ## Volumes Dashboard Overview - Persistent Storage Management | Nife URL: https://docs.nife.io/Volumes/overview The Volumes Dashboard provides a comprehensive interface for managing persistent storage volumes across all your deployed applications. ## Dashboard Features ### Volume Management The Volumes Dashboard allows you to: - **View all volumes**: See all persistent storage volumes across deployed applications - **Track storage usage**: Monitor volume sizes and capacity - **Organize by application**: View volumes grouped by the applications they serve - **Manage snapshots**: Create, restore, and manage volume snapshots - **Monitor distribution**: See how storage is distributed across applications - **Export data**: Export volume information for analysis and reporting ### Persistent Storage Persistent volumes provide: - Durable storage that survives application restarts - Data preservation across deployments - Multi-region storage capabilities - Snapshot and backup functionality - High availability and redundancy ## Dashboard Layout ### Page Header **Title and Description** - "Volumes" title with description of storage management - Total volume count badge **Key Metrics** - **Applications**: Number of apps with volumes - **Total Volumes**: Total number of persistent volumes - **Average per App**: Average volumes per application ### Quick Action Buttons **Refresh Button** - Click to reload volume data - Shows loading indicator while refreshing - Updates volume information in real-time **Export Button** (Overflow menu) - Click to export all volumes as JSON - Downloads volumes data to your computer - Includes volume name, size, region, and creation date ## Summary Cards Three overview cards display key metrics: **Total Applications with Volumes** - Number of applications that have persistent volumes - Indicates how many apps use storage - Updated in real-time **Total Volumes** - Complete count of all volumes - Sum across all applications - Shows total storage infrastructure **Average Volumes per App** - Calculated average volumes per application - Helps identify resource distribution - Zero if no apps with volumes ## Volumes by Application Section The main content area displays all applications with their volumes organized hierarchically. ### Application Card Structure Each application is shown as an expandable card with: **Application Header** - **App Icon**: Visual indicator of application - **Application Name**: Name of the deployed application - **Status Badge**: Current application status (running, deployed, etc.) - **Organization**: Which organization owns the application - **Regions**: Geographic regions where application is deployed - **Volume Count**: Number of volumes for this application **Expandable Details** - Click the application card to expand/collapse - Shows detailed volume table when expanded - Hide Details button to collapse ### Volume Table When an application is expanded, a table displays all volumes: **Column Headers** | Column | Description | |--------|-------------| | Volume Name | Name assigned to the volume | | Size | Storage capacity in GB | | Region | Geographic region where volume is located | | Created At | Date volume was created | | Actions | Snapshot management buttons | **Volume Information** **Volume Name** - User-friendly identifier for the volume - Describes purpose (e.g., "database", "logs", "cache") - Unique within the application **Size** - Storage capacity in GB - Indicates how much space is allocated - May vary based on application needs **Region** - Geographic location of the volume - Examples: us-east-1, eu-west-1, ap-south-1 - Affects latency and data residency **Created At** - Date and time the volume was created - Formatted for easy reading - Helps track volume age **Actions Column** **Snapshots Button** - Opens snapshot management interface - Shows existing snapshots for the volume - Allows creating new snapshots - Enables snapshot restoration ## Empty State When no applications have volumes: **Display** - HardDrive icon - Message: "No Volumes Found" - Description: "None of your applications have persistent volumes configured yet" **What This Means** - No applications currently use persistent storage - Applications may not require persistent data - Volumes can be added during application creation ## Status Indicators ### Application Status Badge **Status Types** - **Running**: Application is active and operational - **Deployed**: Application has been deployed - **Stopped**: Application is not currently running Color coding helps identify at a glance: - Green: Active/running - Gray: Stopped/inactive - Blue: Deployed ## Loading States While data loads: - Skeleton placeholders show loading progress - Header appears first - Summary cards load next - Application list loads as data arrives ## Error Handling If there's an issue loading volumes: - Error message displays with details - Application continues to function - Can retry loading by clicking Refresh ## Data Refresh ### Auto-Refresh - Dashboard background refresh (if configured) - Updates volume data silently - Shows latest information ### Manual Refresh - Click Refresh button in header - Shows loading spinner while updating - Updates all volume data and metrics ## Volume Statistics The dashboard calculates and displays: **Total Metrics** - Total applications with volumes - Total number of volumes - Average distribution across apps **Per-Application Metrics** - Number of volumes per app - Sum of volumes displayed in badge - Shows as "X Volumes" or "X Volume" ## Viewing Volume Details ### Accessing Details **Click Application Card** 1. Click anywhere on the application row 2. Volume table expands below 3. Shows all volumes for that application 4. Click again to collapse **Information Available** - Volume name and purpose - Storage size in GB - Geographic region - Creation timestamp - Snapshot availability ## Snapshot Management ### Snapshot Overview Snapshots provide: - Point-in-time backup of volume data - Quick recovery from data loss - Data versioning capability - Disaster recovery option ### Accessing Snapshots **From Volume Table** 1. Expand application to see volumes 2. Click "Snapshots" button on volume row 3. Snapshots dialog opens 4. Shows all existing snapshots 5. Option to create new snapshot ### Snapshot Dialog **Display Elements** - Volume name being managed - List of existing snapshots - Create Snapshot button - Restore button for each snapshot - Snapshot details (name, status, size, date) ## Exporting Data ### Export Function **From Header** 1. Click overflow menu (three dots) 2. Select "Export Volumes" 3. JSON file downloads to computer 4. Includes all volume data **Exported Data Includes** - Application name - Volume name - Volume size - Region - Creation date **File Format** ```json [ ] ``` ## Keyboard Shortcuts - **Click application**: Expand/collapse volume details - **Click Snapshots**: Open snapshot management ## Navigation The dashboard provides easy navigation: **Breadcrumbs** (optional) - Home → Volumes **Quick Actions** - Refresh data with Refresh button - Export with Export button - Manage snapshots from volume rows ## Performance Tips 1. **Expand Selectively**: Expand only applications you're interested in 2. **Use Export**: Export data for offline analysis 3. **Monitor Size**: Watch for volumes approaching capacity 4. **Regular Snapshots**: Create snapshots before making changes 5. **Review Organization**: Keep volumes organized by purpose ## Best Practices 1. **Naming Convention**: Use descriptive volume names (e.g., "database", "logs", "cache") 2. **Regular Snapshots**: Create snapshots before updates 3. **Monitor Growth**: Track volume size trends 4. **Cleanup**: Remove old unused volumes 5. **Documentation**: Keep notes on volume purposes ## Key Concepts and Terminology **Volume**: Persistent storage attached to applications that survives restarts and deployments **Snapshot**: Point-in-time backup of volume data for recovery and versioning **Region**: Geographic location where volume data is stored **Capacity**: Total storage space allocated to a volume ## Next Steps - [Managing Volumes](/Volumes/managing) - Create and manage persistent storage volumes - [Snapshot Management](/Volumes/snapshots) - Create and restore point-in-time backups - [Volume Details](/Volumes/details) - Access detailed volume information and properties - [Export and Analysis](/Volumes/export) - Export and analyze volume data for reporting --- ## Deploy MariaDB on Nife With nifectl | Database Deployment Guide URL: https://docs.nife.io/CLI/how-to-deploy-mariadb-using-nifectl-cli This section explains how to deploy a **MariaDB database** using the `nifectl` CLI. ### Initialize the MariaDB Application Use the `nifectl init` command to register your MariaDB application and generate the required `nife.toml` file. ```bash nifectl init --name your-database-name --builtin mariadb --org your-organization-name --volume-size 1 --volume-path /var/lib/mysql --port 3306 --external 3306 --replica 1 --routing-policy Latency --request-memory 12 --request-cpu 0.5 --limit-memory 12 --limit-cpu 1 ``` #### Explanation of Flags * `--name`: A unique name for your application. * `--builtin=mariadb`: Specifies the use of MariaDB as the runtime. * `--org`: The organization name that will own the app. * `--volume-size`: Size of the persistent volume in GB. * `--volume-path`: Filesystem path inside the container (`/var/lib/mysql` for MariaDB). * `--port` and `--external`: Internal and external port (default MariaDB port is 3306). * `--request-*` and `--limit-*`: Resource configuration for CPU and memory. * `--replica`: Number of instances (replicas) to be deployed. * `--routing-policy`: Defines how traffic is routed (e.g., Latency, Geolocation). --- ## Deploy the MariaDB Application Once the application is initialized, deploy it with the required environment variable using the following command: ```bash nifectl deploy -e MYSQL_ROOT_PASSWORD=your-secret-password ``` * Replace `your-secret-password` with a secure password of your choice. * `MYSQL_ROOT_PASSWORD` is required by MariaDB to initialize the root user. --- ## Deploy MongoDB on Nife With nifectl | Database Deployment Guide URL: https://docs.nife.io/CLI/how-to-deploy-mongodb-using-nifectl-cli This section explains how to deploy a **MongoDB database** using the `nifectl` CLI. ### Initialize the MongoDB Application Use the `nifectl init` command to register your MongoDB application and generate the required `nife.toml` file. ```bash nifectl init --name your-database-name --builtin mongo --org your-organization-name --volume-size 1 --volume-path /data/db --port 27017 --external 27017 --replica 1 --routing-policy Latency --request-memory 12 --request-cpu 0.5 --limit-memory 12 --limit-cpu 1 ``` #### Explanation of Flags * `--name`: A unique name for your application. * `--builtin=mongo`: Specifies the use of MongoDB as the runtime. * `--org`: The organization name that will own the app. * `--volume-size`: Size of the persistent volume in GB. * `--volume-path`: Filesystem path inside the container (`/data/db` for MongoDB). * `--port` and `--external`: Internal and external port (default MongoDB port is 27017). * `--request-*` and `--limit-*`: Resource configuration for CPU and memory. * `--replica`: Number of instances (replicas) to be deployed. * `--routing-policy`: Defines how traffic is routed (e.g., Latency, Geolocation). --- ## Deploy the MongoDB Application Once the application is initialized, deploy it with the required environment variables using the following command: ```bash nifectl deploy -e MONGO_INITDB_ROOT_USERNAME=your-username -e MONGO_INITDB_ROOT_PASSWORD=your-password ``` * Replace `your-username` and `your-password` with secure credentials of your choice. * `MONGO_INITDB_ROOT_USERNAME` and `MONGO_INITDB_ROOT_PASSWORD` are required to initialize the MongoDB root user. --- ## Deploy MySQL on Nife With nifectl | Database Deployment Guide URL: https://docs.nife.io/CLI/how-to-deploy-mysql-using-nifectl-cli This section explains how to deploy a **MySQL database** using the `nifectl` CLI. ### Initialize the MySQL Application Use the `nifectl init` command to register your MySQL application and generate the required `nife.toml` file. ```bash nifectl init --name your-database-name --builtin mysql --org your-organization-name --volume-size 1 --volume-path /var/lib/mysql --port 3306 --external 3306 --replica 1 --routing-policy Latency --request-memory 12 --request-cpu 0.5 --limit-memory 12 --limit-cpu 1 ``` #### Explanation of Flags * `--name`: A unique name for your application. * `--builtin=mysql`: Specifies the use of MySQL as the runtime. * `--org`: The organization name that will own the app. * `--volume-size`: Size of the persistent volume in GB. * `--volume-path`: Filesystem path inside the container (`/var/lib/mysql` for MySQL). * `--port` and `--external`: Internal and external port (default MySQL port is 3306). * `--request-*` and `--limit-*`: Resource configuration for CPU and memory. * `--replica`: Number of instances (replicas) to be deployed. * `--routing-policy`: Defines how traffic is routed (e.g., Latency, Geolocation). --- ## Deploy the MySQL Application Once the application is initialized, deploy it with the required environment variable using the following command: ```bash nifectl deploy -e MYSQL_ROOT_PASSWORD=your-secret-password ``` * Replace `your-secret-password` with a secure password of your choice. * `MYSQL_ROOT_PASSWORD` is required by MySQL to initialize the root user. --- ## Deploy PostgreSQL on Nife with nifectl | Deployment Guide URL: https://docs.nife.io/CLI/how-to-deploy-postgres-using-nifectl-cli This section explains how to deploy a **PostgreSQL database** using the `nifectl` CLI. ### Initialize the PostgreSQL Application Use the `nifectl init` command to register your PostgreSQL application and generate the required `nife.toml` file. ```bash nifectl init --name your-database-name --builtin postgres --org your-organization-name --volume-size 1 --volume-path /var/lib/postgresql/data/pgdata --port 5432 --external 5432 --replica 1 --routing-policy Latency --request-memory 12 --request-cpu 0.5 --limit-memory 12 --limit-cpu 1 ``` #### Explanation of Flags * `--name`: A unique name for your application. * `--builtin=postgres`: Specifies the use of PostgreSQL as the runtime. * `--org`: The organization name that will own the app. * `--volume-size`: Size of the persistent volume in GB. * `--volume-path`: Filesystem path inside the container (`/var/lib/postgresql/data/pgdata` for PostgreSQL). * `--port` and `--external`: Internal and external port (default PostgreSQL port is 5432). * `--request-*` and `--limit-*`: Resource configuration for CPU and memory. * `--replica`: Number of instances (replicas) to be deployed. * `--routing-policy`: Defines how traffic is routed (e.g., Latency, Geolocation). --- ## Deploy the PostgreSQL Application Once the application is initialized, deploy it with the required environment variables using the following command: ```bash nifectl deploy -e POSTGRES_PASSWORD=your-secret-password -e PGDATA=/var/lib/postgresql/data/pgdata/postgres ``` * Replace `your-secret-password` with a secure password of your choice. * `POSTGRES_PASSWORD` is required by PostgreSQL to initialize the root user. * `PGDATA` sets the database data directory. --- ## Deploy Redis on Nife With nifectl | Database Deployment Guide URL: https://docs.nife.io/CLI/how-to-deploy-redis-using-nifectl-cli This section explains how to deploy a **Redis database** using the `nifectl` CLI. ### Initialize the Redis Application Use the `nifectl init` command to register your Redis application and generate the required `nife.toml` file. ```bash nifectl init --name your-database-name --builtin redis --org your-organization-name --volume-size 1 --volume-path /data --port 6379 --external 6379 --replica 1 --routing-policy Latency --request-memory 12 --request-cpu 0.5 --limit-memory 12 --limit-cpu 1 ``` #### Explanation of Flags * `--name`: A unique name for your application. * `--builtin=redis`: Specifies the use of Redis as the runtime. * `--org`: The organization name that will own the app. * `--volume-size`: Size of the persistent volume in GB. * `--volume-path`: Filesystem path inside the container (`/data` for Redis). * `--port` and `--external`: Internal and external port (default Redis port is 6379). * `--request-*` and `--limit-*`: Resource configuration for CPU and memory. * `--replica`: Number of instances (replicas) to be deployed. * `--routing-policy`: Defines how traffic is routed (e.g., Latency, Geolocation). --- ## Deploy the Redis Application Once the application is initialized, deploy it with the required environment variable using the following command: ```bash nifectl deploy -e REDIS_PASSWORD=your-secret-password ``` * Replace `your-secret-password` with a secure password of your choice. * `REDIS_PASSWORD` is required to secure access to your Redis database. --- ## Securing Redis with TLS For production environments, it is recommended to secure your Redis instances with TLS. Enable TLS to ensure that all data transmitted between your application and the Redis database is encrypted. --- ## nifectl apps Command Reference URL: https://docs.nife.io/CLI/apps Managing applications is one of the core features of Nifectl. The `apps` command group provides comprehensive tools for creating, deploying, monitoring, and controlling your Nife applications throughout their entire lifecycle. Whether you're launching a new application, moving it between organizations, or managing its runtime state, these commands give you complete control. ## nifectl apps Main command for application management operations. ### Usage ```bash nifectl apps [command] [flags] ``` ### Available Commands * create - Create a new application * destroy - Permanently destroys an App * download - Download App * list - List applications * move - Move an App to another organization * resume - Resume an application * revert - Revert an App to previous version * sourcelist - List an App's Source List * suspend - Suspend an application * switch - Sets Current App ### Options ``` -h, --help help for apps ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## nifectl apps create Create and register a new application with the Nife platform. ### About The APPS CREATE command will both register a new application with the Nife platform and create the `nife.toml` file which controls how the application will be deployed. This is typically the first command you'll run when starting a new project on Nife. The command will: 1. Register your application name in the Nife platform 2. Generate a default `nife.toml` configuration file 3. Associate the app with your current organization 4. Prepare the app for deployment ### Usage ```bash nifectl apps create [APPNAME] [flags] ``` ### Options ``` -h, --help help for create ``` ### Global Options ``` -t, --access-token string nife API Access Token -j, --json json output ``` ### Examples ```bash # Create a new app with a specific name nifectl apps create my-awesome-app # Create an app in interactive mode (prompts for details) nifectl apps create # Create with JSON output for scripting nifectl apps create my-app --json ``` ### Common Use Cases - **Starting a new project**: Create an app before your first deployment - **Multiple environments**: Create separate apps for dev, staging, and production - **Microservices**: Create individual apps for each service in your architecture ## nifectl apps list View all applications registered across your organizations. ### About The APPS LIST command will show the applications currently registered and available to this user. The list will include applications from all the organizations the user is a member of. Each application will be shown with its name, owner, and when it was last deployed. This command is useful for: - Getting an overview of all your applications - Checking which organization owns which app - Verifying deployment dates - Finding app names for other commands ### Usage ```bash nifectl apps list [flags] ``` ### Options ``` -h, --help help for list ``` ### Global Options ``` -t, --access-token string nife API Access Token -j, --json json output ``` ### Examples ```bash # List all your apps nifectl apps list # List apps with JSON output for parsing nifectl apps list --json # Filter output using standard tools nifectl apps list | grep "production" ``` ## nifectl apps destroy Permanently remove an application from the Nife platform. ### About The APPS DESTROY command will permanently remove an application from the Nife platform. This action is irreversible and will: - Delete the application registration - Remove all deployment history - Clean up associated resources - Free up the application name for reuse **⚠️ WARNING**: This action cannot be undone. Make sure you have backups of any important data before destroying an app. ### Usage ```bash nifectl apps destroy [APPNAME] [flags] ``` ### Options ``` -h, --help help for destroy -y, --yes Accept all confirmations ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### Examples ```bash # Destroy an app (will prompt for confirmation) nifectl apps destroy my-old-app # Destroy without confirmation prompt nifectl apps destroy my-old-app --yes # Destroy with JSON output nifectl apps destroy my-old-app --yes --json ``` ### Safety Measures 1. **Confirmation Prompt**: Unless `-y` flag is used, you'll be asked to confirm 2. **Name Verification**: You must specify the exact app name 3. **Access Control**: Only organization admins can destroy apps ## nifectl apps download Download application configuration and files. ### About The APPS DOWNLOAD command retrieves application configuration files and settings from the Nife platform. This is useful for: - Backing up application configurations - Syncing settings across environments - Reviewing current application state - Restoring previous configurations ### Usage ```bash nifectl apps download [APPNAME] [flags] ``` ### Options ``` -h, --help help for download ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### Examples ```bash # Download app configuration nifectl apps download my-app # Download with JSON format nifectl apps download my-app --json ``` --- ## nifectl apps move Transfer an application to another organization. ### About The APPS MOVE command will move an application to another organization that the current user belongs to. This is useful when: - Reorganizing project ownership - Transferring projects between teams - Consolidating applications under a single organization - Moving apps for billing purposes **Note**: You must be a member of both the source and destination organizations. ### Usage ```bash nifectl apps move [APPNAME] [flags] ``` ### Options ``` -h, --help help for move --org string The organization to move the app to -y, --yes Accept all confirmations ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### Examples ```bash # Move app to another organization (interactive) nifectl apps move my-app # Move to a specific organization nifectl apps move my-app --org target-org # Move without confirmation nifectl apps move my-app --org target-org --yes ``` ## nifectl apps resume Restart a suspended application. ### About The APPS RESUME command will restart a previously suspended application. The application will resume with its original region pool and a minimum count of one, meaning there will be one running instance once restarted. When an app is resumed: - It starts with min count of 1 instance - Uses the original region configuration - Restores previous environment variables - Reconnects to configured services Use the `scale` command to adjust the number of running instances after resuming. ### Usage ```bash nifectl apps resume [APPNAME] [flags] ``` ### Options ``` -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for resume ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### Examples ```bash # Resume a suspended app nifectl apps resume my-app # Resume using config file nifectl apps resume --config ./nife.toml # Resume with specific app flag nifectl apps resume --app my-app ``` ### Resume Process 1. **Validation**: Checks if app is suspended 2. **Resource Allocation**: Assigns compute resources 3. **Instance Start**: Launches one instance 4. **Health Check**: Verifies app is responding 5. **Active State**: App is now running and accepting traffic ## nifectl apps suspend Temporarily stop an application. ### About The APPS SUSPEND command will temporarily stop an application from running. This is useful when you want to: - Reduce costs during idle periods - Perform maintenance on connected services - Temporarily disable an application without deleting it - Conserve resources during development The app can be resumed later with `nifectl apps resume`. ### Usage ```bash nifectl apps suspend [APPNAME] [flags] ``` ### Options ``` -h, --help help for suspend ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### Examples ```bash # Suspend an app nifectl apps suspend my-app # Suspend with JSON output nifectl apps suspend my-app --json ``` ## nifectl apps revert Roll back an application to a previous version. ### About The APPS REVERT command allows you to roll back an application to a previous version. This is crucial when: - A new deployment introduces bugs - Performance degrades after an update - You need to quickly restore working functionality - Testing a rollback strategy The command accesses your deployment history and restores a specified previous state. ### Usage ```bash nifectl apps revert [APPNAME] [flags] ``` ### Options ``` -h, --help help for revert ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### Examples ```bash # Revert to previous version (interactive) nifectl apps revert my-app # View deployment history first nifectl history my-app # Then revert to specific version nifectl apps revert my-app --version v42 ``` ## nifectl apps switch Set the current active application context. ### About The APPS SWITCH command sets the current application context for subsequent commands. This is useful when working with multiple applications, allowing you to: - Avoid repeatedly specifying app names - Streamline workflow when focusing on one app - Reduce command-line typing - Prevent errors from specifying wrong app names ### Usage ```bash nifectl apps switch [APPNAME] [flags] ``` ### Options ``` -h, --help help for switch ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### Examples ```bash # Switch to an app nifectl apps switch my-app # Now subsequent commands use this app by default nifectl logs nifectl metrics nifectl status # Switch to another app nifectl apps switch my-other-app ``` ## nifectl apps sourcelist Display the source code list for an application. ### About The APPS SOURCELIST command lists an application's source code history and references. This helps you: - Track deployment sources - Verify which code version is deployed - Audit deployment history - Debug deployment issues ### Usage ```bash nifectl apps sourcelist [APPNAME] [flags] ``` ### Options ``` -h, --help help for sourcelist ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### Examples ```bash # View source list nifectl apps sourcelist my-app # View with JSON output for parsing nifectl apps sourcelist my-app --json ``` ### Application Lifecycle 1. **Create**: `nifectl apps create app-name` 2. **Deploy**: `nifectl deploy` 3. **Monitor**: `nifectl status`, `nifectl logs` 4. **Scale**: Adjust resources as needed 5. **Update**: Deploy new versions 6. **Suspend**: Temporarily stop if needed 7. **Resume**: Restart when required 8. **Destroy**: Remove when no longer needed ## Troubleshooting Common Issues ### App Creation Fails **Problem**: "App name already exists" - **Solution**: Choose a different name or check if you have permission to access the existing app **Problem**: "Invalid app name" - **Solution**: Use only lowercase letters, numbers, and hyphens ### App Won't Resume **Problem**: "Insufficient resources" - **Solution**: Check org quota and upgrade if needed **Problem**: "Configuration error" - **Solution**: Validate nife.toml file with `nifectl config validate` ### Move Command Fails **Problem**: "Permission denied" - **Solution**: Ensure you're a member of both source and destination orgs **Problem**: "Org limit reached" - **Solution**: Contact support to increase organization app limit ### Revert Issues **Problem**: "Version not found" - **Solution**: Check deployment history with `nifectl history` **Problem**: "Revert validation failed" - **Solution**: Ensure the target version is compatible with current platform --- ## nifectl auth Command Reference URL: https://docs.nife.io/CLI/auth Authentication is the foundation of secure interaction with the Nife platform. The `auth` command group provides comprehensive tools for managing user authentication, access tokens, and identity verification. Whether you're logging in for the first time, managing API tokens, or verifying your identity, these commands ensure secure and seamless access to the Nife platform. ## Overview Authenticate with Nife (and logout if you need to). The authentication system supports: - **User Login/Logout**: Secure credential-based authentication - **Account Creation**: New user signup and onboarding - **Token Management**: Generate and manage API access tokens - **Identity Verification**: Check current authentication status If you do not have an account, start with the `AUTH SIGNUP` command. If you already have an account, begin with the `AUTH LOGIN` subcommand. --- ## nifectl auth Main command for authentication management operations. ### Usage ```bash nifectl auth [command] [flags] ``` ### Available Commands * login - Log in a user * logout - Logs out the currently logged in user * signup - Create a new nife account * token - Show the current auth token * whoami - Show the currently authenticated user ### Options ``` -h, --help help for auth ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## nifectl auth login Authenticate with the Nife platform using your credentials. ### About User can login to the nifectl platform via command prompt or terminal. This command establishes an authenticated session that allows you to interact with all Nife services. The login process: 1. Accepts your email and password credentials 2. Validates your identity against the Nife platform 3. Generates an authentication token 4. Stores the token securely for subsequent commands If you do not have an account, start with the `AUTH SIGNUP` command first. If you already have an account, begin with the `AUTH LOGIN` subcommand. ### Usage ```bash nifectl auth login [flags] ``` ### Options ``` --email string Login email -h, --help help for login -i, --interactive Log in with an email and password interactively --password string Login password ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### Examples ```bash # Interactive login (prompts for credentials) nifectl auth login -i # Login with email only (will prompt for password) nifectl auth login --email user@example.com # Login with both credentials (not recommended for security) nifectl auth login --email user@example.com --password mypassword # Login with JSON output for scripting nifectl auth login --email user@example.com -i --json ``` ### Login Methods #### Interactive Login (Recommended) The safest method as it prompts for credentials without exposing them in command history: ```bash nifectl auth login -i ``` #### Command-line Arguments Useful for automation but less secure: ```bash nifectl auth login --email user@example.com --password secret ``` **Use Cases:** - CI/CD pipelines - Automated scripts - Docker containers - Testing environments **⚠️ Security Warning:** Avoid using passwords in command line for production environments. Use environment variables or secure secret management instead. ### Secure Authentication Best Practices 1. **Use Interactive Mode** for manual logins ```bash nifectl auth login -i ``` 2. **Environment Variables** for automation ```bash export NIFE_EMAIL="user@example.com" export NIFE_PASSWORD="secure-password" nifectl auth login --email $NIFE_EMAIL --password $NIFE_PASSWORD ``` 3. **Access Tokens** for CI/CD ```bash nifectl auth token --expiry-time 24h # Use token in automated workflows nifectl --access-token apps list ``` 4. **Token-based Authentication** for long-running processes ```bash # Generate token TOKEN=$(nifectl auth token --expiry-time 2160h --json | jq -r '.token') # Use token nifectl --access-token $TOKEN deploy ``` ### Session Management After successful login: - Token is stored locally in `~/.nife/config.yml` - Subsequent commands use this token automatically - Session persists until logout or token expiration - No need to login again for each command ### Troubleshooting Login Issues **Problem**: "Invalid credentials" - **Solution**: Verify email and password are correct - **Solution**: Check if account is active - **Solution**: Reset password if forgotten **Problem**: "Network error" - **Solution**: Check internet connection - **Solution**: Verify firewall isn't blocking API access - **Solution**: Check platform status at status.nife.io **Problem**: "Account locked" - **Solution**: Contact support to unlock account - **Solution**: Wait for automatic unlock (if temporary) - **Solution**: Verify account hasn't been suspended **Problem**: "Two-factor authentication required" - **Solution**: Complete 2FA setup in web dashboard - **Solution**: Use backup codes if available - **Solution**: Contact support for 2FA reset --- ## nifectl auth logout End your authenticated session and clear stored credentials. ### About Log the currently logged-in user out of the nifectl platform. This command: 1. Invalidates the current authentication token 2. Removes stored credentials from local configuration 3. Ends the authenticated session 4. Requires fresh login for future commands To continue interacting with nifectl after logout, you will need to log in again using `nifectl auth login`. ### Usage ```bash nifectl auth logout [flags] ``` ### Options ``` -h, --help help for logout ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### Examples ```bash # Logout current user nifectl auth logout # Logout with JSON output nifectl auth logout --json # Verify logout nifectl auth whoami # Should show: "Not authenticated" or error ``` ### What Happens During Logout 1. **Token Invalidation**: Current auth token is revoked 2. **Local Cleanup**: Config files are cleared of credentials 3. **Session End**: API access is terminated 4. **Confirmation**: Success message displayed ### After Logging Out - ❌ All nifectl commands requiring auth will fail - ❌ Cannot access organization resources - ❌ Cannot deploy or manage applications - ✅ Can still use public commands (version, docs) - ✅ Can create a new account or login again ## nifectl auth signup Create a new Nife platform account. ### About Create a new nife account. The command opens your default web browser and directs you to a registration form where you provide: - Email address - Password - Organization name (optional) - Account preferences After completing the form, your account is created and you can immediately login using `nifectl auth login`. ### Usage ```bash nifectl auth signup [flags] ``` ### Options ``` -h, --help help for signup ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### Examples ```bash # Open signup form in browser nifectl auth signup # Signup with JSON output (still opens browser) nifectl auth signup --json ``` ### Signup Process 1. **Command Execution**: Run `nifectl auth signup` 2. **Browser Opens**: Default browser launches with signup form 3. **Form Completion**: Enter required information 4. **Email Verification**: Verify email address (if required) 5. **Account Creation**: Account is created and activated 6. **First Login**: Use `nifectl auth login` to authenticate ### Account Requirements **Email Address:** - ✅ Valid email format - ✅ Unique (not already registered) - ✅ Accessible for verification - ✅ Professional or personal domain accepted **Password:** - ✅ Minimum 8 characters - ✅ Mix of uppercase and lowercase - ✅ At least one number - ✅ Special characters recommended - ✅ Not a commonly used password **Organization Name:** - Optional during signup - Can be created later - Used for team collaboration - Determines billing structure ### After Creating Account ```bash # 1. Login with new account nifectl auth login -i # 2. Verify authentication nifectl auth whoami # 3. Create your first app nifectl apps create my-first-app # 4. Start deploying nifectl init nifectl deploy ``` ## nifectl auth token Display and manage authentication tokens. ### About Shows the authentication token that is currently in use. This token can be used as an authentication token with API services, independent of nifectl. Tokens are useful for: - **API Integration**: Direct API access without CLI - **CI/CD Pipelines**: Automated deployments - **Third-party Tools**: Integration with other services - **Programmatic Access**: Script-based automation Tokens can be generated with custom expiry times, allowing you to create short-lived tokens for security or long-lived tokens for continuous integration. ### Usage ```bash nifectl auth token [flags] ``` ### Options ``` --expiry-time string Allow users to generate tokens by providing input (Note: Specify --expiry-time within 2160 hours.) -h, --help help for token ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### Examples ```bash # Show current token nifectl auth token # Generate token with 24-hour expiry nifectl auth token --expiry-time 24h # Generate token for 7 days (168 hours) nifectl auth token --expiry-time 168h # Generate token with maximum expiry (90 days) nifectl auth token --expiry-time 2160h # Get token in JSON format for scripting nifectl auth token --json # Store token in variable TOKEN=$(nifectl auth token --expiry-time 24h --json | jq -r '.token') ``` ### Token Expiry Time Options You can specify expiry time in hours (h) or days (d): ```bash # Hours nifectl auth token --expiry-time 1h # 1 hour nifectl auth token --expiry-time 24h # 1 day nifectl auth token --expiry-time 168h # 7 days nifectl auth token --expiry-time 720h # 30 days nifectl auth token --expiry-time 2160h # 90 days (maximum) ## nifectl auth whoami Display the currently authenticated user's identity. ### About Displays the user's email address/service identity currently authenticated and in use. This command helps you: - Verify which account is currently active - Confirm successful authentication - Check account details before operations - Debug authentication issues ### Usage ```bash nifectl auth whoami [flags] ``` ### Options ``` -h, --help help for whoami ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### Examples ```bash # Show current user nifectl auth whoami # Output: user@example.com # Show in JSON format nifectl auth whoami --json ``` --- ## _nifectl builtins_ URL: https://docs.nife.io/CLI/builtins ### About View and manage **Nifectl deployment builtins** — essential tools that streamline app deployment and configuration directly from the command line. ### Usage ```bash nifectl builtins [command] ``` ### Available Commands * [list](#nifectl-builtins-list) – List available Nifectl deployment builtins * [show](#nifectl-builtins-show-app) – Show details of a builtin's configuration * [show-app](#nifectl-builtins-show) – Show details of apps using builtin configurations --- ### Options ```bash -h, --help help for builtins ``` ### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output ``` --- ## nifectl builtins list ### About List all available Nifectl deployment builtins and their descriptions. ### Usage ```bash nifectl builtins list [flags] ``` ### Options ```bash -h, --help help for builtins ``` ### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output ``` --- ## nifectl builtins show-app ### About Display detailed information about Nife deployment builtins, including Dockerfile configurations, app settings, and environment variables. ### Usage ```bash nifectl builtins show-app [flags] ``` ### Options ```bash -a, --app string App name to operate on -c, --config string Path to an app config file or directory (default "./nife.toml") -h, --help help for show-app ``` ### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output ``` --- ## nifectl builtins show ### About Show details of a Nife deployment builtin, including default Dockerfile settings and other configuration data. ### Usage ```bash nifectl builtins show [] [flags] ``` ### Options ```bash -h, --help help for builtins ``` ### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output ``` --- ### Summary The **Nifectl builtins** command enables developers to explore, manage, and understand built-in deployment templates within the Nife platform. Ideal for automating cloud workflows, improving consistency, and optimizing DevOps efficiency. --- ## _nifectl cluster_ URL: https://docs.nife.io/CLI/cluster ### About Bring your own cluster (**BYOC**) enables users to connect and manage their preferred cloud infrastructure using **Nifectl**. This feature empowers flexibility and cost efficiency by integrating external Kubernetes clusters into the Nife ecosystem. ### Usage ```bash nifectl cluster [command] ``` ### Available Commands * [add](#nifectl-cluster-add) – Add your BYOC to Nife * [delete](#nifectl-cluster-delete) – Delete BYOC Region --- ### Options ```bash -h, --help help for cluster ``` ### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output ``` --- ## nifectl cluster add ### About Add your own cluster region to the Nife platform using a cluster **kubeconfig** file, allowing you to deploy and manage applications within your existing infrastructure. ### Usage ```bash nifectl cluster add [flags] ``` ### Options ```bash -h, --help help for add ``` ### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output ``` --- ## nifectl cluster delete ### About This command removes a connected BYOC region from your Nife account. Use it to manage and clean up your cluster integrations securely. ### Usage ```bash nifectl cluster delete [flags] ``` ### Options ```bash -h, --help help for delete ``` ### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output ``` --- ### Summary The **Nifectl cluster** command simplifies hybrid and multi-cloud management by supporting BYOC (Bring Your Own Cluster). It gives developers full control to add, manage, and delete external clusters while leveraging the Nife ecosystem’s scalability and cost optimization capabilities. --- ## _nifectl config_ URL: https://docs.nife.io/CLI/config #### About The **CONFIG** commands allow developers to manage, view, validate, and save application configurations directly using **Nifectl**. This ensures consistency, accuracy, and simplified control across your cloud deployments. #### Usage ```bash nifectl config [command] [flags] ``` #### Available Commands * [display](#nifectl-config-display) – Display an App's configuration * [save](#nifectl-config-save) – Save an App's configuration file * [validate](#nifectl-config-validate) – Validate an App's configuration file #### Options ```bash -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for config ``` #### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output ``` ## nifectl config display #### About Display an application's configuration retrieved from the Nife service. The configuration is presented in **JSON format** for easy readability and integration. #### Usage ```bash nifectl config display [flags] ``` #### Options ```bash -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for display ``` #### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output ``` ## nifectl config save #### About Save an application's configuration locally. The configuration is fetched from the Nife service and stored in **TOML format**, allowing offline access and editing. #### Usage ```bash nifectl config save [flags] ``` #### Options ```bash -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for save ``` #### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output ``` ## nifectl config validate #### About Validate an application's configuration file against the **Nife platform** to ensure it meets all required standards and is meaningful for deployment. #### Usage ```bash nifectl config validate [flags] ``` #### Options ```bash -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for validate ``` #### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output ``` #### Summary The **Nifectl config** command provides a unified interface for managing application configurations within the Nife ecosystem. From validation to saving and displaying, it empowers developers to maintain consistency, accuracy, and efficiency across environments. --- ## _nifectl dashboard_ URL: https://docs.nife.io/CLI/dashboard Enhance your application management experience with the **Nife CLI Dashboard**. This command allows you to open the web-based dashboard for a specific application, giving you direct access to monitoring and analytical tools. ### Overview The `nifectl dashboard` command opens the Nife Web UI for the selected application, providing insights into its current state, usage, and performance metrics. ### Usage ```bash nifectl dashboard [flags] ``` ```bash nifectl dashboard [command] ``` #### Aliases * `dashboard` * `dash` ### Available Commands * [`metrics`](#nifectl-dashboard-metrics-command) – Open the Nife Web UI to view detailed application metrics and performance data. ### Options ```bash -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help Help for dashboard ``` ### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output format ``` ## Nifectl Dashboard Metrics Command Use the `nifectl dashboard metrics` command to directly open your application’s **metrics dashboard** in the Nife Web UI. This feature provides detailed insights into your app’s performance, helping you analyze and optimize your deployment. ### Usage ```bash nifectl dashboard metrics [flags] ``` ### Options ```bash -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help Help for metrics ``` ### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output format ``` ### Summary The **Nifectl Dashboard** command enables developers and operators to easily monitor and manage applications through a unified CLI and web interface. It’s an essential tool for enhancing visibility, troubleshooting, and performance optimization in your hybrid or edge cloud deployments. --- ## _nifectl deploy_ URL: https://docs.nife.io/CLI/deploy The **Nifectl Deploy** command streamlines your application deployment process to the Nife platform. Whether you're deploying from a local image, a remote repository, a Dockerfile, or using CNB Buildpacks, this command ensures fast, reliable, and consistent application delivery. ### Overview Deploy applications to the **Nife platform** directly from your local environment or remote sources. You can specify configuration files, environment variables, and build arguments for complete control over your deployment. Use the `--config` or `-c` flag to select a specific configuration file (`nife.toml`) for your deployment setup. If deployment progress stops, you can use the `nifectl monitor` command to restart and track deployment activity. ```bash nifectl deploy [] [flags] ``` ### Options ``` -a, --app string App name to operate on --build-arg strings Set of build time variables in the form of NAME=VALUE pairs. Can be specified multiple times. -c, --config string Path to an app config file or directory containing one (default "./nife.toml") --dockerfile string Path to a Dockerfile. Defaults to the Dockerfile in the working directory. -e, --env strings Set of environment variables in the form of NAME=VALUE pairs. Can be specified multiple times. -h, --help help for deploy --local-only Only perform builds locally using the local docker daemon --remote-only Perform builds remotely without using the local docker daemon --strategy string The strategy for replacing running instances. Options are canary, rolling, or immediate. Default is canary ``` ### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output format ``` ### Best Practices * Always define environment variables and build arguments clearly in your config file for reproducible deployments. * Use **rolling strategy** for minimal downtime in production. * Keep your `nife.toml` organized to easily manage app configurations. ### See Also * [`nifectl`](/CLI/help) – The Nife CLI home command for managing applications and configurations. ## Summary The **Nifectl Deploy** command provides a robust and flexible way to deliver applications to the Nife platform. With options for both local and remote builds, it ensures reliable performance and control across diverse deployment environments. --- ## Nifectl Destroy Command Guide URL: https://docs.nife.io/CLI/destroy The **Nifectl Destroy** command is used to permanently delete an application from the Nife platform. This command helps you clean up unused resources and maintain a well-organized deployment environment. ### Overview Use this comand when you want to completely remove an application, its associated resources, and configurations from the platform. The command supports confirmation flags to prevent accidental deletion. > ⚠️ **Warning:** This action is irreversible. Once an app is destroyed, its data and configurations cannot be recovered. ### Usage ```bash nifectl destroy [APPNAME] [flags] ``` ### Options ```bash -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help Help for destroy -y, --yes Accept all confirmations automatically ``` ### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output format ``` ### Best Practices * Use the `--yes` flag only when running automated scripts to avoid manual confirmation prompts. * Always verify the app name before executing this command to prevent accidental deletions. * Regularly clean up unused applications to optimize platform performance and reduce costs. ### See Also * [`nifectl`](/CLI/help) – The Nife CLI main command for managing deployments and configurations. ### Summary The **Nifectl Destroy** command provides a controlled way to remove applications from the Nife platform. It ensures complete cleanup of resources and helps maintain an organized deployment environment. Use it carefully to manage your app lifecycle effectively. --- ## nifectl docs Command Reference URL: https://docs.nife.io/CLI/docs The **Nifectl Docs** command allows you to instantly open the Nife documentation in your default web browser. This feature provides quick access to all guides, references, and resources available on the [Nife.io Documentation Portal](https://docs.nife.io). ### Overview Accessing documentation directly through the CLI saves time and helps developers explore detailed usage guides, deployment tutorials, and configuration references without manually navigating through the website. ### Usage ```bash nifectl docs [flags] ``` ### Options ```bash -h, --help Help for docs ``` #### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output format ``` ### Best Practices * Use this command whenever you need clarification about any CLI command or configuration. * Bookmark frequently used documentation pages for faster access. * Stay updated with the latest releases by regularly visiting the docs. --- ### See Also * [`nifectl`](/CLI/help) – The Nife CLI reference command for managing applications and configurations. ### Summary The **Nifectl Docs** command is your direct gateway to the Nife documentation. It ensures that developers can access up-to-date guides, best practices, and reference materials to make the most out of the Nife platform. --- ## Nifectl CLI Guide URL: https://docs.nife.io/CLI/help The **Nifectl CLI** (Command Line Interface) is a powerful tool designed to help developers and operators manage applications and cloud resources directly from the terminal. It connects seamlessly to the [Nife.io](https://nife.io) platform, allowing you to authenticate, deploy, monitor, and scale your workloads effortlessly. ### Overview With the Nifectl CLI, you can perform essential operations such as: * **Initialize** a new application using the `init` command. * **Deploy** your app with the `deploy` command. * **Monitor** deployments and logs using `dashboard` and `logs`. * **Manage** resources, regions, clusters, and secrets. * **Check status** or **resume/suspend** applications anytime. To read more or explore advanced use cases, run the `nifectl docs` command to open the official documentation. ### Usage ```bash nifectl [command] [flags] ``` ### Available Commands * [`apps`](/CLI/apps) – Manage applications. * [`auth`](/CLI/auth) – Manage authentication. * [`builtins`](/CLI/builtins) – View and manage Nifectl deployment built-ins. * [`cluster`](/CLI/cluster) – Bring Your Own Cluster (BYOC). * [`config`](/CLI/config) – Manage app configurations. * [`dashboard`](/CLI/dashboard) – Open Nife Web UI for your app. * [`deploy`](/CLI/deploy) – Deploy an app to the Nife platform. * [`destroy`](/CLI/destroy) – Permanently delete an app. * [`docs`](/CLI/docs) – View Nife documentation. * [`help`](/CLI/help) – Get help for any command. * [`history`](/CLI/history) – List an app’s change history. * [`init`](/CLI/init) – Initialize a new application. * [`list`](/CLI/list) – List Nife resources. * [`logs`](/CLI/logs) – View application logs. * [`metrics`](/CLI/metrics) – View monitoring metrics. * [`move`](/CLI/move) – Move an app to another organization. * [`open`](/CLI/open) – Open a browser to the deployed application. * [`orgs`](/CLI/orgs) – Manage Nife organizations. * [`platform`](/CLI/platform) – Display Nife platform information. * [`regions`](/CLI/regions) – Manage regions. * [`releases`](/CLI/releases) – List app releases. * [`resume`](/CLI/resume) – Resume an application. * [`status`](/CLI/status) – Show app status. * [`suspend`](/CLI/suspend) – Suspend an application. * [`secrets`](/CLI/secrets) – Manage app secrets. * [`version`](/CLI/version) – Show version information for Nifectl. * [`workload`](/CLI/workload) – Manage workloads in Nife. ### Options ```bash -t, --access-token string Nife API Access Token -h, --help Help for nifectl -j, --json JSON output format ``` ### Best Practices * Regularly update your Nifectl CLI to the latest version for improved features and bug fixes. * Use `--json` output for easier integration with automation scripts. * Securely manage access tokens and configuration files. ### Summary The **Nifectl CLI** is the backbone of managing your Nife applications from the command line. With comprehensive command coverage—from deployment to monitoring—it enables developers to take full control of hybrid and edge cloud environments efficiently. ## Related Resources - 📚 [Nife Cheatsheets](https://cheatsheet.nife.io/) — quick-reference command sheets for Linux, Git, Docker, and Kubernetes - 🛠️ [JSON Formatter](https://freetools.nife.io/json-formatter/) — pretty-print output from any nifectl command run with `--json` --- ## _nifectl history_ URL: https://docs.nife.io/CLI/history The **Nifectl History** command helps you view the complete record of changes made to your applications. This includes deployment updates, scaling events, configuration modifications, and performance adjustments. ### Overview Tracking your app’s history is essential for auditing, troubleshooting, and optimizing performance. With this command, you can quickly analyze when and how your application changed, including autoscaling events and their outcomes. ### Usage ```bash nifectl history [flags] ``` ### Options ```bash -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help Help for history ``` #### Global Options ```bash -t, --access-token string Nife API Access Token -j, --json JSON output format ``` ### Best Practices * Regularly review your application history to identify recurring deployment or scaling issues. * Use JSON output for easy integration with monitoring tools or audit reports. * Keep your configuration file organized for better tracking of version changes. ### See Also * [`nifectl`](/CLI/help) – The Nife CLI main command for managing applications and configurations. ### Summary The **Nifectl History** command provides deep visibility into your app’s evolution on the Nife platform. It’s an essential tool for developers and operators who want to monitor deployments, audit changes, and improve reliability across hybrid cloud environments. --- ## nifectl init Command Reference URL: https://docs.nife.io/CLI/init ### Overview The **`nifectl init`** command helps you set up and configure a new application on the Nife platform. It automatically registers the app and generates the `nife.toml` configuration file, which defines deployment behavior and runtime details. You can also specify build methods using Dockerfile or Cloud Native Buildpacks, making this command ideal for both containerized and serverless workflows. ### Usage ```bash nifectl init [APPNAME] [flags] ``` ### Options ``` --builder string Specify the Cloud Native Buildpacks builder for deployment --builtin string Choose a Nife Runtime for building the app --dockerfile Deploy using a Dockerfile -e, --external string Set the external port for your application -h, --help Help for init command --import string Import configuration from an existing file --name string Specify the app name --nowrite Prevent writing a new nife.toml file --org string Set the organization owning the app --overwrite Overwrite existing nife.toml files -p, --port string Define internal ports for external service connections ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json Output in JSON format ``` ### Best Practice Tips * Use `--builder` for simplified cloud-native builds. * Store your `nife.toml` file in version control for consistent deployments. * Use `--org` to clearly define ownership for better resource management. ### See Also * [nifectl](/CLI/help) - The Nife CLI Home Command --- ## nifectl list Command Reference URL: https://docs.nife.io/CLI/list Lists your Nife resources ### About The list command is for listing your resources on has two subcommands, apps and orgs. The apps command lists your applications. There are filtering options available. The orgs command lists all the organizations you are a member of. ### Usage ``` nifectl list [command] [flags] ``` ### Aliases ``` list, ls ``` ### Available Commands * [apps](#nifectl-list-apps) - Lists all your apps * [orgs](#nifectl-list-orgs) - List all your organizations ### Options ``` -h, --help help for list ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI ## _nifectl list apps_ Lists all your apps ### About The list apps command lists all your applications. As this may be a long list, there are options to filter the results. Specifying a text string as a parameter will only return applications where the application name contains the text. The --orgs/-o flag allows you to specify the name of an organization that the application must be owned by. (see list orgs for organization names). The --status/-s flag allows you to specify status applications should be at to be returned in the results. e.g. -s running would only return running applications. ### Usage ``` nifectl list apps [text] [-o org] [-s status] [flags] ``` ### Options ``` -h, --help help for apps -o, --org string Show only apps in this organisation -s, --status string Show only apps with this status ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl list orgs_ List all your organizations ### About Lists all organizations which your are a member of. It will show the short name and the long name of the organization. ### Usage ``` nifectl list orgs [flags] ``` ### Options ``` -h, --help help for orgs ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` --- ## nifectl logs Command Reference URL: https://docs.nife.io/CLI/logs View application logs as generated by the application running on the Nife platform. ### About Logs can be filtered to a specific instance using the --instance/-i flag or to all instances running in a specific region using the --region/-r flag. ### Usage ``` nifectl logs [App Name] [Region Code] [flags] ``` ### Options ``` -h, --help help for logs ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI --- ## _nifectl metrics_ URL: https://docs.nife.io/CLI/metrics Details of App related metrics ### About List all the metrics of the application deployed on the Nife platform ### Usage ``` nifectl metrics [flags] ``` ### Options ``` --all -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for metrics ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI --- ## nifectl move Command Reference URL: https://docs.nife.io/CLI/move Move an App to another Region. ### About The MOVE command will move an application to another Region the current user belongs to. ### Usage ``` nifectl move [APPNAME] [flags] ``` ### Options ``` -h, --help help for move -y, --yes Accept all confirmations ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI --- ## nifectl open Command Reference URL: https://docs.nife.io/CLI/open Open browser to current deployed application ### About Open browser to current deployed application. If an optional path is specified, this is appended to the URL for deployed application. ### Usage ``` nifectl open [PATH] [flags] ``` ### Options ``` -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for open ``` ### Global Options ``` -t, --access-token string NIfe API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI --- ## nifectl orgs Command Reference URL: https://docs.nife.io/CLI/orgs Commands for managing Nife organizations ### About Commands for managing Nife organizations. list, create, show and destroy organizations. Organization admins can also invite or remove users from Organizations. ### Usage ``` nifectl orgs [command] [flags] ``` ### Available Commands * [create](#nifectl-orgs-create) - Create an organization * [default](#nifectl-orgs-default) - Set a default organiation * [delete](#nifectl-orgs-delete) - Delete an organization * [invite](#nifectl-orgs-invite) - Invite user (by email) to organization * [migrate](#nifectl-orgs-migrate) - Migrate an organization * [regions](#nifectl-orgs-region) - Default regions to the Organization * [list](#nifectl-orgs-list) - Lists organizations for current user * [show](#nifectl-orgs-show) - Show information about an organization ### Options ``` -h, --help help for orgs ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI ## _nifectl orgs create_ Create an organization ### About Create a new organization. Other users can be invited to join the organization later. ### Usage ``` nifectl orgs create [flags] ``` ### Options ``` -h, --help help for create ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl orgs delete_ Delete an existing organization. ### Usage ``` nifectl orgs delete [flags] ``` ### Options ``` -h, --help help for delete ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl orgs invite_ Invite a user, by email, to join organization ### About Invite a user, by email, to join organization. The invitation will be sent, and the user will be pending until they respond. ### Usage ``` nifectl orgs invite [flags] ``` ### Options ``` -h, --help help for list ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl orgs list_ Lists organizations available to current user. ### Usage ``` nifectl orgs list [flags] ``` ### Options ``` -h, --help help for list ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl orgs show_ Show information about an organization ### About Shows information about an organization. Includes name, slug and type. Summarizes user permissions, DNS zones and associated member. Details full list of members and roles. ### Usage ``` nifectl orgs show [flags] ``` ### Options ``` -h, --help help for show ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl orgs default_ Change the default organization to another organization ### Usage ``` nifectl orgs default [flags] ``` ### Options ``` -h, --help help for default ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl orgs region_ More default regions can be added to the Organization. ### Usage ``` nifectl orgs regions [flags] ``` ### Options ``` -h, --help help for regions ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl orgs migrate_ Migrate an organization to another Organization. Which includes Apps, Sub-Organization, Business Units, Workloads inside the Organizaion will be migrated to the other Organization ### Usage ``` nifectl orgs migrate [flags] ``` ### Options ``` -h, --help help for migrate ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` --- ## _nifectl platform_ URL: https://docs.nife.io/CLI/platform Commands to view the status of Platform ### About The PLATFORM commands are for users looking for information about the Nife platform. ### Usage ``` nifectl platform [command] [flags] ``` ### Available Commands * [regions](#nifectl-platform-regions) - List regions * [status](#nifectl-platform-status) - Show current platform status ### Options ``` -h, --help help for status ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI ## _nifectl platform regions_ Commands to view the status for Platfrom ### About View a list of regions where Nife has edges and/or datacenters ### Usage ``` nifectl platform regions [flags] ``` ### Options ``` -h, --help help for status ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl platform status_ Commands to view the status for Platfrom ### About Show current Nife platform status ### Usage ``` nifectl platform status [flags] ``` ### Options ``` -h, --help help for status ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` --- ## _nifectl regions_ URL: https://docs.nife.io/CLI/regions ### About Configure the region placement rules for an application. ### Usage ``` nifectl regions [command] [flags] ``` ### Available Commands * [add](#nifectl-regions-add) - Allow the app to run in the provided regions * [backup](#nifectl-regions-backup) - Sets the backup region pool with provided regions * [list](#nifectl-regions-list) - Shows the list of regions the app is allowed to run in * [remove](#nifectl-regions-remove) - Prevent the app from running in the provided regions * [request](#nifectl-regions-request) - Allow the user to request for region * [set](#nifectl-regions-set) - Sets the region pool with provided regions ### Options ``` -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for regions ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI ## _nifectl regions add_ Allow the app to run in one or more regions ### Usage ``` nifectl regions add REGION ... [flags] ``` ### Options ``` -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for add ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl regions backup_ Sets the backup region pool with provided regions ### Usage ``` nifectl regions backup REGION ... [flags] ``` ### Options ``` -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for add ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl regions list_ Shows the list of regions the app is allowed to run in ### About Shows the list of regions the app is allowed to run in. ### Usage ``` nifectl regions list [flags] ``` ### Options ``` -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for list ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl regions remove_ Prevent the app from running in the provided regions ### Usage ``` nifectl regions remove REGION ... [flags] ``` ### Options ``` -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for remove ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl regions request_ Allow the user to request for additional region ### About Allow the user to request for additional region ### Usage ``` nifectl regions request REGION ... [flags] ``` ### Options ``` -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for remove ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl regions](/CLI/regions) - Manage regions ## _nifectl regions set_ Sets the region pool with provided regions ### About Sets the region pool with provided regions ### Usage ``` nifectl regions set REGION ... [flags] ``` ### Options ``` -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for set ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` --- ## _nifectl releases_ URL: https://docs.nife.io/CLI/releases List App releases ### About List all the releases of the application onto the Nife platform, including type, when, success/fail and which user triggered the release. ### Usage ``` nifectl releases [flags] ``` ### Options ``` -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for releases ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI --- ## _nifectl resume_ URL: https://docs.nife.io/CLI/resume Resume an application ### About The RESUME command will restart a previously suspended application. The application will resume with its original region pool and a min count of one meaning there will be one running instance once restarted. ### Usage ``` nifectl resume [APPNAME] [flags] ``` ### Options ``` -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for resume ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI --- ## _nifectl secrets_ URL: https://docs.nife.io/CLI/secrets Manage application secrets with the create and delete commands. ### About Secrets are provided to applications at runtime as ENV variables. Names are case sensitive and stored as-is, so ensure names are appropriate for the application and vm environment. ### Usage ``` nifectl secrets [command] [flags] ``` ### Available Commands * [create](#nifectl-secrets-create) - Create the secret * [delete](#nifectl-secrets-delete) - Delete the secret * [list](#nifectl-secrets-list) - Lists the secrets available to the App * [update](#nifectl-secrets-update) - Update the secret ### Options ``` Flags: -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for secrets ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI ## _nifectl secrets create_ Creates a secret as an environment variable or a registry type as a Key Value pair. The actual value of the secret is only available to the application. ### Usage ``` nifectl secrets create [flags] ``` ### Options ``` Flags: -h, --help help for create ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl secrets delete_ Deletes the secrets available to the application. ### Usage ``` nifectl secrets [flags] ``` ### Options ``` Flags: -h, --help help for delete -y, --yes Accept all confirmations ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl secrets list_ List the secrets available to the application with --all option. It shows each secret's name, a digest of the its value and the time the secret was last set. The actual value of the secret is only available to the application. ### Usage ``` nifectl secrets list [flags] ``` ### Options ``` Flags: -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for secrets ``` ### Global Options ``` --all -h, --help help for list ``` ## _nifectl secrets update_ Updates the secrets available to the application. It shows each secret's name, a digest of the its value and the time the secret was last set. The actual value of the secret is only available to the application. ### Usage ``` nifectl secrets update [flags] ``` ### Options ``` Flags: -h, --help help for update ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` --- ## nifectl site Command Reference URL: https://docs.nife.io/CLI/site Deploy and manage static sites on the Nife platform using the **nifectl site** command. This command supports deploying from a pre-built archive, source archive, or Git repository with full version management and rollback capabilities. ### About The **Nifectl Site** command streamlines static site deployment and management on the Nife platform. Whether you're deploying a new site, redeploying with updates, or reverting to a previous version, this command provides all the tools you need. ### Usage ``` nifectl site [command] ``` ### Available Commands * [list](#nifectl-site-list) - List static site deployments * [deploy](#nifectl-site-deploy) - Deploy a static site * [redeploy](#nifectl-site-redeploy) - Redeploy an existing static site * [revert](#nifectl-site-revert) - Revert a static site to a previous version * [info](#nifectl-site-info) - Show static site details * [delete](#nifectl-site-delete) - Delete a static site ### Options ``` Flags: -h, --help help for site ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json JSON output format -V, --verbose Verbose output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI home command for managing applications and configurations. --- ## _nifectl site list_ List all static site deployments associated with your Nife account. This command displays information about each site deployment including name, status, and version details. ### Usage ``` nifectl site list [flags] ``` ### Options ``` Flags: -h, --help help for list ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json JSON output format -V, --verbose Verbose output ``` ### See Also * [nifectl site](/CLI/site) - Deploy and manage static sites --- ## _nifectl site deploy_ Deploy a new static site to the Nife platform. Supports deploying from a pre-built archive, source archive, or Git repository. ### Usage ``` nifectl site deploy [flags] ``` ### Options ``` Flags: -h, --help help for deploy --archive string Path to the pre-built site archive --source-archive string Path to the source archive --repo string Git repository URL --branch string Git branch to deploy (default: main) --path string Path within the archive or repo ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json JSON output format -V, --verbose Verbose output ``` ### Best Practices * Always test your site locally before deploying * Use meaningful site names that reflect their purpose * Ensure your archive contains all necessary static files * For Git deployments, verify the branch contains the built site files ### See Also * [nifectl site redeploy](/CLI/site#nifectl-site-redeploy) - Redeploy an existing site * [nifectl site list](/CLI/site#nifectl-site-list) - List all sites * [nifectl site](/CLI/site) - Deploy and manage static sites --- ## _nifectl site redeploy_ Redeploy an existing static site with updates. This command allows you to push new content or configuration changes to an already deployed site. ### Usage ``` nifectl site redeploy [flags] ``` ### Options ``` Flags: -h, --help help for redeploy --yes, -y Skip confirmation prompt --archive string Path to the updated site archive --source-archive string Path to the updated source archive --repo string Git repository URL --branch string Git branch to deploy --path string Path within the archive or repo ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json JSON output format -V, --verbose Verbose output ``` ### Best Practices * Use the `--yes` flag in automated CI/CD pipelines * Always verify your updated files are correct before redeploying * Consider using version control for tracking site changes * Monitor your site after redeployment to ensure all changes are applied ### See Also * [nifectl site deploy](/CLI/site#nifectl-site-deploy) - Deploy a new site * [nifectl site revert](/CLI/site#nifectl-site-revert) - Revert to a previous version * [nifectl site](/CLI/site) - Deploy and manage static sites --- ## _nifectl site revert_ Revert a static site to a previously deployed version. This is useful when you need to rollback to a stable version quickly. ### Usage ``` nifectl site revert [flags] ``` ### Options ``` Flags: -h, --help help for revert --version string Version or deployment ID to revert to --yes, -y Skip confirmation prompt ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json JSON output format -V, --verbose Verbose output ``` ### Best Practices * Always know which version or deployment you want to revert to * Use the `--yes` flag carefully in automated processes * Keep track of version numbers for quick recovery * Test on a staging environment before reverting in production ### See Also * [nifectl site redeploy](/CLI/site#nifectl-site-redeploy) - Redeploy the current version * [nifectl site list](/CLI/site#nifectl-site-list) - List all deployments * [nifectl site](/CLI/site) - Deploy and manage static sites --- ## _nifectl site info_ Display detailed information about a specific static site deployment, including its current version, status, deployment history, and configuration details. ### Usage ``` nifectl site info [flags] ``` ### Options ``` Flags: -h, --help help for info --name string Name of the site ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json JSON output format -V, --verbose Verbose output ``` ### Information Displayed * Site name and ID * Current version and deployment status * Latest deployment time * Site URL and accessibility * Version history * Deployment configuration ### See Also * [nifectl site list](/CLI/site#nifectl-site-list) - List all sites * [nifectl site](/CLI/site) - Deploy and manage static sites --- ## _nifectl site delete_ Delete a static site deployment from the Nife platform. This action removes the site and all its associated data. ### Usage ``` nifectl site delete [flags] ``` ### Options ``` Flags: -h, --help help for delete --name string Name of the site to delete --yes, -y Skip confirmation prompt ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json JSON output format -V, --verbose Verbose output ``` ### Best Practices * Always verify you're deleting the correct site * Consider backing up important site data before deletion * Use the `--yes` flag carefully, especially in scripts * Confirm the site is no longer needed before proceeding ### ⚠️ Warning This action is irreversible. Ensure you have backups of any critical site data before deletion. ### See Also * [nifectl site list](/CLI/site#nifectl-site-list) - List all sites * [nifectl site info](/CLI/site#nifectl-site-info) - View site details * [nifectl site](/CLI/site) - Deploy and manage static sites --- ## Summary The **Nifectl Site** command provides comprehensive static site management capabilities on the Nife platform. With commands for deployment, version management, and rollback, you have full control over your static site deployments. Whether you're deploying from archives or Git repositories, the site command streamlines your workflow and ensures reliable site management. ### Quick Command Reference | Command | Purpose | |---------|---------| | `site list` | View all deployed sites | | `site deploy` | Deploy a new static site | | `site redeploy` | Update an existing site deployment | | `site revert` | Rollback to a previous version | | `site info` | View site details and status | | `site delete` | Remove a site deployment | --- ## _nifectl status_ URL: https://docs.nife.io/CLI/status Show App status ### About Show the application's current status including application details, tasks, most recent deployment details and in which regions it is currently allocated. ### Usage ``` nifectl status [flags] ``` ### Options ``` -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for statuc ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI --- ## _nifectl suspend_ URL: https://docs.nife.io/CLI/suspend Suspend an application ### About The SUSPEND command will suspend an application. All instances will be halted leaving the application running nowhere. It will continue to consume networking resources (IP address). See RESUME for details on restarting it. ### Usage ``` nifectl suspend [APPNAME] [flags] ``` ### Options ``` -a, --app string App name to operate on -c, --config string Path to an app config file or directory containing one (default "./nife.toml") -h, --help help for suspend ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI --- ## _nifectl version_ URL: https://docs.nife.io/CLI/version Show version information for the nifectl command ### About Shows version information for the nifectl command itself, including version number and build date. ### Usage ``` nifectl version [flags] ``` ``` nifectl version [command] ``` ### Available Commands: ``` update Checks for available updates and automatically updates ``` ### Options ``` -c, --completions string Generate completions for supported shells bash/zsh) -f, --full Show full version details -h, --help help for version ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI --- ## _nifectl workload_ URL: https://docs.nife.io/CLI/workload Commands for managing workloads. ### About Commands for managing Nife workload. list, create, show and destroy workload. ### Usage ``` nifectl workload [command] ``` ### Available Commands * [create](#nifectl-workload-create) - Create an workload * [delete](#nifectl-workload-delete) - Delete an workload mangement * [list](#nifectl-workload-list) - Lists workload mangement for current user * [merge](#nifectl-workload-merge) - Merge the app which created under the workload to another workload ### options ``` -h, --help help for workload ``` ### Global Flags ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ### See Also * [nifectl](/CLI/help) - The Nife CLI ## _nifectl workload create_ It allows user to create workload ### Usage ``` nifectl workload create [flags] ``` ### options ``` -h, --help help for create ``` ### Global options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl workload delete_ Delete an workload mangement ### About Delete an existing workload mangement. ### Usage ``` nifectl workload delete [flags] ``` ### Options ``` -h, --help help for delete ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl workload list_ Lists workload mangement available to current user. ### Usage ``` nifectl workload list [flags] ``` ### Options ``` -h, --help help for list ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` ## _nifectl workload merge_ Merge the app which created under the workload to another workload. ### About Merge workload mangement available to current user. ### Usage ``` nifectl workload merge [flags] ``` ### Options ``` -h, --help help for merge ``` ### Global Options ``` -t, --access-token string Nife API Access Token -j, --json json output ``` --- ## Nife CLI Reference URL: https://docs.nife.io/Deploy-App/Optimize/Nife-CLI The Nife CLI (`nifectl`) is a powerful command-line tool for managing your applications, clusters, secrets, and deployments directly from your terminal. ## Install the CLI See the [Installation Guide](/Quick-Start/nifectl-Installation) to get started. ## Common Commands | Command | Description | |---------|-------------| | `nifectl deploy` | Deploy an application | | `nifectl apps` | List and manage apps | | `nifectl logs` | View application logs | | `nifectl secrets` | Manage secrets | | `nifectl regions` | Manage deployment regions | | `nifectl status` | Check application status | ## Full Reference Browse the complete [CLI Reference](/CLI/help) for all available commands and options. --- ## Deploying Kubernetes Agents - Complete Guide | Nife Deploy URL: https://docs.nife.io/Clusters/Deploying-Agents Agents are services deployed on your cluster that enable monitoring, logging, and enhanced Nife platform features. ## What are Agents? Agents are lightweight services that run on your Kubernetes cluster and: - Monitor cluster health and metrics - Collect and stream pod logs - Run security scans - Report resource usage - Enable AI-powered log analysis - Maintain real-time communication with Nife --- ## Before Deploying **Prerequisites:** - Cluster is connected to Nife - You have cluster admin access - Enough resources on cluster: - 100MB memory - 10m CPU - 1GB storage --- ## Deploying Your First Agent ### Step 1: Start Agent Deployment 1. Go to **Clusters** page 2. Click **Add Agent** button (top right) 3. Or select cluster and click **Add Agent** ### Step 2: Select Cluster **Cluster Selection:** - Choose the cluster where agent will run - Cluster name is pre-filled if coming from cluster detail - Can only deploy one agent per cluster initially ### Step 3: Choose Capabilities Select what the agent can do: **Available Capabilities:** | Capability | Purpose | Recommended | |-----------|---------|-------------| | **Monitoring** | Collect metrics (CPU, memory, disk) | Always ✅ | | **Logging** | Stream pod logs | Yes ✅ | | **Security** | Run security scans | Yes ✅ | | **Analytics** | Enable AI analysis | Yes ✅ | | **Auto-scaling** | Allow auto-scaling | Optional | | **Deployment** | Deploy applications | Yes ✅ | **Selecting Capabilities:** 1. Check boxes next to desired capabilities 2. At minimum, enable **Monitoring** 3. Most users want **Monitoring**, **Logging**, **Security** ### Step 4: Generate Agent Token 1. Click **Generate Token** 2. Token is created securely 3. Token appears in the dialog **Important:** Save this token securely. You'll need it to authenticate the agent. ### Step 5: Deploy Agent Two methods to deploy: **Method 1: Automatic Deployment** ```bash # Copy the provided command # Paste into your terminal connected to the cluster # Agent will deploy automatically ``` **Method 2: Manual Kubeconfig** ```bash # Use the provided kubeconfig snippet # Apply to your cluster manually # More control over deployment ``` ### Step 6: Verify Deployment 1. After deployment, wait 1-2 minutes 2. Go to **Agents** tab 3. Find your agent in the list 4. Status should show **Connected** or **Healthy** --- ## Managing Agents ### View Agent Details 1. Go to **Agents** tab 2. Click **Details** on any agent 3. See: - Agent status - Connected cluster - Deployed capabilities - Recent metrics - Last heartbeat ### Agent Status Meanings | Status | Meaning | Action | |--------|---------|--------| | **Connected** | Agent is running and communicating | Ready to use | | **Healthy** | Agent is functioning normally | No action needed | | **Disconnected** | Agent lost connection | Investigate network | | **Error** | Agent encountered an error | Check logs | ### Monitor Agent Metrics Each agent shows: - **CPU Usage**: Percentage of CPU being used - **Memory Usage**: RAM consumption - **Disk Usage**: Storage space used - **Last Heartbeat**: When agent last reported ### Rotate Agent Token Refresh agent's authentication token: 1. Click **Details** on agent 2. Click menu (three dots) 3. Select **Rotate Token** 4. Confirm rotation 5. Agent continues running with new token **Why rotate tokens:** - Periodic security refresh - If token is compromised - After security audit - Regular maintenance ### Trigger Security Scan Run security checks on cluster: 1. Go to **Agents** tab 2. Click menu (three dots) on agent 3. Select **Trigger Security Scan** 4. Scan starts immediately 5. Results appear in **Security Findings** --- ## Agent Deployment Troubleshooting ### Issue: Agent Won't Connect **Symptoms:** - Agent status shows "Disconnected" - Metrics not appearing - Last heartbeat is old **Solutions:** 1. Check cluster connectivity 2. Verify agent pod is running: ```bash kubectl get pods -n nife-agents ``` 3. Check agent logs: ```bash kubectl logs -n nife-agents -l app=nife-agent ``` 4. Verify firewall allows outbound HTTPS 5. Check if token has expired ### Issue: Deployment Failed **Symptoms:** - Agent pod never starts - Status shows "Error" **Solutions:** 1. Verify cluster has enough resources 2. Check kubeconfig is correct 3. Verify cluster admin access 4. Check namespace exists 5. Try re-deploying with new token ### Issue: High Resource Usage **Symptoms:** - Agent using more CPU/memory than expected - Cluster performance affected **Solutions:** 1. Check agent version is current 2. Review security scan frequency 3. Limit log streaming tail lines 4. Disable unnecessary capabilities 5. Contact support for optimization ### Issue: Token Expired **Symptoms:** - Agent stops connecting after time period - Authentication errors in logs **Solutions:** 1. Generate new token 2. Update agent with new token 3. Or rotate token (easier) 4. Redeploy agent if needed --- ## Agent Capabilities Explained ### Monitoring Collects real-time metrics about cluster and nodes: - CPU, memory, disk usage - Network I/O - Pod counts - Node status **Use when:** Always enable for all clusters ### Logging Enables pod log collection and streaming: - Fetch historical logs - Stream logs in real-time - Filter and search logs - Export logs **Use when:** You need to view application logs ### Security Runs security scans on cluster: - Vulnerability scanning - Configuration audit - Access control review - Compliance checking **Use when:** Security is important (always recommended) ### Analytics Enables AI-powered log analysis: - Automatically detect issues - Identify patterns - Suggest fixes - Analyze trends **Use when:** Want intelligent insights from logs ### Auto-scaling Allows Nife to auto-scale your applications: - Scale up under load - Scale down when idle - Cost optimization - Performance tuning **Use when:** Want automatic scaling ### Deployment Allows deploying applications via Nife: - Deploy from dashboard - CI/CD integration - Version management - Rollback capability **Use when:** Using Nife for deployments --- ## Removing an Agent To remove an agent from a cluster: 1. Go to **Agents** tab 2. Select agent 3. Click menu (three dots) 4. Select **Remove Agent** 5. Confirm removal 6. Agent is removed from cluster **Note:** Removing doesn't delete cluster, only removes agent service. --- ## Best Practices ### 1. Deploy to All Clusters Deploy at least one agent per cluster for monitoring and management. ### 2. Enable Recommended Capabilities Always enable: Monitoring, Logging, Security ### 3. Secure Your Tokens - Don't share agent tokens - Store tokens securely - Rotate tokens periodically - Revoke compromised tokens ### 4. Monitor Agent Health - Check agent status regularly - Monitor resource usage - Review error logs - Update agent when new versions available ### 5. Plan Deployment - Deploy during low-traffic periods - Test in non-production first - Have rollback plan - Document deployment ### 6. Rotate Credentials Regularly - Rotate tokens monthly - After team changes - After security incidents - As part of security policy --- ## Agent Updates When agent updates are available: 1. Notification appears in Nife 2. New agent version is released 3. You can update from dashboard 4. Or manually update via kubectl **Update Process:** 1. New version is pulled 2. Agent pods are recreated 3. Zero downtime updates 4. Capabilities are preserved --- ## Next Steps 1. **[Monitor Resources](/Clusters/Managing-Resources)** - Track cluster health 2. **[View Pod Logs](/Clusters/Monitoring-Logs)** - Access application logs 3. **[Run Security Scans](/deploy/deploy)** - Check cluster security --- ## Support **Questions about agents?** - Check this documentation - Review agent logs - Contact support: support@nife.io **Agent not connecting?** - Follow troubleshooting section above - Check cluster connectivity - Verify token is valid - Review agent pod logs ## Related Resources - 🛠️ [Kubernetes YAML Generator](https://freetools.nife.io) — Generate K8s YAML manifests online - 📖 [Blog: Kubernetes Deployments with Helm](https://blog.nife.io/post/mastering-kubernetes-deployments-with-helm/) --- ## Application Deployments on Nife | Stateless & Edge-Native Apps URL: https://docs.nife.io/Concept/Application-Deployments App and Services are Deployments can be deployed on the platform You describe a desired state of the application in a Deployment The Desired state of an application includes multiple states including Apps, Builders and Network ## Application Nife deals with Stateless Applications and Edge Native Applications ### Understanding Stateless applications A stateless app does not save data generated in one session for use in the next session with that client. Each execution is carried out as if it was the first time and responses are not dependent upon data from a previous execute and state. In contrast, a stateful application saves data about each client session and uses that data the next time the client makes a request. ### Understanding Jamstack Applications [Jamstack](https://jamstack.org/) is the new standard architecture for the web. Using Git workflows and modern build tools, pre-rendered content is served to a CDN and made dynamic through APIs and serverless functions. Technologies in the stack include JavaScript frameworks, Static Site Generators, Headless CMSs, and CDNs. ### Understanding Edge Native Applications Edge-native applications are built to run on a distributed network. Specifically, edge-native applications must be: – Highly modular to enable ease of deployment to multiple locations – Run in real-time to unlock the value of ultra-low latency processing at the edge of the network – Flexible and portable to be able to run on all types of edge hardware from a server to a Raspberry Pi. ## Network Typical Usescases Creating a deployment --- ## Deploy Your App on Nife | Multi-Cloud Application Deployment URL: https://docs.nife.io/deploy/deploy Deploy your application to the closest-selected end-point be it a Telco, Datacenter or a public cloud. ## Nifectl Deploying an application takes a simple step using the CLI. Ensure that your app is [configured](/configure/configure) before deploying - Deploying An App: [nifectl deploy](/CLI/deploy) - Viewing your deployed App: [nifectl open](/CLI/open) - Adding Regions to your deployed App : [nifectl regions](/CLI/regions) ## Nife UI ## Related Resources - 🚀 [Open the Nife Dashboard](https://launch.nife.io) — Deploy your first app now - 📖 [Nife Blog: Kubernetes Deployments with Helm](https://blog.nife.io/post/mastering-kubernetes-deployments-with-helm/) - 🌐 [nife.io](https://nife.io) — Learn more about Nife's edge cloud infrastructure --- ## Docker Containers - OpenRTiST Deployment URL: https://docs.nife.io/deploy/docker/openrtist `} ## Overview This guide walks you through configuring and deploying a Docker container application using Nife. You'll learn how to set up OpenRTiST — a platform for wearable cognitive assistance that transforms live video into artistic styles — and deploy it to production using the Nife CLI. :::info OpenRTiST utilizes Gabriel to stream video frames to a server, apply a chosen art style, and return transformed images to the client. We'll use the publicly available image: `cmusatyalab/openrtist`. Learn more about [OpenRTiST](https://github.com/cmusatyalab/openrtist) ::: ## Prerequisites Before you start, make sure you have: - Nife account and CLI installed --- #### Step 1: Install Nifectl CLI Follow the official installation guide for your operating system: [Nifectl Installation Guide](/Quick-Start/Nifectl) --- #### Step 2: Login to Nifectl Authenticate with your Nife account: ```bash nifectl auth login ``` You'll be prompted to enter your credentials. A browser window will open to complete the authentication. --- #### Step 3: Initialize Your Application Initialize the Docker application for deployment: ```bash nifectl init ``` ### Interactive Configuration The CLI will prompt you for the following information. Follow each step carefully: #### 1. App Name App Name (leave blank to use an auto-generated name) Press Enter to generate a random name or enter your preferred app name (e.g., `docky`). #### 2. Select Organization Select organization: [Use arrows to move, type to filter] NIFE-APPS (nife-apps) Use arrow keys to select your organization. #### 3. Deployment Source Deployment source: [Use arrows to move, type to filter] Image Public Docker image Docker Private registry image Database S3/GS, Postgres, Redis, Mongo... Loadbalancer Load balancer config Runtime Language & framework runtimes Select **Image** to use a public Docker image. #### 4. Docker Image Enter the Docker image name: cmusatyalab/openrtist Provide the name of the public Docker image to deploy. #### 5. Deployment Type Deployment type (Kubernetes workload kind): Deployment Leave as default (Deployment). #### 6. Workload and Resource Configuration Workload type: deployment Resource type: CPU Do You Wish To Add Volume (y/N): No Specify the Replicas Count for deployment(1): 1 Accept the defaults for a standard Docker deployment. #### 7. Port Configuration Select Internal Port: 9099 Select External Port: 9099 Set both internal and external ports to `9099` (OpenRTiST default). #### 8. Memory and Routing Do You Wish To Add Memory Allocations: No Select Routing Policy: [Use arrows to move, type to filter] Geolocation Latency Select **Geolocation** for global distribution. #### 9. Deployment Strategy ``` text Deployment strategy: [Use arrows to move, type to filter] rolling recreate blue-green canary shadow ab-testing ``` Select **rolling** for zero-downtime deployments. #### 10. Environment Variables ```text Add environment variables? (y/N): yes/no ``` Skip for now (can be added later if needed). ### Configuration Complete When initialization finishes, you'll see: ```text New app created Name = docky Organization = nife-apps Version = 0 Status = New Hostname = Update config file nife.toml ``` Your `nife.toml` configuration file has been created with all your settings. --- #### Step 4: Deploy Your Application Deploy the Docker container application: ```bash nifectl deploy ``` When you run the deploy command, you'll be prompted to select a region: ``` ? Select region for deployment: [Use arrows to move, type to filter] IND - India, Mumbai EUR - Europe APAC - Asia Pacific AMER - Americas my-cluster - my-cluster ``` The deployment process includes: 1. Validating app configuration 2. Pulling the Docker image 3. Optimizing the image 4. Creating a release and deployment ### Expected Output ```text Deploying docky ==> Validating App Configuration --> Validating App Configuration done ==> Building Image from Docker --> Pulling public Docker image: cmusatyalab/openrtist ==> Optimizing Image --> Done Optimizing Image ==> Creating Release ==> Creating Deployment Deployment...Done ``` :::note Your deployed application will be available at the URL shown in the output. Save this for later reference. ::: --- #### Step 5: Access Your Application Once deployment completes successfully, your OpenRTiST application is live! Navigate to your deployment URL You can access the application using the Android client from the Play Store. Enter the deployment URL in the app to start streaming. [Download the Android App](https://play.google.com/store/apps/details?id=edu.cmu.cs.openrtist&hl=en_IN&gl=US) --- :::info Check the [Nife Documentation](https://docs.nife.io) if you encounter any issues. ::: --- ## Go Apps - TodoList URL: https://docs.nife.io/deploy/golang `} ## Overview This guide walks you through configuring and deploying a Go application using Nife. You'll learn how to set up a TodoList app, initialize it with Nife CLI, and deploy it to production. :::info We'll use this sample repository: [TodoList App](https://github.com/nife-public/go-todo-list) ::: --- ## Prerequisites Before you start, make sure you have: - Nife account and CLI installed --- #### Step 1: Install Nifectl CLI Follow the official installation guide for your operating system: [Nifectl Installation Guide](/Quick-Start/Nifectl) --- #### Step 2: Log In to Nifectl Authenticate with your Nife account using [nifectl auth](/CLI/auth) command: ```bash nifectl auth login ``` You'll be prompted to enter your credentials. A browser window will open to complete the authentication. --- #### Step 3: Initialize Your Application Initialize the Go application for deployment using [nifectl init](/CLI/init): ```bash nifectl init ``` ### Interactive Configuration The CLI will prompt you for the following information. Follow each step carefully: #### 1. App Name ```bash ? App Name (leave blank to use an auto-generated name) ``` Press Enter to generate a random name or enter your preferred app name (e.g., `gogeo`). #### 2. Select Organization ```bash ? Select organization: [Use arrows to move, type to filter] NIFE-APPS (nife-apps) ``` Use arrow keys to select your organization. #### 3. Deployment Source ```bash ? Deployment source: [Use arrows to move, type to filter] Image Public Docker image Docker Private registry image Database S3/GS, Postgres, Redis, Mongo... Loadbalancer Load balancer config Runtime Language & framework runtimes ``` Select **Runtime** to use a language & framework runtime. #### 4. Select Builder ```bash ? Select builder: [Use arrows to move, type to filter] None (Do not set a builder) Image (Use a public Docker image) deno Deno builtin go Go Builtin hugo-static Hugo static build with web server builtin node Nodejs builtin python Python builtin ruby Ruby builtin ``` Select **go** for the Go builtin runtime. #### 5. Deployment Type ```bash ? Deployment type (Kubernetes workload kind): Deployment ``` Leave as default (Deployment). #### 6. Workload and Resource Configuration ```bash ? Workload type: deployment ? Resource type: CPU ? Do You Wish To Add Volume (y/N): No ? Specify the Replicas Count for deployment(1): 1 ``` Accept the defaults for a standard Go deployment. #### 7. Port Configuration ```bash ? Select Internal Port: 4040 ? Select External Port: 4040 ``` Set both internal and external ports to `4040` (Go TodoList app default). #### 8. Memory and Routing ```bash ? Do You Wish To Add Memory Allocations: No ? Select Routing Policy: [Use arrows to move, type to filter] Geolocation Latency ``` Select **Geolocation** for global distribution. #### 9. Deployment Strategy ```bash ? Deployment strategy: [Use arrows to move, type to filter] rolling recreate blue-green canary shadow ab-testing ``` Select **rolling** for zero-downtime deployments. #### 10. Environment Variables ```bash ? Add environment variables? (y/N): No ``` Skip for now (can be added later if needed). ### Configuration Complete When initialization finishes, you'll see: ```bash New app created Name = gogeo Organization = nife-apps Version = 0 Status = New Hostname = Update config file nife.toml ``` Your `nife.toml` configuration file has been created with all your settings. --- #### Step 4: Deploy Your Application Deploy the Go application using [nifectl deploy](/CLI/deploy): ```bash nifectl deploy ``` #### Select Deployment Region When you run the deploy command, you'll be prompted to select a region: ```bash ? Select region for deployment: [Use arrows to move, type to filter] IND - India, Mumbai EUR - Europe APAC - Asia Pacific AMER - Americas my-cluster - my-cluster ``` Use arrow keys to select your desired region. Choose the region closest to your target users for optimal performance. The deployment process includes: 1. Validating app configuration 2. Cloning repository 3. Building Docker image 4. Optimizing image 5. Creating release and deployment ### Expected Output ```bash Deploying gogeo ==> Validating App Configuration --> Validating App Configuration done ==> Building Image from Repository --> Cloning repository --> Building Docker image ==> Optimizing Image --> Done Optimizing Image ==> Creating Release ==> Creating Deployment Release v1 created at: http://gogeo.apps.nifetency.com:4040 Deployment...Done ``` :::note Your deployed application will be available at the URL shown in the output. Save this for later reference. ::: --- #### Step 5: Access Your Application Once deployment completes successfully, your Go TodoList application is live! Navigate to your deployment URL: ```bash http://gogeo.apps.nifetency.com:4040 ``` --- :::info Check the [Nife Documentation](https://docs.nife.io) if you encounter any issues. ::: --- ## Nodejs Applications URL: https://docs.nife.io/deploy/node `} ## Overview This guide walks you through configuring and deploying a Node.js application using Nife. You'll learn how to set up a Multiplayer Snake Game, initialize it with Nife CLI, and deploy it to production. :::info We'll use this sample repository: [Multiplayer Snake Game](https://github.com/nife-public/node-multiplayer-snake) ::: --- ## Prerequisites Before you start, make sure you have: - Nife account and CLI installed --- #### Step 1: Install Nifectl CLI Follow the official installation guide for your operating system: [Nifectl Installation Guide](/Quick-Start/Nifectl) --- #### Step 2: Log In to Nifectl Authenticate with your Nife account using [nifectl auth](/CLI/auth) command: ```bash nifectl auth login ``` You'll be prompted to enter your credentials. A browser window will open to complete the authentication. --- #### Step 3: Initialize Your Application Initialize the Node.js application for deployment using [nifectl init](/CLI/init): ```bash nifectl init ``` ### Interactive Configuration The CLI will prompt you for the following information. Follow each step carefully: #### 1. App Name ```bash ? App Name (leave blank to use an auto-generated name) ``` Press Enter to generate a random name or enter your preferred app name (e.g., `node`). #### 2. Select Organization ```bash ? Select organization: [Use arrows to move, type to filter] NIFE-APPS (nife-apps) ``` Use arrow keys to select your organization. #### 3. Deployment Source ```bash ? Deployment source: [Use arrows to move, type to filter] Image Public Docker image Docker Private registry image Database S3/GS, Postgres, Redis, Mongo... Loadbalancer Load balancer config Runtime Language & framework runtimes ``` Select **Runtime** to use a language & framework runtime. #### 4. Select Builder ```bash ? Select builder: [Use arrows to move, type to filter] None (Do not set a builder) Image (Use a public Docker image) deno Deno builtin go Go Builtin hugo-static Hugo static build with web server builtin node Nodejs builtin python Python builtin ruby Ruby builtin ``` Select **node** for the Nodejs builtin runtime. #### 5. Deployment Type ```bash ? Deployment type (Kubernetes workload kind): Deployment ``` Leave as default (Deployment). #### 6. Workload and Resource Configuration ```bash ? Workload type: deployment ? Resource type: CPU ? Do You Wish To Add Volume (y/N): No ? Specify the Replicas Count for deployment(1): 1 ``` Accept the defaults for a standard Node.js deployment. #### 7. Port Configuration ```bash ? Select Internal Port: 3000 ? Select External Port: 80 ``` Set internal port to `3000` (Node.js default) and external port to `80`. #### 8. Memory and Routing ```bash ? Do You Wish To Add Memory Allocations: No ? Select Routing Policy: [Use arrows to move, type to filter] Geolocation Latency ``` Select **Geolocation** for global distribution. #### 9. Deployment Strategy ```bash ? Deployment strategy: [Use arrows to move, type to filter] rolling recreate blue-green canary shadow ab-testing ``` Select **rolling** for zero-downtime deployments. #### 10. Environment Variables ```bash ? Add environment variables? (y/N): No ``` Skip for now (can be added later if needed). #### 11. Region Selection ```bash Available regions for this app (will be selected on first deploy): IND - India, Mumbai my-cluster - my-cluster ``` Your available deployment regions will be displayed. Default location is IND (Mumbai). ### Configuration Complete When initialization finishes, you'll see: ```bash New app created Name = node Organization = nife-apps Version = 0 Status = New Hostname = Update config file nife.toml ``` Your `nife.toml` configuration file has been created with all your settings. --- #### Step 4: Deploy Your Application Deploy the Node.js application using [nifectl deploy](/CLI/deploy): ```bash nifectl deploy ``` When you run the deploy command, you'll be prompted to select a region: ```bash ? Select region for deployment: [Use arrows to move, type to filter] IND - India, Mumbai EUR - Europe APAC - Asia Pacific AMER - Americas my-cluster - my-cluster ``` The deployment process includes: 1. Validating app configuration 2. Cloning repository 3. Building Docker image 4. Optimizing image 5. Creating release and deployment ### Expected Output ```bash Deploying node ==> Validating App Configuration --> Validating App Configuration done ==> Building Image from Repository --> Cloning repository --> Building Docker image ==> Optimizing Image --> Done Optimizing Image ==> Creating Release ==> Creating Deployment Release v1 created at: http://node.apps.nifetency.com Deployment...Done ``` :::note Your deployed application will be available at the URL shown in the output. Save this for later reference. ::: --- #### Step 5: Access Your Application Once deployment completes successfully, your Node.js Multiplayer Snake Game is live! Navigate to your deployment URL: ```bash http://node.apps.nifetency.com ``` --- :::info Check the [Nife Documentation](https://docs.nife.io) if you encounter any issues. ::: --- ## Python Applications URL: https://docs.nife.io/deploy/python `} ## Overview This guide walks you through configuring and deploying a Python application using Nife. You'll learn how to set up an Image App, initialize it with Nife CLI, and deploy it to production. :::info We'll use this sample repository: [Image App](https://github.com/nife-public/image-app) ::: --- ## Prerequisites Before you start, make sure you have: - Nife account and CLI installed --- #### Step 1: Install Nifectl CLI Follow the official installation guide for your operating system: [Nifectl Installation Guide](/Quick-Start/Nifectl) --- #### Step 2: Log In to Nifectl Authenticate with your Nife account using [nifectl auth](/CLI/auth) command: ```bash nifectl auth login ``` You'll be prompted to enter your credentials. A browser window will open to complete the authentication. --- #### Step 3: Initialize Your Application Initialize the Python application for deployment using [nifectl init](/CLI/init): ```bash nifectl init ``` ### Interactive Configuration The CLI will prompt you for the following information. Follow each step carefully: #### 1. App Name ```bash ? App Name (leave blank to use an auto-generated name) ``` Press Enter to generate a random name or enter your preferred app name (e.g., `python`). #### 2. Select Organization ```bash ? Select organization: [Use arrows to move, type to filter] NIFE-APPS (nife-apps) ``` Use arrow keys to select your organization. #### 3. Deployment Source ```bash ? Deployment source: [Use arrows to move, type to filter] Image Public Docker image Docker Private registry image Database S3/GS, Postgres, Redis, Mongo... Loadbalancer Load balancer config Runtime Language & framework runtimes ``` Select **Runtime** to use a language & framework runtime. #### 4. Select Builder ```bash ? Select builder: [Use arrows to move, type to filter] None (Do not set a builder) Image (Use a public Docker image) deno Deno builtin go Go Builtin hugo-static Hugo static build with web server builtin node Nodejs builtin python Python builtin ruby Ruby builtin ``` Select **python** for the Python builtin runtime. #### 5. Deployment Type ```bash ? Deployment type (Kubernetes workload kind): Deployment ``` Leave as default (Deployment). #### 6. Workload and Resource Configuration ```bash ? Workload type: deployment ? Resource type: CPU ? Do You Wish To Add Volume (y/N): No ? Specify the Replicas Count for deployment(1): 1 ``` Accept the defaults for a standard Python deployment. #### 7. Port Configuration ```bash ? Select Internal Port: 8080 ? Select External Port: 80 ``` Set internal port to `8080` (Python app default) and external port to `80`. #### 8. Memory and Routing ```bash ? Do You Wish To Add Memory Allocations: No ? Select Routing Policy: [Use arrows to move, type to filter] Geolocation Latency ``` Select **Geolocation** for global distribution. #### 9. Deployment Strategy ```bash ? Deployment strategy: [Use arrows to move, type to filter] rolling recreate blue-green canary shadow ab-testing ``` Select **rolling** for zero-downtime deployments. #### 10. Environment Variables ```bash ? Add environment variables? (y/N): No ``` Skip for now (can be added later if needed). #### 11. Region Selection ```bash Available regions for this app (will be selected on first deploy): IND - India, Mumbai my-cluster - my-cluster ``` Your available deployment regions will be displayed. ### Configuration Complete When initialization finishes, you'll see: ```bash New app created Name = python Organization = nife-apps Version = 0 Status = New Hostname = Update config file nife.toml ``` Your `nife.toml` configuration file has been created with all your settings. --- #### Step 4: Deploy Your Application Deploy the Python application using [nifectl deploy](/CLI/deploy): ```bash nifectl deploy ``` When you run the deploy command, you'll be prompted to select a region: ```bash ? Select region for deployment: [Use arrows to move, type to filter] IND - India, Mumbai EUR - Europe APAC - Asia Pacific AMER - Americas my-cluster - my-cluster ``` The deployment process includes: 1. Validating app configuration 2. Cloning repository 3. Building Docker image 4. Optimizing image 5. Creating release and deployment ### Expected Output ```bash Deploying python ==> Validating App Configuration --> Validating App Configuration done ==> Building Image from Repository --> Cloning repository --> Building Docker image ==> Optimizing Image --> Done Optimizing Image ==> Creating Release ==> Creating Deployment Release v1 created at: http://python.apps.nifetency.com Deployment...Done ``` :::note Your deployed application will be available at the URL shown in the output. Save this for later reference. ::: --- #### Step 5: Access Your Application Once deployment completes successfully, your Python Image App is live! Navigate to your deployment URL: ```bash http://python.apps.nifetency.com ``` --- :::info Check the [Nife Documentation](https://docs.nife.io) if you encounter any issues. ::: --- ## Ruby Apps - Hello World Rails URL: https://docs.nife.io/deploy/ruby/rails ## Overview This guide walks you through configuring and deploying a Ruby on Rails application using Nife. You'll learn how to set up your project, initialize it with Nife CLI, and deploy it to production. Ruby on Rails is a powerful web application framework that makes it easy to build complex applications with elegance and simplicity. The Hello World Rails example demonstrates core Rails concepts including MVC architecture, routing, controllers, and views. **Application Features:** - Model-View-Controller architecture - RESTful routing and API endpoints - Database integration with ActiveRecord - Built-in security features - Responsive web interface - Easy-to-extend modular design :::info Example Repository We'll use this sample repository: [Rails Example App](https://github.com/nife-public/rails-example) ::: --- ## Prerequisites Before you start, make sure you have: - Nife account and CLI installed --- #### Step 1: Install Nifectl CLI Follow the official installation guide for your operating system: [Nifectl Installation Guide](/Quick-Start/Nifectl) --- #### Step 2: Login to Nifectl Authenticate with your Nife account: ```bash nifectl auth login ``` You'll be prompted to enter your credentials. A browser window will open to complete the authentication. :::note Repository Support You can deploy applications directly from GitHub, Bitbucket, or GitLab. ::: --- #### Step 3: Initialize Your Application Initialize the Rails application for deployment: ```bash nifectl init ``` ### Interactive Configuration The CLI will prompt you for the following information. Follow each step carefully: #### 1. App Name ``` ? App Name (leave blank to use an auto-generated name) ``` Press Enter to generate a random name or enter your preferred app name. #### 2. Select Organization ``` ? Select organization: [Use arrows to move, type to filter] BNC (bnc) NIFEDOCUMENT (nifedocument) ``` Use arrow keys to select your organization. #### 3. Deployment Source ``` ? Deployment source: [Use arrows to move, type to filter] Image Public Docker image Docker Private registry image Database S3/GS, Postgres, Redis, Mongo... Loadbalancer Load balancer config Runtime Language & framework runtimes Repository GitHub ,GitLab ``` Select "Repository" from the list. #### 4. Repository Provider ``` ? Select repository provider: [Use arrows to move, type to filter] GitHub Deploy from a GitHub repository URL GitLab Deploy from a GitLab repository URL Bitbucket Deploy from a Bitbucket repository URL ``` Select **GitHub** for this example. #### 5. GitHub URL and Branch ``` ? Enter your GitHub URL: https://github.com/nife-public/rails-example.git ? Enter your GitHub Branch: main ``` Provide your repository URL and the branch to deploy (typically `main` or `master`). #### 6. Deployment Type ``` ? Deployment type (Kubernetes workload kind): Deployment ``` Leave as default (Deployment). #### 7. Workload and Resource Configuration ``` ? Workload type: deployment ? Resource type: CPU ? Do You Wish To Add Volume (y/N): No ? Specify the Replicas Count for deployment(1): 1 ``` Accept the defaults for a standard Rails deployment. #### 8. Port Configuration ``` ? Select Internal Port: [? for help] (4000): 3000 ? Select External Port: [? for help] (80): 80 ``` Set internal port to 3000 (Rails default) and external port to 80. #### 9. Memory and Routing ``` ? Do You Wish To Add Memory Allocations: No ? Select Routing Policy: [Use arrows to move, type to filter] Geolocation Latency ``` Select **Geolocation** for global distribution. #### 10. Deployment Strategy ``` ? Deployment strategy: [Use arrows to move, type to filter] rolling recreate blue-green canary shadow ab-testing ``` Select **rolling** for zero-downtime deployments. #### 11. Environment Variables ``` ? Add environment variables? (y/N): No ``` Skip for now (can be added later if needed). ### Configuration Complete When initialization finishes, you'll see: ``` New app created Name = your-app-name Organization = nifedocument Version = 0 Status = New Hostname = Update config file nife.toml ``` Your `nife.toml` configuration file has been created with all your settings. --- #### Step 4: Deploy Your Application Before deploying, you'll need to select the region where your application will be deployed. Deploy the Rails application: ```bash nifectl deploy ``` ### Select Deployment Region When you run the deploy command, you'll be prompted to select a region: ``` ? Select region for deployment: [Use arrows to move, type to filter] IND - India, Mumbai EUR - Europe APAC - Asia Pacific AMER - Americas my-cluster - my-cluster ``` Use arrow keys to select your desired region. Choose the region closest to your target users for optimal performance. ### Deployment Process The deployment process includes: 1. Validating app configuration 2. Cloning repository 3. Building Docker image 4. Optimizing image 5. Creating release and deployment ### Expected Output ``` Deploying rails-app ==> Validating App Configuration --> Validating App Configuration done ==> Building Image from Repository --> Cloning repository --> Building Docker image ==> Optimizing Image --> Done Optimizing Image ==> Creating Release ==> Creating Deployment Release v1 created at: https://your-app.on.nifetency.com Deployment...Done ``` :::note Keep Track of Your URL Your deployed application will be available at the URL shown in the output. Save this for later reference. ::: --- #### Step 5: Access Your Application Once deployment completes successfully, your Rails application is live! Navigate to your deployment URL: ``` https://your-app.on.nifetency.com ``` --- :::info Check the [Nife Documentation](https://docs.nife.io) or contact support if you encounter any issues. ::: --- ## Java Apps - Hello World Spring Boot URL: https://docs.nife.io/deploy/java/spring-boot ## Overview This guide walks you through configuring and deploying a Java Spring Boot application using Nife. You'll learn how to set up your project, initialize it with Nife CLI, and deploy it to production. The Hello World Spring Boot App is a minimal Java web application that demonstrates how to containerize and deploy a Spring Boot service. It covers the essentials of building and running a Java backend on Nife's infrastructure. **Application Features:** - Lightweight Spring Boot REST API - Dockerized for seamless deployment - Exposes a simple HTTP endpoint returning "Hello World" - Compatible with Java 8 and above - Ready for multi-region deployment on Nife :::info Example Repository We'll use this sample repository: [Hello World Spring Boot App](https://github.com/nife-public/docker-hello-world-spring-boot) ::: --- ## Prerequisites Before you start, make sure you have: - Nife account and CLI installed --- #### Step 1: Install Nifectl CLI Follow the official installation guide for your operating system: [Nifectl Installation Guide](/Quick-Start/Nifectl) --- #### Step 2: Login to Nifectl Authenticate with your Nife account: ```bash nifectl auth login ``` You'll be prompted to enter your credentials. A browser window will open to complete the authentication. --- #### Step 3: Initialize Your Application Initialize the Spring Boot application for deployment: ```bash nifectl init ``` ### Interactive Configuration The CLI will prompt you for the following information. Follow each step carefully: #### 1. App Name ``` ? App Name (leave blank to use an auto-generated name) ``` Press Enter to generate a random name or enter your preferred app name. #### 2. Select Organization ``` ? Select organization: [Use arrows to move, type to filter] BNC (bnc) NIFEDOCUMENT (nifedocument) ``` Use arrow keys to select your organization. #### 3. Deployment Source ``` ? Deployment source: [Use arrows to move, type to filter] Image Public Docker image Docker Private registry image Database S3/GS, Postgres, Redis, Mongo... Loadbalancer Load balancer config Runtime Language & framework runtimes Repository GitHub ,GitLab ``` Select "Repository" from the list. #### 4. Repository Provider ``` ? Select repository provider: [Use arrows to move, type to filter] GitHub Deploy from a GitHub repository URL GitLab Deploy from a GitLab repository URL Bitbucket Deploy from a Bitbucket repository URL ``` Select **GitHub** for this example. #### 5. GitHub URL and Branch ``` ? Enter your GitHub URL: https://github.com/nife-public/docker-hello-world-spring-boot.git ? Enter your GitHub Branch: master ``` Provide your repository URL and the branch to deploy (typically `main` or `master`). #### 6. Deployment Type ``` ? Deployment type (Kubernetes workload kind): Deployment ``` Leave as default (Deployment). #### 7. Workload and Resource Configuration ``` ? Workload type: deployment ? Resource type: CPU ? Do You Wish To Add Volume (y/N): No ? Specify the Replicas Count for deployment(1): 1 ``` Accept the defaults for a standard Spring Boot deployment. #### 8. Port Configuration ``` ? Select Internal Port: [? for help] (4000): 8080 ? Select External Port: [? for help] (80): 80 ``` Set internal port to 8080 (Spring Boot default) and external port to 80. #### 9. Memory and Routing ``` ? Do You Wish To Add Memory Allocations: No ? Select Routing Policy: [Use arrows to move, type to filter] Geolocation Latency ``` Select **Geolocation** for global distribution. #### 10. Deployment Strategy ``` ? Deployment strategy: [Use arrows to move, type to filter] rolling recreate blue-green canary shadow ab-testing ``` Select **rolling** for zero-downtime deployments. #### 11. Environment Variables ``` ? Add environment variables? (y/N): No ``` Skip for now (can be added later if needed). ### Configuration Complete When initialization finishes, you'll see: ``` New app created Name = your-app-name Organization = nifedocument Version = 0 Status = New Hostname = Update config file nife.toml ``` Your `nife.toml` configuration file has been created with all your settings. --- #### Step 4: Deploy Your Application Before deploying, you'll need to select the region where your application will be deployed. Deploy the Spring Boot application: ```bash nifectl deploy ``` Select Deployment Region When you run the deploy command, you'll be prompted to select a region: ``` ? Select region for deployment: [Use arrows to move, type to filter] IND - India, Mumbai EUR - Europe APAC - Asia Pacific AMER - Americas my-cluster - my-cluster ``` Use arrow keys to select your desired region. Choose the region closest to your target users for optimal performance. Deployment Process The deployment process includes: 1. Validating app configuration 2. Cloning repository 3. Building Docker image 4. Optimizing image 5. Creating release and deployment ### Expected Output ``` Deploying funny-babbage1 ==> Validating App Configuration --> Validating App Configuration done ==> Building Image from Repository --> Cloning repository --> Building Docker image ==> Optimizing Image --> Done Optimizing Image ==> Creating Release ==> Creating Deployment Release v1 created at: https://funny-babbage1.on.nifetency.com Deployment...Done ``` :::note Keep Track of Your URL Your deployed application will be available at the URL shown in the output. Save this for later reference. ::: --- #### Step 5: Access Your Application Once deployment completes successfully, your Spring Boot application is live! Navigate to your deployment URL: ``` https://funny-babbage1.on.nifetency.com ``` --- :::info Check the [Nife Documentation](https://docs.nife.io) if you encounter any issues. ::: --- ## Java Apps - Docker Spring Boot Web Service URL: https://docs.nife.io/deploy/java/spring-boot-web-service ## Overview This guide walks you through configuring and deploying a Spring Boot web service using Nife. You'll learn how to set up your Java project, initialize it with Nife CLI, and deploy it to production using a Docker-based Spring Boot example. This project demonstrates a minimal Spring Boot application that can be built with Maven and containerized with Docker. It is intentionally lightweight and easy to follow, making it an excellent reference project for local development, container workflows, and cloud deployment testing. **Application Features:** - Lightweight Spring Boot web service - Maven-based build system - Docker containerization - RESTful API endpoints - Java-based microservice architecture - Production-ready deployment :::info Example Repository We'll use this sample repository: [Docker Spring Boot Java Web Service Example](https://github.com/nife-public/docker-spring-boot-java-web-service-example) ::: --- ## Prerequisites Before you start, make sure you have - Nife account and CLI installed --- #### Step 1: Install Nifectl CLI Follow the official installation guide for your operating system: [Nifectl Installation Guide](/Quick-Start/Nifectl) --- #### Step 2: Login to Nifectl Authenticate with your Nife account: ```bash nifectl auth login ``` You'll be prompted to enter your credentials. A browser window will open to complete the authentication. :::note Repository Support You can deploy applications directly from GitHub, Bitbucket, or GitLab. ::: --- #### Step 3: Initialize Your Application Initialize the Spring Boot web service for deployment: ```bash nifectl init ``` ### Interactive Configuration The CLI will prompt you for the following information. Follow each step carefully: #### 1. App Name ``` ? App Name (leave blank to use an auto-generated name) ``` Press Enter to generate a random name or enter your preferred app name. #### 2. Select Organization ``` ? Select organization: [Use arrows to move, type to filter] BNC (bnc) NIFEDOCUMENT (nifedocument) ``` Use arrow keys to select your organization. #### 3. Deployment Source ``` ? Deployment source: [Use arrows to move, type to filter] Image Public Docker image Docker Private registry image Database S3/GS, Postgres, Redis, Mongo... Loadbalancer Load balancer config Runtime Language & framework runtimes ``` Select "Repository" from the list. #### 4. Repository Provider ``` ? Select repository provider: [Use arrows to move, type to filter] GitHub Deploy from a GitHub repository URL GitLab Deploy from a GitLab repository URL Bitbucket Deploy from a Bitbucket repository URL ``` Select **GitHub** for this example. #### 5. GitHub URL and Branch ``` ? Enter your GitHub URL: https://github.com/nife-public/docker-spring-boot-java-web-service-example.git ? Enter your GitHub Branch: master ``` Provide your repository URL and the branch to deploy (typically `main` or `master`). #### 6. Deployment Type ``` ? Deployment type (Kubernetes workload kind): Deployment ``` Leave as default (Deployment). #### 7. Workload and Resource Configuration ``` ? Workload type: deployment ? Resource type: CPU ? Do You Wish To Add Volume (y/N): No ? Specify the Replicas Count for deployment(1): 1 ``` Accept the defaults for a standard Spring Boot deployment. #### 8. Port Configuration ``` ? Select Internal Port: [? for help] (4000): 8080 ? Select External Port: [? for help] (80): 80 ``` Set internal port to 8080 (Spring Boot default) and external port to 80. #### 9. Memory and Routing ``` ? Do You Wish To Add Memory Allocations: No ? Select Routing Policy: [Use arrows to move, type to filter] Geolocation Latency ``` Select **Geolocation** for global distribution. #### 10. Deployment Strategy ``` ? Deployment strategy: [Use arrows to move, type to filter] rolling recreate blue-green canary shadow ab-testing ``` Select **rolling** for zero-downtime deployments. #### 11. Environment Variables ``` ? Add environment variables? (y/N): No ``` Skip for now (can be added later if needed). ### Configuration Complete When initialization finishes, you'll see: ``` New app created Name = your-app-name Organization = nifedocument Version = 0 Status = New Hostname = Update config file nife.toml ``` Your `nife.toml` configuration file has been created with all your settings. --- #### Step 4: Deploy Your Application Before deploying, you'll need to select the region where your application will be deployed. Deploy the Spring Boot web service: ```bash nifectl deploy ``` ### Select Deployment Region When you run the deploy command, you'll be prompted to select a region: ``` ? Select region for deployment: [Use arrows to move, type to filter] IND - India, Mumbai EUR - Europe APAC - Asia Pacific AMER - Americas my-cluster - my-cluster ``` Use arrow keys to select your desired region. Choose the region closest to your target users for optimal performance. ### Deployment Process The deployment process includes: 1. Validating app configuration 2. Cloning repository 3. Building Docker image 4. Optimizing image 5. Creating release and deployment ### Expected Output ``` Deploying spring-boot-service ==> Validating App Configuration --> Validating App Configuration done ==> Building Image from Repository --> Cloning repository --> Building Docker image ==> Optimizing Image --> Done Optimizing Image ==> Creating Release ==> Creating Deployment Release v1 created at: https://your-app.on.nifetency.com Deployment...Done ``` #### Step 5: Access Your Application Once deployment completes successfully, your Spring Boot web service is live! Navigate to your deployment URL: ``` https://your-app.on.nifetency.com ``` :::info Check the [Nife Documentation](https://docs.nife.io) if you encounter any issues. ::: --- ## Node Apps - React Password Generator URL: https://docs.nife.io/deploy/node/react-password-generator ## Overview This guide walks you through configuring and deploying a React application using Nife. You'll learn how to set up your React project, initialize it with Nife CLI, and deploy it to production using a Password Generator example. The React Password Generator is a simple yet powerful application that generates secure passwords based on user preferences. It demonstrates key React concepts including state management, component composition, and event handling. **Application Features:** - Generate random passwords with customizable length - Toggle options for uppercase, lowercase, numbers, and special characters - Copy password to clipboard functionality - Real-time password strength indicator - Responsive design that works on all devices :::info Example Repository We'll use this sample repository: [React Password Generator](https://github.com/nife-public/react_password_generator) ::: --- ## Prerequisites Before you start, make sure you have: - Nife account and CLI installed --- #### Step 1: Install Nifectl CLI Follow the official installation guide for your operating system: [Nifectl Installation Guide](/Quick-Start/Nifectl) --- #### Step 2: Login to Nifectl Authenticate with your Nife account: ```bash nifectl auth login ``` You'll be prompted to enter your credentials. A browser window will open to complete the authentication. --- #### Step 3: Initialize Your Application Initialize the React application for deployment: ```bash nifectl init ``` ### Interactive Configuration The CLI will prompt you for the following information. Follow each step carefully: #### 1. App Name ``` ? App Name (leave blank to use an auto-generated name) ``` Press Enter to generate a random name or enter your preferred app name. #### 2. Select Organization ``` ? Select organization: [Use arrows to move, type to filter] BNC (bnc) NIFEDOCUMENT (nifedocument) ``` Use arrow keys to select your organization. #### 3. Deployment Source ``` ? Deployment source: [Use arrows to move, type to filter] Image Public Docker image Docker Private registry image Database S3/GS, Postgres, Redis, Mongo... Loadbalancer Load balancer config Runtime Language & framework runtimes Repository GitHub ,GitLab ``` Select "Repository" from the list. #### 4. Repository Provider ``` ? Select repository provider: [Use arrows to move, type to filter] GitHub Deploy from a GitHub repository URL GitLab Deploy from a GitLab repository URL Bitbucket Deploy from a Bitbucket repository URL ``` Select **GitHub** for this example. #### 5. GitHub URL and Branch ``` ? Enter your GitHub URL: https://github.com/nife-public/react_password_generator.git ? Enter your GitHub Branch: main ``` Provide your repository URL and the branch to deploy (typically `main` or `master`). #### 6. Deployment Type ``` ? Deployment type (Kubernetes workload kind): Deployment ``` Leave as default (Deployment). #### 7. Workload and Resource Configuration ``` ? Workload type: deployment ? Resource type: CPU ? Do You Wish To Add Volume (y/N): No ? Specify the Replicas Count for deployment(1): 1 ``` Accept the defaults for a standard React deployment. #### 8. Port Configuration ``` ? Select Internal Port: [? for help] (4000): 3000 ? Select External Port: [? for help] (80): 80 ``` Set internal port to 3000 (React default) and external port to 80. #### 9. Memory and Routing ``` ? Do You Wish To Add Memory Allocations: No ? Select Routing Policy: [Use arrows to move, type to filter] Geolocation Latency ``` Select **Geolocation** for global distribution. #### 10. Deployment Strategy ``` ? Deployment strategy: [Use arrows to move, type to filter] rolling recreate blue-green canary shadow ab-testing ``` Select **rolling** for zero-downtime deployments. #### 11. Environment Variables ``` ? Add environment variables? (y/N): No ``` Skip for now (can be added later if needed). When initialization finishes, you'll see: ``` New app created Name = your-app-name Organization = nifedocument Version = 0 Status = New Hostname = Update config file nife.toml ``` Your `nife.toml` configuration file has been created with all your settings. --- #### Step 4: Deploy Your Application Before deploying, you'll need to select the region where your application will be deployed. Deploy the React application: ```bash nifectl deploy ``` Select Deployment Region When you run the deploy command, you'll be prompted to select a region: ``` ? Select region for deployment: [Use arrows to move, type to filter] IND - India, Mumbai EUR - Europe APAC - Asia Pacific AMER - Americas my-cluster - my-cluster ``` Use arrow keys to select your desired region. Choose the region closest to your target users for optimal performance. Deployment Process The deployment process includes: 1. Validating app configuration 2. Cloning repository 3. Building Docker image 4. Optimizing image 5. Creating release and deployment ### Expected Output ``` Deploying react-app ==> Validating App Configuration --> Validating App Configuration done ==> Building Image from Repository --> Cloning repository --> Building Docker image ==> Optimizing Image --> Done Optimizing Image ==> Creating Release ==> Creating Deployment Release v1 created at: https://your-app.on.nifetency.com Deployment...Done ``` :::note Keep Track of Your URL Your deployed application will be available at the URL shown in the output. Save this for later reference. ::: --- #### Step 5: Access Your Application Once deployment completes successfully, your React application is live! Navigate to your deployment URL: ``` https://your-app.on.nifetency.com ``` --- :::info Check the [Nife Documentation](https://docs.nife.io) if you encounter any issues. ::: --- ## Node Apps - React Wordle URL: https://docs.nife.io/deploy/node/react-wordle ## Overview This guide walks you through configuring and deploying a React application using Nife. You'll learn how to set up your React project, initialize it with Nife CLI, and deploy it to production using the Wordle game example. React Wordle is a clone of the popular Wordle word-guessing game built with React, TypeScript, and Tailwind CSS. This project demonstrates modern frontend development practices including state management, component composition, type safety, and interactive UI design. It's an excellent example for validating frontend deployment workflows and container-based delivery on Nife.io. **Application Features:** - Interactive word guessing game - Real-time feedback on guesses - Responsive design across all devices - Built with TypeScript for type safety - Tailwind CSS for modern styling - Docker containerization support - Deployment-ready configuration :::info Example Repository We'll use this sample repository: [React Wordle](https://github.com/nife-public/react-wordle) ::: --- ## Prerequisites Before you start, make sure you have: - Nife account and CLI installed --- #### Step 1: Install Nifectl CLI Follow the official installation guide for your operating system: [Nifectl Installation Guide](/Quick-Start/Nifectl) --- #### Step 2: Login to Nifectl Authenticate with your Nife account: ```bash nifectl auth login ``` You'll be prompted to enter your credentials. A browser window will open to complete the authentication. :::note Repository Support You can deploy applications directly from GitHub, Bitbucket, or GitLab. ::: --- #### Step 3: Initialize Your Application Initialize the React Wordle application for deployment: ```bash nifectl init ``` ### Interactive Configuration The CLI will prompt you for the following information. Follow each step carefully: #### 1. App Name ``` ? App Name (leave blank to use an auto-generated name) ``` Press Enter to generate a random name or enter your preferred app name. #### 2. Select Organization ``` ? Select organization: [Use arrows to move, type to filter] BNC (bnc) NIFEDOCUMENT (nifedocument) ``` Use arrow keys to select your organization. #### 3. Deployment Source ``` ? Deployment source: [Use arrows to move, type to filter] Image Public Docker image Docker Private registry image Database S3/GS, Postgres, Redis, Mongo... Loadbalancer Load balancer config Runtime Language & framework runtimes Repository GitHub ,GitLab ``` Select "Repository" from the list. #### 4. Repository Provider ``` ? Select repository provider: [Use arrows to move, type to filter] GitHub Deploy from a GitHub repository URL GitLab Deploy from a GitLab repository URL Bitbucket Deploy from a Bitbucket repository URL ``` Select **GitHub** for this example. #### 5. GitHub URL and Branch ``` ? Enter your GitHub URL: https://github.com/nife-public/react-wordle.git ? Enter your GitHub Branch: main ``` Provide your repository URL and the branch to deploy (typically `main` or `master`). #### 6. Deployment Type ``` ? Deployment type (Kubernetes workload kind): Deployment ``` Leave as default (Deployment). #### 7. Workload and Resource Configuration ``` ? Workload type: deployment ? Resource type: CPU ? Do You Wish To Add Volume (y/N): No ? Specify the Replicas Count for deployment(1): 1 ``` Accept the defaults for a standard React deployment. #### 8. Port Configuration ``` ? Select Internal Port: [? for help] (4000): 3000 ? Select External Port: [? for help] (80): 80 ``` Set internal port to 3000 (React default) and external port to 80. #### 9. Memory and Routing ``` ? Do You Wish To Add Memory Allocations: No ? Select Routing Policy: [Use arrows to move, type to filter] Geolocation Latency ``` Select **Geolocation** for global distribution. #### 10. Deployment Strategy ``` ? Deployment strategy: [Use arrows to move, type to filter] rolling recreate blue-green canary shadow ab-testing ``` Select **rolling** for zero-downtime deployments. #### 11. Environment Variables ``` ? Add environment variables? (y/N): No ``` Skip for now (can be added later if needed). ### Configuration Complete When initialization finishes, you'll see: ``` New app created Name = your-app-name Organization = nifedocument Version = 0 Status = New Hostname = Update config file nife.toml ``` Your `nife.toml` configuration file has been created with all your settings. --- #### Step 4: Deploy Your Application Before deploying, you'll need to select the region where your application will be deployed. Deploy the React Wordle application: ```bash nifectl deploy ``` ### Select Deployment Region When you run the deploy command, you'll be prompted to select a region: ``` ? Select region for deployment: [Use arrows to move, type to filter] IND - India, Mumbai EUR - Europe APAC - Asia Pacific AMER - Americas my-cluster - my-cluster ``` Use arrow keys to select your desired region. Choose the region closest to your target users for optimal performance. ### Deployment Process The deployment process includes: 1. Validating app configuration 2. Cloning repository 3. Building Docker image 4. Optimizing image 5. Creating release and deployment ### Expected Output ``` Deploying react-wordle ==> Validating App Configuration --> Validating App Configuration done ==> Building Image from Repository --> Cloning repository --> Building Docker image ==> Optimizing Image --> Done Optimizing Image ==> Creating Release ==> Creating Deployment Release v1 created at: https://your-app.on.nifetency.com Deployment...Done ``` :::note Keep Track of Your URL Your deployed application will be available at the URL shown in the output. Save this for later reference. ::: --- #### Step 5: Access Your Application Once deployment completes successfully, your React Wordle application is live! Navigate to your deployment URL: ``` https://your-app.on.nifetency.com ``` --- :::info Check the [Nife Documentation](https://docs.nife.io) or contact support if you encounter any issues. ::: --- ## Ruby Apps - Hello World URL: https://docs.nife.io/deploy/ruby/hello-world ## Overview This guide walks you through configuring and deploying a Ruby application using Nife. You'll learn how to set up your Ruby project, initialize it with Nife CLI, and deploy it to production using a simple Hello World example. Ruby is a dynamic, open-source programming language known for its simplicity and productivity. The Hello World example demonstrates fundamental Ruby concepts and best practices for deploying Ruby applications to cloud infrastructure. **Application Features:** - Simple yet powerful Ruby syntax - Easy-to-understand code structure - Bundler dependency management - Docker containerization support - RESTful application design - Production-ready configuration :::info Example Repository We'll use this sample repository: [Ruby Example](https://github.com/nife-public/ruby-example) ::: --- ## Prerequisites Before you start, make sure you have: - Nife account and CLI installed --- #### Step 1: Install Nifectl CLI Follow the official installation guide for your operating system: [Nifectl Installation Guide](/Quick-Start/Nifectl) --- #### Step 2: Login to Nifectl Authenticate with your Nife account: ```bash nifectl auth login ``` You'll be prompted to enter your credentials. A browser window will open to complete the authentication. :::note Repository Support You can deploy applications directly from GitHub, Bitbucket, or GitLab. ::: --- ### Step 3: Initialize Your Application Initialize the Ruby application for deployment: ```bash nifectl init ``` ### Interactive Configuration The CLI will prompt you for the following information. Follow each step carefully: #### 1. App Name ``` ? App Name (leave blank to use an auto-generated name) ``` Press Enter to generate a random name or enter your preferred app name. #### 2. Select Organization ``` ? Select organization: [Use arrows to move, type to filter] BNC (bnc) NIFEDOCUMENT (nifedocument) ``` Use arrow keys to select your organization. #### 3. Deployment Source ``` ? Deployment source: [Use arrows to move, type to filter] Image Public Docker image Docker Private registry image Database S3/GS, Postgres, Redis, Mongo... Loadbalancer Load balancer config Runtime Language & framework runtimes Repository GitHub ,GitLab ``` Select "Repository" from the list. #### 4. Repository Provider ``` ? Select repository provider: [Use arrows to move, type to filter] GitHub Deploy from a GitHub repository URL GitLab Deploy from a GitLab repository URL Bitbucket Deploy from a Bitbucket repository URL ``` Select **GitHub** for this example. #### 5. GitHub URL and Branch ``` ? Enter your GitHub URL: https://github.com/nife-public/ruby-example.git ? Enter your GitHub Branch: main ``` Provide your repository URL and the branch to deploy (typically `main` or `master`). #### 6. Deployment Type ``` ? Deployment type (Kubernetes workload kind): Deployment ``` Leave as default (Deployment). #### 7. Workload and Resource Configuration ``` ? Workload type: deployment ? Resource type: CPU ? Do You Wish To Add Volume (y/N): No ? Specify the Replicas Count for deployment(1): 1 ``` Accept the defaults for a standard Ruby deployment. #### 8. Port Configuration ``` ? Select Internal Port: [? for help] (4000): 8080 ? Select External Port: [? for help] (80): 80 ``` Set internal port to 8080 and external port to 80. #### 9. Memory and Routing ``` ? Do You Wish To Add Memory Allocations: No ? Select Routing Policy: [Use arrows to move, type to filter] Geolocation Latency ``` Select **Geolocation** for global distribution. #### 10. Deployment Strategy ``` ? Deployment strategy: [Use arrows to move, type to filter] rolling recreate blue-green canary shadow ab-testing ``` Select **rolling** for zero-downtime deployments. #### 11. Environment Variables ``` ? Add environment variables? (y/N): No ``` Skip for now (can be added later if needed). ### Configuration Complete When initialization finishes, you'll see: ``` New app created Name = your-app-name Organization = nifedocument Version = 0 Status = New Hostname = Update config file nife.toml ``` Your `nife.toml` configuration file has been created with all your settings. --- ## Step 4: Deploy Your Application Before deploying, you'll need to select the region where your application will be deployed. Deploy the Ruby application: ```bash nifectl deploy ``` ### Select Deployment Region When you run the deploy command, you'll be prompted to select a region: ``` ? Select region for deployment: [Use arrows to move, type to filter] IND - India, Mumbai EUR - Europe APAC - Asia Pacific AMER - Americas my-cluster - my-cluster ``` Use arrow keys to select your desired region. Choose the region closest to your target users for optimal performance. ### Deployment Process The deployment process includes: 1. Validating app configuration 2. Cloning repository 3. Building Docker image 4. Optimizing image 5. Creating release and deployment ### Expected Output ``` Deploying ruby-app ==> Validating App Configuration --> Validating App Configuration done ==> Building Image from Repository --> Cloning repository --> Building Docker image ==> Optimizing Image --> Done Optimizing Image ==> Creating Release ==> Creating Deployment Release v1 created at: https://your-app.on.nifetency.com Deployment...Done ``` :::note Keep Track of Your URL Your deployed application will be available at the URL shown in the output. Save this for later reference. ::: --- ## Step 5: Access Your Application Once deployment completes successfully, your Ruby application is live! Navigate to your deployment URL: ``` https://your-app.on.nifetency.com ``` ## Ruby Configuration Tips ### Gemfile Configuration Ensure your `Gemfile` is properly configured with all required dependencies: ```ruby source "https://rubygems.org" gem "rack" gem "sinatra" gem "bundler" group :production do gem "puma" end ``` Always commit your `Gemfile.lock` to ensure consistent dependency versions across environments. :::info Check the [Nife Documentation](https://docs.nife.io) or contact support if you encounter any issues. ::: --- ## Application Create URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-Create Navigate to **Applications** from the left sidebar of the Nife dashboard. The Applications page shows all currently deployed applications along with their status, regions, replicas, and deployment strategies. From this page you can monitor running services or create a new deployment. ![Applications Dashboard](/img/docker-deploy/docker-applications-dashboard.png) Click `Deploy App` to begin deploying a new application. --- ### Choose the Deployment Type After clicking `Deploy App`, the **Quick Deploy** page appears. ![Quick Deploy](/img/docker-deploy/docker-quick-deploy.png) - [Application Deployment](/deploy/docker-deployment) - [Standard Deployment](/Deploy-App/stand-alone-server) - [Site Deployment](/Deploy-App/Deploying-a-Site/Upload-Build-File) - [Database Deployment](/UI-Guide/database) --- --- ## App Domain Configuration URL: https://docs.nife.io/Application/App-Domain To point a custom domain to your dynamic application (e.g., `web-frontend`), follow the two-step configuration process below. ### Step 1: Enter Domain In the **Custom Domain Name** field, enter the domain or subdomain you wish to use for your application. ### Step 2: Configure & Sync You must add a **CNAME** record to your DNS provider (e.g., Cloudflare, GoDaddy) using the values provided in the dashboard. After adding name click on verify and sync to proceed. | Type | Name | Target/Value | TTL | | :--- | :--- | :--- | :--- | | **CNAME** | `abc.com` | `web-frontend.on.nifetency.com` | Auto | :::note DNS Propagation DNS propagation can take from a few minutes up to **24 hours**. Once added, click **Verify and Sync** to complete the setup. ::: --- ## Managing Kubernetes Clusters URL: https://docs.nife.io/Deploy-App/Application/Clusters The **Clusters** section allows you to connect and manage external Kubernetes clusters using the **BYOC (Bring Your Own Cluster)** approach. You can connect cloud-managed clusters or standalone environments and monitor them directly from the platform. --- ## Steps to Connect a Cluster ### Step 1: Navigate to Clusters Open the dashboard and navigate to **Clusters** from the sidebar. This page displays all connected clusters and provides the option to add a new one. --- ### Step 2: Click Connect Cluster Click the **Connect Cluster** button. This opens the cluster connection options. --- ### Step 3: Select Connection Method You can choose one of the following methods: - **Cloud Providers (AWS, GCP, Azure)** - **Standalone Server** Each option redirects to a different setup workflow. --- ## Cluster Connection via AWS (Cloud Provider) ### Step 4: Select AWS Provider Choose **AWS** from the available options. This redirects to the AWS cluster configuration flow. --- ### Step 5: Enter Cluster Configuration Provide the required details such as: - Cluster Name - Region - Credentials These details define how the cluster will be identified and accessed. --- ### Step 6: Setup Integration Configure permissions and integration settings. This step ensures secure communication between the platform and your AWS cluster. --- ### Step 7: Configure Advanced Settings Adjust optional advanced configurations if required. This may include networking or scaling-related settings. --- ### Step 8: Review Configuration Review all the provided details before final submission. --- ### Step 9: Connect Cluster Click **Connect / Create** to complete the process. The cluster will be added to the Clusters dashboard. --- ## Cluster Connection via Standalone Server ### Step 4: Select Standalone Server Choose the **Standalone Server** option. --- ### Step 5: Upload Kubeconfig File Upload your Kubernetes **kubeconfig file**. This file contains authentication and access details required to connect the cluster. --- ### Step 6: Follow Setup Instructions Follow the instructions provided on the screen. - Execute required commands (if any) - Ensure cluster accessibility After completion, the cluster will be connected and listed in the dashboard. --- ## Steps to View Cluster Details ### Step 1: Open Cluster From the Clusters page, select a connected cluster. This opens the cluster details dashboard. --- ## Cluster Dashboards Overview The cluster details page contains multiple sections for monitoring and management. --- ### Node Dashboard Displays all nodes along with their status and resource usage. --- ### Workload Dashboard Shows deployed applications and running workloads. --- ### Config Dashboard --- ### Network Dashboard Displays services and networking configurations. --- ### Storage Dashboard Shows volumes and persistent storage details. --- ### Namespace Dashboard Lists Kubernetes namespaces used to organize resources. --- ### Logs Dashboard Provides logs for debugging and monitoring. --- Displays configuration settings and environment variables. --- ### Analysis Dashboard Provides performance insights and usage analysis. --- ### Agent Dashboard Shows the status of the cluster agent responsible for communication. --- ## Nifex You can deploy a **Nifex tunnel** to any connected cluster directly from the Clusters page, giving you secure access to databases deployed in that cluster's region. See **[Nifex](/Deploy-App/Application/Clusters/Nifex)** for the full walkthrough. --- ## Related Resources - 🛠️ [Kubernetes YAML Generator](https://freetools.nife.io/kubernetes-yaml-generator/) — generate manifests for Deployments, Services, ConfigMaps, and Ingress - 🛠️ [YAML Formatter & Validator](https://freetools.nife.io/yaml-formatter/) — validate kubeconfig and manifest syntax before uploading --- ## Nifex Tunnel Deployment URL: https://docs.nife.io/Deploy-App/Application/Clusters/Nifex **Nifex** lets you deploy a secure tunnel into a connected cluster directly from the **Clusters** page. Once the Nifex tunnel is deployed to a cluster, you can use it to access any database deployed in that cluster's region — without exposing the database publicly. ### Step 1: Open the Deploy to Kubernetes Dialog On the **Clusters** page, locate the connected cluster you want to use and click the **cube icon** on the cluster card. This opens the **Deploy to Kubernetes** dialog for that cluster. ### Step 2: Select the Organization and Choose Nifex In the **Deploy to Kubernetes** dialog: 1. Select the **Namespace** for the deployment. 2. Confirm the **Target Cluster** (this is pre-filled with the cluster you selected). ## Step 3: Deploy the Nifex Tunnel Click **Deploy** to confirm. This deploys the **Nifex tunnel** to the selected cluster. ### Step 4: Access Databases via the Nifex Tunnel Once the Nifex tunnel is deployed, any database deployed in that cluster's region can be accessed through the tunnel — giving you secure connectivity to your databases without exposing them over the public internet. --- ## GitHub App Deploy URL: https://docs.nife.io/Deploy-App/Application/Deploy-application # Deploy Application from Git The **Deploy Application from Git** method allows you to deploy an application directly from a Git repository. This method is useful for teams that manage their code in version control systems and want deployments to be triggered directly from their repositories. ### Step 1: Open Deploy Application From the dashboard, navigate to **Applications** and select **Deploy Application**. --- ### Step 2: Select Organization Choose the **organization** where the application will be deployed. --- ### Step 3: Configure Application Details Provide the required deployment information such as the **application name** and other configuration details required by the platform. --- ### Step 4: Select Git Repository Choose **Git Repository** from the available deployment methods. --- ### Step 5: Connect Repository Enter the required repository details such as the **Git provider**, **repository URL**, and **branch name**. --- ### Step 6: Configure Repository Settings Provide the required repository configuration fields so the platform can access the project. #### 1. Git Provider & Repository URL **Provider**: Select the Git provider where the repository is hosted. Supported providers include GitHub, GitLab, and Bitbucket. **Repository URL**: Enter the Git repository URL containing the application source code. Once entered, the platform validates the repository connection. **Branch**: Select the branch from which the code should be pulled during deployment. --- #### 2. Personal Access Token (PAT) There is an optional field for **Personal Access Token**. **When to use it**: This field is only required when deploying from a **private repository**. If the repository is public, the platform can validate it without a PAT. If the repository is private, you can create a PAT secret or select an existing one from the platform vault. --- #### 3. Source Security Scan (SAST) This is an advanced security feature used for enterprise-grade deployments. **SAST (Static Application Security Testing)**: By clicking **Run Security Scan**, the platform scans the repository source code for vulnerabilities such as insecure code patterns or exposed credentials. **Secrets Detection**: This feature helps detect sensitive information such as API keys or tokens that may have been accidentally committed to the repository. **SCA (Software Composition Analysis)**: Currently listed as **Coming Soon**, this feature will analyze project dependencies and identify known vulnerabilities in third-party libraries. Once the repository configuration is complete, click **Continue**. --- ### Step 7: Configure Build Settings After configuring the repository, click **Continue** to proceed to the build settings phase. This section allows you to configure the following: #### 1. Ports Configuration Define the ports used by your application. **Internal Port**: The port inside the container where the application listens. **External Port**: The public-facing port used to access the application. --- #### 2. Environment Variables Environment variables allow you to manage runtime settings without changing the source code. You can configure environment modes, API endpoints, or other application settings. Add new variables by selecting **Add Variable**. --- #### 3. Build Configuration This section defines how your container image will be created. **Auto Dockerize with Runtime** This option automatically generates a Dockerfile based on your selected runtime environment (e.g., Node.js, Python, Go, Java, Ruby, PHP, Rust, or .NET). **Add Custom Dockerfile** If your repository already includes a Dockerfile, you can instruct the platform to use it directly. **Specify Dockerfile Path** Provide the path to your Dockerfile if it is not in the root directory. Once the build configuration is complete, click **Continue**. --- ### Step 8: Start Build Click **Start Build** to initiate the containerization process. Once the build is complete, you can click **Optimize Docker Image** to reduce its size and improve deployment speed. After optimization, click **Continue** to move to the resource configuration. --- ### Step 9: Configure Resources In this section, you define the compute environment, scaling, and deployment logic. You can configure: - CPU and Memory allocation - Storage requirements - Networking settings **Infrastructure & Resources** - **Regions**: Select the geographic data center for your deployment. - **Resource Type**: Choose the hardware (CPU, GPU, etc.) required for your workload. - **Resource Requests / Limits**: Set the baseline resources and maximum usage caps for CPU and memory. **Deployment Strategy & Workload** - **Strategy**: Choose your rollout method (e.g., Rolling, Canary, Blue-Green). - **Workload**: Define the execution type, such as a standard Deployment, CronJob, or StatefulSet. **Storage & Scaling** - **Deployment Mode**: Enable primary or backup failover configurations. - **Persistent Volume**: Configure optional storage size and its mount path. - **Scaling**: Specify the number of active replicas (1–10) per region. If you selected a template earlier, these values may be pre-filled. --- ### Step 10: Review Deployment Configuration Before deployment, the platform displays a ** Pre-Deploy Security Checks** for security checks we can click on Run Security Pipeline, along with that **summary page** showing all previously selected options for confirmation. --- ## Deployment History URL: https://docs.nife.io/Deploy-App/Application/Deploys The Deploys tab shows the full deployment history for your application — every release, rollback, and redeployment. ## What You'll See | Column | Description | |--------|-------------| | **Version** | The deployment version number | | **Status** | Current state (Running, Failed, Stopped) | | **Deployed At** | Timestamp of the deployment | | **Deployed By** | User or CI/CD pipeline that triggered it | | **Source** | Git commit, Docker image, or archive | ## Actions - **Redeploy** — trigger a fresh deployment of the current version - **Revert** — roll back to a previous version - **View Logs** — inspect build and runtime logs for a specific deploy See also: [Redeploying an Application](/UI-Guide/Apps-&-their-Management/App-management/Redeploy) and [Reverting a Deployment](/UI-Guide/Apps-&-their-Management/App-management/Revert) --- ## Application Custom Domains & Endpoints URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Domain # Endpoints and Domains The **Endpoints & Domains** section is used to expose your application to the internet. ## Step 1: Open Endpoints & Domains This section shows us the available custom domains and also allows us to new domains. Click on the **Add Domain's** button to add a new custom domain. ## Step 2: Enter Domain Name This section allows us to enter an Custom Domain Name, which can be the URL of our choice. ## Step 3: Configure Endpoint Here you can: - View the **endpoint URL** - Verify or go back and again configure a **custom domain** - Manage how your application is accessed externally --- ## Final View Once configured, your application will be accessible via the assigned endpoint or custom domain. --- --- ## HTTPS Analytics URL: https://docs.nife.io/deploy/https The **HTTPS section** provides insights into secure traffic, bandwidth usage, caching efficiency, and visitor statistics for your deployed application. It helps developers and platform administrators monitor how HTTPS requests are handled, how caching improves performance, and which SSL/TLS versions are being used by clients. --- ## HTTPS Overview This section displays the overall statistics of HTTPS traffic handled by your application. The overview includes key metrics such as: - **Total Requests** – total number of HTTPS requests handled - **Data Transfer** – total bandwidth consumed - **Unique Visitors** – number of distinct users accessing the application - **Threats Blocked** – number of blocked malicious requests These metrics provide a quick summary of application traffic and security activity. --- ## Total Requests Over Time This chart shows how the number of HTTPS requests changes over time. The graph includes: - **Total Requests** - **Cached Requests** - **Uncached Requests** This helps analyze traffic patterns and evaluate caching effectiveness. --- ## Bandwidth Usage This section visualizes the total data transferred through HTTPS connections. It includes: - **Total Bandwidth** - **Cached Bandwidth** - **Uncached Bandwidth** Monitoring bandwidth helps identify traffic spikes and optimize application performance. --- ## Unique Visitors This graph shows the number of unique visitors accessing the application over time. This metric helps teams understand: - User growth trends - Daily traffic patterns - Overall platform usage You can also **export visitor data as JSON** for external analysis. --- ## Cache Performance Cache performance indicates how efficiently requests are served from the cache. The cache distribution shows: - **Cached Requests** - **Uncached Requests** A higher cache hit rate means faster response times and reduced load on backend servers. --- ## Top Countries by Traffic This chart shows the geographic distribution of HTTPS requests. It helps identify: - Regions generating the most traffic - Global user distribution - Opportunities for infrastructure optimization --- --- ## Application Logs URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Logs The **Logs** tab provides real-time and historical logs generated by your deployed application. Logs are essential for troubleshooting issues, analyzing system behavior, and understanding how your application is performing. This page allows developers and operators to inspect log output directly from the running application. --- ## Accessing Application Logs To open the log viewer: 1. Navigate to **Workloads** in the sidebar. 2. Click **Applications**. 3. Select the application you want to inspect. 4. Open the **Logs** tab. The logs dashboard will display recent logs generated by the application. ![Application Logs Overview](/img/logs/application-logs-overview.png) --- ## Log Output The **Log Output** section displays the actual log entries generated by the running container. These logs may include: - Application startup messages - Runtime information - System warnings - Error messages - Debug output ![Application Logs Output](/img/logs/application-logs-output.png) Logs help identify what is happening inside the container during execution. --- ## Log Viewer Features The log viewer includes several tools to help analyze log data efficiently. ### Search Logs Use the **search field** to locate specific log entries such as errors, request IDs, or timestamps. Searching helps quickly find relevant events in large log streams. --- ### Log Level Filter You can filter logs by severity level. | Level | Description | |------|-------------| | Info | Informational messages | | Warning | Potential issues | | Error | Application or system failures | | Debug | Detailed diagnostic information | Filtering helps focus on critical issues. --- ### Auto Scroll When **Auto-scroll** is enabled, the viewer automatically moves to the newest log entries. This is useful when monitoring logs in real time during deployments or debugging sessions. --- ### Export Logs Logs can be exported for further analysis. Exported logs help with: - Debugging issues locally - Sharing logs with team members - Incident investigations - Long-term storage --- ## Why Application Logs Matter Logs are a critical part of operating production systems. They help teams: - Diagnose application errors - Understand system behavior - Monitor deployments - Investigate incidents - Track application activity By regularly monitoring logs, teams can detect issues early and maintain application stability. --- ## Application Metrics URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Metrics # Metrics The **Metrics** section provides a quick health check for the service. It summarizes key **Site Reliability Engineering (SRE)** metrics that help engineers monitor the performance and reliability of the system. --- ## Service Level Objective (SLO) The **Service Level Objective (SLO)** defines the reliability target for the service. - **Availability:** 99.95% - **Target:** 99.9% If the current availability meets the defined target, the dashboard indicates that the service is **Meeting SLO**. --- # Golden Signals (SRE) The dashboard tracks the **four golden signals of SRE**, which are essential metrics used to monitor system health. ## Latency Latency measures how long it takes for a system to respond to a request. - **P95 Latency:** 120ms - **P99 Latency:** 253ms Lower latency ensures faster responses and a better user experience. --- ## Traffic Traffic indicates the number of incoming requests handled by the system. - **Requests Per Second:** 4.4 RPS Monitoring traffic helps identify system load and user demand. --- ## Error Rate Error rate represents the percentage of requests that fail. - **Error Rate:** 0.50% - **Errors per second:** 0.020 A higher error rate may indicate system instability or service issues. --- ## Saturation Saturation measures how heavily system resources are being used. - **Memory Usage:** 65.3% High saturation levels may impact performance if system resources become fully utilized. --- The image above shows the **Service Metrics Overview Dashboard**, which provides a quick visual summary of service health and performance. --- # Infrastructure Metrics The dashboard also includes infrastructure performance indicators. --- ## CPU Usage This metric shows how much processing capacity the service is consuming. - **CPU Usage:** 45.1% - **24-hour trend:** Increasing --- ## Memory Usage Memory usage tracks how much RAM is being used by the application. - **Memory Usage:** 60.2% - **24-hour trend:** 6.0% --- ## Average Latency Average latency provides a general overview of system response time. - **Response Time (P95):** 85ms --- ## Service Health The **Service Health panel** provides a quick operational summary of the system. Key indicators include: - Active Alerts - Error Rate - Restarts (24h) - Uptime - Running Pods Example values: - **Error Rate:** 2.02% - **Restarts (24h):** 0 - **Uptime:** 99.95% - **Pods Running:** 3 These metrics help engineers quickly evaluate the operational health of the service. --- # DNS Query Analytics Dashboard The **DNS Query Analytics Dashboard** provides a comprehensive view of DNS traffic patterns, query distributions, and response behaviors. It enables teams to monitor DNS performance, analyze traffic sources, and identify potential issues in query resolution. --- # Colocation Centers The **Colocation Centers** chart shows the distribution of DNS queries across different geographic locations. ### Key Observations - **SJC (San Jose)** handles the highest number of queries (~16,000) - **DFW (Dallas)** and **ORD (Chicago)** follow with moderate traffic - **IAD (Virginia)** and **SEA (Seattle)** show comparatively lower query volumes This helps in understanding **traffic distribution across regions** and identifying high-load data centers. --- # IP Version Distribution The **IP Version Distribution** chart compares IPv4 and IPv6 usage. ### Breakdown - **IPv4:** Majority of DNS traffic - **IPv6:** Smaller but growing portion of traffic This indicates that while IPv4 remains dominant, **IPv6 adoption is increasing**. --- # Query Types The **Query Types** chart shows the distribution of DNS record types. ### Key Insights - **A Records:** Highest usage (~30,000) - **AAAA Records:** Significant usage (~15,000) - **CNAME Records:** Moderate (~8,000) - **MX Records:** Lower (~3,000) - **TXT Records:** Minimal usage ### Interpretation - A and AAAA records dominate due to **IP resolution requirements** - MX and TXT records are used for **email routing and verification purposes** --- # Protocol Distribution The **Protocol Distribution** chart compares DNS traffic over UDP and TCP. ### Breakdown - **UDP:** ~52,340 requests - **TCP:** ~5,200 requests ### Interpretation - UDP is the **primary protocol** due to its speed and low overhead - TCP is used for: - Large responses - Zone transfers - Reliability-critical operations --- # Response Codes The **Response Codes** chart shows DNS query response statuses. ### Key Metrics - **NOERROR:** Majority (~50,000+) - **NXDOMAIN:** Moderate number of failed lookups - **SERVFAIL:** Low system/server failures - **REFUSED:** Minimal access denials ### Interpretation - High **NOERROR** indicates healthy DNS resolution - **NXDOMAIN** suggests queries for non-existent domains - Low **SERVFAIL** reflects stable infrastructure --- The DNS dashboard provides insights into: - Geographic traffic distribution - IP protocol adoption - DNS query behavior - Network protocol usage - System reliability and response health These metrics help ensure **efficient DNS performance, reliability, and scalability**. --- ## Application Monitor URL: https://docs.nife.io/application-monitor The **Monitor** tab provides real-time insights into the health and performance of your deployed application. It allows you to track uptime, response latency, and overall service availability. Monitoring helps teams quickly detect performance issues and ensure applications remain available to users. --- ## Accessing the Monitor Page To view monitoring information: 1. Navigate to **Workloads** in the sidebar. 2. Click **Applications**. 3. Select the application you want to monitor. 4. Open the **Monitor** tab. --- ## Monitor Dashboard Overview The monitoring dashboard provides a quick overview of the application's health, response time, and uptime metrics. ![Application Monitor Overview](/img/monitor/Monitor-overview.png) This dashboard shows key monitoring information including response metrics, uptime percentage, and performance graphs that help teams understand application behavior. --- ## Monitoring Metrics The monitor dashboard provides several key performance indicators that help track application health. ### Current Response The **Current Response** metric shows the most recent response time recorded for the application. - Measured in **milliseconds (ms)** - Represents the latest ping or request response time Example: **Current Response: 230 ms** --- ### Average Response The **Average Response** metric displays the average response time over the selected monitoring period. This helps identify: - Performance consistency - Latency trends - Possible performance degradation Example: **Average Response: 174 ms** --- ### Uptime The **Uptime** metric indicates the percentage of time the application has remained available. Example: **Uptime: 100%** High uptime ensures that the application is consistently reachable by users. --- ### Certificate Expiry The **Certificate Expiry** metric displays how many days remain before the SSL certificate expires. Example: **Certificate Expiry: 84 Days** Monitoring this helps prevent unexpected HTTPS certificate expiration. --- ## Status Timeline The **Status Timeline** provides a visual representation of application availability over time. ![Application Status Timeline](/img/monitor/Monitor-status-timeline.png) Each block represents a monitoring check. - **Green blocks** indicate the application was available. - **Red blocks** indicate downtime or failed monitoring checks. This timeline helps teams quickly identify service interruptions and monitor application reliability. --- ## Response Time Chart The **Response Time Chart** displays response latency across the selected monitoring period. ![Application Monitor Response Chart](/img/monitor/Monitor-response-timeline.png) The chart visualizes how quickly the application responds to monitoring requests over time. It helps analyze: - Performance spikes - Network latency - Response time trends - Temporary slowdowns in the application Hovering over the graph displays detailed response times for specific timestamps. --- ## Monitoring Time Range You can change the monitoring window using the **time range selector** in the top-right corner. Common options include: - Last 1 hour - Last 6 hours - Last 24 hours - Custom ranges Adjusting the time range allows teams to analyze performance trends across different periods. --- ## Why Monitoring is Important Application monitoring provides visibility into service health and performance. It helps teams: - Detect downtime quickly - Identify latency spikes - Maintain application reliability - Monitor SSL certificate validity - Track overall application health Continuous monitoring ensures that applications remain stable and responsive for users. --- ## Redeploy Application URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Redeploy The **Redeploy** feature allows you to deploy a new version of an existing application without creating a new deployment configuration. You can also **Revert** to a previously deployed version if the latest deployment causes issues. This helps maintain stability by allowing quick rollbacks to a working deployment. ## Steps to Redeploy an Application. ### Step 1: Navigate to the Application Open the dashboard and navigate to **Applications** on the sidebar then click on ** → App**. Select the application you want to redeploy. ### Step 2: Click Redeploy Locate the **Redeploy** button on the application page. Clicking this will open the redeployment configuration screen. ### Step 3: Review Application Configuration The **Application Configuration** section shows the existing configuration of the application. This includes: - **App Name** - **Organization** - **Region** - **Port** These values are inherited from the previous deployment and cannot be modified during redeployment. ##Reployment through Docker Image Method Select the **Docker Image** option and enter the full Docker image name along with its tag. Example: `myregistry/my-app:latest` If the image is valid, the platform will verify it and show that the image is ready for deployment. If your application requires **Environment Variables**, you can add them in the configuration section. This allows you to define runtime settings for your application. ## Reployment through Git Repository Method Firstly Select your preferred Git repository Configuration from the options - GitHub - GitLab - GitBitbucket src= alt="Git repository configuration" width="900" height="400" /> Further Select the required branch from the list, and PAT if the repository URL is private only, else it is always optional and then we can also run an security scan to make sure everything is clean. ### Monitor Build Process During redeployment, the **Build Status** section displays logs showing the progress of the deployment process. These logs include: - File extraction - Dependency installation - Docker image build - Deployment process After completion, the new version will become the **Active deployment**. ---- ## Reployment through Uploading Archive File Click Redeploy via **Archive File** to start the deployment process. Upload the necessary files to the application in Zip, TAR or TAR.GZ, JSON, YAML or YML format with an maximum upload size of 100MB The platform will begin building and deploying the new version of the application. ---- --- ## Application Resources URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Resource-Configuration # Resources This section helps you manage the **compute resources** allocated to your application and configure how your application is **exposed to users via endpoints and domains**. # Navigate to Application To begin, navigate to your application from the dashboard. Select the application you want to configure. --- # Resources The **Resources** section allows you to control how much CPU and memory your application uses. ## Step 1: Open Resources Settings Click on the **Update Resources** button. --- ## Step 2: Configure Resources Adjust the required resource values, such as: - **CPU allocation** - **Memory allocation** This determines the performance and scalability of your application. ### Resource Limits This provides us the option to determine as to how much CPU and Memory our application can maximum utilize. --- ## Step 3: Save Changes Once everything has been set to our state of choice, an Estimated Cost is shown at the bottom that will be applied based on the changes we made. After making the changes, click **Apply Changes** to apply the new resource configuration. --- --- ## Revert Application URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Revert ## Steps to Revert a Deployment If the latest deployment causes issues, you can revert to a previous version. ### Step 1: Open Deploy History Navigate to the **Apps -> Select Apps**(from the available list)**-> Deploys tab** on the application page to view the list of all deployments. ### Step 2: Revert to Previous Version Locate the version you want to restore and click **Revert**. The platform will redeploy that version and mark it as the **Active deployment**. --- ## Application Secrets URL: https://docs.nife.io/deploy/secrets The **Secrets section** allows you to securely manage environment variables used by your application. Secrets are typically used to store sensitive information such as: - API keys - Database credentials - Authentication tokens - Configuration values These variables are injected into the application environment during runtime. --- ## Global Variables The **Global Variables** section allows you to manage environment variables for your application. From this page you can: - **Create new environment variables** - **Export variables as a `.env` file** - **Refresh the variable list** Global variables help maintain configuration values that can be accessed by the application during execution. --- ## Creating a Global Variable To add a new secret or environment variable, click **Create Global Variable**. You will need to provide the following details: ### Name A unique identifier for the variable. Example: ```text my-variable ``` Allowed characters include: - lowercase letters - numbers - dots - hyphens --- ### Organization Select the organization where the variable will be stored. This ensures proper access control and management across projects. --- ### Key The key represents the **environment variable name** that will be available inside the application. Example: ```text MY_VARIABLE ``` Allowed characters include: - uppercase letters - numbers - underscores --- ### Value The **value** is the actual data stored in the variable. Example: ```text my_secret_value ``` This value will be securely injected into the application runtime environment. --- ## Why Use Secrets Using secrets provides several advantages: - **Secure storage of sensitive data** - **Centralized configuration management** - **Separation of code and configuration** - **Improved security practices** Applications can safely access required credentials without exposing them in the source code. --- --- ## Application Settings URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Settings The Application Settings tab provides management options for your deployed application. See [App Management](/UI-Guide/Apps-&-their-Management/App-management/Overview) for more information. ## Available Actions ### Move Application Transfer your application to a different organization or region without downtime. See: [Move App](/UI-Guide/Apps-&-their-Management/App-management/move) ### Suspend Application Temporarily pause your application to save resources. The app can be resumed at any time. See: [Suspend App](/UI-Guide/Apps-&-their-Management/App-management/suspend) ### Delete Application Permanently remove the application and all associated resources. See: [Delete App](/UI-Guide/Apps-&-their-Management/App-management/delete) ### Custom Domains Add and manage custom domains for your application. See: [Custom Domains](/UI-Guide/Apps-&-their-Management/App-management/Domain) --- ## Sites Custom Domain URL: https://docs.nife.io/Application/Sites-Domain To connect a custom domain to a static site (e.g., `portfolio-website`), use the following steps to link your domain to the static storage bucket. ### Step 1: Enter Domain Enter the domain you want to use for your static site in the input field provided. ### Step 2: Configure & Sync Point your domain to the static bucket by adding a **CNAME** record in your DNS settings. | Type | Name | Target/Value | TTL | | :--- | :--- | :--- | :--- | | **CNAME** | `abc.com` | `portfolio-website-bucket.static.nifetency.com` | Auto | :::info Verification After updating your DNS records, ensure you click the **Verify and Sync** button to finalize the connection between your domain and the static bucket. ::: --- ## Deployment Strategies URL: https://docs.nife.io/Deploy-App/Application/Strategies Nife supports multiple deployment strategies to minimise risk and downtime when releasing new versions. ## Available Strategies ### Rolling Deployment Gradually replaces old instances with new ones. Zero downtime, but both versions run simultaneously during the update. ### Blue-Green Deployment Maintains two identical environments (blue and green) at once. Redeploys land in whichever color is idle, so you can verify the new version before a single instant switch sends it all live traffic. **Benefits:** - Instant rollback by switching back to the previous color - No downtime during deployment - Full testing of new version before going live For the full walkthrough — how redeploys land in the idle slot, checking each color's health, and switching or rolling back traffic — see [Blue-Green Deployment](/UI-Guide/Apps-&-their-Management/App-management/Deployment-Strategies/Blue-Green-Testing). ### Canary Deployment Automatically routes a small percentage of live traffic (10% by default) to the new version on every redeploy, while the rest keeps serving from primary. Watch canary's real metrics against primary, then gradually increase its traffic as confidence grows, or roll back to zero with one action if it isn't looking healthy. **Benefits:** - Reduced blast radius if the new version has issues - Real user testing before full rollout, using live production traffic - Easy, fast rollback to the known-good primary - Built-in validation and a gradual, metrics-checked promotion ramp For the full walkthrough — how redeploys create a canary automatically, viewing status, adjusting traffic, validating, promoting, and rolling back — see [Canary Deployment](/UI-Guide/Apps-&-their-Management/App-management/Deployment-Strategies/Canary). ### A/B Testing Runs two variants — Variant A (Control) and Variant B (Test) — side by side on a configurable traffic split. Real users are tracked on each variant so you can compare views and conversions directly, instead of guessing which version performs better. **Benefits:** - Evidence-based decisions, backed by real conversion data instead of a guess - Both variants keep running as long as you need, with traffic reweighted at any time - Built-in statistical significance check before you're allowed to declare a winner For the full walkthrough — traffic split, conversion tracking, results, and declaring a winner — see [A/B Testing](/UI-Guide/Apps-&-their-Management/App-management/Deployment-Strategies/AB-testing). ## Configuring Strategies 1. Navigate to your application in the Nife dashboard 2. Go to **Deploys** → **Strategies** 3. Select your preferred strategy 4. Configure traffic split percentages (for canary) 5. Deploy --- ## Upload Archive Deployment URL: https://docs.nife.io/deploy/application-upload-archive ## Overview The *Deploy Application* flow allows you to configure and launch your application in a few simple steps. Steps included: 1. Source 2. Build 3. Resources 4. Review --- ## Step 1: Basic Information & Source ![Basic Info & Source](/img/upload-archieve/deploy-source-basic-info.png) ### Fill the following details: - *Organization* – Select your organization - *Workload Environment* – Choose or create one - *Application Name* – Unique name for your app --- ## Upload Archive ![Upload Archive](/img/upload-archieve/upload-archive-success.png) Upload your application as a compressed file: - Supported formats: .zip, .tar, .tar.gz - Max size: *100MB* ### Options: - *Upload file* (drag & drop) - *Paste Archive URL* (e.g., S3 link) --- ## Step 2: Build Configuration ![Build Configuration](/img/upload-archieve/build-configuration-options.png) ### Available Options: - *Auto-Dockerize with Runtime* Automatically generates a Dockerfile - *Add Custom Dockerfile* Upload or write your own - *Specify Dockerfile Path* Use an existing Dockerfile > If no option is selected, the platform auto-detects your app. --- ## Docker Image Optimization ![Docker Optimizer](/img/upload-archieve/docker-image-optimizer.png) Optimize your image to: - Reduce size - Improve startup time - Remove unnecessary layers - Lower storage cost --- ## Ready to Build ![Ready to Build](/img/upload-archieve/ready-to-build.png) Click *Start Build* to begin building your container image. --- ## Build Success ![Build Logs](/img/upload-archieve/build-success-logs.png) After build: - Image is created successfully - Logs show build steps - Image is tagged and stored --- ## Step 3: Resources ### Resource Selection ![Resources Selection](/img/upload-archieve/resources-selection.png) Choose compute type: - CPU - GPU - TPU - Serverless - Edge AI --- ### Resource Requests & Limits ![Resource Limits](/img/upload-archieve/resource-requests-limits.png) Configure: - *CPU (Request & Limit)* - *Memory (Request & Limit)* --- ### Deployment Strategy Choose how updates are deployed: - *Rolling* (recommended) - Blue-Green - Canary - Recreate --- ### Workload Type - Deployment - CronJob - StatefulSet --- ## Ports & Environment Variables ![Ports & Env](/img/upload-archieve/build-ports-env.png) ### Configure: - *Internal Port* – Container port (e.g., 3000) - *External Port* – Public access port (e.g., 80) ### Environment Variables: - Add key-value pairs - Used for configs, secrets, APIs --- ## Volume & Scaling ![Volume & Scaling](/img/upload-archieve/deployment-volume-scaling.png) ### Persistent Volume: - Attach storage to container - Define: - Size (GB) - Mount Path (e.g., /data) ### Scaling: - *Replicas per region* (1–10) --- ## Step 4: Review ![Review Summary](/img/upload-archieve/review-summary.png) Before deploying, review: - App name - Source - CPU & Memory - Replicas - Ports - Volume - Regions --- ## Related Resources - 📁 [FileHost](https://filehost.nife.io) — Nife's simple file sharing service for sharing build artifacts - 🚀 [Launch Dashboard](https://launch.nife.io) — Deploy your app on Nife --- ## Virtual Machines URL: https://docs.nife.io/Deploy-App/Application/Virtual-Machines # Virtual Machines The **Virtual Machine** deployment option allows you to create and manage virtual machine instances directly within the platform. This approach is useful when you need full control over the operating system, resources, and runtime environment instead of container-based deployments. Using this wizard, you can: - Create and configure a **new virtual machine** - Allocate compute resources such as CPU, memory, and storage - Deploy workloads on a dedicated VM environment --- # Step 1: Open the Virtual Machine Deploy Wizard To begin creating a virtual machine: 1. Open the **Deploy App** from the Nife dashboard. 2. Select **Virtual Machine**. This section allows you to provision and manage virtual machines instead of deploying containers. --- # Step 2: Configure Virtual Machine At this stage, you will define the configuration of your virtual machine. --- ## Step 1 — Add Virtual Machine Click **Add Server** to start creating a new virtual machine. --- ## Step 2 — Enter VM Details Provide the required configuration details: - **Server Name** A unique name to identify the virtual machine. - **Region / Location** The geographical location where the VM will be provisioned. - **Instance Type / Resources** Select CPU, memory, and other compute resources required for your workload. - **Storage Configuration** Define disk size and storage type. - **Operating System / Image** Choose the OS image to run on the virtual machine. These settings determine the performance and environment of your VM. --- ## Step 3 — Review Configuration Before creating the VM, verify: - Server name and region - Resource allocation (CPU, memory) - Storage and OS configuration --- # Step 3: Create Virtual Machine After reviewing the configuration: 1. Click **Create Server** The platform will: - Provision the virtual machine - Allocate the selected resources - Initialize the operating system --- # Step 4: Access and Use the VM Once the virtual machine is created: - It will appear in your server list - You can connect to it using SSH or remote access tools - Deploy and run applications directly on the VM --- --- ## Application Volumes URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Volume The **Volumes section** allows you to manage persistent storage attached to your application containers. Persistent volumes ensure that important data remains available even if containers restart or redeploy. Volumes are commonly used to store: - Application data - Databases - Uploaded files - Logs - Cache files --- ## Viewing Attached Volumes The **Volumes tab** displays all persistent storage volumes attached to the application. Each volume entry provides important details such as: - **Volume Name** - **Allocated Storage Size** - **Mount Path** Example shown in the dashboard: ```text web-frontend-data Size: 50GB Mount Path: /mnt/data ``` This allows developers to quickly verify that storage is correctly mounted to the container. --- ## Volume Configuration When creating or attaching a volume, you configure how storage will be mounted inside the container. Typical configuration includes: - **Volume Name** – Identifier for the storage volume - **Storage Size** – Amount of disk space allocated - **Mount Path** – Directory inside the container where the volume will be mounted --- ## How Volumes Work A **persistent volume** is mounted to a directory inside the container. Example mount path: ```shell /mnt/data ``` Any data written to this directory will remain available even after: - Application restarts - Container redeployments - Scaling operations --- ## Benefits of Using Volumes Using persistent volumes provides several advantages: - **Data persistence** across deployments - **Reliable storage** for stateful applications - **Separation of compute and storage** - **Improved application stability** Volumes are especially useful for applications that require long-term data storage. --- --- ## GitHub Actions Integration | Nife Docs URL: https://docs.nife.io/Deploy-App/Automation/Github-actions # GitHub Actions Integration Automate your Nife deployments using GitHub Actions. Trigger deployments on every push, pull request merge, or release. ## Prerequisites - A Nife account with an active application - A `NIFE_ACCESS_TOKEN` stored as a GitHub secret - `nifectl` CLI knowledge ## Quick Setup Add this workflow to `.github/workflows/deploy.yml` in your repository: ```yaml name: Deploy to Nife on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install nifectl run: | curl -L https://github.com/nifetency/nife-release/releases/latest/download/nifectl_linux_amd64 -o nifectl chmod +x nifectl sudo mv nifectl /usr/local/bin/ - name: Deploy to Nife env: NIFE_ACCESS_TOKEN: $} run: | nifectl auth login --token $NIFE_ACCESS_TOKEN nifectl deploy ``` ## Setting Up the Secret 1. Go to your GitHub repository → **Settings** → **Secrets and variables** → **Actions** 2. Click **New repository secret** 3. Name: `NIFE_ACCESS_TOKEN` 4. Value: Your Nife access token (from [Access Tokens](/UI-Guide/Access-Tokens)) 5. Click **Add secret** ## Advanced: Build and Deploy ```yaml name: Build and Deploy on: push: branches: [main] jobs: build-and-deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Build Docker image run: docker build -t myapp:$} . - name: Push to registry run: | docker tag myapp:$} registry.hub.docker.com/myorg/myapp:latest docker push registry.hub.docker.com/myorg/myapp:latest - name: Deploy to Nife env: NIFE_ACCESS_TOKEN: $} run: | nifectl auth login --token $NIFE_ACCESS_TOKEN nifectl deploy --image registry.hub.docker.com/myorg/myapp:latest ``` ## Related - [Build Using Jenkins](/Guides/Build-using-Jenkins-and-Deploy) - [Build Using GitHub](/Guides/Build-using-Github-and-Deploy) - [Access Tokens](/UI-Guide/Access-Tokens) --- ## Rule Engine | Nife Docs URL: https://docs.nife.io/Deploy-App/Automation/Rule-Engine # Rule Engine The Nife Rule Engine lets you define automated actions based on conditions — triggering deployments, scaling events, or alerts without manual intervention. ## What You Can Automate - **Auto-scale** based on CPU or memory thresholds - **Trigger redeployments** when new container images are published - **Send alerts** when error rates exceed a threshold - **Suspend applications** during off-peak hours to save costs ## Creating a Rule 1. Navigate to your application in the Nife dashboard 2. Go to **Automation** → **Rule Engine** 3. Click **Create Rule** 4. Define your **condition** (e.g. CPU > 80%) 5. Define your **action** (e.g. Scale up by 1 instance) 6. Set the **evaluation frequency** 7. Click **Save** ## Rule Conditions | Condition | Description | |-----------|-------------| | CPU Usage | Trigger when CPU exceeds a threshold | | Memory Usage | Trigger when memory exceeds a threshold | | Request Rate | Trigger based on incoming request volume | | Error Rate | Trigger when error rate exceeds a limit | | Schedule | Trigger at a specific time (cron expression) | ## Rule Actions | Action | Description | |--------|-------------| | Scale Up | Add more instances | | Scale Down | Remove instances | | Redeploy | Trigger a fresh deployment | | Suspend | Pause the application | | Alert | Send a notification | ## Related Resources - 🛠️ [Cron Expression Generator](https://freetools.nife.io/cron-generator/) — build and validate the cron syntax used for Schedule-based rules --- ## Deployment Templates URL: https://docs.nife.io/Automation/Templates The **Templates** system allows you to manage and deploy reusable configurations, ensuring consistency across different environments and teams. --- ## 1. Templates vs. Marketplace The dashboard is divided into two primary sections: * **Templates:** Reusable configurations created and owned by your organization. * **Marketplace:** Pre-configured, industry-standard applications ready for instant deployment. To create a new custom configuration, click the **+ Add Template** button in the top right corner. --- ## 2. Creating a New Template When adding a new template, you define the core blueprint that all future instances of that application will follow. ### Required Fields * **Template Name:** A unique identifier for the configuration (e.g., `My Microservice Template`). * **Config Definition (JSON):** A standard JSON object defining the container image and ports (e.g., ``). ### Resource Limits Define the hardware constraints for applications using this template: - **CPU:** Specify limits (e.g., `1`) and requests (e.g., `250m`). - **Memory:** Specify limits (e.g., `1Gi`) and requests (e.g., `128Mi`). - **Volume Size:** The amount of persistent storage required in GB. --- ## 3. Quick Deploy from Marketplace The Marketplace allows for "one-click" deployments of popular tools, such as **Uptime Kuma**. ### Configuration Steps 1. **Application Name:** Automatically generated based on the image name, but can be customized. 2. **Organization:** Select the target organization for the deployment. 3. **Deployment Configuration Review:** Before launching, the system displays a summary of the deployment specs: - **Image:** The Docker registry path. - **Ports:** Internal and external port mapping. - **Resources:** Pre-set CPU and RAM allocations. ### Launching the Application Once the organization is selected and the configuration is reviewed, click **Deploy Application**. The system will provision the necessary infrastructure and start the container based on the template logic. See the step-by-step walkthrough: [How to Deploy Uptime Kuma on Nife OpenHub](/Guides/Openhub/uptime-kuma-marketplace-application). --- ## 4. Use Cases * **Standardization:** Ensure every "Node.js" app in your company uses the same base image and security settings. * **Rapid Prototyping:** Use the Marketplace to spin up monitoring tools (Uptime Kuma), databases, or CMS instances in seconds. * **Resource Governance:** Hardcode CPU and Memory limits into templates to prevent individual applications from consuming excessive cluster resources. --- ## Related Resources - 📚 [Browse all OpenHub guides](/Guides/Openhub) — step-by-step deployment walkthroughs for every marketplace app - 📦 [OpenHub Marketplace](https://openhub.nife.io) — the live app catalog --- ## Build from Source URL: https://docs.nife.io/Deploy-App/Deploying-a-Site/Build-from-Source The **Build from Source** method allows you to upload your project source code and let the platform automatically build and deploy the application. This method is useful when the application has not been built locally and you want the platform to handle the build process. ## Steps to Deploy Using Build from Source ### Step 1: Navigate to Deploy Site Open the dashboard and select **Static Site**. ### Step 2: Select Organization Choose the organization where the application will be deployed. ### Step 3: Select Build from Source Choose **Build from Source** from the available deployment options. ### Step 4: Select Framework Choose the framework of your preference used for your project from the available options. ### Step 5: Select Command & Add Environment Variables (Optional) #### The Build Process **Install Command**: The tool used to download your project's dependencies. In this case we have selected npm install, which is standard for most React apps. **Build Command**: Is an command that compiles your React code into optimized, production-ready files. Here, it is set to npm run build. **Output Directory**: This is the folder created after the build command runs. For React, this is almost always named build. This is the only folder that actually gets served to your users. If your project requires environment variables, you can add them in the configuration section. ### Step 6: Upload Source Code Upload the source code of your application from your local system. ### Step 7: Deploy the Site Click **Deploy Site** to start the build and deployment process. The platform will automatically build the application and deploy it. ### Step 8: Verify Deployment After deployment finishes, open the application page and click **Sites** to view the deployed application. --- ## Import from Git URL: https://docs.nife.io/Deploy-App/Deploying-a-Site/Import-from-Git # Upload from Git The **Upload from Git** method allows you to deploy your application directly from a Git repository. This method is useful for teams that manage their code in version control systems and want deployments to be triggered from repository updates. ## Steps to Deploy Using Upload from Git ### Step 1: Open Deploy App From the dashboard, navigate to **Static Site**. ### Step 2: Configure Site Details Provide the required deployment information such as the site name and other configuration details required by the platform. ### Step 3: Select Organization Choose the **organization** where the site will be deployed. ### Step 4: Select Upload from Git Choose **Upload from Git** from the deployment methods. ### Step 5: Connect Repository Enter the required repository details such as the repository URL and branch name. ### Step 6: Configure Build Settings Provide the required build configuration fields so the platform can build the project correctly. #### 1. Git Provider & Repository URL **Provider**: You have GitHub selected as your source. **Repository URL**: You've entered a specific Git URL. The green checkmark and the message "Repository validated successfully" indicate that Nife can successfully "see" this repository. **Branch**: It has been set to the main branch. This means the branch Nife will pull code from whenever a deployment is triggered. #### 2. Personal Access Token (PAT) There is an optional field for a Personal Access Token. **When to use it**: You only need to fill this out if the repository you are trying to deploy is Private. Since the example in the image is an public repository, the repo was validated without PAT, incase you want to aquire knowledge on how to generate a PAT, you can refer to the **How to section** available at the top right corner of PAT platform. #### 3. Source Security Scan (SAST) This is a sophisticated feature for enterprise-grade deployments: **SAST (Static Application Security Testing)**: By clicking "Run Security Scan," Nife will analyze your source code for vulnerabilities (like hardcoded passwords, insecure functions, or "secrets" left in the code) before it actually builds the site. **Secrets Detection**: This is currently enabled to ensure you aren't accidentally deploying sensitive API keys or credentials. **SCA (Software Composition Analysis)**: Listed as "Coming Soon," this will eventually check your project's dependencies (the libraries you use) for known security flaws. Once you have configured the build settings, click **Continue**. ### Step 7: Select Import Type We are further provided with two options to select from: 1. **Import Build File** Click on **Import Build File** to import a build file from a Git repository. Once you Select this method, the platform will take you to an final page that shows an Summary of all the previosly selected options for confirmation, if that okay click on **Deploy Site** else we can always click on **Back** to go back to the previous page and make changes. 2. **Import Source Code** Click on **Import Source Code** to import a source code from a Git repository. Once you Select this method, the platform will take you to an page that gives us the option to choose **Framework**, which then ask's us for which Install Command to use Like npm install (mainly for react), yarn install, pnpm install etc, which then shows the same steps as **Import Build File** where **Environment Variables** and also show the summary of all the previosly selected options for confirmation, if that okay click on **Deploy Site** else we can always click on **Back** to go back to the previous page and make changes. ### Step 8: Deploy the Site Click **Deploy Site** to begin the deployment. The platform will pull the code from the repository, build the project, and successfully deploy the application. --- ## Site Deployment Overview URL: https://docs.nife.io/Deploying-a-Site/Sites The **Sites ** provides a centralized interface for managing the infrastructure, availability, and performance of your hosted applications. --- ## 1. Site Overview & Quick Actions The overview panel displays core metadata and health metrics for your specific site instance. ### Site Details - **Site Name:** `portfolio-website` - **Region:** `us-east-1` - **Infrastructure:** Powered by **AWS S3** (`portfolio-website-bucket`) and **CloudFront** (`E1A2B3C4D5E6F`). ### Metrics Summary A snapshot of real-time traffic and cost efficiency: - **Total Requests:** 412,034 - **Cache Hit Rate:** 87.50% (High efficiency) - **Estimated Cost:** $234.56 - **Availability:** 99.95% ### Quick Actions Perform instant operations with one click: - **Redeploy:** Push the latest code. - **Blue-Green / Canary:** Deploy updates to a subset of users for testing. - **Revert:** Instantly roll back to a previous stable version. --- ## 2. Uptime & Response Monitoring Real-time monitoring ensures your site remains accessible and fast for global users. - **Current Response:** 110 ms (Latest ping). - **Avg. Response:** 195 ms over the selected period. - **Uptime:** 100% Availability rate. - **Cert Expiry:** 84 Days remaining on the SSL certificate. ### Status Timeline The green blocks represent a continuous "Up" status. Any downtime would appear as red blocks, allowing for quick visual identification of outages. --- ## 3. DNS & Traffic Analytics These charts provide deep insights into how users are resolving your site's address and where they are coming from. | Chart Type | Key Data Points | Insights Provided | | :--- | :--- | :--- | | **Counts by Colo** | FRA, IAD, BOM | Identifies the most active global colocation centers (Frankfurt, Virginia, Mumbai). | | **IP Version** | IPv4 (86%) vs IPv6 (14%) | Tracks the adoption of modern IP protocols. | | **Protocol** | UDP (99%) vs TCP (1%) | Breakdown of DNS query types. | | **Query Type** | A, AAAA, CNAME, MX | Shows that standard **A records** drive the majority of traffic. | | **Response Code** | NOERROR | Indicates a 100% success rate in DNS resolution. | --- ## 4. Custom Domain Configuration To use your own branding, follow the two-step configuration wizard: 1. **Enter Domain:** Input your custom URL (e.g., `example.com`). 2. **Configure & Sync:** Add the generated **CNAME** record to your DNS provider (Cloudflare, GoDaddy, etc.). > **Note:** DNS propagation can take between a few minutes and 24 hours. Click **Verify and Sync** once you have updated your DNS settings. --- ## 5. Deployment History Manage and audit every version of your site that has been pushed to production. - **Current Version:** `v2.5.1` (Active). - **Previous Versions:** View a history of `Inactive` versions (e.g., `v2.5.0`, `v2.4.0`). - **Rollback Capability:** Use the **Revert** button on any inactive version to immediately make it the live production version. --- ## 6. Pre-Deployment Security Scan Before code is promoted to production, the platform provides a **Pre-Deployment Security Scan** to identify potential vulnerabilities within your repository. ### Scan Capabilities The **Source Security Scan** utilizes three primary detection methods: * **Secrets Detection (Active):** Scans for exposed API keys, passwords, and credentials to prevent accidental leaks. * **SAST (Coming Soon):** Static Application Security Testing to analyze source code for security flaws. * **SCA (Coming Soon):** Software Composition Analysis to identify vulnerabilities in open-source dependencies. ### How to Run Click the **Run Security Scan** button to initiate a manual check. This ensures that only "clean" code reaches your production environment, maintaining the integrity of your `portfolio-website`. --- ## 7. Site Settings & Configuration The **Site Settings** page allows you to view and manage the underlying infrastructure configuration for your deployment. ### Deployment Configuration This section provides a read-only view of the site's immutable properties: - **Site Name:** `portfolio-website` (Note: This cannot be changed after creation). - **Site URL:** The direct static endpoint provided by the platform. - **S3 Bucket:** The specific storage container where your assets reside. - **Region:** The AWS region where your site is hosted (e.g., `us-east-1`). ------- ## 8. Danger Zone The **Danger Zone** contains actions that are irreversible and should be handled with extreme caution. ### Delete Site - **Action:** Permanently removes the site, the associated S3 bucket, and all historical deployment versions. - **Impact:** Once deleted, the site and its data cannot be recovered. Ensure you have backups if necessary before proceeding with the **Delete Site** button. --- --- ## Upload Build File URL: https://docs.nife.io/Deploy-App/Deploying-a-Site/Upload-Build-File Nife allows users to deploy static websites easily through the **Deploy Site** interface. Static sites typically consist of frontend files such as HTML, CSS, JavaScript, and other assets that are served directly to users. The platform provides multiple deployment methods so users can choose the one that best fits their workflow. Depending on how your project is prepared, you can deploy a site using one of the following methods: - Upload Build File - Build from Source - Upload from Git Each method allows you to deploy your application quickly while managing deployments within your organization. --- # Accessing the Deploy Site Page Before deploying a site, you need to open the **Deploy App** interface. ### Steps to Access Deploy Site 1. Log in to the **Nife Launch Platform**. 2. Navigate to the Application button on the sidebar. 3. Locate and click the **+Deploy App** option. Once you click on **+Deploy App** button, you will be redirected the respective page where you are supposed to click on **static site** button in order to deploy a static site. This page provides different deployment methods that allow you to deploy your static site based on your project setup which furthers gives us the option to enter the desired site name & choose which organization we want to deploy our static site in. --- # Upload Build File The **Upload Build File** method is used when your application has already been built locally and you have the production-ready files available. In this method, the compiled output of your project is uploaded directly to the platform as a compressed archive. This approach is commonly used for frontend frameworks where the project build process generates optimized static files. These files typically include HTML pages, bundled JavaScript, compiled CSS, and other static assets required for the application to run in a browser. By uploading the build output instead of the source code, the deployment process becomes faster because the platform does not need to perform any additional build steps. The system simply extracts the uploaded build files and deploys them so the site can be accessed immediately after deployment. ## Steps to Deploy Using Upload Build File ### Step 1: Open Deploy Site From the dashboard, click **Deploy App** to open the deployment page. Then click on **Static Site** button ### Step 2: Configure Site Details Provide the required deployment information such as the site name and other configuration details required by the platform. ### Step 3: Select Organization Choose the **organization** where the site will be deployed. Organizations help manage deployments and resources across different teams and projects. ### Step 4: Select Upload Build File Choose **Upload Build File** from the available deployment methods and click on continue button. ### Step 5: Upload the Build File Upload the compiled build of your application as a **.zip file .tar file or .tar.gz file**, which allows the maximum size of the file to be *100MB*. The compressed file should contain the production-ready files generated from your project. ### Step 6: Deploy the Site Click **Deploy Site** to begin the deployment process. The platform will upload the build files and deploy the site automatically. ### Step 7: Verify Deployment After deployment completes, open the application details page and click **Site** to access the deployed website. This section now displays all the previously deployed sites and the new site that was just deployed. --- ## Docker Deployment URL: https://docs.nife.io/deploy/docker-deployment Docker allows applications to run inside lightweight containers that bundle the application and all required dependencies. The **Nife platform** enables users to deploy applications directly from **Docker images**, allowing developers to quickly launch scalable containerized workloads. This guide walks through the complete process of deploying a Docker image using the Nife dashboard. --- ## Step 1: Open the Applications Dashboard Navigate to **Applications** from the left sidebar of the Nife dashboard. The Applications page shows all currently deployed applications along with their status, regions, replicas, and deployment strategies. From this page you can monitor running services or create a new deployment. ![Applications Dashboard](/img/docker-deploy/docker-applications-dashboard.png) Click **Deploy App** to begin deploying a new application. --- ## Step 2: Choose the Deployment Type After clicking **Deploy App**, the **Quick Deploy** page appears. Here you can click on `Application`. ![Quick Deploy](/img/docker-deploy/docker-quick-deploy.png) This opens the **Deploy Application wizard**, which guides you through the deployment process step-by-step. --- ## Step 3: Configure Application Source The first stage in the wizard is **Source Configuration**. Here you define basic application information and the container image that will be deployed. ### Basic Information Provide the following information: **Organization** Select the organization where the application will be deployed. **Application Name** Enter a unique name for the application. Example: `my-awesome-app` --- ### Docker Image Select **Docker Image** as the source type. Enter the container image you want to deploy. Example: `nginx:latest` You can also click **Verify Image** to check whether the image exists in the container registry and retrieve metadata before deployment. --- ## Step 4: Configure Build Settings In this step you define how traffic reaches the container. ![Build Settings](/img/docker-deploy/docker-build-step.png) ### Ports Ports define how network traffic is routed. Example configuration: | Setting | Value | |-------|------| | Internal Port | 3000 | | External Port | 80 | **Internal Port** → Port exposed inside the container **External Port** → Port exposed externally to users --- ### Environment Variables Environment variables allow runtime configuration of the container. Example: `NODE_ENV=production` These variables are often used for configuration values such as environment mode, API keys, or service endpoints. --- ## Step 5: Configure Resources This step defines compute resources and deployment behavior. ### Resource Type Choose the compute type depending on the workload requirements. Available options include: - CPU - GPU - TPU - FPGA - Edge AI - Serverless Most standard applications use **CPU** resources. --- ### Resource Requests (Minimum) Resource requests define the **minimum guaranteed resources** allocated to the container. Example configuration: | Resource | Value | |--------|------| | CPU Request | 250m | | Memory Request | 512Mi | --- ### Resource Limits (Maximum) Resource limits define the **maximum resources** the container is allowed to consume. | Resource | Value | |--------|------| | CPU Limit | 500m | | Memory Limit | 1Gi | This prevents containers from consuming excessive infrastructure resources. --- ### Deployment Strategy Nife supports several deployment strategies: - **Rolling** – Gradually replaces old containers with new ones. - **Blue-Green** – Maintains two environments for safer updates. - **Canary** – Gradually shifts traffic to new versions. - **Recreate** – Stops old containers before starting new ones. --- ## Step 6: Security Checks and Review Before deployment begins, the Nife platform runs automated **security and configuration checks**. ### Unified Security Pipeline The platform performs multiple checks such as: - Container vulnerability scanning - Infrastructure configuration validation - Secret detection These checks help prevent insecure deployments and configuration errors. --- ## Step 7: Deploy the Application After reviewing the configuration, click **Deploy**. The Nife platform will then: 1. Pull the Docker image from the registry 2. Allocate compute resources 3. Create and start containers 4. Apply deployment strategies 5. Launch the application Once deployment is complete, the application appears in the **Applications Dashboard**, where you can monitor its health, view logs, and access the deployed service URL. --- This workflow enables developers to deploy containerized applications quickly while benefiting from automated infrastructure management and security validation. --- ## Backup & Disaster Recovery URL: https://docs.nife.io/Deploy-App/Governance/Backup-And-DR Protect your applications and data with Nife's backup and disaster recovery capabilities. ## What's Covered - Application configuration backups - Volume snapshots - Cross-region failover - Recovery point and time objectives (RPO/RTO) ## Setting Up Backups 1. Navigate to your application in the Nife dashboard 2. Go to **Settings** → **Backup & DR** 3. Configure your backup schedule and retention policy 4. Select your recovery region ## Disaster Recovery In the event of a regional failure, Nife can automatically failover your application to a healthy region. Configure your DR policy under **Governance** → **Backup & DR**. --- ## Organizations & Team Governance | Nife Docs URL: https://docs.nife.io/Deploy-App/Governance/Organizations Organizations in Nife allow you to group applications, manage team members, and control access across your deployments. ## Key Capabilities - **Team management** — invite members and assign roles (Admin, Member, Viewer) - **Resource grouping** — organise applications by team or project - **Access control** — fine-grained permissions per organization - **Workload isolation** — separate environments per organization ## Managing Your Organization 1. Navigate to **Organizations** in the Nife dashboard 2. Select your organization 3. Use the **Members**, **Secrets**, and **Workloads** tabs to manage your team See the full [Organizations Guide](/UI-Guide/Organizations) for detailed instructions. --- ## Secrets & Vault URL: https://docs.nife.io/deploy/secrets-and-vault ## Overview The **Secrets & Vault** section lets you securely store, rotate, and audit sensitive credentials across your organization. All secret values are **AES-CBC encrypted in the browser** before being sent — plaintext never crosses the wire. You can connect external vault providers or use Nife's built-in **Internal Vault**. Supported providers: - HashiCorp Vault - AWS Secrets Manager - Azure Key Vault - GCP Secret Manager --- ## Dashboard Overview The page header shows a live summary of your vault: | Metric | Description | |---|---| | **Vault Providers** | Number of connected providers. Highlighted in orange if none are configured. | | **Total Secrets** | Count of all secrets currently stored. | | **Health Status** | Ratio of healthy to total providers (e.g. `2/3`). Highlighted in red if any provider is unhealthy. | ![Vault Dashboard](/img/vault/VaultDashboard.png) --- ## Tabs The vault page is split into five tabs: | Tab | Purpose | |---|---| | **Providers** | Connect, configure, sync, and delete vault providers | | **Secrets** | Add, search, view, edit, export, and delete secrets | | **Migration** | Move secrets from one vault provider to another | | **Access Logs** | Audit trail of every read, write, and rotation event | | **Settings** | Configure auto-rotation, access notifications, and log retention | --- ## Providers ### Connecting a Vault Provider 1. Click **Add Provider** (top-right of the page) 2. Enter an optional **Display Name** (e.g. `Prod AWS`, `Staging HashiCorp`) 3. Select the **Organization** to link the provider to 4. Choose a **Provider Type** from the dropdown 5. Fill in provider-specific fields *(see below)* 6. Optionally check **Set as default vault provider** 7. Click **Add Provider** ![Add Vault Provider](/img/vault/AddVault.png) --- ### Provider Actions Each connected provider card shows: - **Status** — `healthy`, `unhealthy`, or `unknown` with a colour indicator - **Created date** - **Active / Inactive** badge - **Default** badge (if it is the default provider) Available actions per provider: | Action | Description | |---|---| | **Edit** | Update the display name or rotate credentials (URL, token, mount path) | | **Link Org** | Attach additional organizations to share this provider | | **Set Default** | Make this provider the default for new secrets | | **Test Connection** | Ping the provider and refresh its health status | | **Sync** | Start a full sync job and poll until completion. Progress shown with a spinner. | | **Pull** | Import secrets from the external vault into Nife | | **History** | View the last 20 sync job records with counts of updated and failed secrets | | **Delete** | Permanently remove the provider | --- ### Linking Organizations A single vault provider can be shared across multiple organizations. 1. Click **Link Org** on any provider card 2. Select an organization from the dropdown and click **Link** 3. Already-linked organizations appear in the list below 4. To remove access, click **Unlink** next to the organization (requires confirmation) > You cannot unlink the last remaining organization. Delete the provider instead. --- ### Sync Job History Click **History** on any provider to expand a panel showing the last 20 sync jobs. Each row shows: - Sync type (e.g. `full`) - Timestamp - Secrets updated (`↑`) and failed (`✗`) - Status badge: `completed`, `completed_with_errors`, or `failed` --- ## Secrets ### Adding a Secret 1. Go to the **Secrets** tab 2. Click **Add Secret** 3. Select the **vault** to store it in (Internal or an external provider) 4. Select the **Organization** 5. Enter an optional **Path** (defaults to `secrets`) 6. Enter the **Key** — use `UPPER_SNAKE_CASE`, e.g. `DATABASE_URL` 7. Enter the **Value** 8. Click **Add Secret** ![Add Secret](/img/vault/AddSecret.png) > The secret value is masked in the input and never shown in plaintext over the network. --- ### Bulk Import from .env 1. Click **Import .env** in the Secrets tab header 2. Paste or upload your `.env` file content 3. Confirm the import — all key-value pairs are stored as individual secrets ![Import Secrets](/img/vault/ImportSecrets.png) --- ### Searching and Paginating Secrets - Use the **search bar** to filter by key name or path - Results paginate at **10 secrets per page** - The pagination bar shows current range and total count --- ### Secret Actions Each secret row supports: | Action | Description | |---|---| | **Copy** |Copies the decrypted value to clipboard | | **View** |Opens a detail dialog showing the decrypted value with show/hide toggle | | **Edit** |Opens a dialog to overwrite the secret value | | **Delete** |Permanently removes the secret (requires permission) | --- ### Exporting Secrets Click **Export .env** to download all secrets on the current page as a `.env` file. - Each secret is fetched individually to retrieve its real value - Values containing spaces or special characters are automatically quoted - A warning is shown if any secret could not be fetched (fallback value used) --- ## Migration The **Migration** tab lists secrets that can be moved between vault providers. ### Migrating a Secret 1. Go to the **Migration** tab and click **Refresh** to load the list 2. Find the secret you want to move 3. Click **Migrate** next to it 4. Select the **Target Vault Provider** from the dropdown 5. Click **Migrate Secret** > The original secret is removed from the source provider after migration (`preserveOriginal: false`). --- ## Access Logs The **Access Logs** tab shows a timestamped audit trail of all vault operations. Each log entry shows: | Field | Description | |---|---| | **Operation** | `read`, `write`, `rotate`, `delete`, etc. | | **Secret** | The key or secret ID that was accessed | | **Timestamp** | When the operation occurred | | **User** | User ID or service account that triggered it | | **Provider** | Which vault provider was involved | | **IP Address** | Client IP (if available) | | **Status** | `success` (green) or `failed` (red) | Click **Refresh** to reload the latest 100 log entries. --- ## Settings The **Settings** tab configures organization-wide vault behaviour. ![Vault Settings](/img/vault/VaultSettings.png) ### Auto-Rotation | Setting | Description | |---|---| | **Enable Auto-Rotation** | Toggle automatic secret rotation on/off | | **Rotation Interval** | Number of days between rotations (1–365). Shown when auto-rotation is enabled. | > Changes are saved immediately on toggle or when you click out of the interval field. ### Audit Log Retention Set how many days audit logs are retained (7–3650 days). Changes are saved on blur. ## Security Notes - Secret values are **AES-CBC encrypted** in the browser using the app encryption key before any network request is made - The backend stores and returns only ciphertext — decryption happens client-side - Vault provider configs (URL, token, mount path) are also encrypted before being sent to the backend - TLS verification is enabled by default for HashiCorp Vault connections ## Related Resources - 🛠️ [Base64 Encoder/Decoder](https://freetools.nife.io/base64-encoder-decoder/) — useful when preparing secret values for transport or storage - 🛠️ [Hash Generator](https://freetools.nife.io/hash-generator/) — generate checksums to verify secret values haven't changed --- ## Token Management URL: https://docs.nife.io/deploy/token-management ## Overview The **Token Management** section allows you to securely manage authentication tokens used for deployments and integrations. These tokens are primarily used for: - Connecting Git providers (GitHub, GitLab, Bitbucket) - Authenticating API requests - Enabling automated deployments --- ## Token Dashboard ![Token Overview](/img/token/token-overview.png) The dashboard provides a summary of your tokens, including: - **API Tokens** – Tokens used for API authentication - **Git Tokens** – Tokens for Git provider integrations - **Expired Tokens** – Tokens that are no longer valid - **Status** – Indicates whether tokens are active --- ## Git Provider Tokens ![Token List](/img/token/token-list.png) This section allows you to manage tokens for Git providers such as: - GitHub - GitLab - Bitbucket Each token entry displays: - Provider name - Token status (e.g., Running/Active) - Masked token value - Creation date You can also: - Edit tokens - Delete tokens - Refresh token list --- ## Adding a Git Provider Token To add a new token: 1. Click **Add Token** 2. Select your **Provider** (e.g., GitHub) 3. Enter your **Personal Access Token (PAT)** 4. Click **Add Token** ![Add Token Modal](/img/token/token-add-modal.png) --- ## Field Explanation ### Provider Select the Git provider: - GitHub - GitLab - Bitbucket ### Personal Access Token (PAT) A secure token generated from your Git provider account. Example format: `ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx` --- ## How to Create a PAT You can generate a Personal Access Token from your Git provider: - GitHub → Developer Settings → Personal Access Tokens - GitLab → Access Tokens - Bitbucket → App Passwords Make sure to: - Grant required permissions (repo access, read/write) - Keep the token secure --- ## Why Use Tokens? Using tokens provides: - 🔐 Secure authentication - ⚡ Automated deployments - 🔄 Continuous integration support - 🔑 Access control for repositories --- ## Related Resources - 🛠️ [JWT Encoder/Decoder](https://freetools.nife.io/jwt-encoder-decoder/) — inspect and decode JSON Web Tokens used for API authentication - 📚 [Nife Cheatsheets](https://cheatsheet.nife.io/) — quick-reference command sheets for Git, Docker, and more --- ## Activity Logs Dashboard URL: https://docs.nife.io/Deploy-App/Insights/Audit-Logs # Activity Logs Dashboard The **Activity Logs Dashboard** provides a centralized audit trail of all user actions, system events, and organizational changes. It enables real-time monitoring, filtering, and analysis of activities across the platform. --- # Activity Logs View The dashboard displays recent activity along with filtering and management options such as **search, type filtering, date selection, and export functionality**. --- # Key Features ## All Types (Filter) The **All Types** dropdown allows users to filter logs based on specific event categories. ### Available Filters - **All Types** – Displays all log entries - **Deployment** – Deployment-related events - **User** – User activity (login, invite, updates) - **security** – Security-related actions - **App_create** – Application creation events - **Deletion** – Deletion-related actions - **Capacityonfig** – Configuration changes - **Billing** – Billing and subscription events - **Infrastructure** – Infrastructure-level operations ### Use Case This filter helps in: - Narrowing down specific types of events - Troubleshooting issues (e.g., deployment failures) - Auditing user or system behavior --- ## Date Range The **Date Range selector** allows users to filter logs based on a specific time period. ### Example - **Mar 12, 2026 – Mar 19, 2026** ### Functionality - Select a custom date range - View logs within a defined time window - Analyze trends over time ### Use Case - Investigating incidents within a specific timeframe - Monitoring weekly or monthly activity - Performing audit reviews --- ## Export The **Export** button allows users to download the activity logs for external use. ### Features - Export logs in a downloadable format - Useful for reporting and auditing - Enables offline analysis ### Use Case - Sharing logs with stakeholders - Compliance and audit reporting - Backup of activity data --- # Additional Features ## Search Logs The search bar allows users to quickly locate specific log entries using keywords such as: - Application names - User emails - Event types --- ## Recent Activity The **Recent Activity** section displays the latest log entries. ### Example Entries - Application deployed successfully - New user invited to organization Each entry includes: - Timestamp - Organization - Event type --- ## Paging Users can control how many log entries are displayed per page. --- ## Incidents & Alerts | Nife Deployment Monitoring | Nife Docs URL: https://docs.nife.io/Deploy-App/Insights/Incidents-And-Alerts # Incidents & Alerts Track, manage, and resolve incidents for your Nife deployments in one place. ## What Is an Incident? An incident is a detected service disruption or degradation — automatically created when an alert fires or when SRE Intelligence detects a critical anomaly. ## Incident Lifecycle ```text Detected → Triggered → Acknowledged → Resolved ``` | State | Description | |-------|-------------| | **Triggered** | Alert condition met, incident created | | **Acknowledged** | Team member has taken ownership | | **Resolved** | Issue fixed, service restored | ## Viewing Incidents 1. Navigate to your application in the Nife dashboard 2. Go to **Insights** → **Incidents & Alerts** 3. Filter by status, severity, or time range ## Incident Details Each incident shows: - **Trigger** — which alert or anomaly caused it - **Affected service** — the application and region - **Timeline** — when it started, acknowledged, and resolved - **Related metrics** — graphs of affected metrics during the incident - **Linked alerts** — all alerts that fired during the incident ## Setting Up Alerts Configure alert rules to automatically create incidents. See [Creating Alert Rules](/Alerts/Creating-Alert-Rules). ## Related - [Service Metrics](/Deploy-App/Insights/Service-Metrics) - [SRE Intelligence](/Deploy-App/Insights/SRE-Intelligence) - [Alert Configuration](/Alerts/Alert-Configuration) --- ## SRE Intelligence | AI-Powered Site Reliability | Nife Docs URL: https://docs.nife.io/Deploy-App/Insights/SRE-Intelligence # SRE Intelligence Nife's SRE Intelligence uses AI to automatically detect anomalies, predict failures, and surface actionable insights for your deployments. ## Key Capabilities ### Anomaly Detection Automatically identifies unusual patterns in your metrics — spikes in error rate, latency outliers, or unexpected traffic drops — without manual threshold configuration. ### Failure Prediction Uses historical patterns to predict potential failures before they impact users, giving your team time to act proactively. ### Root Cause Analysis When incidents occur, SRE Intelligence correlates signals across metrics, logs, and deployments to surface the most likely root cause. ### Recommended Actions Provides actionable remediation suggestions based on detected issues — e.g. scale up, rollback to previous version, or restart a service. ## Accessing SRE Intelligence 1. Navigate to your application in the Nife dashboard 2. Go to **Insights** → **SRE Intelligence** 3. Review active anomalies and predictions 4. Follow recommended actions or dismiss false positives ## Related - [Service Metrics](/Deploy-App/Insights/Service-Metrics) - [Incidents & Alerts](/Deploy-App/Insights/Incidents-And-Alerts) - [Alerts Overview](/Alerts/Alerts-Overview) - 🌐 [Nife AI SRE](https://nife.io/ai-sre) — product overview and roadmap for intelligent site reliability --- ## Service Metrics | Monitor Application Performance | Nife Docs URL: https://docs.nife.io/Deploy-App/Insights/Service-Metrics # Service Metrics Monitor real-time performance metrics for your deployed services on Nife. ## Available Metrics | Metric | Description | |--------|-------------| | **Request Rate** | Number of incoming requests per second | | **Latency (P50/P95/P99)** | Response time percentiles | | **Error Rate** | Percentage of failed requests (4xx/5xx) | | **Throughput** | Total data transferred per second | | **Availability** | Uptime percentage over a time window | ## Viewing Service Metrics 1. Navigate to your application in the Nife dashboard 2. Go to **Insights** → **Service Metrics** 3. Select the time range (1h, 6h, 24h, 7d, 30d) 4. Filter by region or instance ## Setting Alerts on Metrics You can trigger alerts when metrics cross thresholds. See [Creating Alert Rules](/Alerts/Creating-Alert-Rules) for setup. ## Related - [Application Monitoring](/Monitoring/Application-Monitoring) - [Incidents & Alerts](/Deploy-App/Insights/Incidents-And-Alerts) - [SRE Intelligence](/Deploy-App/Insights/SRE-Intelligence) --- ## Application Analytics Dashboard URL: https://docs.nife.io/Deploy-App/Insights/User-Analytics # Apps Dashboard The **Apps Dashboard** provides a centralized view of application lifecycle metrics and deployment analytics. It helps teams track application activity, monitor deployments, and analyze user-level deployment behavior. --- # Tab Navigation The dashboard contains **three top-level tabs** that allow users to switch between different operational views. ## Apps The **Apps** tab is the currently active view. It displays: - Application lifecycle metrics - Deployment analytics per user - Activity trends for created, deployed, and redeployed applications This view helps engineering teams understand how applications are progressing through the deployment lifecycle. --- ## Organizations The **Organizations** tab is designed to provide **organization-level insights**. It is intended for: - Viewing applications grouped by organization - Monitoring team-level activity - Managing organizational structures within the platform --- ## Workloads The **Workloads** tab focuses on **infrastructure workload monitoring**. This view is intended for: - Tracking system workloads - Monitoring resource allocation - Observing infrastructure usage patterns --- # Summary Metric Cards At the top of the dashboard, **four summary cards** provide a quick snapshot of application activity. ## App Created — 24 This represents the **total number of applications created** within the system. It serves as the **entry point of the application lifecycle funnel**, capturing all newly initiated applications. --- ## App Deployed — 18 This metric shows the number of applications that have been **successfully deployed at least once**. The difference between **24 created** and **18 deployed** suggests that **6 applications are either pending deployment or were abandoned after creation**. --- ## App Redeployed — 10 This indicates the number of applications that have undergone **at least one redeployment after their initial deployment**. Redeployments typically occur when: - New updates are released - Hotfixes are applied - Configuration changes are made Tracking redeployments helps teams understand **iteration cycles and release frequency**. --- ## App Deleted — 0 No applications have been deleted during the current monitoring period. This may indicate: - High application retention - No cleanup operations performed yet --- # Deployment Analytics Chart The **Deployment Analytics Chart** provides a visual comparison of deployment activity across multiple users. Subtitle: **Showing details for Alex Thompson** The chart displays two metrics: - **Total Deployed (Blue)** – First-time deployments - **Total Redeployed (Green)** – Subsequent deployments after the initial release --- ## Alex Thompson - **Deployed:** ~48 - **Redeployed:** ~15 Alex has a **high number of deployments with a moderate redeployment rate**, indicating active development with relatively stable releases. --- ## Sarah Chen - **Deployed:** ~16 - **Redeployed:** ~20 Sarah has **more redeployments than deployments**, which may indicate: - Frequent hotfixes - Iterative updates - Rollbacks or quick release adjustments --- ## Marcus Rodriguez - **Deployed:** ~50 - **Redeployed:** ~30 Marcus has the **highest deployment volume**, combined with a significant number of redeployments. This suggests **fast-moving development cycles with frequent updates**. --- ## Emily Johnson - **Deployed:** ~34 - **Redeployed:** ~10 Emily demonstrates a **balanced deployment profile**, with steady deployments and relatively low redeployments. This often indicates **stable release management practices**. --- ## David Kim - **Deployed:** ~46 - **Redeployed:** ~30 David shows **high activity across both metrics**, similar to Marcus. This likely indicates responsibility for **multiple actively maintained applications**. --- # Legend The chart uses two color indicators to represent deployment activity. 🔵 **Total Deployed** Represents **first-time deployments** of an application to an environment. 🟢 **Total Redeployed** Represents **subsequent deployments of an already deployed application**, typically triggered by updates, patches, or configuration changes. --- ## Cluster Analysis URL: https://docs.nife.io/Deploy-App/Optimize/Cluster-Analysis #Cluster Analysis The ** Cluster Analysis** dashboard enables users to upload cluster configuration files and perform **AI-powered analysis** on their Kubernetes environments. It helps identify configuration issues, security risks, and optimization opportunities. --- # Navigation Tabs The interface includes two primary tabs for managing analysis workflows. ## New Analysis The **New Analysis** tab allows users to: - Upload a kubeconfig file - Provide cluster details - Run AI-based analysis This is the default active view used for initiating new scans. --- ## History The **History** tab provides access to previously executed analysis. It allows users to: - Review past cluster reports - Track configuration changes over time - Compare analysis results --- # Upload Kubeconfig YAML File This section allows users to upload their Kubernetes configuration file. ## Cluster Name Users must provide a **cluster name** before running analysis. This helps in identifying and organizing multiple cluster analyses. --- ## File Upload Users can upload their kubeconfig file using: - Drag and drop functionality - Manual file selection Supported formats: - `.yml` - `.yaml` This file contains authentication and cluster configuration details required for analysis. --- ## Analyze Cluster with AI This button triggers the analysis process. Once clicked: - The kubeconfig file is processed - Cluster configuration is evaluated - AI generates insights and recommendations --- # How to Get Kubeconfig File This section provides commands to retrieve kubeconfig files from different cloud providers. --- ## AWS (EKS) aws eks --region region-name update-kubeconfig --name cluster-name ## GCP (GKE) gcloud container clusters get-credentials [CLUSTER_NAME] --region [REGION] ## Azure (AKS) az aks get-credentials --resource-group [RESOURCE_GROUP_NAME] --name [CLUSTER_NAME] ## Related Resources - 🛠️ [Kubernetes YAML Generator](https://freetools.nife.io/kubernetes-yaml-generator/) — generate manifests for any resource type - 🛠️ [YAML Formatter & Validator](https://freetools.nife.io/yaml-formatter/) — validate your kubeconfig before uploading it for analysis --- ## Code Security Scanning URL: https://docs.nife.io/Deploy-App/Optimize/Code-Scan # Code Scan The **Code Scan** provides a centralized interface for scanning repositories and detecting sensitive information such as API keys, tokens, and secrets. It enables developers and security teams to proactively identify vulnerabilities and maintain secure codebases. --- # Overview Metrics At the top of the dashboard, key metrics provide a quick snapshot of scanning activity. ## Total Scans :- This represents the **total number of scans performed across all time**. It helps track overall usage and monitoring coverage of the scanning system. --- ## Last Scan :- Displays the **most recent scan timestamp**. This helps users quickly identify when the last security check was performed. --- # Navigation Tabs The dashboard includes two primary tabs for managing scans. ## New Scan The **New Scan** tab allows users to initiate a fresh scan on a repository. This is the default active view. --- ## Scan History The **Scan History** tab provides access to previously executed scans. It allows users to: - Review past scan results - Track detected issues over time - Analyze trends in vulnerabilities --- # Code Safe Scanner The **Code Safe Scanner** is the core feature used to initiate repository scans. It is designed to enhance code security by detecting sensitive information. ## GitHub Repository URL Users must provide the **repository URL or name** to scan. --- ## Personal Access Token (PAT) This field allows users to enter a **GitHub Personal Access Token**. - **Optional** for public repositories - **Required** for private repositories - The token is **encrypted before transmission** - It is **never stored by the system** This ensures secure authentication while maintaining privacy. --- ## Start Free Scan The **Start Free Scan** button initiates the scanning process. Once triggered: - The repository is analyzed - Sensitive data patterns are detected - Results are generated for review --- # What We Scan For This section highlights the **core detection capabilities** of the system. ## Comprehensive Secret Detection The scanner identifies sensitive information such as: - High-entropy strings - AWS keys - Google API keys - And **17+ additional secret types** This ensures broad coverage of potential security risks. --- ## Historical Scanning The system analyzes **past commits** to detect secrets that may have been exposed earlier. This helps uncover: - Previously leaked credentials - Forgotten sensitive data - Long-term vulnerabilities --- ## Advanced Entropy and Pattern Matching Uses intelligent detection techniques to: - Reduce false positives - Improve accuracy - Identify real threats effectively This ensures reliable and actionable scan results. --- # Summary The **Code Scan Dashboard** provides a powerful and secure way to: - Scan repositories for sensitive data - Monitor scan history - Detect secrets using advanced techniques - Maintain overall codebase security --- # Dashboard Preview --- ## Cost Optimization URL: https://docs.nife.io/Deploy-App/Optimize/Cost-Optimization Nife provides built-in cost monitoring and optimization tools to help you understand and reduce your cloud spend. ## Key Features - **Real-time cost visibility** — see spending across all cloud providers - **Per-app cost breakdown** — understand which workloads cost the most - **Idle resource detection** — identify and remove unused deployments - **Multi-cloud comparison** — compare costs across AWS, GCP, Azure, and DigitalOcean ## Getting Started 1. Navigate to **Cost Monitoring** in the Nife dashboard 2. Connect your cloud provider accounts 3. View your cost breakdown by app, region, and provider See the full [Cost Monitoring Guide](/Cloud-Cost-Monitoring/Cost-Monitoring) for setup instructions. --- ## DORA Metrics Dashboard | Nife Docs URL: https://docs.nife.io/Optimize/DORA-Metrics # DORA Metrics The **DORA Metrics** provides a high-level overview of your organization's DevOps performance. By tracking four key metrics, it helps teams identify bottlenecks and improve software delivery speed and stability. --- # Metrics Overview The dashboard categorizes performance into four standard DevOps Research and Assessment (DORA) metrics. Each metric includes a status benchmark comparison. ### 1. Deployment Frequency * **Definition:** How often your organization successfully deploys to production. * **Your Metric:** 3.2 per day. * **Benchmark:** On-demand (multiple deploys per day). ### 2. Lead Time for Changes * **Definition:** The amount of time it takes a commit to get into production. * **Your Metric:** 42 minutes. * **Benchmark:** Less than one hour. ### 3. Time to Restore Service * **Definition:** The time it takes to recover from a failure in production. * **Your Metric:** 28 minutes. * **Benchmark:** Less than one hour. ### 4. Change Failure Rate * **Definition:** The percentage of deployments that cause a failure in production. * **Your Metric:** 4.1%. * **Benchmark:** 0-15%. --- # Recommendations Based on your current performance data, the system provides actionable **Recommendations** to help maintain or improve your delivery standards. | Metric | Suggested Improvement | | :--- | :--- | | **Deployment Frequency** | Maintain frequency and share best practices with other teams. | | **Lead Time for Changes** | Document existing practices for organizational knowledge sharing. | | **Time to Restore Service** | Focus on proactive incident prevention to maintain recovery times. | | **Change Failure Rate** | Scale and share quality assurance practices across all teams. | --- # Performance Benchmarking The dashboard uses the following performance tiers to categorize your team's DevOps maturity: * **Elite:** Leading industry standards in both speed and stability. * **High:** Strong performance with regular deployment cycles. * **Medium:** Stable but with room for automation improvements. * **Low:** Significant opportunities for process optimization. --- # Deployment Frequency Details For a deeper analysis of shipping velocity, the **Deployment Frequency Details** view provides a breakdown of daily deployment volume and performance trends. ### Performance Indicators * **Current Rate:** Represents the average number of successful production releases per day (e.g., **3.2 / day**). * **Rating:** A maturity label based on industry benchmarks (e.g., **Elite**). * **Trend:** Indicates whether deployment velocity is **Increasing**, **Decreasing**, or **Stable** compared to the previous period. --- ### Recent Deployments (Daily Log) This table tracks the exact number of deployments completed each day, allowing teams to spot patterns or lulls in activity. | Date | Deployment Count | | :--- | :--- | | **3/18/2026** | 3 deployments | | **3/19/2026** | 4 deployments | | **3/20/2026** | 2 deployments | | **3/21/2026** | 5 deployments | | **3/22/2026** | 3 deployments | | **3/23/2026** | 4 deployments | ### Use Case * **Capacity Planning:** Understand team throughput over a specific week. * **Trend Analysis:** Correlate "Increasing" trends with new process implementations or tool adoptions. * **Verification:** Ensure that automated deployments are triggering consistently as expected. # Lead Time for Changes Details The **Lead Time for Changes Details** view provides a granular look at how quickly code moves from a commit/merge to a successful production deployment. ### Aggregate Metrics * **Average:** The mean time taken for changes to reach production (**42 minutes**). * **Median:** The middle value of all lead times, offering a view of typical performance (**30 minutes**). * **Rating:** Your performance category based on DORA standards (e.g., **Elite**). --- ### Recent Pull Requests This section tracks individual contributions, showing the exact time each unit of work took to be delivered. | PR ID | Description | Merge Timestamp | Lead Time | | :--- | :--- | :--- | :--- | | **PR #1042** | feat: add edge-region auto-scaling | 3/31/2026, 8:30:31 AM | 24 minutes | | **PR #1041** | fix: resolve latency spike in Singapore cluster | 3/31/2026, 5:30:31 AM | 36 minutes | | **PR #1040** | chore: upgrade k8s client to v0.29 | 3/31/2026, 1:30:31 AM | 18 minutes | | **PR #1039** | feat: DORA metrics endpoint | 3/30/2026, 7:30:31 PM | 1.1 hours | | **PR #1038** | fix: JWT refresh race condition | 3/30/2026, 4:30:31 PM | 48 minutes | ### Use Case * **Bottleneck Identification:** Identifying specific PRs that exceed the average (like PR #1039) to investigate delays in CI/CD or code review. * **Process Optimization:** Comparing the **Median** vs. **Average** to see if a few "outlier" PRs are skewing your team's performance data. * **Auditability:** Linking every production change back to its original PR for full traceability. ----- # Time to Restore Service Details The **Time to Restore Service Details** view tracks how efficiently your organization recovers from service interruptions and production incidents. ### Aggregate Metrics * **Average:** The mean time required to resolve incidents and restore full service functionality (**28 minutes**). * **Median:** The typical recovery time across all recorded incidents (**21 minutes**). * **Rating:** The current performance tier based on restoration speed (e.g., **Elite**). --- ### Recent Incidents This section provides a logs of specific events that triggered a service restoration, including creation/resolution timestamps and the total time taken to recover. | Incident | Created | Resolved | Restored In | | :--- | :--- | :--- | :--- | | **Database connection pool exhaustion** | 3/26/2026, 9:30:31 AM | 3/26/2026, 9:52:31 AM | 22 minutes | | **CDN cache invalidation delay** | 3/19/2026, 9:30:31 AM | 3/19/2026, 9:48:31 AM | 18 minutes | | **Webhook retry queue backlog** | 3/10/2026, 9:30:31 AM | 3/10/2026, 10:15:31 AM | 45 minutes | ### Use Case * **Post-Mortem Analysis:** Use specific incident data to perform Root Cause Analysis (RCA) and identify why certain issues (like queue backlogs) take longer to resolve than others. * **SLA Monitoring:** Ensure that restoration times remain within agreed-upon Service Level Agreements (SLAs). * **Infrastructure Trends:** Identify recurring incidents (e.g., database or CDN issues) that may require long-term architectural improvements rather than just quick fixes. --- # Change Failure Rate Details The **Change Failure Rate Details** view provides a high-level and granular breakdown of deployment stability. It measures the percentage of releases that result in a failure in production, requiring a rollback or emergency fix. --- ## Performance Overview This section summarizes your stability health based on recent deployment history. | Metric | Value | Description | | :--- | :--- | :--- | | **Failure Rate** | **4.1%** | The percentage of total deployments that resulted in a failure. | | **Failed / Total** | **4 / 97** | The raw ratio of failed deployments against total production releases. | | **Rating** | **Elite** | Your performance tier based on industry DORA benchmarks. | --- ## Recent Failures The following log details specific deployments that triggered a failure state. This includes automated system responses and error descriptions. ### Deployment: `deploy-9f3a` - **Status:** `Failed` - **Error:** Memory limit exceeded in EU-West pod, rolled back automatically. - **Deployed At:** Mar 24, 2026, 9:30:31 AM - **Failed At:** Mar 24, 2026, 9:35:31 AM ### Deployment: `deploy-8b12` - **Status:** `Failed` - **Error:** Health-check timeout due to slow migration script. - **Deployed At:** Mar 13, 2026, 9:30:31 AM - **Failed At:** Mar 13, 2026, 9:33:31 AM --- ## Analysis & Use Cases :::info Use Case: Deployment Safety Monitor the effectiveness of automated rollbacks and health checks. In the case of **deploy-9f3a**, the system successfully mitigated downtime by automatically reverting the change within 5 minutes. ::: ### Infrastructure Tuning Identifying if specific regions or resource constraints (like the **EU-West pod** memory limits) are consistent sources of failure allows for proactive infrastructure scaling before the next deployment cycle. ### Risk Assessment Use the **4 / 97** ratio to determine if the team is maintaining a healthy balance between speed and quality. An "Elite" rating suggests that your CI/CD pipeline is robust enough to catch most issues before they impact the broader user base. --- ## Application Deployment Types URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/Deployment-Types ## 1. Docker Deployment Docker deployment allows you to deploy applications using container images. This method gives you full control over your runtime environment and is ideal for production-ready applications. * Deploy using custom Docker images * Suitable for advanced use cases Learn more: [Docker Deployment](/deploy/docker-deployment) --- ## 2. GIT Deployment Source code deployment enables you to deploy applications directly from your codebase. The platform automatically builds and runs your application. * No need to create Docker images manually * Easy integration with Git repositories Learn more: [Deploy Application](/Deploy-App/Application/Deploy-application) --- ## 3. Archive Upload Deployment This allows you to deploy application using zip or TAR files Learn more: [Upload Archive](/deploy/application-upload-archive) --- --- ## Deploy Database URL: https://docs.nife.io/UI-Guide/database # Deploy Database The **Deploy Database** method allows you to deploy and manage a database directly from the platform. This provides a robust, managed backend for your applications. ### Step 1: Navigate to the Database Section From the dashboard, navigate and select **Database** from the sidebar. --- ### Step 2: Deploy New Database Click on the **Create Database** or **Deploy Database** button to initiate the database creation process. --- ### Step 3: Select Organization Choose the **organization** under which the database will be created. --- ### Step 4: Choose Database Type Select the type of database you want to deploy from the available options (e.g., PostgreSQL, MySQL, MariaDB, MongoDB, Redis). --- ### Step 5: Configure Database Details Provide the required configuration details such as the **database name**, **username**, **password**, and **storage size**. --- ### Step 6: Specify Regions and Resources Select the geographic deployment region and confirm your resource allocation limits. --- ### Step 7: Review Database Configuration Before proceeding, review the summary page to ensure all your selected options and configurations are correct. --- ### Step 8: Deploy Database If the configuration looks good, click the **Deploy Database** button. Wait for the provisioning process to complete, after which your database will be active. --- --- ## User Profile Settings URL: https://docs.nife.io/deploy/profile # Profile The **Profile** section provides a centralized interface to manage your personal details, security settings, preferences, and integrations. It enables you to customize your account, secure access, and monitor activity — all from a single place. --- ## Overview The **Profile** section includes: * Account information and personal details * Security and authentication settings * UI customization preferences * Integration management * Activity tracking --- ## Settings Dashboard ![Settings Overview](/img/profile/profile-settings-overview.png) The settings dashboard provides a quick overview of your account configuration. ### It displays: * Notification status * Two-Factor Authentication (2FA) status * API token count * Navigation tabs for different settings sections --- ## Profile Overview ![Profile Overview](/img/profile/profile-overview.png) The profile overview displays key account information: * User name * Email address * Current subscription plan * Account summary --- ## Profile Details ![Profile Details](/img/profile/profile-details.png) You can manage the following information: * Full name * Email address * Phone number * Company name * Industry * Location --- ## Profile Information (Edit) ![Profile Information](/img/profile/profile-profile-info.png) This section allows you to update your personal and organizational details. ### Editable fields: * First Name and Last Name * Company * Phone number * Location * Industry > The email address cannot be changed from this section. --- ## Security Settings ![Security](/img/profile/profile-security.png) The **Security** section helps you protect your account. ### You can: * Enter your current password * Set a new password * Confirm password changes > Use a strong password to ensure better account security. --- ## Preferences ![Preferences](/img/profile/profile-preferences.png) The **Preferences** section allows you to customize your user interface. ### Available options: * **Dark Mode** – Enable or disable dark theme * **Compact View** – Reduce spacing for a denser layout * **Animations** – Enable smooth UI transitions * **Font Size** – Adjust text size for better readability > Customize the interface based on your comfort and workflow. --- ## Integrations The **Integrations** section allows you to securely connect external tools and services. --- ### SSH Key ![SSH Key](/img/profile/profile-ssh-key.png) Upload or paste your SSH private key to enable secure server access. ### Supported formats: * `.pem` * `.key` * `.crt` * `.txt` > SSH keys are securely stored and encrypted. --- ### API Keys ![API Keys](/img/profile/profile-api-keys.png) Manage API keys for programmatic and third-party integrations. ### Features: * Upload or paste API keys * Assign an optional name * Use for automation and integrations > Keep your API keys secure and do not expose them publicly. --- ## Recent Activity ![Recent Activity](/img/profile/profile-activity.png) The **Recent Activity** section provides a timeline of actions performed in your account. ### Examples include: * Application creation * Application deletion * Scaling operations * Region changes This helps in monitoring and auditing account activity. --- ## Danger Zone ![Danger Zone](/img/profile/profile-danger-zone.png) The **Danger Zone** contains critical and irreversible actions. ### You can: * Request account deletion * Permanently remove your account and associated data > This action is irreversible and cannot be undone. --- --- ## Stand Alone Server URL: https://docs.nife.io/Deploy-App/stand-alone-server # Stand Alone Server The **Stand Alone Server** deployment option allows you to deploy applications directly to a dedicated server instance. This approach is useful when you want full control over the server environment and want to run containerized workloads without relying on a distributed cluster. Using this wizard, you can: - Register and deploy to a **new server** - Deploy workloads on an **existing server** - Deploy containers using **Docker Services** - Deploy multi-container applications using **Docker Compose** --- ## Step 1: Open the Stand Alone Server Deploy To begin deploying an application using a standalone server: 1. Open the **Deploy App** from the Nife dashboard. 2. Select **Stand Alone Server**. This section of the platform is used for deploying workloads directly onto a single machine instead of a cluster or distributed infrastructure. Once selected, the wizard will guide you through configuring the server and deployment method. --- ## Step 2: Choose the Target Server At this stage, you must decide whether to deploy your application to: - A **new server** - An **existing registered server** This step determines where the application will run. --- ### Option 1: Deploy to a New Server Use this option if you do not yet have a registered standalone server. #### Step 1 — Select New Server Click **New Server**. #### Step 2 — Enter Server Details Provide the required information to register the server: - **Server Name** A unique name used to identify the server in the platform. - **Public IP / Host Address** The reachable address of the machine where deployments will run. - **Description (optional)** Additional notes describing the purpose of the server. #### Step 3 — Register the Server Click **Register Server**. This action adds the server to the Nife platform so future deployments can target it. --- ### Option 2: Deploy to an Existing Server If a server has already been registered in the platform, you can deploy directly to it. #### Step 1 — Select Existing Server Choose **Existing Server**. #### Step 2 — Select the Server From the list of registered servers: 1. Choose the server where the application should run 2. Click **Next** to proceed to deployment configuration --- ## Step 3: Choose the Deployment Method After selecting the target server, you must choose how the application will be deployed. Two deployment methods are available: ### Docker Services Deploy a **single container service** using a Docker image. Common use cases: - Running backend APIs - Running containerized applications - Deploying services from a container registry or Git repository ### Docker Compose Deploy **multiple containers together** using a `docker-compose.yml` file. Common use cases: - Applications with multiple services - Full stack deployments (database + API + frontend) --- ## Step 4: Deploy Using Docker Services Docker Services allow you to run a container as a standalone application. You can deploy the container using three different sources. --- ### Option 1: Build Docker Image from GitHub Use this option when the Docker image must be built directly from source code stored in a GitHub repository. #### Step 1 — Select Build from GitHub Click **Build from GitHub**. #### Step 2 — Configure Repository Details Provide the following information: - **Repository URL** - **Branch** - **Dockerfile Path** - **Image Tag** --- #### Step 3 — Configure Build Settings At this stage you can configure additional build parameters such as environment variables or build options. --- #### Step 4 — Review Build Configuration Verify that: - The repository URL is correct - The branch and Dockerfile path are valid - The image tag is correctly defined #### Step 5 — Deploy Click **Deploy**. The platform will: 1. Clone the GitHub repository 2. Build the Docker image 3. Deploy the container to the server --- ### Option 2: Deploy from Docker Registry Use this option if the Docker image already exists in a container registry. #### Step 1 — Select Docker Registry Choose **Docker Registry**. #### Step 2 — Enter Image Information Provide: - **Image Name** - **Image Tag** - **Registry URL** If the registry is private, you must also provide authentication credentials. #### Step 3 — Deploy Click **Deploy** to pull the image from the registry and run it on the selected server. --- ### Option 3: Upload Docker Archive This option allows you to deploy a container image stored locally as a Docker archive. #### Step 1 Select **Upload Archive**. #### Step 2 Upload the Docker image archive file. This file typically contains a pre-built Docker image exported from another environment. #### Step 3 Click **Deploy** to run the container. --- ## Step 5: Deploy Using Docker Compose Docker Compose allows you to deploy applications consisting of multiple containers. Examples: - Web server + database - Microservices architecture - Full stack applications --- ### Option 1: Upload Compose File If you already have a `docker-compose.yml` file locally, you can upload it directly. #### Step 1 Select **Upload File**. #### Step 2 Upload the `docker-compose.yml` file. #### Step 3 The platform will automatically detect the services defined inside the compose file. #### Step 4 Click **Deploy** to start the services. --- ### Option 2: Import Compose File from GitHub This option allows the platform to retrieve the compose file directly from a GitHub repository. #### Step 1 Select **Import from GitHub**. #### Step 2 Provide repository details: - GitHub repository URL - Branch - Path to the compose file - GitHub access token (if repository is private) #### Step 3 Review the configuration and verify that the compose file path is correct. #### Step 4 Click **Deploy**. --- ## Step 6: Review and Deploy Before starting the deployment, review all configuration details. Confirm the following: - Target server - Deployment method - Image source or repository - Container configuration ### Final Step Click **Deploy** to launch the application. The platform will then provision the container or services on the selected standalone server. ## Related Resources - 🛠️ [DevOps Forge](https://freetools.nife.io/devops-forge/) — pick a stack template and generate a ready-to-use Dockerfile, docker-compose.yml, and environment config - 🛠️ [YAML Formatter & Validator](https://freetools.nife.io/yaml-formatter/) — validate your docker-compose.yml before uploading --- ## Build with Bitbucket Pipelines & Deploy to Nife | CI/CD Guide URL: https://docs.nife.io/Guides/Build-using-Bitbucket-and-Deploy To deploy to Bitbucket we essentially need four things. The application you want to deploy. A runnable copy of nifectl. A nife.toml file. Your Nife API Token. On Bitbucket, the CI/CD system takes care of the first requirement for you. The CI/CD process is all driven by a .bitbucket-ci.yml files. Lets walk through the .bitbucket-ci.yml I used to deploy from Bitbucket to Nife. Step 1- Create a new file in Bitbucket repository with name .bitbucket-ci.yml. In this file write down the stage. Inside stage write build and Package. Once you have selected the image, the deployment process begins. Bitbucket’s CI/CD engine will automatically copy the contents of the repository over to the Runner image. Step 2 - Next is installation process of nifectl into our runner. For Bitbucket we want to do this before it runs our deployment scripts, so we will add it to the default section as the before_script. Then it uses curl to download the nifectl install script and runs that. Using the script ensure that the right version of the nifectl is installed. This covers requirement two. Step 3 - Build the sample docker file and log in to nifectl using nifectl auth login and deploy using . Configuring for Nife ##### Prerequisite: Before proceeding further we install nifectl with the command in the github actions. We need nife.toml file and an auth token. The nife.toml file will be needed to create using nife init so you will likely to do this locally and then add to the repository, for nifectl to find when it is run in deployment. For the API token use nifectl, using the token previously logged with. Run nifectl auth token and this will display the token your session. Use this token value into NIFE_ACCESS_TOKEN environment variables inside the deployment. For Bitbucket you will need to go to the repository settings, select CI/CD then expand the variable. After creating the new variable copy the auth token value into the value field. Then turn on the protected and masked switches so that it is not leaked through the logs. Ready to Deploy Now we are ready to commit the bitbucket-ci.yml to the repository and install their CI/CD pipeline. On the Bitbucket web UI, head to CI/CD and then jobs, and you should see the deployment job running. Click on the running badges to see the progress. Job’s Done That’s pretty much for deploying with Bitbucket CI/CD system. There’s lot more functionality in there allowing you to structure the pipeline as you want and trigger different jobs at different times. --- ## Build With GitHub Actions & Deploy to Nife | CI/CD Pipeline Guide URL: https://docs.nife.io/Guides/Build-using-Github-and-Deploy To deploy to GitHub, we essentially need four things. 1. The application you want to deploy. 2. A runnable copy of nifectl. 3. A nife.toml file. 4. Your Nife API Token. Building a Docker image automatically is an important step in building a CI/CD pipeline for your Docker workloads. Steps to Create Docker Images With GitHub Actions What You Need to Get Started GitHub account Basic understanding of Git or GitHub. Familiarity with Docker. Step 1 – Create a GitHub Repository Before getting started you need a GitHub repository. Log into GitHub and start a new project or go to the new repository page. For example, we are creating a new repository called nginx-docker-github-actions. Additionally our repo is public so you can use it as a reference. If you are familiar with using Git from the command line, you can clone this repository to your computer. If not you can perform your commits through the GitHub web interface. For the sake of simplicity we will use the web interface in this tutorial. Step 2 – Commit a Dockerfile to Your GitHub Repository Next we will create a Dockerfile. A Dockerfile is the build manifest or recipe for a Docker container image. Its contents include the base image we can use to run. We can modify the image to suit our needs. Create a text file called Dockerfile with the following contents: ```dockerfile # Basic nginx dockerfile starting with Ubuntu 20.04 FROM ubuntu:20.04 RUN apt-get -y update RUN apt-get -y install nginx ``` Let's walk through the contents of the Dockerfile. The first line is a comment describing what the intention for the Dockerfile is. FROM tells Docker which is the base image. We are using the 20.04 version of Ubuntu from Dockerhub. RUN tells Docker to execute commands inside container image it is building. In this case we are using the apt-get command to update the cache of available packages. Finally we install the NGINX package. In summary, this Dockerfile takes the base Ubuntu Docker image and installs the NGINX package on top of it. Now put the contents of the Dockerfile into the root of your GitHub repository. You can do this by using the add file button on your repository's main page. If you choose “create new file” you will be provided with an editor. Just copy and paste the Dockerfile contents and save the commit. Otherwise you can choose “Upload files” and upload the Dockerfile from your computer. Now that we have the Dockerfile in our repository, we need to set up an action workflow. Step 3 – Select a GitHub Action Workflow Select the Actions tab. Go to the main page for your repository. Click on the Actions tab. In the Actions tab click new workflow. Use the new workflow button to create a Docker image creation workflow. You will be presented with suggestions for workflows. Because we have a Dockerfile in our repo the Docker workflows will be displayed prominently. We choose the “Docker image” workflow which can be seen in the right of the screenshot below. Click the “Set up this workflow” button. Choose the “docker image” workflow by clicking “set up this workflow.” Step 4 – Save Your New GitHub Action Workflow Now you should see a editor with a new file created. This file contains the information that drives the GitHub action. Click the “start commit” button to save this file. You will be prompted for commit message. The commit message will go in your repository changelog. Make it informative so you can remember why you made this change later on. Note the location of the file .github/workflows. This new directory created in our repository stores our actions. Step 5 – Make a Change and Trigger a Docker Image Build To trigger a build we must make a change to our main branch. Make a simple comment change to the Dockerfile so it looks like this: ```dockerfile # Add a new comment to trigger build. # basic nginx dockerfile starting with Ubuntu 20.04 FROM ubuntu:20.04 RUN apt-get -y update RUN apt-get -y install nginx ``` The easiest way to do this is through the GitHub web interface. Go to your repository page and click on the docker file. Next use the edit this file button. Make the change and commit to the main branch. GitHub will detect the change to your repo and kick off a new build. You should see an indicator that the build has been kicked off. The status indicator uses colors to indicate your build status. The green check mark indicates success, yellow circle indicates in-progress and a red circle indicates failure. To see your build logs click on the indicator. It takes you to the page for that build. From there you can drill down into the steps and logs for each step. Additionally, you will get emails when the build fails and can easily configure your alerting in GitHub. Configuring for Nife ###### Prerequisite Before proceeding further we install nifectl with the command in the GitHub actions. We need nife.toml file and an auth token. The nife.toml file will be needed to create using nife init so you will likely to do this locally and then add to the repository, for nifectl to find when it is run in deployment. For the API token use nifectl, using the token previously logged with. Run `nifectl auth token` and this will display the token for your session. Use this token value into NIFE_ACCESS_TOKEN environment variables inside the deployment. For GitHub, You will need to go to the repository settings. Select CI/CD then expand the variable. After creating the new variable copy the auth token value into the value field. Then turn on the protected and masked switches so that it is not leaked through the logs. Ready to Deploy Now we are ready to commit the github-ci.yml to the repository and install their CI/CD pipeline. On the GitHub actions web UI, head to CI/CD then jobs and you should see the deployment job running. Click on the running badges to see the progress. Job's Done And that’s pretty much for deploying with CI/CD system. There’s lot more functionality in there allowing you to structure the pipeline as you want and trigger different jobs at different times. --- ## Build with Jenkins & Deploy to Nife | CI/CD Guide URL: https://docs.nife.io/Guides/Build-using-Jenkins-and-Deploy Before proceeding further, lets install Jenkins on top of EC2 instance and Configure Jenkins. Installation process on Jenkins can be done using [these steps](https://dev.to/aws-builders/jenkins-installation-configuration-on-aws-ec2-linux-instance-3npl) To deploy to Jenkins we essentially need four things. 1. The application you want to deploy. 2. A runnable copy of nifectl.toml 3. A nife.toml file. 4. Your Nife API Token. On Jenkins, the CI/CD system takes care of the first requirement for you. Step 1- Lets create our First pipeline. Click on New Item. Enter a job name and select Pipeline as shown in the image below. Step 2 -In the configuration page of Jenkins, enter the github repo URL. Step 3 -In the pipeline section, we have written a pipeline script. For Configuring with Nife ##### Prerequisite: Before proceeding further we install nifectl with the command in the github actions. We need nife.toml file and an auth token. The nife.toml file will be needed to create using nife init so you will likely to do this locally and then add to the repository, for nifectl to find when it is run in deployment. For the API token use nifectl, using the token previously logged with. Run nifectl auth token and this will display the token your session. Use this token value into NIFE_ACCESS_TOKEN environment variables inside the deployment. Ready to Deploy We are now ready to build the job. On the Jenkins web UI, head to dashboard. You will see jobs and the deployment job running. Now Click on the running badges to see the progress. Job’s Done And that’s pretty much for deploying with Jenkins CI/CD system. There’s lot more functionality in there allowing you to structure the pipeline as you want and trigger different jobs at different times. --- ## Build with Travis CI/CD & Deploy to Nife | CI/CD Guide URL: https://docs.nife.io/Guides/Build-using-Travis-CI-CD-and-Deploy To deploy to Travis we essentially need four things. The application you want to deploy. A runnable copy of nifectl. A nife.toml file. Your Nife API Token. On Travis, the CI/CD system takes care of the first requirement for you. The CI/CD process is all driven by a .travis-ci.yml files. Lets walk through the .travis-ci.yml. To configure Travis, we need to create a file named .travis.yml in the root folder of your project. This is where we'll describe the actions that will be executed by Travis. The steps to create the .travis.yml file for the back end application are the following: 1. Choose Language and Version: in this case we are going to choose nodejs (other entries available: ruby, java, python...). 2. Docker Service: indicate Travis that we are going to make use of Docker (travis CI can run, build docker images and push images to a container registry). 3. Install Dependencies: like in a local environment, we can just execute npm install.& nifectl. 4. Test Application: in our case we will run the unit tests that have been implemented for the application. 5. Build Docker Image: if tests pass, we just create the container image (this will search for a Dockerfile file at the root of your repository and follow the instructions from that file to create a production build, storing it in a Docker image container). 6. Log into Docker Hub: before pushing the generated image to the Docker Hub Registry we need to login into Docker Hub. 7. Tag Docker Images: We need to identify the container image with a given tag. 8. Push Docker Images: push the generated image to the Docker Hub registry. A summary of this build process: Configuring for Nife ##### Prerequisite: Before proceeding further we install nifectl with the command in the github actions. We need nife.toml file and an auth token. The nife.toml file will be needed to create using nife init so you will likely to do this locally and then add to the repository, for nifectl to find when it is run in deployment. For the API token use nifectl, using the token previously logged with. Run nifectl auth token and this will display the token your session. Use this token value into NIFE_ACCESS_TOKEN environment variables inside the deployment. For Travis you will need to go to the repository settings, select CI/CD then expand the variable. After creating the new variable copy the auth token value into the value field. Then turn on the protected and masked switches so that it is not leaked through the logs. Ready to Deploy Now we are ready to commit the .travis-ci.yml to the repository and install their CI/CD pipeline. On the Travis web UI, head to CI/CD, then jobs, after which you should see the deployment job running. Click on the running badges to see the progress. Job’s Done That’s pretty much for deploying with Travis CI/CD system. There’s lot more functionality in there allowing you to structure the pipeline as you want and trigger different jobs at different times. --- ## Nife App Deployment Time | How Fast Does Deployment Take? URL: https://docs.nife.io/Guides/Deployment-Time Deployment-Time & Access Time Deployment of an application takes about a few seconds. While the application is deployed, in the backend 1. We are building the image and updating on a repository 2. We are searching for the location associated with the application 3. We are deploying the application on that location Once deployed, a global URL with the domain name is generated Note: It takes about 90 seconds for DNS to resolve. --- ## A/B Testing URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Deployment-Strategies/AB-testing ### A/B Testing **A/B Testing** is a deployment strategy that runs two versions of your application — **Variant A (Control)** and **Variant B (Test)** — side by side against real, live traffic, so you can measure which one actually performs better before committing to it fully. Unlike Canary (which gradually shifts all traffic to a single new version) or Blue-Green (which switches all traffic at once), A/B Testing keeps both versions running in parallel for as long as you need, splits traffic between them by percentage, and gives you the tracked data — users, conversions, conversion rate — to make an evidence-based call on which variant wins. ### How it works 1. **Deploy with the A/B Testing strategy.** Select **A/B Testing** as the deployment strategy for an application (from the dashboard's deploy wizard, or via `nifectl deploy --strategy ab-testing`). Nife creates two independent Deployments and Services — `-variant-a` and `-variant-b` — both starting from the same image and configuration. 2. **Nife tags each variant automatically.** Every pod is stamped with a `VARIANT` (and `REACT_APP_VARIANT`, for Create-React-App-based apps) environment variable set to `a` or `b`. Your application doesn't need to guess which variant it's running as — it can read this directly. 3. **Traffic is split between variants.** By default, traffic starts at 50% / 50%. You can change this at deploy time or at any point during the test. 4. **Your app reports views and conversions.** Nife tracks infrastructure metrics (latency, error rate, pod health) automatically, but a "conversion" — a signup, a purchase, a completed action — is a business outcome only your app can recognize. Add two small tracking calls to your app (see below) so Users/Conversions aren't stuck at 0. 5. **Review results and declare a winner.** Once enough traffic has been tracked, the dashboard tells you whether the difference between variants is statistically significant, and lets you route 100% of traffic to the winner. ### Setting the traffic split **From the dashboard:** open the app's **A/B Testing** tab → **Traffic Control**, drag the split slider, and save. **From `nifectl`:** pass the split directly as flags, or leave them off to be prompted interactively. ```bash nifectl deploy --strategy ab-testing --traffic-a 70 --traffic-b 30 ``` ``` traffic for a = 70 traffic for b = 30 ``` Variant B's percentage always fills the remainder of Variant A's, and the two must add up to 100. ### Adding tracking to your app Add these two calls to your application — nife.io fills in which variant is running via environment variables, you only need to send the event. :::important The values below — the URL, `appName`, and `orgSlug` — are placeholders. Before using this snippet, replace `example.com` with your actual Nife API endpoint, and `your-app-name` / `your-org-slug` with your real app name and organization slug (both visible in your app's Configuration page). ::: ```js // On page load / app start — counts as one "view" for this variant fetch("https://example.com/api/v1/abtest/track", , body: JSON.stringify(), }); ``` ```js // On your success event (signup, purchase, checkout, etc.) — counts as a "conversion" fetch("https://example.com/api/v1/abtest/track", , body: JSON.stringify(), }); ``` Without these calls, Users and Conversions stay at 0 and a winner can never be declared, since there's no data to judge either variant on. ### Reading results The **Results & Actions** tab shows, per variant: total users, total conversions, conversion rate, average latency, and error rate — plus the improvement of one variant over the other and the statistical confidence behind that number. **Declare A Winner** / **Declare B Winner** only unlock once both variants have enough tracked views and the result clears the significance threshold — this prevents declaring a winner off a handful of misleading data points. If the buttons stay disabled, hover them to see why (not enough data yet, or the two variants are performing too similarly to call). ### Declaring a winner or ending the test - **Declare A/B Winner** routes 100% of traffic to the chosen variant, ends the test, and — unless you uncheck the cleanup option in the confirmation dialog — deletes the losing variant's Deployment and Service so it stops consuming cluster resources. - **End Test** ends the test without declaring a winner. Traffic stays at whatever split it was last set to, and both variants keep running; use this if you want to stop the experiment without picking a side yet. Once confirmed, the winning variant is marked, traffic shifts to 100%, and a toast confirms the outcome: :::tip Give a test enough real traffic before declaring a winner. A result can look "significant" with very few users just by chance — the dashboard's significance gate is there to protect you from that, but it isn't a substitute for giving the test enough time to run. ::: ### See also * [Deployment Strategies](/Deploy-App/Application/Strategies) — how A/B Testing compares to Rolling, Blue-Green, and Canary * [`nifectl deploy`](/CLI/deploy) — CLI reference, including `--strategy`, `--traffic-a`, and `--traffic-b` --- ## Blue-Green Deployment URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Deployment-Strategies/Blue-Green-Testing ### Blue-Green Deployment **Blue-Green Deployment** is a deployment strategy that keeps two identical environments for your application — **Blue** and **Green** — running at the same time. Only one of them is ever "active" and receiving live traffic; the other sits idle, ready to receive the next version. When you redeploy, the new version is built out in the idle slot, verified while it's still isolated from real traffic, and then promoted with a single traffic switch. Unlike Rolling (which replaces instances gradually, with both versions briefly serving traffic together) or Canary (which shifts a percentage of traffic at a time), Blue-Green is all-or-nothing: traffic is either fully on Blue or fully on Green, never split between them. That makes both the switch and the rollback effectively instant. ### How it works 1. **Deploy with the Blue-Green strategy.** Select **Blue-Green** as the deployment strategy for an application (from the dashboard's deploy wizard, or via `nifectl deploy --strategy blue-green`). The very first deployment starts in the **Blue** slot. 2. **Redeploy lands in the idle slot.** Every subsequent redeploy creates a new Deployment in whichever color is currently idle — never in the one taking live traffic — so the version currently serving users is never touched mid-deploy. 3. **Both environments are visible and health-checked independently.** The app's **Strategies** tab shows the image/version running in each color, and whether each one is currently healthy, before you commit to anything. 4. **Switch traffic when you're ready.** A single **Switch to Blue** / **Switch to Green** action flips which color is live. There's no gradual ramp — the switch is immediate. 5. **Roll back the same way.** Since the previous version is still sitting in the other color slot (until it's replaced by the next redeploy), rolling back is just switching traffic back to it. ### Viewing Blue-Green status Open the app's **Strategies** tab to see the current state of both environments: which color is active, the image/version deployed to each, and a live health check for each side. **Blue Healthy** / **Green Healthy** reflect whether that slot's pods are currently passing their health checks — check this before switching, since switching to an unhealthy color sends live traffic to something that isn't ready. ### Switching traffic Click **Switch to Green** (or **Switch to Blue**, depending on which side is currently idle) to flip live traffic to the other environment. The switch takes effect immediately, and the panel updates to show the new active color along with a **Last Switch** timestamp. Because the previously-active color is left running (not deleted) right after a switch, switching back is just as immediate — click **Switch to Blue** again and traffic returns to exactly what was serving users before. :::tip Verify the idle color's health and version before switching. Since Blue-Green has no gradual ramp-up like Canary, whatever is running in the color you switch to receives 100% of live traffic the instant you click. ::: ### Benefits - **Instant rollback** — switch back to the previous color with a single action, no redeploy required - **Zero downtime** — the switch is a traffic cutover, not a rolling restart - **Full testing before going live** — the new version runs and can be verified in the idle slot before it ever sees real traffic ### See also * [Deployment Strategies](/Deploy-App/Application/Strategies) — how Blue-Green compares to Rolling, Canary, and A/B Testing * [A/B Testing](/UI-Guide/Apps-&-their-Management/App-management/Deployment-Strategies/AB-testing) — for splitting live traffic between two versions instead of switching all at once * [`nifectl deploy`](/CLI/deploy) — CLI reference, including `--strategy` --- ## Canary Deployment URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Deployment-Strategies/Canary ### Canary Deployment **Canary Deployment** is a deployment strategy that tests a new version against a small slice of live traffic before it earns the rest. Instead of switching everyone over at once (Blue-Green) or splitting traffic between two long-running variants (A/B Testing), Canary starts a new version small — 10% of traffic by default — and lets you grow that percentage, or roll it back to zero, once you've seen how it actually behaves. Unlike Blue-Green (all-or-nothing, instant switch) or A/B Testing (both variants intended to run in parallel indefinitely for comparison), Canary is meant to converge: the canary either earns enough confidence to take over, or it gets rolled back. It's the strategy to reach for when you want real production traffic to validate a change before it reaches everyone. ### How it works 1. **Deploy with the Canary strategy.** Select **Canary** as the deployment strategy for an application (from the dashboard's deploy wizard, or via `nifectl deploy --strategy canary`). 2. **First deploy seeds both slots identically.** On an app's very first deploy there's nothing to compare the new image against yet, so canary starts as a copy of the initial image — primary and canary are identical until the next redeploy. 3. **Every redeploy after that creates a new canary automatically.** The image you just deployed becomes the canary, running at reduced scale (1 replica) behind a separate `-canary` Service, with a 90% / 10% traffic split taking effect between primary and canary immediately. 4. **Primary is updated to match, at the same moment.** Nife also updates the existing primary Deployment to the new image as part of the same redeploy, so opening the app right after a redeploy shows the new version regardless of which slot happens to serve the request. The 90/10 traffic split still exists and is still yours to adjust or roll back — but from that point on both slots are running the same code. This is a deliberate choice: redeploys always take effect right away rather than leaving primary frozen on the old image, and the traffic split's job is to control how much *live traffic* is being watched on the newest infrastructure, not which code is running. 5. **Only the latest canary sticks around.** If you redeploy again before promoting or rolling back, the previous canary is retired and replaced — there's only ever one active canary per app. 6. **Validate, adjust traffic, promote, or roll back**, using the app's Strategies tab or the corresponding `nifectl canary` commands, as confidence in the new version grows or drops. ### Viewing canary status Open the app's **Strategies** tab to see the **Canary Deployment Status** panel: whether a canary exists, the image running in Primary and Canary, the current traffic split, and a metrics diff between the two. - **Primary Version / Canary Version** — the image tag currently running in each slot. - **Traffic Split Configuration** — the current Primary % / Canary % split. - **Canary Metrics** — Error Rate Diff, Latency Diff, and Throughput Diff between canary and primary, plus an overall **Healthy** indicator, computed from live Prometheus metrics for each slot. From `nifectl`, the equivalent is: ```bash nifectl canary status --app --org ``` which prints the same traffic split, pod/health summary, and a metrics diff. ### Setting the traffic split Click **Update Traffic** on the Strategies tab, enter the percentage of traffic to send to canary, and confirm. The primary percentage is always `100 - canary`, so you only ever set one number. From `nifectl`: ```bash nifectl canary update-traffic --app --org --canary-percentage 40 ``` Traffic changes take effect against the live NifeX load balancer route, not just a stored configuration value — expect it to apply within a few seconds. ### Validating canary Click **Validate Canary** (or run `nifectl canary validate`) before increasing traffic or promoting. Validation checks, in order: - Canary pods are ready - The canary Service has live endpoints - The canary's health check endpoint responds (non-blocking — a missing health endpoint won't fail validation on its own) - Canary metrics (error rate, latency) are within a healthy range compared to primary A failed validation lists exactly which check failed, so you know whether to wait, investigate, or roll back rather than promote. ### Promoting canary Click **Promote Canary** (or run `nifectl canary promote`) to gradually ramp canary traffic up in steps — 25% → 50% → 75% → 100% — pausing between each step to re-check canary's metrics before continuing. If canary looks unhealthy at any step, promotion stops and returns an error rather than continuing to ramp up a failing version. :::note Promotion shifts *traffic* to 100% canary — it doesn't delete the old primary or relabel canary as the new primary afterward. If you promote to 100% and then want a clean single-Deployment state again, redeploy normally afterward. ::: ### Rolling back canary Click **Rollback Canary** (or run `nifectl canary rollback`) to immediately set traffic back to 100% primary / 0% canary. You can optionally delete the canary Deployment and Service at the same time (`--delete-canary` on the CLI, or leave the checkbox ticked in the confirmation dialog on the dashboard) — otherwise canary keeps running at 0% traffic so you can adjust and re-test without a full redeploy. ### Benefits - **Reduced blast radius** — a bad version only ever reaches a small percentage of users before you notice - **Real user testing** — validated against actual production traffic and metrics, not synthetic tests - **Easy, fast rollback** — one action returns 100% of traffic to the known-good primary ### See also * [Deployment Strategies](/Deploy-App/Application/Strategies) — how Canary compares to Rolling, Blue-Green, and A/B Testing * [Blue-Green Deployment](/UI-Guide/Apps-&-their-Management/App-management/Deployment-Strategies/Blue-Green-Testing) — for an instant, all-or-nothing switch instead of a gradual ramp * [A/B Testing](/UI-Guide/Apps-&-their-Management/App-management/Deployment-Strategies/AB-testing) — for comparing two versions side by side indefinitely, rather than converging on one * [`nifectl deploy`](/CLI/deploy) — CLI reference, including `--strategy` --- ## Build file deployment URL: https://docs.nife.io/UI-Guide/Site-deployment/Build-File-Deployment `} Effortlessly deploy your website by uploading a build file generated with npm run build. ### To Deploy Your Website Using a Build File, Follow These Steps: ##### 1. **Navigate to the Dashboard:** + From the sidebar menu, click on "Site." ##### 2. **Create a New Site:** + Click on "+ New site." ##### 3. **Choose Organization:** + Select the organization where you want to deploy the website. ##### 4. **Deploy your build:** + Upload build file: If you choose to upload from your local device, ensure that you have the build file in .zip format ready to upload. + Import from github: + if you prefer to import from GitHub, the repository should contain only the build files necessary for deployment and you will need to provide the repository link and branch name. + Please note that currently, we support only public repositories. ##### 5. **Deploy** + Once the zip file is uploaded or Imported from GitHub , the application will automatically deploy your website. ##### 6. **After Deployment** + Once the deployment process is complete, click on the Name of application to view its details. + Click on "Open Site" to visit your website and verify the deployment. ##### 7. **Custom-Domain Option** + Below the application details, you'll find the custom domain option. Click on that option to access the link where you can map your domain to the deployed website. --- ## Configure a Custom Domain on Nife | CNAME DNS Setup Guide URL: https://docs.nife.io/Guides/Custom-Domains Assign a custom domain To assign a custom domain, you need to make an entry to the domain's DNS records. 1. Go to the domain provide Add i. Record Type: CNAME ii. Name: 'custom name' iii. Value: 'value generated from the deploy command' iv. TTL (optional): doesn't matter Note: It may take upto 24 hours for domain propagation. --- ## How to Deploy NextChat on Nife-Deploy OpenHub | Nife Docs URL: https://docs.nife.io/Guides/Openhub/How-to-Setup-Nextchat-The-Best-Self-Hosted-AI-Chat-UI #### How to Set Up and Use NextChat on Nife-Deploy OpenHub: Deploying a Self-Hosted AI Chat Interface NextChat (ChatGPT Next Web) is a lightweight and modern AI chat interface that allows users to interact with large language models such as OpenAI, Azure OpenAI, Gemini, and other compatible APIs through a clean web interface. The platform provides a fast and responsive UI for chatting with AI models while allowing developers and organizations to host the application themselves. Self-hosting ensures that API keys, conversations, and configurations remain fully under the user’s control. NextChat supports features such as conversation management, multi-model support, system prompts, and secure API key configuration through environment variables. These capabilities make it an ideal solution for developers, AI enthusiasts, and teams who want a customizable AI chat environment. Deploying NextChat through Nife-Deploy OpenHub allows users to launch the application quickly using a managed container environment without needing to manually configure servers or infrastructure. --- #### 1. Accessing the Nife-Deploy OpenHub Catalog ## Access the Nife-Deploy Console Visit: Visit the Nife launchpad: https://launch.nife.io Log in: Log in using your registered Nife account credentials to access the platform dashboard. If you are new to the platform, create an account to continue. --- ## Navigate to OpenHub Navigation: Once logged in, locate the sidebar on the left-hand side of the dashboard. Under the **Automation** section, click on **Templates**. Selection: Open the **Marketplace**, which lists available open-source applications that can be deployed instantly. --- ## Search for NextChat Search Bar: Use the search bar inside the marketplace and type **NextChat**. Identify: Locate the **NextChat** application card in the results. --- #### 2. Configuring and Initiating Deployment ## Start Deployment Action: Hover over the **NextChat** application tile and click the **Quick Deploy** button. This opens the deployment configuration popup. --- ## Review Deployment Settings Before launching the application, review the configuration options in the deployment popup. ### Application Name: Assign a unique name for your NextChat instance. The platform may automatically generate a name for the deployment, but you can modify it to better identify your application. ### Environment Variables: NextChat requires an API key to connect with AI providers. Add the OpenAI API key using the following variable: ```env OPENAI_API_KEY= This key allows the application to communicate with the OpenAI API and generate AI responses. ### Cloud Region: Choose the deployment region closest to your location to reduce latency and improve performance when accessing the chat interface. ### Resource Allocation: The platform automatically assigns suitable CPU and memory resources for the container. These default resources are generally sufficient because NextChat is a lightweight web-based interface. ### Finalization: After reviewing the configuration settings, click **Deploy Application** to start the deployment process. The Nife-Deploy OpenHub platform will automatically pull the container image, configure networking, and launch the NextChat instance. --- ## Deploy the Application After reviewing the configuration, click **Deploy**. Nife-Deploy will automatically: Pull the NextChat container image Configure networking Launch the application container --- ## Monitor Deployment Status Wait until the deployment status changes to **Running**, indicating that the application has been successfully deployed. --- #### 3. Accessing the NextChat Interface ## Launch the Application Action: Once the deployment status shows **Running**, click the **View Application** or **Open App** button from the deployment dashboard. Result: This redirects you to the public URL of your deployed NextChat instance and loads the AI chat interface in your browser. --- ## Start Using the Chat Interface Action: After the interface loads, you can begin interacting with AI models by typing messages into the chat input field. Result: The AI model processes the prompt and generates responses in real time within the conversation window. --- ## Manage Conversations Action: Create new chats or switch between previous conversations using the conversation history panel. Result: This allows users to organize multiple AI discussions and revisit previous responses. --- ## Customize AI Behavior Action: Configure **system prompts** or switch between available AI models depending on the configured provider. Result: The AI responses can be customized for specific tasks such as coding assistance, documentation writing, research, or brainstorming. --- # Core Benefits of Deploying NextChat on Nife-Deploy ## 1. Instant Deployment Using Nife-Deploy OpenHub eliminates manual installation and server setup. The application can be launched quickly using a managed container environment. ## 2. Secure Self-Hosted Environment Hosting your own NextChat instance ensures that API keys, conversation data, and configurations remain private and under your control. ## 3. Flexible AI Provider Support NextChat supports multiple AI providers including OpenAI-compatible APIs, Azure OpenAI, and Gemini. ## 4. Fast and Lightweight Interface The application is designed to be lightweight and responsive, providing a smooth AI chat experience across desktop and mobile devices. --- # Official Documentation For more information about configuration options and advanced features: NextChat GitHub Repository: https://github.com/ChatGPTNextWeb/NextChat NextChat Documentation: https://github.com/ChatGPTNextWeb/NextChat#readme --- ## How to Deploy and Publish a Ghost Blog URL: https://docs.nife.io/Guides/Openhub/ghostMarketplaceApplication `} ### Introduction In this tutorial, we'll walk you through every step of setting up and releasing a Ghost blog on the Nife-Deploy platform. Since Ghost is an open-source platform made for professional publication, bloggers who prefer to concentrate on creating content rather than bothering about technical setup should consider using it. It's never been easier to set up and maintain your blog than with Nife. Now let's begin the detailed instructions! #### Step 1: Registering First things first, go to launch.nife.io, the Nife platform, and log in [launch@nife.io](https://launch.nife.io/). There are multiple ways to log in: Bitbucket, GitLab, GitHub, Google, and Bitbucket. Entering your email address and password will allow you to quickly create an account if you're a new user. After logging in, a plan selection prompt will appear. A 14-day free trial is available from Nife, which is perfect if you just want to start installing one application. However, you might want to look into one of Nife's' more extensive plans if you intend to manage larger projects or install several applications. [Check out our plans here for more details!](https://launch.nife.io/plans/) #### Step 2: Using the Marketplace to Install a Ghost Blog After choosing your plan and logging in, it's time to launch Ghost Blog. Consider the Nife-Deploy Marketplace as a storefront for applications, where a plethora of programs are available for quick deployment. To access the Marketplace, navigate as follows: The Marketplace is located in the sidebar. When you click on it, a variety of applications that are ready for deployment will appear. Locate Ghost Blog and Launch: Navigate the Marketplace until you locate Ghost Blog. After finding it, click on it to start the deployment procedure. Nife does all of the heavy lifting, installing the application and customizing everything for you, once you click the Deploy button. If you're curious about how Ghost compares to WordPress, check out this article on [Ghost vs. WordPress](https://ghost.org/vs/wordpress/#:~:text=Ghost%20is%20more%20affordable&text=With%20Ghost%2C%20the%20fee%20structure,like%20you%20would%20using%20WordPress). For more insights into why Ghost might be the right choice for you, you can also read a comprehensive review of the Ghost blogging platform [here](https://www.norberthires.blog/ghost-blogging-platform-review/). #### Step 3: Getting to the Ghost Admin Panel It takes about 90 seconds for the DNS to resolve and the blog to load after your application has been deployed. At this point, you can go ahead and open the Ghost admin panel. Get the Admin Panel Open: Put /ghost at the end of the URL of your blog in the address bar of your browser, then press Enter. You will then be able to access the Ghost admin panel. Create Your Blog: To get started, you must provide some basic information. Put in your email address, password, complete name, and site title. You'll need this email address and password for future logins, so be sure to keep them safe. Click Create Account once all the information has been entered. #### Step 4: Compose Your First Blog Post and Publish It It's time to publish your first blog post after configuring your Ghost admin! Compose Your Article: You can choose to Write Your First Post from the Ghost dashboard. After you click it, you can begin writing your blog post. Write your content in the editor and enter a catchy title. To enhance the engagement of your article, you can also include images by utilizing the Add Image tool. Publish Your Post: It's time to put your article online once you're satisfied with it. When you click the Publish button, a menu will show up. Choose Right Now if you want to post right away. You can select a later date if you would rather plan your post for later. #### Watch Our Full Video Tutorial On Ghost ### Other Deployment Guides Videos 1. [Docker Deployment](https://youtu.be/3bYZugPuitc?feature=shared) 2. [GitHub Deployment](https://youtu.be/mDtZFvjNYdM?feature=shared) 3. [Local Source Code Deployment](https://youtu.be/h3wdUBpS4Is?feature=shared) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy ArangoDB on Nife-Deploy OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-ArangoDB-from-openhub `} **ArangoDB** is a cutting-edge **open-source multi-model database** engine designed for modern, complex applications. It uniquely combines the strengths of **Document (JSON), Graph, and Key-Value** data models into a single core platform, allowing you to run powerful queries (known as AQL) across different data structures simultaneously. Deploying ArangoDB through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** drastically simplifies the setup. Nife handles the container orchestration, networking, and resource allocation, enabling you to launch a production-ready instance instantly without dealing with manual server configuration or cluster management. --- ## 1. Accessing and Locating the Application ### Access the Nife-Deploy Launch Platform * **Visit:** Navigate to the Nife-Deploy portal at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered credentials to gain access to the application management console. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the primary navigation sidebar (typically on the left). * **Selection:** Clicking OpenHub will present the full catalog of deployable open-source applications supported by the platform. ### Search for ArangoDB * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter **ArangoDB**. * **Identify:** Locate the official **ArangoDB** application card, which is pre-configured for optimal deployment on Nife. --- ## 2. Configuring and Initiating Deployment Before launching, you must define the critical environment variables for your database instance, specifically the root password for security. ### Start Deployment and Configuration * **Selection:** Hover over the ArangoDB card and click the **Deploy** button. This action takes you to the initial configuration screen. ### Setting the Root Password * **Security Prompt:** ArangoDB requires a **root password** for the primary database user (`root`). This is a crucial security step. * **Action:** Enter a strong, secure password in the environment variable field provided. This password will be used to access the ArangoDB web interface and management tools. * **Confirmation:** Click **Submit** or proceed to the next step. ### Review Deployment Settings * **App Name:** Assign a unique, descriptive name to your database deployment (e.g., `arangodb-project-x`). * **Cloud Region:** Select a **Cloud Region** that minimizes latency for your application or users who will be interacting with the database. * **Resource Allocation:** Review the allocated CPU and RAM. For production environments or heavy graph workloads, you may need to scale these resources up, which is easily managed within the Nife console. ### Finalizing the Launch * **Confirmation:** Click the final **Deploy** button to initiate the container launch process. * **Monitoring:** Nife will provision the necessary resources, pull the ArangoDB container image, and secure the network endpoint. Monitor the status until the deployment is complete. --- ## 3. Accessing and Utilizing ArangoDB ### Wait for Completion and Launch * **Completion:** Once the status indicator shows **Running**, the **Open App** button will become active. * **Access:** Click **Open App**. This action redirects you to the secure URL of your deployed ArangoDB instance, specifically the web-based management interface known as the **ArangoDB Web UI**. ### Logging In and Initial Setup * **Credentials:** On the ArangoDB login screen, use the username **`root`** and the password you set during the configuration step (Step 2). * **Web UI:** The Web UI allows you to manage databases, collections (documents and graphs), run **AQL (ArangoDB Query Language)** queries, and monitor database performance. --- ## Core Advantages of Deploying ArangoDB via Nife-Deploy Hosting ArangoDB on the Nife-Deploy PaaS provides several operational and development benefits: ### 1. Unified Multi-Model Capability ArangoDB's strength is hosting Document, Graph, and Key-Value data together. Nife provides the necessary high-performance infrastructure to run these complex queries efficiently, avoiding the need for multiple, separate database deployments. ### 2. Containerized Reliability and Zero Downtime Nife handles the container lifecycle management (using technologies like Docker or Kubernetes), ensuring that your ArangoDB instance is fault-tolerant and highly available. This eliminates manual configuration of underlying operating systems and runtime environments. ### 3. Simplified Security and Connectivity The platform automatically secures your deployment with an encrypted HTTPS endpoint. Furthermore, Nife simplifies networking, making it easy to establish secure connections between your deployed ArangoDB instance and other applications or services hosted within the same environment. ### 4. Effortless Scaling and Management As your application and data grow, Nife provides straightforward tools to scale resources (CPU, RAM, storage) for your ArangoDB instance horizontally or vertically, managing the underlying cluster technology without requiring deep DevOps expertise. --- ### Official Documentation For detailed guides on AQL queries, data modeling, and leveraging ArangoDB's full multi-model potential: **ArangoDB Official Documentation:** [https://www.arangodb.com/docs/](https://www.arangodb.com/docs/) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy Actual Budget from the Nife-Deploy Marketplace URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-actual-budget-from-the-marketplace `} **Actual Budget** is a powerful, modern, and open-source personal finance management tool that supports **zero-based budgeting** and offers features like envelope budgeting, investment tracking, and transaction importing. By deploying Actual Budget through the **Nife Marketplace**, you gain the ability to run a **self-hosted instance** with the simplicity of a few clicks, ensuring **complete control and privacy** over your sensitive financial data. Nife provides the reliable **Platform-as-a-Service (PaaS)** environment to host your application, handling all the underlying **infrastructure, scaling, and maintenance** so you can focus solely on your budget. --- ## 1. Navigating to the Nife-Deploy Marketplace 🛒 ### Access the Nife Console - Visit the official Nife-Deploy launchpad at **[https://launch.nife.io](https://launch.nife.io)** and log in using your registered credentials. This is your gateway to managing all deployed applications and services. ### Locate the Marketplace - After logging in, look for the **Market Place** link in the left-hand navigation sidebar. Click it to browse the catalog of available one-click deploy applications. ## 2. Locating Actual Budget for Deployment 🔍 ### Utilizing the Search Function - In the Marketplace interface, use the search bar at the top and enter the term `Actual Budget`. - The **Actual Budget** application tile, featuring its distinctive icon, will appear in the search results. ## 3. Configuring and Deploying the Application ⚙️ This is the key step where Nife automates the container deployment (likely a Docker image) for Actual Budget. ### Initiate the Deployment - On the **Actual Budget** application card, you will see two primary options. Click the **Deploy** button to proceed directly to the configuration screen. ### Review Initial Configuration - Nife pre-configures most settings for optimal performance. On the configuration page, you will typically need to confirm or optionally modify: - **App Name:** A unique identifier for your instance (e.g., `my-actual-budget`). - **Region:** The geographical location for your server deployment. - **Resources:** The allocated CPU and RAM for the application container. > **Note:** Actual Budget is lightweight, but selecting a robust region ensures low-latency access to your financial dashboard. ### Finalizing the Launch - After confirming your settings, click the final **Deploy** button. The Nife platform will now: 1. Provision the necessary cloud resources. 2. Pull the latest stable Actual Budget container image. 3. Configure the underlying database (often SQLite or PostgreSQL, depending on the Marketplace setup). 4. Set up the secure endpoint URL for your application. ### Wait for Completion and Access - The deployment process typically completes within a few minutes. - Once the status changes to **Running**, an **Open App** button will become visible. ## 4. Accessing and Initializing Actual Budget 🔑 ### Launch Your Self-Hosted App - Click the **Open App** button. This will redirect you to the unique URL of your newly deployed Actual Budget instance. ### Initial Setup - The first time you access the application, you will be prompted to create an **Administrator Account**. - Choose a strong password. This account will be used to manage and access your budgets. - Once logged in, you can begin the process of setting up your **zero-based budget**, connecting accounts via importing, and managing your financial future. --- ## ✅ Enhanced Benefits of Hosting Actual Budget on Nife By choosing Nife for your Actual Budget deployment, you leverage powerful PaaS advantages: ### 1. Data Privacy and Security 🔒 Your financial data remains entirely within your control. Unlike cloud-hosted versions, a self-hosted instance on Nife ensures that sensitive transaction and budget information is never shared with a third party. ### 2. DevOps Automation and Reliability 🛠️ Nife handles the complex aspects of cloud infrastructure: - **Automatic Scaling:** While Actual Budget is mostly single-user, Nife ensures the underlying infrastructure can handle traffic spikes and concurrent usage. - **Maintenance-Free Hosting:** No need to manually manage VMs, operating system updates, or container runtimes (like Docker or Kubernetes). Nife manages the server health, keeping your app available **24/7**. - **Simplified Updates:** Future updates to Actual Budget can be applied with minimal effort directly through the Nife console, reducing the complexity of self-hosting. ### 3. Cost-Effective and Predictable 💰 Nife provides clear, predictable pricing, often more efficient than manually configuring and managing IaaS (Infrastructure-as-a-Service) solutions. You pay for the resources your application actually uses. --- ### 🔗 Official Resources For detailed usage guides, tips on zero-based budgeting, and advanced configuration for your application: - Visit the **[Actual Budget Documentation](https://actualbudget.org/docs/)** Start your journey to financial freedom today with a secure, self-hosted Actual Budget instance deployed effortlessly on Nife! ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy Adminer from Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-adminer `} **Adminer** is renowned for being a **single-file**, highly efficient, and secure alternative to complex tools like **phpMyAdmin**. It provides a clean, web-based interface that allows developers and administrators to manage virtually any database backend, including **MySQL, PostgreSQL, SQLite, MS SQL, Oracle,** and **MongoDB**. By deploying Adminer through the **Nife OpenHub**, you are leveraging a powerful **Platform-as-a-Service (PaaS)** solution. This deployment method eliminates the need for manual server configuration (like setting up Apache or Nginx) and Docker container management, allowing you to instantly gain a secure, publicly accessible endpoint to manage all your database connections remotely with minimal effort. --- ## 1. Accessing and Locating the Application ### Access the Nife-Deploy Launch Platform * **Visit:** Go to the main Nife-Deploy portal at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your Nife credentials to access the console. This platform serves as your control center for all deployed cloud applications and infrastructure management. ### Navigate to OpenHub * **Locate:** In the left-hand navigation panel of the Nife console, find and click the **OpenHub** menu item. This is the centralized catalog featuring all supported open-source applications and community-contributed software. ### Search for Adminer * **Search Bar:** Use the dedicated search functionality within the OpenHub interface and type **Adminer**. * **Identify:** Confirm the **Adminer** application card appears. This represents the stable, pre-configured version ready for immediate deployment as a containerized workload. --- ## 2. Configuring and Deploying Your Adminer Instance While Nife automates the container orchestration, you will review and confirm the application's configuration parameters before launch. ### Initiate Deployment * **Selection:** Hover over the Adminer card and click the prominent **Deploy** button. This action transitions you to the configuration review screen where you define the application's environment. ### Review Deployment Settings * **App Name:** Nife will suggest a default name (e.g., `adminer-instance-1`), but you should specify a unique, descriptive name (e.g., `dev-admin-sql`). This name forms part of your application's unique URL. * **Cloud Region:** Select the **Region** closest to your target databases or your physical location to minimize network latency and reduce data transfer times. * **Resource Allocation:** Review the default CPU and RAM allocated. Adminer is designed to be lightweight, so the platform's standard configurations are typically sufficient for typical database administration tasks. > **Key Configuration Detail:** The Nife deployment automatically provisions a **secure HTTPS endpoint** for your Adminer instance. This means all communication between your browser and the Adminer application is encrypted using **SSL/TLS**, ensuring the secure transmission of sensitive database credentials. ### Finalizing the Launch * **Confirmation:** After verifying the configuration, click the final **Deploy** button. * **Monitoring:** The Nife-Deploy PaaS will display a real-time status indicating the progress, showing key steps like the container image pull, resource binding, and network setup. --- ## 3. Accessing and Connecting to Your Databases ### Access the Live Instance * **Completion:** Once the deployment status shows **Running**, click the **Open App** button. * **Launch:** A new browser tab will open, directing you to the secure URL of your deployed Adminer application. ### Establishing a Database Connection You can now use your web-hosted Adminer to connect to any reachable database server: 1. **Server Type:** Select your database engine from the dropdown (e.g., **MySQL, MariaDB, PostgreSQL,** etc.). Adminer is widely compatible across major SQL and NoSQL engines. 2. **Server Address:** Enter the **hostname or IP address** of your target database server. (It is critical to ensure that your target database's firewall is configured to allow incoming connections from the IP address range used by your Nife-deployed Adminer instance). 3. **Credentials:** Input the necessary database **Username** and **Password** for the target database. 4. **Connect:** Click **Login** to access the database management interface. --- ## Core Benefits of Adminer Deployment via Nife-Deploy Using the Nife-Deploy OpenHub for Adminer provides significant operational advantages over traditional server-based installations: ### 1. Minimal Overhead and Setup Speed The PaaS abstracts away the complexity of infrastructure management. You skip the manual setup of a web server (like Apache or Nginx), the PHP runtime environment, and resolving file permissions. Nife handles the complete container orchestration, dramatically reducing deployment time. ### 2. Built-in Security and Reliability Your Adminer instance is deployed with an **SSL/TLS certificate** (HTTPS) enabled by default, protecting data in transit. Moreover, Nife ensures the application is hosted on a secure, managed infrastructure layer, providing isolation from other deployed applications and handling underlying OS security patches. ### 3. Versatility and Multi-Database Support Adminer's strength is its **cross-database compatibility**. By hosting this powerful, universal SQL client centrally on Nife, you gain one secure, consistent tool to manage all your various cloud-hosted and on-premise databases without needing to install separate client software for each type. ### 4. Simplified Maintenance and Updates Nife manages the underlying operating system and container runtime environment. When newer, more secure versions of the Adminer container image are released, updating your instance is a streamlined, simplified process initiated directly from the Nife-Deploy console, eliminating manual dependency management and configuration updates. --- ### Official Documentation For advanced features, connection troubleshooting, and detailed usage instructions for the application itself: **Adminer Official Website:** [https://www.adminer.org/](https://www.adminer.org/) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Set Up Answer from Openhub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-answer-from-openhub `} **Answer** is a modern open-source Q&A platform designed to help you build community-driven knowledge hubs. With Answer, you can enable users to ask questions, provide answers, and collaborate around shared interests. Deploy it in just a few clicks using **Nife OpenHub**. ### **Access the Platform** - Visit [https://launch.nife.io](https://launch.nife.io) and log in with your credentials. ### **Navigate to OpenHub** - On the sidebar, click on **OpenHub** to explore available applications. ### **Search for the App** - In the OpenHub search bar, type **Answer**. - Locate the Answer application from the results. ### **Start Deployment** - Hover over the **Answer** app card. - Click on **Deploy**. ### **Wait for Deployment Completion** - The deployment process usually takes a few moments. - Once completed, you will see an **Open App** button. ### **Accessing Answer** - Click **Open App** to access the deployed Application. ### **Official Documentation** Learn more about Answer’s features and capabilities: 🔗 [https://answer.dev](https://answer.dev) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy Authorizer on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-authorizer-from-openhub `} **Authorizer** is an essential, **open-source authentication and authorization solution** designed for modern web and mobile applications. It provides a complete identity management layer, handling everything from secure **email/password login** and **Social Logins (OAuth)** to advanced features like **JSON Web Tokens (JWT)** and **Role-Based Access Control (RBAC)**. By deploying Authorizer via **Nife OpenHub**, you gain a **self-hosted** identity provider managed within a reliable **Platform-as-a-Service (PaaS)** environment. This approach ensures you maintain full ownership and control over user data while benefiting from automated deployment and infrastructure management. --- ## 1. Accessing the Nife OpenHub Catalog ### Access the Nife Console * **Visit:** Navigate to the Nife launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife credentials to access the primary application dashboard. ### Locate OpenHub * **Navigation:** Look for the main navigation panel, usually on the left sidebar. * **Selection:** Click on **OpenHub** to browse the curated collection of supported open-source applications ready for one-click deployment. ### Search for Authorizer * **Search Bar:** Utilize the search functionality within the OpenHub catalog. Enter the term **Authorizer**. * **Identify:** Locate the official **Authorizer** application tile, which is pre-configured for deployment on the Nife platform. --- ## 2. Configuring Mandatory Environment Variables Deploying Authorizer securely requires setting several critical environment variables. Nife simplifies this by prompting you for the mandatory inputs. ### Initiate Deployment * **Action:** Hover over the Authorizer application tile and click the **Deploy** button. ### Define Required Variables You will be prompted to configure variables essential for security and application integration. The two most critical are: * **`CLIENT_ID`**: A unique identifier for your application (e.g., a UUID or custom string). This is used by your frontend applications to interact with the Authorizer service. * **`CLIENT_SECRET`**: A cryptographic key used to secure the communication between your application and Authorizer. **This must be a strong, complex, and unique value.** > **Database Configuration:** Authorizer typically requires a database (e.g., PostgreSQL, MongoDB) to store user data. If Nife doesn't automatically provision one, you may need to define variables like `DATABASE_TYPE` and `DATABASE_URL` to connect to an external or separate Nife-deployed database service. * **Review:** Carefully review all default and custom variables (e.g., `JWT_SECRET` for token signing, `DEFAULT_ROLES`, etc.) to match your application's requirements. * **Submit:** Click **Submit** to confirm the configuration and begin the container orchestration process. ### Monitor Deployment * **Process:** Nife will now provision the necessary computing resources, pull the Authorizer container image, apply the environment variables, and configure the secure network endpoint. * **Completion:** Wait for the status to change to **Running**. --- ## 3. Accessing the Authorizer Instance ### Launch the Application * **Action:** Once the deployment is complete, click the **Open App** button. * **Result:** This will redirect you to the unique, secure URL of your deployed Authorizer instance. ### Initial Administrator Setup * **Dashboard Access:** The first time you access the application, you will typically be guided through creating the initial **Administrator Account**. This account is separate from end-user accounts and is used to manage settings, view users, and configure providers (like Google or GitHub OAuth). * **Configuration:** Use the Admin Dashboard to finalize settings, enable/disable login methods, and configure your Social Login credentials. --- ## Core Benefits of Deploying Authorizer on Nife Leveraging the Nife PaaS for Authorizer provides a secure and efficient identity management backbone: ### 1. Robust Security and Isolation By self-hosting on Nife, you gain **data residency** and control over sensitive user data. The platform ensures your Authorizer instance is secured with **HTTPS/TLS** and runs in an isolated container environment, minimizing the attack surface. ### 2. Full Authentication Feature Set Authorizer provides a complete, modern authentication suite out-of-the-box, including **password hashing (Bcrypt/Scrypt)**, email verification flows, social login integrations, and advanced **JSON Web Token (JWT)** generation for seamless API authorization. ### 3. Integrated Role-Based Access Control (RBAC) Authorizer includes native support for defining user roles and permissions. This is crucial for applications requiring tiered access, and its configuration is centralized and easy to manage via the secure Nife-hosted dashboard. ### 4. Simplified DevOps for Auth Services Managing an authentication service manually is complex. Nife automates the container deployment, scaling, and necessary server patching, allowing developers to integrate with the secure API endpoints instantly without becoming infrastructure experts. --- ## Official Documentation For in-depth guides on integrating Authorizer with your frontend or backend applications, API specifications, and advanced configurations: **Authorizer Official Documentation:** [https://docs.authorizer.dev](https://docs.authorizer.dev) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy Botpress on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-botpress-from-openhub `} **Botpress** is a leading **open-source platform** designed for creating and managing robust chatbots and virtual assistants. It offers a comprehensive toolkit, including an intuitive **Visual Flow Builder**, integrated **Natural Language Understanding (NLU)** engine, and native support for multiple messaging channels (e.g., WhatsApp, Telegram, Slack). By deploying Botpress via the **Nife OpenHub Platform-as-a-Service (PaaS)**, you gain the ability to launch a fully containerized, scalable conversational AI environment instantly. Nife manages the underlying infrastructure, allowing you to focus entirely on bot logic and user experience. --- ## 1. Accessing the Nife OpenHub Catalog ### Access the Nife Console * **Visit:** Navigate to the Nife launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife credentials to access the primary application dashboard. ### Locate OpenHub * **Navigation:** Find the **OpenHub** option in the left-hand navigation sidebar. * **Selection:** Click **OpenHub** to view the curated catalog of open-source applications optimized for deployment on the platform. ### Search for Botpress * **Search Bar:** Use the search functionality within the OpenHub interface. Enter the term **Botpress**. * **Identify:** Locate the **Botpress** application tile, which often references the **`botpress/server:latest`** container image, ready for deployment. --- ## 2. Configuring and Initiating Deployment Botpress deployments are streamlined on Nife, though some key configuration steps are essential for a stable environment. ### Start Deployment and Review Configuration * **Action:** Hover over the Botpress application tile and click the **Deploy** button. This action typically directs you to a configuration review screen. ### Define Deployment Settings * **App Name:** Define a unique identifier for your chatbot platform instance (e.g., `my-chatbot-server`). * **Cloud Region:** Select a **Cloud Region** geographically close to your primary user base to minimize latency for bot interactions. * **Resource Allocation:** Review the default CPU and RAM. Botpress, especially when running NLU models, benefits from adequate resources. Scale resources if you plan on hosting multiple complex bots or handling high traffic volumes. > **Environment Variables (Optional but Recommended):** While often optional for a basic setup, consider defining variables for production environments, such as: > * `EXTERNAL_URL`: The public-facing URL of your Nife deployment for proper webhook routing. > * `DATABASE_URL`: If you wish to use an external database (e.g., PostgreSQL instead of the default SQLite) for better performance and persistence. * **Finalization:** Review and confirm all settings, then click **Submit** or the final **Deploy** button to begin the container orchestration. ### Monitor Deployment Status * **Process:** Nife will provision resources, pull the Botpress container, and establish a secure network endpoint (HTTPS). * **Completion:** Wait for the status indicator to change to **Running**. This confirms the Botpress server is live. --- ## 3. Accessing and Initializing Botpress ### Launch the Interface * **Action:** Once running, click the **Open App** button. * **Result:** This redirects you to the unique URL of your deployed Botpress instance, opening the web-based **Admin Dashboard**. ### Initial Administrator Setup * **First Access:** The first time you access the interface, Botpress will prompt you to **create an administrator account**. Set a strong password. This account is used to manage bots, monitor performance, and configure system settings. * **Start Building:** Once logged in, you can immediately begin creating new bot projects, importing existing flows, or utilizing the **Visual Flow Builder** to define conversational logic. --- ## Core Benefits of Deploying Botpress on Nife Utilizing the Nife- PaaS for Botpress provides a robust foundation for conversational AI development: ### 1. Rapid, Integrated NLU Deployment Nife-Deploy simplifies the hosting of the resource-intensive **Natural Language Understanding (NLU)** engine built into Botpress. The platform ensures stable performance for processing user intents and entities, which is critical for bot accuracy. ### 2. High Availability and Scalability As a containerized application, your Botpress instance benefits from the platform's reliability. Oik enables effortless scaling of computing resources as your chatbot gains more users or requires more power to process complex NLU tasks, guaranteeing high uptime. ### 3. Focus on Development, Not Infrastructure By automating the server setup, networking (HTTPS), and container management, Nife-Deploy removes the typical DevOps burden associated with self-hosting complex applications like Botpress. Developers can concentrate solely on flow design, custom modules, and integration logic. ### 4. Multi-Channel Readiness The platform provides the stable, internet-accessible endpoint necessary for integrating Botpress with various external messaging services (Facebook Messenger, Slack, etc.) via webhooks, ensuring seamless multi-channel deployment. --- ## Official Documentation For detailed tutorials on using the Visual Flow Builder, training NLU models, and implementing advanced integrations: **Botpress Official Documentation:** [https://botpress.com/docs/](https://botpress.com/docs/) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy Chatpad AI on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-chatpad-ai-from-openhub **Chatpad AI** is an innovative **open-source web UI** designed to serve as a clean, local, and **self-hosted interface** for interacting with external **Large Language Models (LLMs)** like those from OpenAI (ChatGPT). It provides users with a private, customizable chat environment, bypassing reliance on third-party web services for their conversational AI interactions. Deploying Chatpad AI through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** allows you to launch this interface instantly. Nife-Deploy manages the container hosting and networking, providing you with a secure, dedicated public endpoint for your AI chat application. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered credentials to access the application management console. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar. * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications optimized for the platform. ### Search for Chatpad AI * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter the term **Chatpad AI**. * **Identify:** Locate the **Chatpad AI** application card from the search results, which is pre-configured for deployment on Nife-Deploy. --- ## 2. Configuring and Initiating Deployment For Chatpad AI to function, it needs an API key to communicate with the external LLM service (e.g., OpenAI). This is configured via environment variables. ### Start Deployment and Configuration Review * **Action:** Hover over the Chatpad AI application card and click the **Deploy** button. This action proceeds to the configuration screen. ### Define Mandatory API Key The most critical configuration step is providing your external LLM service key: * **Environment Variable:** You will need to define an environment variable, typically named **`OPENAI_API_KEY`** or similar, depending on the Chatpad configuration provided by Nife-Deploy. * **Value:** Enter your **secure and valid API key** obtained from the LLM provider (e.g., OpenAI). * **Security Note:** This key is essential for the Chatpad container to authenticate with the LLM provider's API. Nife-Deploy ensures this variable is passed securely to your containerized application. ### Review Deployment Settings * **App Name:** Assign a unique, descriptive name to your Chatpad AI instance (e.g., `my-private-chatpad`). * **Cloud Region:** Select a **Cloud Region** that minimizes network latency between the Nife-Deploy server and the external LLM provider's API to ensure fast chat responses. * **Finalization:** Review all settings, then click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy will provision resources, pull the Chatpad AI container image, apply your environment variables, and establish a secure HTTPS network endpoint. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Utilizing Chatpad AI ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed Chatpad AI interface. ### Initial Interaction * **Connection Check:** Since you provided the API key during deployment, your Chatpad AI interface should immediately be ready to communicate with the LLM backend. * **Privacy:** Your self-hosted instance provides a high degree of privacy and control over your chat history and interaction methods, as the UI is hosted on your own Nife-Deploy deployment. --- ## Core Benefits of Deploying Chatpad AI on Nife-Deploy Utilizing the Nife-Deploy PaaS for Chatpad AI offers specific advantages for leveraging LLMs: ### 1. Enhanced Data Privacy and Control By running a self-hosted UI, you maintain complete control over the front-end application and do not rely on a third-party chat interface to manage your sessions or preferences. Only the final, necessary requests are sent to the external LLM API. ### 2. Simplified LLM Access Management Nife-Deploy securely manages the injection of your sensitive `OPENAI_API_KEY` via environment variables directly into the Chatpad container. This eliminates the need for manual file configuration or insecure storage methods on a local machine. ### 3. Rapid, Dedicated Deployment The PaaS environment ensures that your Chatpad instance is deployed rapidly with dedicated resources. This minimizes setup time and provides a stable, internet-accessible platform for using the LLM interface from any device. ### 4. Zero Infrastructure Overhead Nife-Deploy handles all container orchestration, server maintenance, and security patching, allowing users to immediately begin interacting with the AI without the overhead of managing a virtual machine or web server stack. --- ### Official Documentation For detailed information on Chatpad AI features, advanced settings, and customization options: **Chatpad AI Repository:** [https://github.com/deiucanta/chatpad](https://github.com/deiucanta/chatpad) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy ChromaDB on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-chromadb-from-the-marketplace `} # ChromaDB on Nife-Deploy: Deploy an AI Vector Database **ChromaDB** is a powerful **open-source vector database** designed for AI and machine learning applications. It stores **vector embeddings** and enables fast **semantic similarity search**, making it an ideal backend for Retrieval-Augmented Generation (RAG), AI chatbots, recommendation systems, and intelligent search applications. Deploying ChromaDB through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** allows you to launch a production-ready vector database without managing infrastructure, containers, or networking. Nife automatically provisions storage, networking, and a secure HTTPS endpoint, enabling you to focus on building AI-powered applications. # 1. Accessing the ChromaDB ## Access the Nife Launch Platform * **Visit:** Open **https://launch.nife.io** in your browser. * **Sign In:** Log in using your Nife account credentials to access the dashboard. ## Navigate to Templates * From the left navigation panel, click **Templates**. * This page lists all the deployment templates available on the Nife platform. * You can also directly access the Templates page at **https://launch.nife.io/templates**. ## Open the Marketplace * Inside the **Templates** page, select the **Marketplace** tab. * The Marketplace contains a collection of open-source applications that can be deployed with just a few clicks. ## Search for ChromaDB * Use the search bar to search for **ChromaDB**. * Once the ChromaDB application appears, click **View Details** to review the application. --- # 2. Deploying ChromaDB ## Start Deployment Click **Deploy ChromaDB**. ## Configure the Deployment Review the deployment settings before continuing. * **Organization:** Select the organization where you want to deploy ChromaDB. * **Deployment Region:** Choose the preferred deployment region. * **Application Name:** Specify a unique name for your ChromaDB instance if required. > **Deployment Note:** Nife automatically provisions the application, networking, storage, and a secure HTTPS endpoint. No manual infrastructure setup is required. ## Deploy the Application Click **Deploy**. Nife will now: * Provision the ChromaDB application. * Configure the deployment environment. * Create networking and persistent storage resources. * Generate a secure application endpoint. Wait until the deployment status changes to **Running**. --- # 3. Accessing ChromaDB Once the deployment is complete: * Click **View Application**. * You'll be redirected to the application details page. The application page provides access to: * Application URL * Logs * Volumes * Monitoring Metrics * Deployment Information Open the **Application** tab to view the application URL. Copy the generated ChromaDB URL. --- # 4. Connecting to ChromaDB and Verifying the Deployment To verify that your ChromaDB deployment is working correctly, connect to the deployed instance using a Python application. 1. Copy the **ChromaDB Application URL** from the **Application** tab. 2. Open your Python project. 3. Replace `YOUR_CHROMADB_HOST` in the following script with the copied application URL. 4. Save the file and run the script. ```python # Replace with your deployed ChromaDB URL client = chromadb.HttpClient( host="your-app.nife.io", port=443, ssl=True ) collection = client.get_or_create_collection("demo") collection.add( ids=["1"], documents=["ChromaDB is a vector database."] ) results = collection.query( query_texts=["What is ChromaDB?"], n_results=1 ) print(results) ``` The script performs the following operations: * Connects to the deployed ChromaDB instance. * Creates a collection named **demo** if it does not already exist. * Inserts a sample document into the collection. * Performs a similarity search. * Displays the matching search results. If the script executes successfully and returns the expected results, your ChromaDB deployment is configured correctly and ready to use. --- # 6. Complete the Setup Your ChromaDB instance is now ready to use. You can begin storing vector embeddings, performing semantic search, and building AI-powered applications using your deployed database. --- # Core Benefits of Deploying ChromaDB Using Nife ## 1. One-Click Deployment Deploy ChromaDB in minutes without configuring servers, containers, or infrastructure manually. ## 2. Secure by Default Every deployment includes a secure HTTPS endpoint, enabling encrypted communication between your applications and the database. ## 3. Persistent Storage Vector collections, embeddings, and metadata are stored on persistent volumes, ensuring data remains available across restarts and updates. ## 4. Production-Ready Infrastructure Nife manages networking, storage, monitoring, and the runtime environment, allowing you to focus on application development instead of infrastructure management. ## 5. Easy Monitoring View deployment logs, runtime metrics, storage information, and application status directly from the Nife dashboard. --- # Getting Started with ChromaDB After deployment, you can use ChromaDB to: * Store vector embeddings. * Perform semantic similarity searches. * Build Retrieval-Augmented Generation (RAG) applications. * Power AI chatbots and recommendation systems. * Integrate with frameworks such as LangChain and LlamaIndex. * Connect using the official ChromaDB Python client. --- # Official Documentation For advanced configuration, API reference, and client libraries, refer to the official ChromaDB documentation. **ChromaDB Official Website:** https://www.trychroma.com/ --- # Related Resources * 📦 [Marketplace](https://launch.nife.io/templates) — Browse and deploy open-source applications. * 🚀 [Launch Dashboard](https://launch.nife.io) — Manage your deployed applications. * 🌐 [Nife Platform](https://nife.io) — Learn more about the Nife cloud platform. --- ## How to Deploy Fathom Lite on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-fathom-lite-from-the-marketplace `} **Fathom Lite** is a leading solution for website owners seeking **privacy-focused analytics**. As an **open-source** and lightweight alternative to traditional tracking tools, it prioritizes visitor privacy by being entirely **cookie-free** and **GDPR-compliant**. This means you can gather essential metrics—like page views, visitors, and referrers—without the need for intrusive tracking or annoying cookie banners. Deploying Fathom Lite via the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** provides an efficient, one-click solution. Nife-Deploy manages the container hosting and database configuration, giving you a secure, dedicated endpoint for your self-hosted analytics dashboard. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered credentials to access the application management console. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar. (Note: This catalog was previously referred to as the Marketplace). * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for Fathom Lite * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter the term **Fathom Lite**. * **Identify:** Locate the official **Fathom Lite** application card, pre-configured for efficient container deployment on Nife-Deploy. --- ## 2. Configuring and Initiating Deployment Fathom Lite requires minimal configuration, but setting up a secure administrator user is essential. ### Start Deployment and Configuration Review * **Action:** Hover over the Fathom Lite application card and click the **Deploy** button. This takes you to the configuration screen. ### Define Mandatory Credentials You will typically be prompted to set the initial login credentials for the Fathom Lite dashboard: * **`FATHOM_ADMIN_EMAIL`**: The email address for the primary administrative user. * **`FATHOM_ADMIN_PASSWORD`**: A strong, secure password for logging into your analytics dashboard. > **Database Note:** Fathom Lite usually runs on SQLite by default, which is managed internally by the Nife-Deploy container. For high-traffic sites, you may optionally configure an external database via environment variables like `FATHOM_DB_DRIVER` and `FATHOM_DB_URL`. * **Review Settings:** Review all other optional settings, such as application name and cloud region. * **Finalization:** Confirm the configuration details, then click **Submit** or the final **Deploy** button to begin the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions the necessary resources, pulls the Fathom Lite container image, applies your environment variables, and establishes a secure HTTPS network endpoint. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Integrating Fathom Lite ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed Fathom Lite analytics dashboard. ### Initial Login and Tracking Snippet * **Login:** Log in using the **`FATHOM_ADMIN_EMAIL`** and password you configured in Step 2. * **Integration:** Inside the dashboard, you will find your unique tracking code snippet. Copy this code and paste it just before the closing `` tag on every website you wish to track. This small snippet is all that's required to start collecting privacy-focused metrics. --- ## Core Benefits of Deploying Fathom Lite on Nife-Deploy Utilizing the Nife-Deploy PaaS for Fathom Lite provides operational stability alongside privacy benefits: ### 1. Guaranteed GDPR Compliance By design, Fathom Lite is cookieless, ensuring your website tracking adheres to strict global data protection regulations like GDPR and CCPA immediately, without requiring user consent banners. ### 2. High Performance and Speed Fathom Lite is famously lightweight. When deployed on Nife-Deploy's optimized PaaS infrastructure, the tracking script is served quickly, ensuring that the analytics tracking does not introduce any noticeable latency or drag on your website's performance. ### 3. Data Ownership and Security By self-hosting on Nife-Deploy, you retain full ownership of all collected traffic data. Nife-Deploy secures your dashboard with HTTPS and isolates the container, providing better control and security over your sensitive web metrics than typical third-party services. ### 4. Simplified Maintenance for Open Source Nife-Deploy abstracts away the complexities of server setup, maintenance, and dependencies required to run the Fathom Lite Go application. Future updates to Fathom Lite can be applied through a simplified container update process within the Nife-Deploy console. --- ### Official Documentation For information on Fathom Lite's underlying code, contributing, and advanced tracking features: **Fathom Lite GitHub Repository:** [https://github.com/usefathom/fathom](https://github.com/usefathom/fathom) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy Focalboard on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-focalboard-from-the-marketplace `} **Focalboard** is a powerful, **open-source project and task management solution** designed to be a robust, self-hosted alternative to tools like Trello or Asana. It supports multiple views, including **Kanban boards**, **Table view**, and **Calendar view**, making it ideal for tracking personal tasks, managing complex team sprints, and organizing knowledge. By deploying Focalboard through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)**, you achieve instant access to a dedicated instance. Nife-Deploy handles the complexity of container orchestration, networking, and server maintenance, guaranteeing you full control over your project data in a secure, private environment. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate directly to the Nife-Deploy launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar (standardizing the "Marketplace" terminology). * **Selection:** Click **OpenHub** to browse the catalog of ready-to-deploy open-source applications. ### Search for Focalboard * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter **Focalboard**. * **Identify:** Locate the **Focalboard** application card, which is pre-configured for deployment on the Nife-Deploy infrastructure. --- ## 2. Configuring and Initiating Deployment Focalboard deployments are highly streamlined on Nife-Deploy, typically requiring minimal user input before launch. ### Start Deployment and Review Configuration * **Action:** Hover over the Focalboard application tile and click the **Deploy** button. This action proceeds to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your project management instance (e.g., `team-kanban-board`). * **Cloud Region:** Select a **Cloud Region** that minimizes latency for your team members who will be accessing the board daily. * **Resource Allocation:** Review the default CPU and RAM. For small teams or personal use, the standard allocation is usually sufficient. Scale up if you anticipate storing large volumes of attachments or supporting many concurrent users. > **Optional Environment Variables:** If deploying the non-Mattermost version of Focalboard, you may configure a persistent database (e.g., PostgreSQL) via environment variables for enhanced data resilience and portability, though Nife-deploy often handles this with a default embedded database for simplicity. * **Finalization:** Review and confirm all settings, then click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions resources, pulls the Focalboard container image, and secures the public network endpoint (HTTPS). * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Initializing Focalboard ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed Focalboard instance. ### Initial Setup and User Creation * **First Access:** On the first launch, Focalboard will typically prompt you to **create an initial administrator account**. Set a strong password. This account is used to create and manage the first team and boards. * **Start Organizing:** Once logged in, you can immediately begin creating new boards, choosing from various templates, and customizing your views (Kanban, Table, etc.) to suit your project management methodology. --- ## Core Benefits of Deploying Focalboard on Nife-Deploy Utilizing the Nife-Deploy PaaS for Focalboard provides a secure and efficient platform for collaboration: ### 1. Self-Hosted Data Security By deploying a self-hosted instance, you guarantee **data privacy and ownership**. All your project plans, task details, and team discussions reside securely within your Nife-Deploy container, preventing third-party access to sensitive project data. ### 2. High Availability for Team Collaboration Nife-Deploy ensures that your Focalboard instance runs on a **highly available containerized platform**. This eliminates manual server maintenance and maximizes uptime, which is critical for continuous team communication and project tracking. ### 3. Integrated Project Views Focalboard’s ability to switch seamlessly between **Kanban, Table, and Calendar views** on the same data set is highly valuable. Nife-Deploy provides the stable runtime environment necessary for these complex UI operations to perform quickly and reliably. ### 4. Zero Infrastructure Burden The PaaS abstracts all server-related tasks. Developers and project managers can launch a powerful collaboration tool instantly, spending zero time on configuration files, dependency management, or setting up a secure web server (HTTPS). --- ## Learn More To explore more about Focalboard's features, integrations, and ongoing development: **Focalboard GitHub Repository:** [https://github.com/mattermost/focalboard](https://github.com/mattermost/focalboard) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy Jenkins from Nife-Deploy OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-jenkins-from-the-marketplace ## 1. Accessing the Marketplace ### Access the Nife Launch Platform * **Visit:** Open **https://launch.nife.io** in your browser. * **Sign In:** Log in using your Nife account credentials to access the dashboard. ### Navigate to Templates * From the left navigation panel, click **Templates**. * This page lists all the deployment templates available on the Nife platform. * You can also directly access the Templates page at **https://launch.nife.io/templates**. ### Open the Marketplace * Inside the **Templates** page, select the **Marketplace** tab. * The Marketplace contains a collection of open-source applications that can be deployed with just a few clicks. ### Search for Jenkins * Use the search bar to search for **Jenkins**. * Once the Jenkins application appears, click **View Details** to review the application. --- ## 2. Deploying Jenkins ### Start Deployment Click **Deploy Jenkins**. ### Configure the Deployment Review the deployment settings before continuing. * **Organization:** Select the organization where you want to deploy Jenkins. * **Deployment Region:** Choose the preferred deployment region. * **Application Name:** Specify a unique name for your Jenkins instance if required. > **Deployment Note:** Nife automatically provisions the application, networking, storage, and secure HTTPS endpoint. No manual infrastructure setup is required. ### Deploy the Application Click **Deploy**. Nife will now: * Pull the Jenkins container image. * Configure the deployment environment. * Provision persistent storage. * Configure networking. * Generate a secure application endpoint. Wait until the deployment status changes to **Running**. --- ## 3. Accessing Jenkins Once the deployment is complete: * Click **View Application**. * You'll be redirected to the application details page. The application page provides access to: * Application URL * Logs * Volumes * Monitoring Metrics * Deployment Information Open the **Application** section from the left navigation panel. Copy the generated Jenkins URL and open it in a new browser tab. --- ## 4. Unlocking Jenkins The first time Jenkins starts, it requires an **Initial Administrator Password**. To retrieve it: 1. Return to the application details page. 2. Open **Logs**. 3. Scroll through the startup logs. 4. Copy the generated administrator password. Return to the Jenkins setup page, paste the password, and click **Continue**. --- ## 5. Installing Plugins Choose **Install Suggested Plugins** to install the recommended plugins automatically. Alternatively, you can select only the plugins you want to install. > **Note:** Plugin installation may take a few minutes while Jenkins completes its initial setup. After the installation finishes, click **Continue**. --- ## 6. Complete the Setup Create your administrator account if prompted. Finally, click **Start using Jenkins**. Your Jenkins instance is now ready to use. You can begin creating jobs, pipelines, and CI/CD workflows for your applications. # Core Benefits of Deploying Jenkins Using Nife ## 1. One-Click Deployment Deploy Jenkins in minutes without configuring infrastructure, Docker, Kubernetes, or web servers. ## 2. Secure by Default Every deployment includes an HTTPS endpoint, ensuring secure communication between users and the Jenkins server. ## 3. Persistent Storage Jenkins configuration, plugins, build history, and job data are stored on persistent volumes, allowing data to survive application restarts and upgrades. ## 4. Production-Ready Infrastructure Nife manages networking, storage, monitoring, and runtime infrastructure, enabling teams to focus on software delivery rather than server administration. ## 5. Easy Monitoring Monitor application health, logs, deployment status, and runtime metrics directly from the Nife dashboard. --- ## Getting Started with Jenkins Once Jenkins is deployed, you can integrate it with: - GitHub - GitLab - Bitbucket - Docker - Kubernetes - Maven - Gradle - Terraform - Ansible - AWS - Azure - Google Cloud This enables fully automated build, test, and deployment pipelines for modern software development. --- ## Official Documentation For advanced configuration, plugin management, pipeline creation, and administration, refer to the official Jenkins documentation. **Jenkins Official Website:** https://www.jenkins.io/ --- ## Related Resources - 📦 Marketplace (https://launch.nife.io/templates) — Discover more open-source applications - 🚀 [Launch Dashboard](https://launch.nife.io) — Deploy applications on Nife - 🌐 [Nife Platform](https://nife.io) — Learn more about the Nife cloud platform ``` --- ## How to Deploy Jupyter Notebook on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-jupyter-notebook-from-the-marketplace `} **Jupyter Notebook** is the industry standard for interactive computing, allowing data scientists and engineers to combine live code (primarily Python, R, and Julia), narrative text, mathematical equations, and rich visualizations into a single document. It is indispensable for **data cleaning, statistical modeling, machine learning prototyping, and documentation.** Deploying Jupyter Notebook through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** provides an instant, dedicated, and secure cloud environment. Nife-Deploy handles the container orchestration, dependency management, and secure access, allowing you to skip manual setup and immediately focus on your analytical workload. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar (formerly called the Marketplace). * **Selection:** Click **OpenHub** to browse the catalog of professional and open-source applications ready for deployment. ### Search for Jupyter Notebook * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter **Jupyter Notebook**. * **Identify:** Locate the **Jupyter Notebook** application card. This pre-configured deployment often includes essential libraries and a stable notebook server image. --- ## 2. Configuring and Initiating Deployment While Nife-Deploy simplifies the process, you must review configuration settings, especially the resources allocated to your compute-intensive tasks. ### Start Deployment and Configuration Review * **Action:** Hover over the Jupyter Notebook tile and click the **Deploy** button. This transitions you to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your environment (e.g., `ml-project-notebooks`). * **Cloud Region:** Select a **Cloud Region** close to your physical location for better responsiveness, especially when dealing with interactive charts or large datasets. * **Resource Allocation:** **Crucial for Data Science.** Review and adjust the allocated CPU and RAM. For complex machine learning model training or processing large data files, consider scaling these resources up to ensure adequate computational performance. > **Security Note:** Nife-Deploy automatically secures the deployment with HTTPS/TLS. When accessing the notebook for the first time, you may be prompted to enter a token or password, which is often displayed in the Nife-Deploy deployment logs. Always check the logs for initial security keys. * **Finalization:** Review all settings, then click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions the necessary high-performance resources, pulls the Jupyter container image (often pre-bundled with Python/Data Science stacks), and sets up the secure network access. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Utilizing Jupyter Notebook ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed Jupyter Notebook server interface. ### Initial Access and Environment Setup * **Login/Token:** Enter the required security token or password (found in the Nife-Deploy application logs) to access the file browser interface. * **Environment Ready:** Your environment is ready for use. You can immediately create new notebooks, upload data files, and start running code for tasks like **feature engineering, model training, and data visualization.** --- ## Core Benefits of Deploying Jupyter Notebook on Nife-Deploy Utilizing the Nife-Deploy PaaS for Jupyter Notebook elevates your data science workflow: ### 1. Instant, Dedicated Cloud IDE Eliminate the time spent installing dependencies, managing virtual environments, or configuring server security. Nife-Deploy provides a specialized, containerized environment that is instantly accessible and dedicated to your analytical tasks. ### 2. Scalable Compute for ML Workloads For intensive tasks like training large deep learning models, Nife-Deploy allows you to quickly adjust the container's CPU and RAM resources. This **on-demand scalability** is vital for high-performance computing in machine learning and complex statistical analysis. ### 3. Secure and Collaborative Hosting Your intellectual property—your notebooks and data—is hosted securely within your private Nife-Deploy deployment, protected by HTTPS and container isolation. The cloud access enables seamless collaboration without complex VPNs or network configurations. ### 4. Focused Data Analysis (PaaS Advantage) By handling the operating system, server management, networking, and security layers, Nife-Deploy lets data scientists and developers focus entirely on writing **Python/R code** and performing data analysis, adhering to best practices in data science and MLOps. --- ### Official Documentation For detailed information on using Jupyter Notebooks, kernels, and extensions: **Jupyter Documentation:** [https://jupyter.org/documentation](https://jupyter.org/documentation) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy MindsDB on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-minddb-from-openhub `} **MindsDB** is a revolutionary **open-source AI database** that seamlessly integrates machine learning capabilities directly into your data layer. It functions as a powerful **federated query engine**, allowing you to connect to over 200 data sources and run **predictive analytics** using standard SQL commands—a concept known as **In-Database Machine Learning (ML)**. Deploying MindsDB through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** provides an instant, dedicated, and secure containerized environment. Nife-Deploy manages the complex hosting requirements, freeing you to focus on connecting data and building AI models without worrying about infrastructure management or complex data pipelines. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered credentials to access the application management console. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar. * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for MindsDB * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter the term **MindsDB**. * **Identify:** Locate the official **MindsDB** application card, pre-configured for deployment on the Nife-Deploy infrastructure. --- ## 2. Configuring and Initiating Deployment MindsDB often requires setting up initial credentials or environment variables for stable operation and securing the dashboard access. ### Start Deployment and Configuration Review * **Action:** Hover over the MindsDB application card and click the **Deploy** button. This transitions you to the configuration screen. ### Define Deployment Settings * **App Name:** Assign a unique name to your AI database instance (e.g., `mindsdb-analytics-engine`). * **Cloud Region:** Select a **Cloud Region** that provides the best connectivity to your primary data sources to minimize latency during federated querying. * **Resource Allocation:** Review and adjust the allocated resources. MindsDB, especially when training complex ML models or handling large dataset queries, benefits significantly from sufficient **CPU** and **RAM** allocation. > **Mandatory Security Configuration:** Depending on the specific container configuration, you may need to define an environment variable for the initial administrator or root password to secure the MindsDB web interface and API access. Always use a strong, unique password. * **Finalization:** Review all settings, confirm any required environment variables, and click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions the necessary resources, pulls the MindsDB container image, applies your configurations, and establishes a secure HTTPS network endpoint. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Utilizing MindsDB ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed MindsDB interface, which includes the **MindsDB GUI (web interface)**. ### Initial Login and Connection * **Login:** Use the credentials you configured during deployment to log into the MindsDB GUI. * **Start Connecting:** The first step is to use the **`CREATE DATABASE`** SQL command within the MindsDB interface to connect your external data sources (e.g., PostgreSQL, MongoDB, CSV files, or even APIs like HubSpot). This activates the **Federated Query Engine**. * **Build Models:** Once connected, you can build a predictive model using simple syntax: `CREATE MODEL PREDICT ...` --- ## Core Benefits of Deploying MindsDB on Nife-Deploy Utilizing the Nife-Deploy PaaS for MindsDB provides a streamlined, powerful platform for data-driven AI: ### 1. In-Database Machine Learning (In-Place Analytics) MindsDB integrates ML models directly within the database architecture. Hosted on Nife-Deploy, you eliminate the need to ETL (Extract, Transform, Load) data into a separate ML environment, running predictions directly where your data resides using the **Federated Query Engine**. ### 2. High Versatility and Data Unification MindsDB supports over 200 data integrations. Nife-Deploy provides the stable, containerized runtime required for this platform to seamlessly connect, unify, and analyze data across disparate sources via a single deployment. ### 3. Scalable for AI Workloads Training ML models is computationally intensive. Nife-Deploy allows you to quickly adjust the container's dedicated resources (CPU, RAM) to handle large training sets or complex algorithms, ensuring reliable performance for your **MLOps** workflow. ### 4. Simplified Deployment and Maintenance Nife-Deploy abstracts the underlying infrastructure management, networking (HTTPS), and server maintenance. Data scientists and developers can deploy a sophisticated AI platform instantly, focusing purely on predictive modeling and data analysis. --- ### Official Documentation For detailed information on SQL syntax, connecting data sources, and building advanced ML models with MindsDB: **MindsDB Documentation:** [https://docs.mindsdb.com/mindsdb](https://docs.mindsdb.com/mindsdb) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy N8n on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-n8n-from-the-marketplace `} **N8n** is a leading **open-source workflow automation platform** that allows users to connect various applications, services, and APIs using a **visual, node-based interface**. It facilitates everything from data transformation and syncing databases to complex conditional logic, enabling true **low-code/no-code integration**. Deploying N8n through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** provides an instant, dedicated, and secure containerized environment. Nife-Deploy handles the infrastructure, ensuring your critical **webhooks** and scheduled workflows run reliably and scalably without manual server configuration. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar (standardizing the terminology). * **Selection:** Click **OpenHub** to browse the catalog of professional and open-source applications ready for deployment. ### Search for N8n * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter **N8n**. * **Identify:** Locate the **N8n** application card. This containerized deployment is optimized for the Nife-Deploy PaaS environment. --- ## 2. Configuring and Initiating Deployment N8n requires setting up credentials for its administrative user and benefits from defining specific environment variables for production use. ### Start Deployment and Configuration Review * **Action:** Hover over the N8n tile and click the **Deploy** button. This transitions you to the configuration screen. ### Define Deployment Settings * **App Name:** Assign a unique name to your automation instance (e.g., `my-n8n-workflows`). * **Cloud Region:** Select a **Cloud Region** close to your primary applications and APIs to minimize latency for triggered workflows. * **Resource Allocation:** Review the allocated resources. For workflows that handle large files or run frequently, ensure adequate **CPU** and **RAM** are allocated. > **Crucial Environment Variables:** For a production-ready N8n instance, you must define environment variables: > * **`N8N_HOST`**: Set to the public-facing URL provided by Nife-Deploy to ensure webhooks function correctly. > * **`N8N_BASIC_AUTH_USER`** and **`N8N_BASIC_AUTH_PASSWORD`**: Use these to set the administrative credentials for your N8n web interface. **A strong, unique password is mandatory.** * **Finalization:** Review all settings, ensure mandatory environment variables are set, and click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions resources, pulls the N8n container image, securely applies your configurations, and sets up the secure network access. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Utilizing N8n ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed N8n web interface. ### Initial Access and Workflow Creation * **Login:** Use the administrative credentials (the basic auth user/password) you configured during deployment. * **Start Automation:** Once logged in, you can immediately begin creating new workflows using the **Visual Editor**. Use the extensive library of pre-built nodes to connect your databases, APIs, and cloud services into powerful automated processes. --- ## Core Benefits of Deploying N8n on Nife-Deploy Utilizing the Nife-Deploy PaaS for N8n provides a reliable and scalable foundation for all your integration needs: ### 1. Reliable Webhook Infrastructure N8n workflows are often triggered by webhooks. Nife-Deploy provides a stable, secure, and internet-accessible endpoint (HTTPS) for your N8n instance, ensuring that time-sensitive, incoming HTTP requests from external services are reliably received and processed. ### 2. Scalability for Growing Automations As your business processes become more automated, the demand on your N8n instance increases. Nife-Deploy allows for effortless **scaling of resources** (CPU and RAM) to accommodate higher workflow execution volumes, complex data transformations, and concurrent job processing. ### 3. Open-Source Flexibility with Managed Hosting You get the complete functional freedom and extensibility of the open-source N8n platform without the complexity of manual server management. Nife-Deploy handles the container orchestration, server maintenance, and security patching. ### 4. Secure Credential Management By setting up N8n securely within the Nife-Deploy environment, sensitive API keys and credentials used within your workflows are managed securely within the container, protected by the platform's isolated and encrypted architecture. --- ## Learn More About N8n For detailed guides on creating advanced workflows, using custom nodes, and integrating with external APIs: **N8n Official Documentation:** [https://docs.n8n.io](https://docs.n8n.io) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy Nginx on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-nginx-from-the-marketplace `} **Nginx** (pronounced "engine-x") is a highly popular, **open-source web server** renowned for its low memory footprint, high concurrency, and exceptional performance. It is widely used not only for serving **static content** but also critically as a **reverse proxy, HTTP cache, and load balancer** for modern, scalable microservice architectures. Deploying Nginx through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** is the fastest way to get a secure, containerized instance running. Nife-Deploy handles the networking, environment setup, and resource allocation, allowing you to instantly receive a public endpoint ready for configuration and traffic routing. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar (standardizing the terminology from Marketplace). * **Selection:** Click **OpenHub** to browse the catalog of professional and open-source applications ready for deployment. ### Search for Nginx * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter the term **NGINX**. * **Identify:** Locate the **NGINX** application card. This is the stable, pre-configured container image optimized for the Nife-Deploy PaaS. --- ## 2. Configuring and Initiating Deployment Nginx deployment on Nife-Deploy is straightforward, focusing on resource allocation and naming the container. ### Start Deployment and Configuration Review * **Action:** Hover over the NGINX tile and click the **Deploy** button. This transitions you to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your Nginx instance (e.g., `my-nginx-proxy` or `static-website-host`). * **Cloud Region:** Select a **Cloud Region** closest to your target user base to minimize HTTP request latency and improve site speed. * **Resource Allocation:** Review the default CPU and RAM. While Nginx is lightweight, if you plan to use it for heavy **load balancing** or as a **high-volume HTTP cache**, you may need to scale these resources accordingly. > **Note on Configuration Files:** Once deployed, the core task is to update the default Nginx configuration file (`nginx.conf`) to serve your files or route traffic. This is typically done by mounting a volume or editing files within the container environment provided by Nife-Deploy. * **Finalization:** Review all settings, then click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions resources, pulls the Nginx container image, and establishes a secure HTTPS network endpoint for your server. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Utilizing Nginx ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed Nginx instance. ### Verification and Next Steps * **Confirmation:** You should see the standard **"Welcome to nginx!"** landing page, confirming the server is live and correctly routing traffic. * **Next Steps (Critical):** To use Nginx for a specific purpose, you must now: 1. Upload your static HTML/CSS/JS files to the container's designated public directory. 2. Configure the `nginx.conf` file to set up **reverse proxying** to backend applications or to manage **load balancing** rules. --- ## Core Benefits of Deploying Nginx on Nife-Deploy Utilizing the Nife-Deploy PaaS for Nginx provides a powerful, managed foundation for web architecture: ### 1. High-Concurrency and Performance Nginx is optimized to handle thousands of concurrent connections using an event-driven architecture. Nife-Deploy provides the stable, containerized runtime needed to fully leverage Nginx's performance as a **reverse proxy** or high-speed static content server. ### 2. Built-in Security (HTTPS/TLS) Nife-Deploy automatically provisions and manages an **SSL/TLS certificate** for your Nginx endpoint, ensuring all traffic between users and your web server is encrypted (HTTPS) without requiring manual certificate setup. ### 3. Scalable Microservice Integration For modern application architectures, Nginx is essential for **load balancing** traffic across multiple backend services (containers). The Nife-Deploy PaaS architecture makes it seamless to integrate and manage Nginx as the traffic gateway for your microservices. ### 4. Zero Server Setup Overhead Developers can deploy a production-grade web server instantly, bypassing the need for manual OS configuration, package installation, service management (like `systemctl`), or firewall rules. --- ### Official Documentation For detailed information on configuring Nginx as a reverse proxy, load balancer, or caching server: **Nginx Official Documentation:** [https://nginx.org/en/docs/](https://nginx.org/en/docs/) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy Qdrant on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-qdrant-from-the-marketplace `} # Qdrant on Nife-Deploy: Deploy a Scalable Vector Database **Qdrant** is a high-performance **open-source vector database** built for large-scale AI and machine learning workloads. It enables efficient storage, indexing, and **similarity search** for vector embeddings, making it ideal for semantic search, Retrieval-Augmented Generation (RAG), recommendation systems, and AI assistants. Deploying Qdrant through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** provides a production-ready environment without the complexity of managing infrastructure. Nife automatically provisions persistent storage, networking, and a secure HTTPS endpoint, allowing you to quickly deploy and scale vector search applications. # 1. Accessing the Qdrant ## Access the Nife Launch Platform * **Visit:** Open **https://launch.nife.io** in your browser. * **Sign In:** Log in using your Nife account credentials to access the dashboard. ## Navigate to Templates * From the left navigation panel, click **Templates**. * This page lists all the deployment templates available on the Nife platform. * You can also directly access the Templates page at **https://launch.nife.io/templates**. ## Open the Marketplace * Inside the **Templates** page, select the **Marketplace** tab. * The Marketplace contains a collection of open-source applications that can be deployed with just a few clicks. ## Search for Qdrant * Use the search bar to search for **Qdrant**. * Once the Qdrant application appears, click **View Details** to review the application. --- # 2. Deploying Qdrant ## Start Deployment Click **Deploy Qdrant**. ## Configure the Deployment Review the deployment settings before continuing. * **Organization:** Select the organization where you want to deploy Qdrant. * **Deployment Region:** Choose the preferred deployment region. * **Application Name:** Specify a unique name for your Qdrant instance if required. > **Deployment Note:** Nife automatically provisions the application, networking, persistent storage, and a secure HTTPS endpoint. No manual infrastructure setup is required. ## Deploy the Application Click **Deploy**. Nife will now: * Provision the Qdrant application. * Configure the deployment environment. * Create networking and persistent storage resources. * Generate a secure application endpoint. Wait until the deployment status changes to **Running**. --- # 3. Accessing Qdrant Once the deployment is complete: * Click **View Application**. * You'll be redirected to the application details page. The application page provides access to: * Application URL * Logs * Volumes * Monitoring Metrics * Deployment Information Open the **Application** tab to view the application URL. Copy the generated Qdrant URL. --- # 4. Accessing the Qdrant Dashboard After copying the application URL, open it in your browser. The Qdrant Dashboard provides a web-based interface for managing your vector database. Using the dashboard, you can: * Create and manage collections. * View existing collections. * Explore collection details and configuration. * Monitor vector data and indexes. * Execute queries using the built-in API interface. --- # 6. Complete the Setup Your Qdrant instance is now ready to use. You can begin storing vector embeddings, performing similarity searches, and building AI-powered semantic search and Retrieval-Augmented Generation (RAG) applications. --- # Benefits of Deploying Qdrant Using Nife ## 1. One-Click Deployment Deploy Qdrant in minutes without manually configuring infrastructure, containers, or networking. ## 2. Secure by Default Every deployment includes a secure HTTPS endpoint, ensuring encrypted communication between your applications and the Qdrant instance. ## 3. Persistent Storage Collections, vectors, indexes, and metadata are stored on persistent volumes, allowing your data to remain available across restarts and upgrades. ## 4. Production-Ready Infrastructure Nife manages networking, storage, monitoring, and the runtime environment, enabling you to focus on developing AI applications instead of managing infrastructure. ## 5. Easy Monitoring Monitor deployment status, logs, storage, runtime metrics, and application health directly from the Nife dashboard. --- # Getting Started with Qdrant After deployment, you can use Qdrant to: * Store and index vector embeddings. * Perform high-performance similarity searches. * Build semantic search applications. * Develop Retrieval-Augmented Generation (RAG) systems. * Power recommendation engines and AI assistants. * Integrate with frameworks such as LangChain, LlamaIndex, and Haystack. * Connect using the official Qdrant Python client, REST API, or gRPC API. --- # Official Documentation For advanced configuration, API reference, SDKs, and deployment best practices, refer to the official Qdrant documentation. **Qdrant Official Website:** https://qdrant.tech/ --- # Related Resources * 📦 [Marketplace](https://launch.nife.io/templates) — Browse and deploy open-source applications. * 🚀 [Launch Dashboard](https://launch.nife.io) — Manage your deployed applications. * 🌐 [Nife Platform](https://nife.io) — Learn more about the Nife cloud platform. --- ## How to Deploy SearXNG on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-searxng-from-the-marketplace `} **SearXNG** is a powerful, **open-source metasearch engine** that aggregates results from over 70 search services (including Google, Bing, and DuckDuckGo) while guaranteeing **user privacy**. It strips identifying information from search requests, prevents tracking cookies, and never logs user activity, making it the ultimate tool for a **tracker-free** web search experience. Deploying your own SearXNG instance through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** is the most reliable way to achieve a **self-hosted** solution. Nife-Deploy manages the container hosting, high-availability, and secure access, giving you a dedicated private search endpoint instantly. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar (standardizing the terminology from Marketplace). * **Selection:** Click **OpenHub** to browse the catalog of professional and open-source applications ready for deployment. ### Search for SearXNG * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter **SearXNG**. * **Identify:** Locate the **SearXNG** application card. This pre-configured container image is optimized for deployment on the Nife-Deploy PaaS. --- ## 2. Configuring and Initiating Deployment SearXNG deployments are streamlined, but defining a few key settings ensures optimal performance and security. ### Start Deployment and Configuration Review * **Action:** Hover over the SearXNG tile and click the **Deploy** button. This transitions you to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your private search instance (e.g., `my-private-search`). * **Cloud Region:** Select a **Cloud Region** close to your physical location to minimize latency for search queries. * **Resource Allocation:** Review the default CPU and RAM. While SearXNG is lightweight, allocating sufficient resources ensures quick aggregation of results from multiple external search engines. > **Crucial Environment Variable (`SECRET_KEY`):** For security, SearXNG requires a random, unique **`SECRET_KEY`** to be set as an environment variable (or within the configuration file). This key is essential for generating secure tokens and cookies. Nife-Deploy usually handles the generation of this key automatically, but ensure it is confirmed before deployment. * **Finalization:** Review all settings, confirm the necessary environment variables, and click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions resources, pulls the SearXNG container image, securely applies your configurations, and establishes a secure HTTPS network endpoint. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Utilizing SearXNG ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed SearXNG interface. ### Initial Search and Customization * **Start Searching:** Your self-hosted metasearch engine is immediately ready for use. * **Privacy Features:** You can immediately begin using the search bar, confident that all requests are proxied through your Nife-Deploy deployment, obscuring your IP address from the external engines. * **Customization:** Access the settings panel within the SearXNG interface to customize preferences, including which search engines to query, themes, and language options. --- ## Core Benefits of Deploying SearXNG on Nife-Deploy Utilizing the Nife-Deploy PaaS for SearXNG offers the highest level of web search privacy and control: ### 1. Zero Logging and Tracking Guarantee Since you control the entire stack, your self-hosted instance ensures **no user logs, no search history, and no profiling** occurs. All queries are anonymized before being passed to external providers, providing true digital sovereignty over your search activity. ### 2. High Availability Metasearch Nife-Deploy provides the stable, containerized environment necessary for SearXNG to run reliably. This is critical for a metasearch engine, which must simultaneously query multiple external APIs without failures or timeouts. ### 3. Dedicated, Secure Endpoint (HTTPS) Your SearXNG instance is hosted on a unique, secure URL provisioned by Nife-Deploy with **HTTPS/TLS encryption**. This protects your search queries from being intercepted in transit, a fundamental requirement for any privacy tool. ### 4. Simplified Deployment for a Complex Tool SearXNG requires careful configuration of proxies and secrets. Nife-Deploy eliminates this DevOps complexity, enabling immediate deployment so users can focus on the benefits of private search rather than server maintenance. --- ### Official Documentation For detailed guides on customizing search engines, setting rate limits, and advanced configuration: **SearXNG Official Documentation:** [https://docs.searxng.org](https://docs.searxng.org) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy SSHwifty on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-deploy-sshwifty-from-the-openhub `} **SSHwifty** is a modern, high-performance, **web-based SSH and Telnet client** that bridges the gap between your browser and remote servers. It is the ideal solution for developers, system administrators, and IT professionals who require **instant, secure terminal access** to infrastructure from any device without the need to install desktop client software. Deploying SSHwifty through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** transforms it into a robust **Terminal-as-a-Service** solution. Nife-Deploy handles the container orchestration and provides a secure **HTTPS** endpoint, ensuring your remote connections are both instant and protected. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar. * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for SSHwifty * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter **SSHwifty**. * **Identify:** Locate the **SSHwifty** application card, which is pre-configured for deployment on the Nife-Deploy PaaS. --- ## 2. Configuring and Initiating Deployment SSHwifty is lightweight, but reviewing resource allocation and defining a key environment variable is beneficial for production stability. ### Start Deployment and Configuration Review * **Action:** Hover over the SSHwifty tile and click the **Deploy** button. This transitions you to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your web terminal instance (e.g., `remote-ssh-gateway`). * **Cloud Region:** Select a **Cloud Region** close to your physical location or your target remote servers for optimal connection speed. * **Resource Allocation:** Review the default CPU and RAM. SSHwifty is efficient, so standard resources are typically adequate. > **Optional Environment Variables:** For enhanced security in a production environment, you may wish to configure the built-in authentication mechanism if the default SSHwifty image supports it, via variables like `AUTH_USERNAME` and `AUTH_PASSWORD`. Oikos secures the deployment URL with HTTPS, adding a primary layer of transport security. * **Finalization:** Review all settings, confirm any required environment variables, and click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions resources, pulls the SSHwifty container image, and establishes a secure HTTPS network endpoint. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Utilizing SSHwifty ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed SSHwifty interface. ### Initial Connection Setup * **Connection Prompt:** Upon launch, the SSHwifty interface will prompt you for connection details: * **Protocol:** Select **SSH** or **Telnet**. * **Hostname/IP:** Enter the address of your remote server. * **Port:** Specify the port (e.g., 22 for SSH). * **Username:** Enter your remote server username. * **Authentication:** You will be prompted for your password or for a key file upload (depending on the server's configuration and SSHwifty's capabilities) to establish the secure terminal session. --- ## Core Benefits of Deploying SSHwifty on Nife-Deploy Utilizing the Nife-Deploy PaaS for SSHwifty creates an ideal, portable remote access solution: ### 1. Zero Client Software Installation The primary benefit is **portability**. By accessing the terminal through a web browser, developers can manage servers from any machine (desktop, laptop, tablet) without installing PuTTY, Termius, or other SSH client software. ### 2. Secure Transport Layer (HTTPS) Nife-Deploy ensures your deployed SSHwifty instance uses **HTTPS/TLS encryption**. This protects the connection between your browser and the SSHwifty gateway, ensuring that the initial data transfer (credentials, session setup) is secure. ### 3. Centralized and Instant Access The PaaS environment provides a stable, always-on endpoint for your SSH gateway. This centralized access point simplifies remote maintenance and troubleshooting for sysadmins, particularly in heterogeneous network environments. ### 4. Simplified DevOps for Sysadmin Tools Nife-Deploy abstracts away the need to manage the underlying server OS or dependencies required to run the SSHwifty application. This allows IT professionals to launch a critical system administration tool instantly and reliably. --- ## Official Documentation For detailed information on advanced features, configuring persistent connections, or customizing the web client: **SSHwifty GitHub Repository:** [https://github.com/nirui/sshwifty](https://github.com/nirui/sshwifty) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Set Up Kanboard on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-set-up-kanboard-from-openhub `} **Kanboard** is a highly effective, **open-source project management application** that implements the **Kanban methodology**. It is designed for simplicity, allowing teams to visualize workflows, limit work-in-progress (WIP), and manage tasks efficiently through a clear, column-based interface. Deploying Kanboard via the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** provides an instant, dedicated, and secure environment. Nife-Deploy handles the container hosting, PHP runtime, and networking, enabling teams to launch their visual workflow management system with minimal technical overhead. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar. * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for Kanboard * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter the term **Kanboard**. * **Identify:** Locate the **Kanboard** application card, which is pre-configured for deployment on the Nife-Deploy PaaS. --- ## 2. Configuring and Initiating Deployment Kanboard is typically resource-efficient, making deployment on Nife-Deploy highly streamlined. ### Start Deployment and Configuration Review * **Action:** Hover over the Kanboard tile and click the **Deploy** button. This transitions you to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your project management instance (e.g., `dev-team-kanban`). * **Cloud Region:** Select a **Cloud Region** closest to your team members for responsive task updates and board viewing. * **Resource Allocation:** Review the default CPU and RAM. Kanboard is a very lightweight application, and standard resource allocation is usually sufficient for most teams. > **Database Configuration:** Kanboard typically uses SQLite by default, managed internally by the container for maximum simplicity. For large teams or high data volume, consider configuring an external database (e.g., PostgreSQL or MySQL) using environment variables for better scalability and data persistence, though this is usually optional. * **Finalization:** Review all settings, confirm any required environment variables, and click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions resources, pulls the Kanboard container image, and establishes a secure HTTPS network endpoint. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Initializing Kanboard ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed Kanboard instance, displaying the login screen. ### Initial Login and Mandatory Security Update * **Default Credentials (Critical):** Use the default administrator credentials: * **Username:** `admin` * **Password:** `admin` * **Security Action:** **IMMEDIATELY** after logging in for the first time, navigate to the user settings and **change the default password**. This is a mandatory security step to protect your project data and user accounts. * **Start Workflow:** Once secured, you can create your first projects, define your Kanban columns (e.g., Backlog, In Progress, Done), and start visualizing your team's workflow. --- ## Core Benefits of Deploying Kanboard on Nife-Deploy Utilizing the Nife-Deploy PaaS for Kanboard provides an efficient, managed platform for visual workflow: ### 1. Visualization of Workflow (Kanban) Kanboard effectively implements the Kanban method, helping teams limit Work-in-Progress (WIP). The Nife-Deploy platform ensures the application is highly available, so teams always have access to their real-time workflow status. ### 2. Lightweight and High Performance As a PHP application designed for speed, Kanboard runs exceptionally well on the Nife-Deploy containerized infrastructure. This efficiency translates to a fast, responsive user interface, even for large projects. ### 3. Self-Hosted Data Control Deploying Kanboard via OpenHub means your project data, user information, and task history are hosted within your own secure Nife-Deploy deployment, guaranteeing **data ownership and control** compared to third-party SaaS solutions. ### 4. Zero Maintenance Overhead Nife-Deploy abstracts away the need to manage the web server (Nginx/Apache), PHP runtime, and container lifecycle. This allows project managers and teams to focus purely on productivity and task management, not infrastructure. --- ### Official Documentation For detailed information on customizing columns, setting up recurring tasks, and using plugins: **Kanboard Documentation:** [https://docs.kanboard.org/](https://docs.kanboard.org/) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Set Up Etherpad on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-set-up-etherpad-from-openhub # How to Set Up and Use Etherpad on Nife-Deploy OpenHub: Deploying an Open-Source Real-Time Collaborative Editor Etherpad is an open-source real-time collaborative editor that allows multiple users to work on the same document simultaneously. It provides a simple and lightweight interface where users can create and edit text together with instant updates. The tool highlights each user’s contributions in different colors, making it easy to track changes and collaborate effectively. It is widely used for team collaboration, note-taking, meetings, and classroom activities. Deploying Etherpad through Nife-Deploy OpenHub allows users to quickly launch their own collaborative editing environment without manually installing dependencies or configuring servers. --- # 1. Accessing the Nife-Deploy OpenHub Catalog ## Access the Nife-Deploy Console Visit: Visit the Nife launchpad: https://launch.nife.io Login: Log in using your registered account credentials to access the deployment dashboard. If you do not have an account, create one to access the platform. ## Navigate to OpenHub Locate: Once logged in, locate the sidebar on the left side of the dashboard. Navigation: Under the Automation section, click Templates. Selection: Open the Marketplace, which contains a collection of deployable open-source applications. ## Search for Etherpad Search Bar: Use the search bar inside the marketplace and type Etherpad. Identify: Locate the Etherpad application card prepared for deployment. --- # 2. Configuring and Initiating Deployment ## Start Deployment Action: Hover over the Etherpad application tile and click on the Quick Deploy button. Result: This action opens the deployment configuration window where you can review the settings. ## Review Deployment Settings Before launching the application, review the configuration options available in the deployment popup. ### Application Name Assign a unique name to your Etherpad instance. The platform may automatically generate a name based on the container image, but you can modify it to better identify your deployment. ### Organization Select the organization under which the application will be deployed. In most cases this will be the default organization associated with your account. ### Cloud Region Choose the cloud region closest to your location to reduce latency and improve application performance. Selecting a nearby region ensures faster loading times and a smoother user experience. ### Deployment Configuration The configuration panel displays technical details such as the container image used to run the application, the runtime environment, and the port mapping required for accessing the service. ### Resource Allocation The platform automatically assigns appropriate CPU and memory resources for the container. These default resources are typically sufficient because Etherpad is a lightweight application. ### Finalization After reviewing all settings, click Deploy Application to start the container deployment. The Nife-Deploy OpenHub platform will automatically pull the container image, configure networking, and launch the application. ## Monitor Deployment Status Wait until the deployment status changes to Running. --- # 3. Accessing the Etherpad Application ## Launch the Application Action: Once the deployment status shows Running, click the Open App button from the deployment dashboard. Result: This redirects you to the hosted Etherpad interface. ## Interface Initialization Action: After the interface loads, you can start using Etherpad immediately. Result: You can create a new pad and begin collaborating instantly by sharing the link with others. --- # 4. Usage and Collaboration Features ## Real-Time Collaboration Action: Share the pad link with others. Result: Multiple users can join and edit the document in real time, with each user’s changes highlighted in different colors. ## Note-Taking and Meetings Action: Use Etherpad for writing and collaboration. Result: Suitable for team collaboration, note-taking, meetings, and classroom activities. ## Simple Document Editing Action: Create and edit pads. Result: Provides a clean and efficient writing environment for collaborative work. --- # Core Benefits of Deploying Etherpad on Nife-Deploy ## 1. Instant Deployment Using Nife-Deploy OpenHub allows you to launch Etherpad quickly without configuring servers or installing dependencies. ## 2. Real-Time Collaboration Multiple users can work on the same document simultaneously. ## 3. Lightweight and Fast Etherpad is simple, fast, and requires minimal resources. ## 4. Self-Hosted Alternative Provides a private alternative to tools like Google Docs for real-time collaboration. --- # Official Documentation For more details about advanced features and customization options: Etherpad Documentation: https://github.com/ether/etherpad-lit --- ## How to Set Up Shaarli on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-setup-and-use-Shaarli-from-nife-deploy **Shaarli** is a minimalist, **open-source bookmark manager** known for its speed and simplicity. It provides a dedicated, **self-hosted** platform for saving, organizing, and securely sharing web links, offering a modern, private alternative to relying solely on browser or commercial bookmark tools. Deploying Shaarli via the **Nife-Deploy OpenHub Platform-as-Service (PaaS)** provides an instant, dedicated, and secure containerized environment. Nife-Deploy manages the infrastructure and persistence, ensuring your valuable link collection is always available and backed up. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar. * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for Shaarli * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter the term **Shaarli**. * **Identify:** Locate the **Shaarli** application card, pre-configured for deployment on the Nife-Deploy PaaS. --- ## 2. Configuring and Initiating Deployment Shaarli requires persistent storage for its configuration and database (typically SQLite) to ensure saved links are retained. ### Start Deployment and Configuration Review * **Action:** Hover over the Shaarli tile and click the **Deploy** button. This transitions you to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your bookmark instance (e.g., `my-link-archive`). * **Cloud Region:** Select a **Cloud Region** closest to your location for quick access and loading times. * **Resource Allocation:** Review the default CPU and RAM. Shaarli is extremely lightweight, and standard resources are more than adequate. > **Crucial Persistence:** Nife-Deploy must ensure a **persistent volume** is mapped to the container location where Shaarli stores its configuration and data (often the entire application folder or a specific data path). This is vital to prevent the loss of your saved links upon container restarts. * **Finalization:** Review all settings, confirm persistence is configured, and click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions resources, pulls the Shaarli container image, maps the persistent storage, and establishes a secure HTTPS network endpoint. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Initializing Shaarli ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed Shaarli instance, which will present the initial setup page. ### First-Time Setup and Security * **Set Admin Password:** The first step is to immediately define a strong, unique **Admin Password**. This password is required for you to save new links and modify settings. * **Log In:** Use the password you just set to access the main bookmark dashboard. --- ## 4. Key Usage and Organization Features Once logged in, your Shaarli instance is ready to use its core features: ### 4.1. Saving Links (Bookmarklet) The most efficient way to save links is using the **Bookmarklet**: * **Retrieve:** Navigate to the **Tools** or **Settings** section in Shaarli to find the bookmarklet code. * **Install:** Drag this button/link to your browser's bookmark toolbar. * **Save Instantly:** When viewing a page you want to save, simply click the bookmarklet in your toolbar. A pop-up will appear, allowing you to instantly add the URL, title, description, and tags without leaving the page. ### 4.2. Organizing and Filtering * **Tags:** Add relevant **tags** (e.g., `ai`, `python`, `tutorial`) to every link. Tags are the primary method of organization. * **Filtering:** Click on any tag in the sidebar to instantly filter your entire collection. You can also use the search bar to combine keywords and multiple tags for highly specific results. * **Description:** Use the description field to add rich context, summaries, or personal notes to each link. ### 4.3. Privacy and Sharing * **Visibility:** When saving a link, you can choose its visibility: * **Public:** The link is visible to anyone visiting your Shaarli instance (if public access is enabled in settings). * **Private:** The link is only visible when you are logged in. * **Sharing:** The entire instance can be shared, or you can use the unique URL of a specific bookmark to share a single item with others. ### 4.4. Data Management * **Import:** Use the **Tools → Import/Export** section to import bookmarks from a standard **HTML file** (exported from Chrome, Firefox, etc.). * **Export:** Export your entire Shaarli collection at any time as a backup. --- ## Core Benefits of Deploying Shaarli on Nife-Deploy ### 1. Data Sovereignty and Privacy By deploying Shaarli on Nife-Deploy, you gain **full ownership and control** over your saved links. Your personal archive is secured within your private container, ensuring no third party tracks or monitors your web interests. ### 2. High Availability for Bookmarks Nife-Deploy ensures the containerized Shaarli application is stable and reliable, meaning your link collection is always accessible and syncs smoothly across all your devices using its web interface. ### 3. Lightweight and Fast Access Shaarli's minimal design and reliance on efficient technologies (often SQLite) ensure fast loading times. Nife-Deploy provides the high-performance runtime required for quick bookmark saving and searching, even with thousands of links. ### 4. Simple Deployment with Managed Persistence Nife-Deploy handles all server-side necessities, including PHP runtime and persistent storage configuration, allowing you to launch a robust bookmark manager instantly without any manual web server or database setup. --- ### Official Documentation For detailed guides on advanced configuration, themes, and community tools: **Shaarli Documentation:** [https://shaarli.readthedocs.io/en/master/](https://shaarli.readthedocs.io/en/master/) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Set Up Shiori on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-set-up-shiori-from-openhub # How to Set Up and Use Shiori on Nife-Deploy OpenHub: Deploying an Open-Source Bookmark Manager Shiori is an open-source bookmark manager that allows users to store, organize, and access their personal collection of links from anywhere. It provides a clean and simple interface for managing bookmarks with features like tagging and search, making it a great alternative to traditional browser-based bookmarks. The tool is lightweight and designed for self-hosting, giving users full control over their saved content without relying on third-party services. Deploying Shiori through Nife-Deploy OpenHub allows users to quickly launch their own private bookmarking system without manually installing dependencies or configuring servers. --- # 1. Accessing the Nife-Deploy OpenHub Catalog ## Access the Nife-Deploy Console Visit: Visit the Nife launchpad: https://launch.nife.io Login: Log in using your registered account credentials to access the deployment dashboard. If you do not have an account, create one to access the platform. ## Navigate to OpenHub Locate: Once logged in, locate the sidebar on the left side of the dashboard. Navigation: Under the Automation section, click Templates. Selection: Open the Marketplace, which contains a collection of deployable open-source applications. ## Search for Shiori Search Bar: Use the search bar inside the marketplace and type Shiori. Identify: Locate the Shiori application card prepared for deployment. --- # 2. Configuring and Initiating Deployment ## Start Deployment Action: Hover over the Shiori application tile and click on the Quick Deploy button. Result: This action opens the deployment configuration window where you can review the settings. ## Review Deployment Settings Before launching the application, review the configuration options available in the deployment popup. ### Application Name Assign a unique name to your Shiori instance. The platform may automatically generate a name based on the container image, but you can modify it to better identify your deployment. ### Organization Select the organization under which the application will be deployed. In most cases this will be the default organization associated with your account. ### Cloud Region Choose the cloud region closest to your location to reduce latency and improve application performance. Selecting a nearby region ensures faster loading times and a smoother user experience. ### Deployment Configuration The configuration panel displays technical details such as the container image used to run the application, the runtime environment, and the port mapping required for accessing the service. ### Resource Allocation The platform automatically assigns appropriate CPU and memory resources for the container. These default resources are typically sufficient because Shiori is a lightweight application. ### Finalization After reviewing all settings, click Deploy Application to start the container deployment. The Nife-Deploy OpenHub platform will automatically pull the container image, configure networking, and launch the application. ## Monitor Deployment Status Wait until the deployment status changes to Running. --- # 3. Accessing the Shiori Application ## Launch the Application Action: Once the deployment status shows Running, click the Open App button from the deployment dashboard. Result: This redirects you to the hosted Shiori interface. ## Interface Initialization Action: After the interface loads, log in using the default credentials. Result: - Username: shiori - Password: gopher After logging in, you can start adding bookmarks, organizing them with tags, and managing your personal collection of links. --- # 4. Usage and Bookmark Management ## Adding Bookmarks Action: Add new links to your collection using the interface. Result: Your bookmarks are stored and accessible anytime. ## Organizing with Tags Action: Use tags to categorize and organize bookmarks. Result: Makes it easier to search and manage large collections. ## Access Anywhere Action: Access your Shiori instance from any device. Result: You have a private, self-hosted bookmarking system available anytime. --- # Core Benefits of Deploying Shiori on Nife-Deploy ## 1. Instant Deployment Using Nife-Deploy OpenHub allows you to launch Shiori quickly without configuring servers or installing dependencies. ## 2. Private Bookmarking Keep your bookmarks secure within your own hosted environment. ## 3. Lightweight and Fast Shiori is designed to be minimal and efficient, making it easy to run on low-resource systems. ## 4. Organized Link Management Easily manage and retrieve links using tags and search features. --- # Official Documentation For more details about advanced features and customization options: Shiori Documentation: https://github.com/go-shiori/shiori --- ## How to Set Up Whoogle on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-setup-and-use-Whoogle-from-nife-deploy `} **Whoogle** is an innovative, **open-source search engine proxy** that stands between you and Google. It fetches Google search results but completely strips out ads, tracking code, AMP links, and personalized profiling data. By deploying Whoogle, you gain a **self-hosted, ad-free, and privacy-respecting** way to access the world's largest search index without compromising your digital footprint. Deploying Whoogle via the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** provides an instant, dedicated, and secure containerized environment. Nife-Deploy manages the networking and hosting, allowing you to establish a private search endpoint quickly and reliably. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar. * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for Whoogle * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter the term **Whoogle**. * **Identify:** Locate the **Whoogle** application card, pre-configured for deployment on the Nife-Deploy PaaS. --- ## 2. Configuring and Initiating Deployment Whoogle deployment is straightforward, as its configuration is typically managed post-deployment via the web interface. ### Start Deployment and Configuration Review * **Action:** Hover over the Whoogle tile and click the **Deploy** button. This transitions you to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your private search instance (e.g., `ad-free-search`). * **Cloud Region:** Select a **Cloud Region** closest to your location for better query speed. * **Resource Allocation:** Review the default CPU and RAM. Whoogle is very lightweight and standard resources are sufficient for proxying search requests. > **Optional Environment Variables:** If you wish to pre-configure security settings or restrict access before the first web interface login, you may set environment variables specific to the Whoogle container (e.g., `WHOOGLE_CONFIG_PASSWORD` for initial admin access, if supported by the image). * **Finalization:** Review all settings, and click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions resources, pulls the Whoogle container image, and establishes a secure HTTPS network endpoint. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Utilizing Whoogle ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed Whoogle interface. ### Private Searching and Unbiased Results * **Search:** Use the search bar as you normally would. Whoogle acts as an intermediary, querying Google on your behalf without revealing your IP address or browser details. * **Ad-Free:** Note that the results page will be completely clean of advertisements and tracking scripts, providing **unbiased search results**. ### Configuring Your Private Instance * **Settings Access:** Click the **Settings** icon (often a gear symbol) on the results page. * **Customization:** Adjust critical options: * **SafeSearch:** Adjust the level of filtering for explicit content. * **Search Language:** Set the preferred language for search results. * **Appearance:** Toggle features like **Dark Mode** and link behavior. ### Making Whoogle Your Default Search Engine * **Integration:** Copy the **HTTPS URL** provided by Nife-Deploy and paste it into your browser's search settings (Chrome, Firefox, Safari) to make your private Whoogle instance the default engine for all future searches. --- ## Core Benefits of Deploying Whoogle on Nife-Deploy ### 1. Enhanced Privacy and Anonymity By deploying Whoogle, all your search queries are proxied through your dedicated Nife-Deploy container. This prevents Google from associating your **personal IP address** or **tracking cookies** with your search history. ### 2. Ad-Free and Unbiased Experience Whoogle actively filters out all advertising and tracking elements, ensuring you receive pure, **unpersonalized search results** based solely on relevance, not on profiling. ### 3. Self-Hosted Control You retain **full control** over the search experience and configuration. You decide which settings apply, ensuring the tool always meets your personal privacy standards. ### 4. Simple Deployment with Managed Security Nife-Deploy handles the secure hosting and provides an **HTTPS** connection, protecting the transport layer between your browser and your Whoogle instance, which is crucial for any privacy tool. --- ### Official Documentation For detailed information on advanced configuration, command-line arguments, and integration options: **Whoogle Search GitHub Repository:** [https://github.com/benbusby/whoogle-search](https://github.com/benbusby/whoogle-search) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Set Up Gitea on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-setup-and-use-gitea-from-nife-deploy **Gitea** is an efficient and lightweight **self-hosted Git service** designed to be a simpler, faster alternative to monolithic platforms like GitHub or GitLab. It provides all the essential features needed for effective code collaboration, including **repository management, pull requests, issue tracking, and a built-in wiki.** Deploying Gitea through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** is the ideal solution for teams requiring a **private, autonomous Git environment**. Nife-Deploy handles the container orchestration, persistence (volume mapping for data), and secure networking, allowing you to launch a production-ready code hosting platform in minutes. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar. * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for Gitea * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter the term **Gitea**. * **Identify:** Locate the **Gitea** application card, pre-configured for deployment on the Nife-Deploy PaaS. --- ## 2. Configuring and Initiating Deployment Gitea requires a secure environment for data persistence (repositories, users) and proper network routing. ### Start Deployment and Configuration Review * **Action:** Hover over the Gitea tile and click the **Deploy** button. This transitions you to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your Git instance (e.g., `team-code-host`). * **Cloud Region:** Select a **Cloud Region** that offers the lowest latency for the developers who will be frequently cloning and pushing code. * **Resource Allocation:** Review the default CPU and RAM. While Gitea is lightweight, resource needs will grow with the number of repositories, users, and CI/CD pipelines being integrated. > **Persistence (Volume Mapping):** Nife-Deploy typically ensures data persistence by automatically mounting a dedicated volume to the container path `/data` (where Gitea stores its database, repositories, and index). **Crucially, ensure this volume is backed up regularly to protect your source code.** * **Finalization:** Review all settings, confirm persistence is configured, and click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions resources, pulls the Gitea container image, maps the persistent storage, and establishes a secure HTTPS network endpoint. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Initializing Gitea ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed Gitea instance, which presents the **Initial Configuration Page**. ### Initial System Setup * **Database Settings:** On the initial setup page, confirm the database settings (often SQLite for simplicity, or connect to an external PostgreSQL/MySQL instance if required). * **Application General Settings:** Set the base URL (which should match your Nife-Deploy public endpoint) and the server name. * **Create Admin Account (Mandatory):** Scroll down to the Administrator Account section and: * Choose a secure **Username**. * Enter a primary **Email Address**. * Set a strong, unique **Password**. * **Finalize:** Click **Install Gitea** to complete the setup and proceed to the main dashboard. --- ## 4. Managing Repositories and Collaboration Once logged in with the Admin account, you can manage the self-hosted environment: ### Creating and Cloning Repositories * **Create:** Click the **+** button in the top right to **New Repository**. Define the name, select private/public visibility, and choose whether to initialize a README/Gitignore. * **Clone:** Use the provided SSH or HTTPS URL (e.g., `git clone https://your-gitea-url/user/repo.git`) to clone the repository to your local development machine. ### User Management and Collaboration * **Invite Team Members:** As Admin, navigate to **Admin Panel** to manage users, or go to an individual repository’s **Settings → Collaborators & Teams** to grant **Read**, **Write**, or **Admin** access roles to specific users. * **Code Review:** Use the built-in features for **Pull Requests** and **Issue Tracking** to facilitate structured code review and bug reporting within your team. ### CI/CD and Webhooks * **Integration:** Navigate to a repository’s **Settings → Webhooks**. Set up webhooks to trigger external CI/CD systems (like Jenkins, GitHub Actions, or self-hosted Drone) or send notifications to team communication tools (Slack/Discord) upon code pushes or pull request events. ### Advanced System Administration * **Configuration:** The **Admin Panel** provides deep control over system settings, including setting user registration policies, configuring external authentication methods (LDAP, OAuth), and managing email notifications for system events. --- ## Core Benefits of Deploying Gitea on Nife-Deploy ### 1. Self-Hosted Data Sovereignty By hosting your Git service on Nife-Deploy, you retain **full ownership and control** over all source code, commit history, and user data. This is critical for proprietary projects and meeting specific organizational compliance requirements. ### 2. Lightweight and High-Performance Gitea is exceptionally fast and resource-efficient. Running it on Nife-Deploy’s optimized container platform ensures rapid cloning, smooth code browsing, and quick load times, even for large codebases. ### 3. Integrated Persistence and Security Nife-Deploy automatically manages the persistent storage required for Gitea, ensuring that all code and database changes survive container restarts. Furthermore, the platform secures your endpoint with **HTTPS/TLS encryption** by default. ### 4. Simplified DevOps Tooling The PaaS environment abstracts the need to manage the underlying server, dependencies (like Go or Git installation), and database setup. Developers can launch a complete Git service instantly, focusing purely on code development and collaboration. --- ### Official Documentation For comprehensive information on Gitea's features, advanced configurations, and community updates: **Gitea Official Website:** [https://gitea.com/](https://gitea.com/) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Set Up Gotify on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-setup-and-use-gotify-from-nife-deploy `} **Gotify** is an incredibly versatile, **open-source push notification server** designed for simplicity and reliability. It provides a dedicated backend for sending **real-time messages** from any application or script to connected clients (such as Android apps, web browsers, or desktops) via a straightforward **REST API**. Deploying Gotify through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** provides an instant, dedicated, and secure containerized environment. Nife-Deploy handles the networking and persistence, allowing developers to launch a private notification service quickly, moving away from reliance on proprietary third-party services. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar. * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for Gotify * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter the term **Gotify**. * **Identify:** Locate the **Gotify** application card, pre-configured for deployment on the Nife-Deploy PaaS. --- ## 2. Configuring and Initiating Deployment Gotify is resource-efficient but requires immediate attention to its default credentials for security. ### Start Deployment and Configuration Review * **Action:** Hover over the Gotify tile and click the **Deploy** button. This transitions you to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your notification server instance (e.g., `realtime-alerts-server`). * **Cloud Region:** Select a **Cloud Region** that offers the best connectivity to the applications that will be *sending* the most messages. * **Resource Allocation:** Review the default CPU and RAM. Gotify is lightweight, and standard resources are generally sufficient unless you anticipate millions of messages per day. > **Persistence:** Nife-Deploy will manage the persistent storage for Gotify's database (where it stores users, applications, tokens, and messages). Ensure this persistence is configured for reliable data retention. * **Finalization:** Review all settings, and click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions resources, pulls the Gotify container image, and establishes a secure HTTPS network endpoint. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Initializing Gotify ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed Gotify instance, displaying the login page. ### Initial Login and Mandatory Security Update * **Default Credentials (Critical):** Use the default administrator credentials: * **Username:** `admin` * **Password:** `admin` * **Security Action:** **IMMEDIATELY** after logging in for the first time, navigate to the user settings and **change the default password**. This is a mandatory security step to protect your server's access and message content. --- ## 4. How to Use Gotify for Real-Time Messaging Once secured, Gotify requires the creation of an application to start sending messages. ### Step 1: Create a Messaging Application * **Navigate:** Go to the **Applications** section within the Gotify web UI. * **Create:** Click to create a new application (e.g., "CI/CD-Alerts"). * **Retrieve Token:** Gotify will generate a unique **Application Token** for this app. This token is required to send messages to this specific recipient or use case. **Keep this token secure.** ### Step 2: Sending a Notification via REST API Gotify uses a simple HTTP endpoint for message transmission. You can use any language or tool capable of making HTTP requests. * **Endpoint Structure:** ```text POST https://YOUR_GOTIFY_DOMAIN/message ``` * **Example cURL Command:** Use your application token and the secure HTTPS URL provided by Nife-Deploy. ```bash curl "https://YOUR_GOTIFY_DOMAIN/message?token=YOUR_APP_TOKEN" \ -F "title=Deployment Successful" \ -F "message=The latest code push has been deployed to production." \ -F "priority=8" ``` * The **`priority`** level (1-10) is important, as it can be used by client applications (like the Android client) to determine alert behavior. ### Step 3: Connect Client Applications * **Mobile/Web:** Users can download the official Gotify Android app or find third-party clients and point them to your deployed Nife-Deploy URL. * **Authentication:** Clients log in using their *User* credentials (not the application token) to receive messages sent to any app token they are authorized to receive. --- ## Core Benefits of Deploying Gotify on Nife-Deploy ### 1. Private and Self-Hosted Messaging By deploying on Nife-Deploy, you gain **data sovereignty** over your notifications. All messages and user/application data remain within your secure, self-hosted container, bypassing third-party vendors and improving data compliance. ### 2. Simple, Versatile API Integration Gotify’s straightforward REST API makes it easy to integrate push notifications into virtually any application, script, or automated workflow. Nife-Deploy ensures the API endpoint is stable, reliable, and secured with **HTTPS**. ### 3. Scalable Real-Time Server Nife-Deploy provides the reliable infrastructure necessary for a real-time service. You can adjust the container resources to scale your Gotify server's capacity to handle thousands of concurrent client connections and high-volume message bursts. ### 4. Minimal DevOps Overhead The PaaS environment handles the server, database (typically SQLite), and networking, allowing developers to focus solely on integrating the Gotify API into their products without any server maintenance complexity. --- ### Official Documentation For detailed information on the REST API specification, client configuration, and advanced settings: **Gotify Server Repository:** [https://github.com/gotify/server](https://github.com/gotify/server) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Set Up Nextcloud on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-setup-and-use-nextcloud-from-nife-deploy `} **Nextcloud** is the premier **open-source, self-hosted file sharing and collaboration platform**. It offers a complete suite of cloud services, including file synchronization, calendar management (CalDAV), contacts (CardDAV), and real-time document collaboration. Crucially, it gives you **full data sovereignty**, making it a private alternative to commercial services like Google Drive and Dropbox. Deploying Nextcloud via the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** provides an optimized, dedicated, and secure container environment. Nife-Deploy manages the complex infrastructure, including persistent storage volumes and secure networking, enabling a fast and reliable launch. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar. * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for Nextcloud * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter the term **Nextcloud**. * **Identify:** Locate the **Nextcloud** application card, pre-configured for deployment on the Nife-Deploy PaaS. --- ## 2. Configuring and Initiating Deployment Nextcloud requires a stable database connection and persistent storage for file safety. ### Start Deployment and Configuration Review * **Action:** Hover over the Nextcloud tile and click the **Deploy** button. This transitions you to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your cloud instance (e.g., `my-private-cloud`). * **Cloud Region:** Select a **Cloud Region** based on geographic proximity to your users for faster upload/download speeds. * **Resource Allocation:** Review the default CPU and RAM. For collaboration and high-volume file transfers, ensuring adequate resources is vital for performance. > **Crucial Persistence:** The most critical step is ensuring **persistent storage** is mapped to the internal container path `/var/www/html/data`. Nife-Deploy should handle the volume creation, guaranteeing that all user-uploaded files, configuration files, and sync history are retained across container restarts or redeployments. * **Finalization:** Review all settings, confirm persistence is configured, and click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions resources, pulls the Nextcloud container image, maps the persistent storage volume, and establishes a secure HTTPS network endpoint. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Initial Nextcloud Setup Wizard Once the deployment status is **Running**, click **Open App** to access the initial configuration wizard for the first time. ### Step 1: Create Administrator Account * **Credentials:** Define a strong, unique **Username** and **Password** for the primary administrator account. This account manages all user access, security settings, and app installations. ### Step 2: Configure External Database (Recommended) While Nextcloud may offer a default SQLite option, using a dedicated external database service (like MariaDB or PostgreSQL) is **strongly recommended for production and scalability**. * **Database Type:** Select **MySQL/MariaDB** or **PostgreSQL**. * **Credentials:** Enter the credentials for your separate database service, which should have been deployed alongside Nextcloud or configured as an independent service in Nife-Deploy: * **Database User:** `[user_name]` * **Database Password:** `[password]` * **Database Name:** `[database_name]` * **Host:** `[database_service_name]` (e.g., `mysql` or the specific hostname/IP provided by Nife-Deploy). ### Step 3: Data Folder Confirmation * **Path:** Verify that the setup confirms the data folder will be located at a persistent path (e.g., `/var/www/html/data`). ### Step 4: Complete Setup * **Finalize:** Click **Finish Setup**. Nextcloud will now connect to the database, initialize all necessary tables, and redirect you to the main dashboard. --- ## 4. Key Collaboration and Usage Features ### File Management and Synchronization * **Web Upload:** Drag and drop files directly into the browser interface. * **Clients:** Install the official **Nextcloud Desktop Client** and **Mobile App** to automatically sync files across all user devices. ### Sharing and External Access * **Secure Sharing:** Generate links for files or folders, allowing sharing with internal users or external guests. Links can be secured with **passwords** and **expiration dates**. * **Version Control:** Files automatically include version history, allowing users to revert to previous states. ### Collaboration and Productivity * **Real-time Editing:** Install apps like **Collabora Online** or **OnlyOffice** from the Nextcloud App Store to enable real-time collaborative editing of documents, spreadsheets, and presentations directly within the browser. * **PIM Integration:** Activate the **Calendar (CalDAV)** and **Contacts (CardDAV)** apps to sync personal information management data with mobile devices and desktop clients. ### Security and Extensions * **App Store:** Extend functionality with apps for **Two-Factor Authentication (2FA)**, server monitoring, end-to-end encryption, and custom external storage mounting. --- ### Official Documentation For advanced server tuning, security hardening, and detailed app integration guides: **Nextcloud Documentation:** [https://docs.nextcloud.com/](https://docs.nextcloud.com/) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Set Up NocoDB on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-setup-and-use-nocodb-on-nife-deploy `} **NocoDB** is a powerful **open-source database platform** designed to provide a rich, collaborative **spreadsheet interface** over any standard relational database (MySQL, PostgreSQL, MariaDB, SQLite, etc.). Functioning as a high-performance **Airtable alternative**, it empowers teams to manage, visualize, and build applications around their data without writing complex SQL or traditional backend code. Deploying NocoDB via the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** provides an optimized, dedicated, and secure environment. Nife-Deploy manages the container hosting and persistence, enabling you to launch this sophisticated no-code tool quickly and focus immediately on data management and visualization. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar. * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for NocoDB * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter the term **NocoDB**. * **Identify:** Locate the **NocoDB** application card, pre-configured for deployment on the Nife-Deploy PaaS. --- ## 2. Configuring and Initiating Deployment NocoDB requires defining the initial database it will use for its own metadata, workspaces, and user accounts. ### Start Deployment and Configuration Review * **Action:** Hover over the NocoDB tile and click the **Deploy** button. This transitions you to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your data management instance (e.g., `nocodb-data-platform`). * **Cloud Region:** Select a **Cloud Region** that minimizes latency, especially if you plan to connect to external databases or have many concurrent collaborators. * **Resource Allocation:** Review the default CPU and RAM. Allocate sufficient resources, as NocoDB may handle large datasets and multiple API requests. > **Environment Variables (Crucial):** NocoDB typically requires an environment variable to define its internal metadata database connection (`NC_DB`). Nife-Deploy usually handles this by launching a dedicated internal database (like SQLite or PostgreSQL) or asking you to provide the connection string for a managed service. **Ensure this variable is correctly set for persistence and stability.** * **Finalization:** Review all settings, confirm persistence is configured, and click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions resources, pulls the NocoDB container image, initializes the internal database, and establishes a secure HTTPS network endpoint. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Initializing NocoDB ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed NocoDB interface. ### Initial Setup and Admin Creation * **First Access:** NocoDB will prompt you to create the initial **Admin account** (email and password). This user manages the workspace and access control for the entire platform. --- ## 4. Key Usage and Data Management Features Once logged in, NocoDB allows you to manage data by either creating a new database base or connecting to an existing external database. ### 4.1. Connecting to an External Database (Key Use Case) * **Action:** Click **New Project** → **Connect Database**. * **Configuration:** Provide the connection details (Host, Username, Password, Database Name) for your target relational database (e.g., PostgreSQL, MySQL, MSSQL). * **Result:** NocoDB instantly maps your existing database tables into the spreadsheet interface. Any change made in the NocoDB spreadsheet is reflected in the live database, providing a powerful GUI for database administration. ### 4.2. Creating a New Base * **Action:** Click **New Project** → **Create New Base**. * **Design:** Start by defining new tables. NocoDB tables support a wide array of field types (Text, Rich Text, Collaborator, Attachments, Formulas, Lookups) and allow you to define relational links (foreign keys) between tables directly in the UI. ### 4.3. Data Collaboration and Views * **Real-time Collaboration:** Invite team members to the workspace and assign fine-grained roles (Admin, Creator, Editor, Viewer). Changes sync instantly. * **Visualization:** Beyond the default Grid (spreadsheet) view, switch to **Kanban, Gallery, Calendar, or Form** views to visualize data based on project needs (e.g., using a Kanban view for tasks based on status columns). ### 4.4. Auto-Generated APIs (For Development) * **Access:** Navigate to the **API Docs** section within your project. * **Functionality:** NocoDB automatically generates production-ready **REST** and **GraphQL APIs** for every table. These APIs simplify application development by allowing direct interaction with your data without needing to build a custom backend service. --- ## Core Benefits of Deploying NocoDB on Nife-Deploy ### 1. Unified Database GUI and API Generation NocoDB provides an exceptional interface for database management and instantly generates powerful APIs. Nife-Deploy ensures this service is stable, available, and secured with **HTTPS**, making it a perfect tool for rapid application development (RAD). ### 2. Full Data Control (Self-Hosted) By deploying NocoDB on Nife-Deploy, you maintain **complete sovereignty** over your database connection strings and the data itself, which is crucial for sensitive or proprietary information. ### 3. Scalable and Persistent Nife-Deploy manages the container lifecycle and persistent storage for NocoDB's metadata. This means your workspaces, user accounts, and configurations are safe, while the connection to your potentially high-volume external database remains reliable. ### 4. Minimal Infrastructure Management The PaaS environment eliminates the need for manual server setup, dependency management (Node.js/NPM), and web server configuration, letting teams jump straight into data organization and application building. --- ### Official Documentation For detailed information on configuring external databases, advanced view types, and API usage: **NocoDB Documentation:** [https://nocodb.com/docs/product-docs](https://nocodb.com/docs/product-docs) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Set Up Trilium Notes on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/how-to-setup-and-use-trilium-notes-from-nife-deploy **Trilium Notes** is a sophisticated **open-source note-taking application** specifically designed for managing large and complex **personal knowledge bases**. Its core strength lies in its **hierarchical structure**, allowing users to organize thousands of notes in a logical, tree-like fashion, complemented by robust features like **rich text editing, encryption, synchronization, and tagging**. Deploying Trilium Notes through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** provides an instant, dedicated, and secure containerized environment. Nife-Deploy manages the persistent storage and networking, enabling you to launch this powerful productivity tool quickly and reliably. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar. * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for Trilium Notes * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter the term **Trilium Notes**. * **Identify:** Locate the **Trilium Notes** application card, pre-configured for deployment on the Nife-Deploy PaaS. --- ## 2. Configuring and Initiating Deployment Trilium is generally lightweight but requires a persistent volume to safely store its database and all your notes. ### Start Deployment and Configuration Review * **Action:** Hover over the Trilium Notes tile and click the **Deploy** button. This transitions you to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your knowledge base instance (e.g., `my-personal-wiki`). * **Cloud Region:** Select a **Cloud Region** closest to your location for better responsiveness during editing and searching. * **Resource Allocation:** Review the default CPU and RAM. Standard resources are usually sufficient, as the application is optimized for performance. > **Crucial Persistence:** The most critical step is ensuring **persistent storage** is configured. Nife-Deploy must map a dedicated volume to the container path where Trilium stores its data file (typically `trilium-data`). **This is essential to retain all your notes and configuration across restarts.** * **Finalization:** Review all settings, confirm persistence is configured, and click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Nife-Deploy provisions resources, pulls the Trilium Notes container image, maps the persistent storage volume, and establishes a secure HTTPS network endpoint. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Initializing Trilium Notes ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed Trilium Notes interface. ### Initial Setup (Local/Server Instance) * **First Access:** Trilium will prompt you to initialize the application. Choose the **Server Instance** option. * **Admin Account:** Create a strong, unique **Username** and **Password** for the administrator account. This secures your entire knowledge base. * **Start:** Once the account is created, you are logged into your main workspace. --- ## 4. Key Organization and Advanced Features Once deployed and secured, Trilium offers powerful tools for knowledge management: ### 4.1. Hierarchical Organization (Tree Structure) * **Parent/Child Notes:** Use the **Tree Structure** on the left to organize notes into logical parent-child relationships, mimicking folders and subfolders. This is ideal for complex subjects, projects, or documentation. * **Drag and Drop:** Easily reorganize your knowledge by dragging notes to new locations within the hierarchy. ### 4.2. Note Content and Types * **Rich Editing:** Utilize the built-in rich text editor which supports **WYSIWYG** (What You See Is What You Get), **Markdown**, **code blocks**, images, and attachments. * **Note Types:** Trilium supports specialized note types, such as **code notes** (with syntax highlighting), **images**, and **relation maps**. ### 4.3. Advanced Linking and Metadata * **Relations and Attributes:** Use **relations** to link notes that are related conceptually but not hierarchically. Add **custom attributes** (key-value pairs) to notes for advanced filtering and metadata storage (e.g., `status: complete`, `priority: high`). * **Tags:** Apply multiple **tags** to any note for cross-cutting categorization, making search and retrieval highly flexible. ### 4.4. Security and Synchronization * **Note Encryption:** Trilium allows you to encrypt individual sensitive notes or entire branches of the hierarchy using a separate passphrase, ensuring content is protected even if the server is compromised. * **Synchronization:** The self-hosted instance acts as your sync server. You can configure other Trilium clients (desktop or other servers) to synchronize with this main Nife-Deploy instance, ensuring your notes are backed up and available across devices. --- ## Core Benefits of Deploying Trilium Notes on Nife-Deploy ### 1. Data Sovereignty and Security By deploying Trilium on Nife-Deploy, you maintain **full ownership and privacy** of your intellectual property. All notes and encryption keys are stored within your private, self-hosted container. ### 2. Scalable Knowledge Base Trilium is optimized to handle large volumes of content, making it suitable for personal encyclopedias or large documentation projects. Nife-Deploy provides the necessary persistent storage and scalable resources for this growth. ### 3. Centralized Access and Sync Server The Nife-Deploy deployment provides a stable, always-on server accessible via a secure **HTTPS** URL. This central instance acts as the hub for all your local clients, making cross-device synchronization reliable and automatic. ### 4. Zero Server Management The PaaS environment eliminates the need for manual server setup, dependency management (Node.js runtime), and database configuration, allowing you to focus entirely on building and organizing your knowledge. --- ### Official Documentation For comprehensive information on advanced usage, themes, and API details: **Trilium Notes GitHub:** [https://github.com/zadam/trilium](https://github.com/zadam/trilium) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## OpenHub — One-Click App Marketplace Guides | Nife Docs URL: https://docs.nife.io/Guides/Openhub **OpenHub** is Nife's marketplace of open-source applications you can deploy in one click — no manual server setup, no Docker files to write. Browse the [live marketplace at openhub.nife.io](https://openhub.nife.io), or use the guides below for step-by-step walkthroughs of each app. --- ## Databases & Vector Search - [ArangoDB](/Guides/Openhub/how-to-deploy-ArangoDB-from-openhub) — multi-model database (Document, Graph, Key-Value) - [ChromaDB](/Guides/Openhub/how-to-deploy-chromadb-from-the-marketplace) — open-source vector database for AI embeddings - [Qdrant](/Guides/Openhub/how-to-deploy-qdrant-from-the-marketplace) — high-performance vector database for similarity search - [MindsDB](/Guides/Openhub/how-to-deploy-minddb-from-openhub) — in-database machine learning and predictive analytics - [Adminer](/Guides/Openhub/how-to-deploy-adminer) — lightweight, web-based database admin tool - [NocoDB](/Guides/Openhub/how-to-setup-and-use-nocodb-on-nife-deploy) — turn any database into a smart spreadsheet ## AI & Automation - [NextChat](/Guides/Openhub/How-to-Setup-Nextchat-The-Best-Self-Hosted-AI-Chat-UI) — self-hosted AI chat interface for OpenAI, Azure OpenAI, and Gemini - [Chatpad AI](/Guides/Openhub/how-to-deploy-chatpad-ai-from-openhub) — clean, self-hosted web UI for LLMs - [Botpress](/Guides/Openhub/how-to-deploy-botpress-from-openhub) — visual chatbot and conversational AI builder - [Jupyter Notebook](/Guides/Openhub/how-to-deploy-jupyter-notebook-from-the-marketplace) — cloud IDE for Python, R, and ML workloads - [N8n](/Guides/Openhub/how-to-deploy-n8n-from-the-marketplace) — visual workflow automation and integration platform ## Developer Tools & Infrastructure - [Gitea](/Guides/Openhub/how-to-setup-and-use-gitea-from-nife-deploy) — lightweight, self-hosted Git service - [code-server](/Guides/Openhub/vs-code-deploy-marketplace-application) — full VS Code, running in your browser - [SSHwifty](/Guides/Openhub/how-to-deploy-sshwifty-from-the-openhub) — web-based SSH and Telnet client - [Jenkins](/Guides/Openhub/how-to-deploy-jenkins-from-the-marketplace) — automation server for CI/CD pipelines - [Authorizer](/Guides/Openhub/how-to-deploy-authorizer-from-openhub) — self-hosted authentication and authorization service - [Nginx](/Guides/Openhub/how-to-deploy-nginx-from-the-marketplace) — web server, reverse proxy, and load balancer ## Productivity & Collaboration - [Trilium Notes](/Guides/Openhub/how-to-setup-and-use-trilium-notes-from-nife-deploy) — hierarchical, self-hosted note-taking app - [Shaarli](/Guides/Openhub/how-to-setup-and-use-Shaarli-from-nife-deploy) — minimalist, self-hosted bookmark manager - [Etherpad](/Guides/Openhub/how-to-set-up-etherpad-from-openhub) — real-time collaborative document editing - [Shiori](/Guides/Openhub/how-to-set-up-shiori-from-openhub) — self-hosted bookmark and read-it-later archive - [Focalboard](/Guides/Openhub/how-to-deploy-focalboard-from-the-marketplace) — self-hosted Trello/Asana alternative - [Kanboard](/Guides/Openhub/how-to-set-up-kanboard-from-openhub) — simple Kanban project management - [Actual Budget](/Guides/Openhub/how-to-deploy-actual-budget-from-the-marketplace) — self-hosted, zero-based budgeting app - [Ghost](/Guides/Openhub/ghostMarketplaceApplication) — publishing platform for blogs and newsletters - [Answer](/Guides/Openhub/how-to-deploy-answer-from-openhub) — open-source Q&A platform for community knowledge bases ## Monitoring & Analytics - [Uptime Kuma](/Guides/Openhub/uptime-kuma-marketplace-application) — self-hosted uptime monitoring and status pages - [Statping](/Guides/Openhub/statpingMarketplaceApplication) — monitor uptime for websites, APIs, and services - [Fathom Lite](/Guides/Openhub/how-to-deploy-fathom-lite-from-the-marketplace) — lightweight, cookie-free, GDPR-compliant analytics ## Media & Utilities - [Nextcloud](/Guides/Openhub/how-to-setup-and-use-nextcloud-from-nife-deploy) — self-hosted file sync and collaboration platform - [MeTube](/Guides/Openhub/meTubeMarketplaceApplication) — self-hosted YouTube video/audio downloader - [Short Paste](/Guides/Openhub/short-paste-application-deploy) — share URLs, text snippets, and files via short links - [Whoogle](/Guides/Openhub/how-to-setup-and-use-Whoogle-from-nife-deploy) — private, ad-free Google search proxy - [Gotify](/Guides/Openhub/how-to-setup-and-use-gotify-from-nife-deploy) — simple server for real-time push notifications - [SearXNG](/Guides/Openhub/how-to-deploy-searxng-from-the-marketplace) — privacy-respecting metasearch engine --- ## Related Resources - 📦 [OpenHub Marketplace](https://openhub.nife.io) — browse and deploy every app live - 🚀 [Launch Dashboard](https://launch.nife.io) — sign in to your Nife account - 🛠️ [Templates](/Automation/Templates) — save your own reusable one-click deploy configurations - 📖 [Nife Blog](https://blog.nife.io) — tutorials and deployment deep-dives --- ## How to Deploy MeTube on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/meTubeMarketplaceApplication `} # MeTube on Nife-Deploy: Self-Hosted YouTube Downloader **MeTube** is a user-friendly, **self-hosted application** that simplifies the process of securely downloading content from YouTube and other video platforms. It allows users to select their preferred **video quality** (e.g., 1080p, 720p) and **format** (e.g., **MP4** for video or **MP3** for audio conversion), making it an efficient solution for **offline viewing** and **audio extraction**. Deploying MeTube through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** provides a dedicated, reliable environment for managing your video downloads without relying on external, ad-heavy third-party websites. ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)**. * **Log In:** Use your registered Nife-Deploy credentials to access the primary application dashboard. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar (standardizing the terminology). * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for MeTube * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter the term **MeTube**. * **Identify:** Locate the **MeTube** application card, pre-configured for deployment on the Nife-Deploy PaaS. --- ## 2. Configuring and Initiating Deployment MeTube requires persistent storage to retain downloaded files until you transfer them to your device. ### Start Deployment and Configuration Review * **Action:** Hover over the MeTube tile and click the **Deploy** button. This transitions you to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your video downloader instance (e.g., `youtube-downloader`). * **Cloud Region:** Select a **Cloud Region** closest to your location for better management access. * **Resource Allocation:** Review the default CPU and RAM. Downloading and converting high-resolution videos (especially conversion to MP3) can be CPU-intensive, so ensure adequate resources are allocated. > **Crucial Persistence:** Nife-Deploy must ensure **persistent storage** is mapped to the container path where MeTube stores the downloaded videos. This volume guarantees that your completed files are retained until you manually download them, even if the container restarts. * **Finalization:** Review all settings, confirm persistence is configured, and click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status and DNS Resolution * **Process:** Nife-Deploy provisions resources, pulls the MeTube container image, and maps the storage volume. * **DNS:** After the status changes to **Running**, allow a short period (approximately **90 seconds**) for the domain name system (DNS) to fully resolve the public URL to your container IP. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Downloading Videos ### Wait for Completion and Launch * **Action:** Once the status is **Running** and the DNS has resolved, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed MeTube application. ### Step-by-Step Download Process 1. **Provide the YouTube Video Link**: Copy the desired YouTube video URL from your browser and paste it into the designated input field on the MeTube homepage. 2. **Choose Quality and Format**: * **Quality**: Select your preferred video resolution (e.g., **1080p, 720p**). Higher quality files are larger. * **Format**: Select the output format. Choose **MP4** for video or **MP3** to extract only the audio track (YouTube to MP3 conversion). 3. **Initiate Download**: Click **Add** to queue the video for download on your Nife-Deploy server. ### Final Download and File Retrieval 1. **Monitor Progress**: Monitor the download status on the MeTube dashboard. 2. **Access Completed Section**: Once the status indicates the process is finished, navigate to the **Completed Section**. 3. **Download to Device**: Locate the completed file and click the **download icon** next to it. The file will then be securely transferred from your Nife-Deploy-hosted MeTube container directly to your local device. --- ## Core Benefits of Deploying MeTube on Nife-Deploy ### 1. Dedicated and Private Downloading Using your self-hosted MeTube instance ensures that your video downloading activity is kept **private** and is not associated with third-party, ad-supported download websites that often pose security risks. ### 2. High-Speed Conversion and Quality Control MeTube leverages the dedicated resources of your Nife-Deploy container to handle high-resolution video streams and perform quick **audio/video conversions**, providing consistent performance superior to shared web services. ### 3. Secure and Reliable Access Nife-Deploy secures your MeTube deployment with an **HTTPS** connection, ensuring the video link data and the final file transfer between the server and your device are encrypted. ### 4. Simplified Infrastructure Management The PaaS environment handles the operating system, container runtime, and **persistent storage** volume management, allowing you to use the media tool without any backend maintenance complexity. ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy Short Paste on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/short-paste-application-deploy **Short Paste** is a versatile, self-hosted application designed for **quick and secure sharing** of digital assets. It allows users to generate custom, short links for three primary use cases: **URL redirection**, sharing **short text messages** (snippets), and facilitating secure **file downloads/uploads**. It functions as a lightweight, private utility for developers and teams. Deploying Short Paste via the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** provides an instant, dedicated, and secure environment. Nife-Deploy manages the networking and hosting, enabling you to launch this utility quickly and maintain control over your shared links and files. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)** and log in with your credentials. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar (standardizing the terminology from Marketplace). * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for Short Paste * **Search Bar:** Utilize the search functionality within the OpenHub interface and enter the term **Short Paste**. * **Identify:** Locate the **Short Paste** application card. --- ## 2. Configuring and Initiating Deployment Short Paste requires secure access credentials and persistent storage for file uploads. ### Start Deployment and Configuration Review * **Action:** Hover over the Short Paste tile and click the **Deploy** button. This transitions you to the configuration screen. ### Review Deployment Settings * **App Name:** Assign a unique name to your instance (e.g., `private-link-share`). * **Initial Credentials (Crucial):** You will be prompted to set up the **Admin Username** and **Password**. These credentials are vital for securing access to your Short Paste dashboard. * **Persistence:** Nife-Deploy will map a **persistent volume** to the container. This is crucial for retaining all file uploads and the database of generated short links. * **DNS Resolution:** Note that after successful deployment, you must wait approximately **90 seconds** for the domain name system (DNS) to fully resolve the public URL. * **Finalization:** Confirm the settings, set your admin credentials, and click **Submit** or the final **Deploy** button to commence the container launch process. ### Monitor Deployment Status * **Process:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Utilizing Short Paste Features Once the status is **Running** and the DNS has resolved, click **Open App** and use your previously created **Username** and **Password** to log in to the dashboard. ### Feature 1: Redirect a Link (URL Shortening) This feature is used to create a short, secure link that redirects to a specific, potentially long, external URL. 1. **Access:** Select the **Link** option on the dashboard. 2. **Input:** In the designated field, paste the **full target URL** you want users to be redirected to. 3. **Create:** Click **Create** to generate the unique short link. 4. **Verification:** Test the generated link in a new browser tab. It should immediately redirect you to the destination URL. > **Use Case:** Perfect for tracking external clicks or creating clean, memorable links for marketing or internal documentation. ### Feature 2: Create and Share a Text Message (Snippet Sharing) This feature allows you to quickly generate a link that displays a plain text message or code snippet. 1. **Access:** Click on the **Text** option on the dashboard. 2. **Input:** Type or paste the message, code, or instructions you wish to share into the text box. 3. **Create:** Click **Create** to generate a shareable link for the text content. 4. **Sharing:** Copy the link. When the recipient opens it, the link will display the exact message you entered. > **Use Case:** Excellent for sharing temporary instructions, error messages, or configuration snippets without using email or chat history. ### Feature 3: Upload and Share a File This feature provides a private method for distributing files securely via a unique link. 1. **Access:** From the dashboard, select **File**. 2. **Upload:** Use the upload button to select the file from your local device. 3. **Generate:** Once the file upload is complete, click **Create** to generate the unique download link. 4. **Distribution:** Share the generated link with the intended recipient(s). When they access the link, they will be able to download the file directly from your Nife-Deploy-hosted instance. > **Important Note:** File upload size and type limits may be governed by your specific Nife-Deploy configuration and the underlying container settings. --- ## Core Benefits of Deploying Short Paste on Nife-Deploy ### 1. Privacy and Data Control By self-hosting Short Paste, you ensure that all created links, text snippets, and uploaded files are managed within your private container, providing **full data control** and security compared to public link-shortening services. ### 2. Dedicated and Secure Endpoint Nife-Deploy provides a stable, always-on server secured with **HTTPS/TLS encryption**. This ensures that the sharing process, from link creation to file access, is protected. ### 3. Integrated Persistence The platform manages the necessary **persistent storage volume**, ensuring that all your generated links and uploaded files remain safe and accessible across application restarts and maintenance windows. ### 4. Simplified Utility Deployment The PaaS environment handles all the backend infrastructure, allowing you to instantly deploy a versatile sharing utility without needing to configure a web server, database, or file storage system manually. --- ### Other Deployment Guides * Docker Deployment: [https://youtu.be/3bYZugPuitc?feature=shared](https://youtu.be/3bYZugPuitc?feature=shared) * GitHub Deployment: [https://youtu.be/mDtZFvjNYdM?feature=shared](https://youtu.be/mDtZFvjNYdM?feature=shared) * Local Source Code Deployment: [https://youtu.be/h3wdUBpS4Is?feature=shared](https://youtu.be/h3wdUBpS4Is?feature=shared) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy and Use Statping on Nife URL: https://docs.nife.io/Guides/Openhub/statpingMarketplaceApplication `} ### Introduction We'll walk you through installing and using Statping, an excellent tool for checking the uptime of your website, APIs, and other vital services, in today's post. Statping lets you take preventive measures by informing you when something goes wrong, whether you're in charge of an app or website. Now let's get started! ### Step 1: Access the Nife-Deploy Marketplace The Nife-Deploy platform offers the most convenient method for implementing Statping. - **Visit Nife-Deploy:** Go to [launch.nife.io](https://launch.nife.io) and sign in with your credentials. - **Navigate to the Marketplace:** The Marketplace, which functions similarly to an app store for cloud services, is located on the left navigation bar. - **Search for Statping:** Find the application in the list by typing "Statping" into the search bar. ### Step 2: Deploy Statping Once you've found Statping in the marketplace: - **Click "Deploy":** Everything else is handled by Nife-Deploy, which manages the backend configuration so you don't have to worry about settings. - **Wait for DNS Resolution:** After deployment, give the DNS about 90 seconds to resolve. Your Statping instance will then be available. ### Step 3: Initial Setup With Statping deployed, it needs to be configured: - **Access Statping:** Click on "open app" to open the Statping interface once the DNS has resolved. - **Configure the Database:** Choose SQLite as your database during setup and complete the required fields. - **Save Settings:** Once complete, hit Save Settings. ### Step 4: Exploring Statping's Dashboard Statping will direct you to its default monitor page after the initial setup. It's time to personalize and prepare your services for observation now. - **Go to the Dashboard:** Navigate to the bottom of the page and select the "Dashboard" link by scrolling down. Enter your password and username to log in. ##### Setting Up Groups and Services - **Services:** Add the specific services you wish to keep an eye on here. - **Groups:** These services can be arranged into relevant groups for easier management. ### Step 5: Add a New Service Let's begin by creating a monitoring service for your application. For this example, we'll be adding a TCP service to monitor the backend. 1. After selecting "Create," name your service. 2. Choose **Tcp Service** (or any other service that better suits your use case under Service Type). 3. Join the service with the group if needed. 4. Configure the port and IP address of the machine running your application. 5. Select the failure rate configurations and notification options to fit your needs. You can even set up continuous notifications to get alerts if the service is unavailable. 6. **Preserve the Service:** Click "Create Service" once all the information has been entered. After you reload the website, your newly launched service will be visible and under active observation. ### Step 6: Managing Users You can add other users to help manage your Statping services: - **Add a User:** Head to the Users page and input the new member's username, email, and password. - **Share Credentials:** Provide the login details to your team so they can help monitor services. ### Step 7: Announcements for Customers You may notify your users of significant updates or outages. - **Navigate to Announcements:** Posts about impending maintenance or possible service interruptions should be created in this section. - **After Updates:** During downtime, reduce confusion by keeping your users informed. ### Step 8: Monitoring Logs for Errors Statping gives you access to an extensive event log that you can use to monitor service problems and performance. - **Go to the Logs page** to see activity history and notice any problems or alerts. These logs are essential for troubleshooting and comprehending the inner workings of your services. ### Step 9: Help and Support You can find everything you need to know about advanced features and support in Statping's Help area. Documentation and guidelines that can help you with more complex configurations can be found here. ### Final Overview: Monitoring Your Services After your services are configured, you can quickly check their status from the Dashboard. This helps you keep track of any potential problems by giving you an easy-to-read summary of the overall health of your system. ### Conclusion You now have a useful tool for keeping an eye on your websites and APIs since you have set up Statping. Statping's broad capabilities and easy-to-use interface make it simple to ensure client satisfaction and monitor the health of your services. To ensure that downtime never catches you off guard, stay proactive. #### Watch Our Full Video Tutorial On Statping.ng ### Other Deployment Guides videos: 1. [Docker Deployment](https://youtu.be/3bYZugPuitc?feature=shared) 2. [GitHub Deployment](https://youtu.be/mDtZFvjNYdM?feature=shared) 3. [Local Source Code Deployment](https://youtu.be/h3wdUBpS4Is?feature=shared) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy Uptime Kuma on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/uptime-kuma-marketplace-application `} **Uptime Kuma** is an elegant, **open-source status page and monitoring tool** designed to check the health and performance of your websites, APIs, and services. It provides a beautiful dashboard, instant notifications upon downtime, and is an excellent self-hosted alternative to expensive monitoring services. Deploying **Uptime Kuma** through the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** is the fastest way to launch this critical DevOps utility, ensuring it runs reliably with minimal configuration overhead. --- ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)** and log in with your credentials. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar (standardizing the terminology from Marketplace). * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for Uptime Kuma * **Identify:** You can navigate directly to the application link or use the search bar to find **Uptime Kuma**. --- ## 2. Configuring and Initiating Deployment Uptime Kuma requires a stable, persistent volume to save its monitoring history, configuration, and user accounts. ### Start Deployment and Configuration Review * **Action:** Once you locate the **Uptime Kuma** tile, click **Deploy** to initiate the deployment wizard. ### Review Deployment Settings * **App Name:** Assign a unique name to your monitoring instance (e.g., `production-health-check`). * **Cloud Region:** Select a **Cloud Region** that offers stable connectivity to the services you need to monitor. * **Resource Allocation:** Review the default CPU and RAM. Uptime Kuma is generally lightweight, but consider resource needs based on the number of services you plan to monitor. > **Crucial Persistence:** Nife-Deploy must ensure a **persistent volume** is mapped to the container directory where Uptime Kuma stores its SQLite database file (`data/kuma.db`). This is **absolutely necessary** to retain all monitoring history and configuration across restarts. * **Finalization:** Review all settings, confirm persistence is configured, and click **Deploy** to commence the container launch process. ### Monitor Deployment Status * **Process:** The container image is pulled, resources are allocated, and the service is started. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Initial Setup ### Wait for Completion and Launch * **Action:** Once the status is **Running**, click the **Open App** button. * **Result:** This redirects you to the unique, secure URL of your deployed Uptime Kuma instance. ### First-Time Admin Setup * **Credentials:** On first launch, Uptime Kuma will prompt you to create the initial **Admin Account**. Define a strong **Username** and **Password**. * **Language:** Select your preferred language. * **Finalize:** Click **Create** to complete the setup and log into the main dashboard. --- ## 4. Key Monitoring Features Once logged in, you can begin adding monitoring checks: ### Adding Monitors 1. **Select Monitor Type:** Click **Add New Monitor**. Choose the appropriate type: * **HTTP(s):** For checking website and API endpoints. * **TCP Port:** For checking services like SSH, databases (MySQL, PostgreSQL), or custom ports. * **Ping:** For basic network reachability. * **Steam Game Server:** For specialized monitoring. 2. **Configuration:** Enter the necessary URL, IP, or port details, and set the **Heartbeat Interval** (how often the check runs). ### Setting Up Notifications Uptime Kuma supports integration with dozens of services: * Navigate to **Settings → Notifications**. * Configure channels like **Email, Telegram, Slack, Discord, Webhooks**, or even custom scripts to ensure your team receives instant alerts when a service goes down. ### Status Page Creation * Navigate to the **Status Page** settings. * You can create a beautiful, public-facing status page instantly, displaying the current health of your monitored services for your users. --- ## Core Benefits of Deploying Uptime Kuma on Nife-Deploy ### 1. Real-time Monitoring and Alerts Uptime Kuma actively pings your services, and Nife-Deploy provides the stable, dedicated environment needed for reliable, real-time health checks, ensuring you get **instant alerts** upon downtime. ### 2. Full Control Over Data and Status By self-hosting, you maintain **full data sovereignty** over your monitoring history and status page configurations, avoiding the vendor lock-in and pricing tiers of commercial services. ### 3. Simplified Deployment and Persistence The Nife-Deploy PaaS handles the complex container and volume setup. The managed persistent storage ensures your monitoring history is safe and retained indefinitely. ### 4. Customizable Status Page You can quickly deploy a professional, brandable status page to enhance **customer trust and transparency** regarding service availability. --- ### Official Documentation To learn more about advanced features, notification integrations, and custom monitoring types: **Uptime Kuma Wiki:** [https://github.com/louislam/uptime-kuma/wiki](https://github.com/louislam/uptime-kuma/wiki) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Deploy code-server on Nife OpenHub URL: https://docs.nife.io/Guides/Openhub/vs-code-deploy-marketplace-application `} **Code-server** is a transformative, **open-source solution** that allows you to run the full power of **Visual Studio Code (VS Code)**—the world's most popular code editor—directly in your web browser. By deploying it on the cloud, you can access a dedicated, high-performance **remote development environment** from any device (laptop, tablet, Chromebook) without needing to install VS Code locally. Deploying code-server via the **Nife-Deploy OpenHub Platform-as-a-Service (PaaS)** provides an optimized, dedicated, and secure containerized environment, making your entire coding setup available anywhere with an internet connection. ## 1. Accessing the Nife-Deploy OpenHub Catalog ### Access the Nife-Deploy Console * **Visit:** Navigate to the Nife-Deploy platform launchpad at **[https://launch.nife.io](https://launch.nife.io)** and log in with your credentials. ### Navigate to OpenHub * **Locate:** Find the **OpenHub** option in the left-hand navigation sidebar (standardizing the terminology from Marketplace). * **Selection:** Click **OpenHub** to view the comprehensive catalog of deployable open-source applications. ### Search for code-server * **Identify:** Use the search bar or direct link to find the **code-server** application card. --- ## 2. Configuring and Initiating Deployment Code-server requires robust credentials for access and persistent storage to keep your files, projects, and configurations safe. ### Start Deployment and Configuration Review * **Action:** Click the **Deploy** option on the code-server application card. ### Review Deployment Settings * **App Name:** Assign a unique name to your cloud IDE instance (e.g., `remote-dev-workspace`). * **Cloud Region:** Select a **Cloud Region** closest to your location for minimal latency and a smooth coding experience. * **Resource Allocation:** Review the default CPU and RAM. Allocate sufficient resources, especially if you work with large codebases or resource-intensive tasks (like compiling or running complex tests). > **Crucial Persistence:** Nife-Deploy must ensure a **persistent volume** is mapped to the container directory (`/home/coder`). This is **critical** for safely storing all your project files, local Git configuration, and installed VS Code extensions. ### Set Up Access Credentials * **Credentials:** You will be prompted to create a strong **Username** and **Password**. These are the primary credentials required to log in and secure your remote coding environment. ### Finalizing Deployment * **DNS Resolution:** After initiating deployment, the process takes a few moments. You must wait approximately **90 seconds** for the domain name system (DNS) to fully resolve the public URL. * **Completion:** Wait for the status indicator to change to **Running**. --- ## 3. Accessing and Utilizing code-server Once the status is **Running**, click **Open App** and enter your created **Username** and **Password** to access the full VS Code interface in your browser. ### Key Features for Remote Development #### 1. Integrated Terminal Access * **Functionality:** Use the built-in terminal (accessible via **Terminal → New Terminal** or `Ctrl+\``) to execute shell commands, run local server processes, compile code, and manage dependencies directly within the cloud container. #### 2. VS Code Extension Marketplace * **Extend Functionality:** Click the **Extensions** icon on the sidebar. You can browse, install, and manage extensions just as you would in a desktop VS Code instance. This allows you to integrate linters, debuggers, language support, and themes specific to your projects. #### 3. Git and Source Control * **Version Control:** Code-server fully supports Git. Use the **Source Control** icon to manage file changes, staging, committing, pushing, and pulling from remote repositories. Your code repository is hosted within the persistent Nife-Deploy volume. #### 4. File Management * **Project Access:** Use the Explorer view to upload, download, and manage your project files, which are securely stored on the dedicated persistent volume. --- ## Core Benefits of Deploying code-server on Nife-Deploy ### 1. Ubiquitous Access and Portability Access your fully configured development environment from any web browser, ensuring **maximum portability** and removing limitations posed by the local operating system or hardware. ### 2. High-Performance Development Your IDE runs on the reliable, scalable cloud infrastructure provided by Nife-Deploy, meaning CPU-intensive tasks run quickly in the cloud rather than taxing your local device. ### 3. Centralized Environment All your settings, extensions, project files, and terminal history are centralized and saved securely on the persistent Nife-Deploy volume, ensuring a consistent experience regardless of the device you use. ### 4. Simplified Setup and Security Nife-Deploy manages the container orchestration and provides an **HTTPS** endpoint, securing the connection between your browser and the remote code-server instance. --- ### Official Documentation For comprehensive information on advanced configuration, customization, and community contributions: **code-server GitHub Repository:** [https://github.com/coder/code-server](https://github.com/coder/code-server) ## Related Resources - 📦 [Browse all OpenHub apps](https://openhub.nife.io/apps/) — Discover more open source apps to deploy - 🚀 [Launch Dashboard](https://launch.nife.io) — Sign in to deploy on Nife - 🌐 [nife.io](https://nife.io) — Learn more about the Nife edge cloud platform --- ## How to Use AI Cluster Analysis URL: https://docs.nife.io/Guides/ai-cluster-analysis AI Cluster Analysis helps you instantly understand your Kubernetes cluster health by detecting misconfigurations, failing pods, and resource bottlenecks. It provides a detailed report with plain-language explanations and actionable recommendations. Follow these steps to use the AI Cluster Analysis tool on the Nife platform. ## 1. Log in to Your Account - If you’re a **new user**, [create an account](https://launch.nife.io/register) or [sign up directly](https://launch.nife.io/). - - If you’re already a user, simply [log in](https://launch.nife.io/) to your account. ## 2. Navigate to the Tools Section From the **sidebar**, click on **Tools**. ## 3. Open **Cluster Analysis** Inside the **Tools** section, select `Cluster Analysis` ## 4. Upload Your Cluster Config File To start the analysis: - Prepare your **Kubernetes cluster config YAML file**. - Click the **Upload Config File** button inside the Cluster Analysis tool. ## 5. Get the AI-Generated Cluster Health Report Once you upload the config file: - The platform will scan your cluster configuration. - You’ll receive a **detailed health report** highlighting: - ✅ Misconfigurations - ✅ Failing pods and crash loops - ✅ Resource bottlenecks - ✅ Node and deployment issues This helps you quickly identify and understand cluster issues without running manual checks. ## That’s It! With just one upload, you can transform complex cluster data into a clear, AI-generated health report. **Next Step:** Upload your cluster config and analyze it today! ## Related Resources - 🛠️ [Kubernetes YAML Generator](https://freetools.nife.io/kubernetes-yaml-generator/) — generate a clean manifest if you need to build a config file from scratch - 🛠️ [YAML Formatter & Validator](https://freetools.nife.io/yaml-formatter/) — validate your kubeconfig syntax before uploading --- ## How to Use AI Log Summarizer URL: https://docs.nife.io/Guides/ai-logs-summarizer AI Log Summarizer helps you instantly understand your application logs by providing a concise report of errors, warnings, and key events. Follow these steps to use the AI Log Summarizer on the Nife platform. ## 1. Log in to Your Account - If you’re a **new user**, [create an account](https://launch.nife.io/register) or [sign up directly](https://launch.nife.io/). - If you’re already a user, simply [log in](https://launch.nife.io/) to your account. ## 2. Navigate to the Apps Section From the **sidebar**, click on **Apps**. If you haven’t deployed any application yet, follow this guide to deploy one: [How to Deploy an Application](/UI-Guide/Apps-&-their-Management/App-Create) ## 3. Open the Logs for Your Deployed Application Once your application is deployed: - Go to **App Management → Logs** - You can also directly check the logs guide here: [Application Logs Documentation](/UI-Guide/Apps-&-their-Management/App-management/Logs) ## 4. Click on **AI Log Summarizer** Inside the Logs section, you’ll see a button labeled `AI Log Summarizer`. ## 5. Get the AI-Generated Report Once you click the **AI Log Summarizer** button: - The platform will analyze the logs for your deployed application. - You’ll receive a **summary report** highlighting: - ✅ Errors - ✅ Warnings - ✅ Important events This helps you quickly understand what’s happening without scrolling through endless logs. ## That’s It! In just a few clicks, you can transform complex log data into a clear, AI-generated summary. **Next Step:** Try it on your deployed application today! --- ## Alert Configuration & Notification Channels | Nife Deploy URL: https://docs.nife.io/Alerts/Alert-Configuration Alert configuration controls HOW you receive alerts. Set up notification channels so alerts reach you through your preferred methods. ## What Is Alert Configuration? Alert configuration is where you tell the system how to notify you when an alert fires. You can: - Set up email notifications - Add Slack integration - Configure webhooks - Route different severity levels to different channels --- ## Getting Started ### Access Alert Configuration 1. Go to **Alerts** in the main navigation menu 2. Click the **Alert Config** tab 3. Look for **Notification Channels** or **Add Channel** --- ## Notification Channels ### Email Notifications **How it works:** Alert fires → Email sent to your inbox **Setup Steps:** 1. Click **Add Channel** → Select **Email** 2. Enter your email address 3. Choose notification style: - **Single Email**: One email per alert (immediate) - **Digest**: One email per hour/day (batched) 4. Click **Save** 5. Click **Test** and check your inbox **When to Use Email:** - ✅ Important alerts you need documented - ✅ Alerts that need a paper trail - ✅ Alerts you might need to refer back to **Pros:** - Documented record - Works everywhere - Can be organized in folders **Cons:** - Slower than real-time (you check email periodically) - Can get buried in inbox - Digest means delayed notification --- ### Slack Notifications **How it works:** Alert fires → Message posted in Slack channel **Setup Steps:** 1. Click **Add Channel** → Select **Slack** 2. Click **Authorize** (connects to your Slack workspace) 3. Choose which Slack channel to post alerts to 4. (Optional) Customize message format 5. Click **Save** 6. Click **Test** and check your Slack channel **When to Use Slack:** - ✅ Team visibility (everyone sees alerts) - ✅ Real-time communication - ✅ Quick response and discussion - ✅ Team collaboration on issues **Pros:** - Instant notification (nearly real-time) - Team can see and discuss - Slack is always open for most teams - Can ask questions in thread **Cons:** - Requires Slack account - Alerts can get lost in channel noise - Only works if Slack is running **Example Slack Message:** ```text 🚨 CRITICAL: Production API - Response Time Over 5 Seconds Resource: api.example.com Value: 8.5 seconds Time: 2024-01-15 14:32:00 UTC ``` --- ### PagerDuty Integration **How it works:** Alert fires → Incident created → On-call person gets paged **Setup Steps:** 1. Click **Add Channel** → Select **PagerDuty** 2. Enter your PagerDuty API key 3. Choose escalation policy 4. Select integration service 5. Click **Save** 6. Click **Test** **When to Use PagerDuty:** - ✅ Critical 24/7 monitoring - ✅ Automated on-call notifications - ✅ Serious incidents needing immediate attention - ✅ Team on-call rotation management **Pros:** - Immediate page to on-call person - Automatic escalation if not acknowledged - Incident tracking - Works 24/7 **Cons:** - Requires PagerDuty subscription - Can be overkill for non-critical alerts - More complex setup --- ### Webhook (Custom Integration) **How it works:** Alert fires → Data sent to your custom URL → Your system processes it **Setup Steps:** 1. Click **Add Channel** → Select **Webhook** 2. Enter your webhook URL 3. (Optional) Add custom headers 4. (Optional) Customize payload format 5. Click **Save** 6. Click **Test** (check your system received it) **When to Use Webhook:** - ✅ Sending alerts to your own systems - ✅ Creating tickets in your issue tracker - ✅ Triggering custom automations - ✅ Integrating with non-standard systems **Example Webhook Payload:** ```json ``` **Pros:** - Maximum flexibility - Can integrate with any system - Custom processing **Cons:** - Requires technical setup - You maintain the receiving endpoint - More complex troubleshooting --- ## Setting Up Severity-Based Routing Route different alert severity levels to different channels: ### Example Setup | Alert Severity | Where to Send | |---|---| | 🔴 Critical | PagerDuty + Email | | 🟠 Warning | Slack only | | 🟡 Info | Email digest (daily) | ### How To Configure Routing 1. For each alert rule, choose which channel(s) to use 2. Or set default routing in Alert Config 3. Critical alerts bypass quiet hours 4. Warnings respect do-not-disturb times ### Best Practices For Routing **Critical Alerts:** - Send to PagerDuty for immediate page - Also email for documentation - Don't suppress notifications **Warning Alerts:** - Send to Slack for team discussion - Allows faster response than email - Team can help investigate **Info Alerts:** - Email digest option (daily summary) - Doesn't need immediate response - Batching reduces notification overload --- ## Testing Your Notification Channel **Always test before relying on it!** ### Test Steps 1. Find your channel in Alert Config 2. Click **Send Test Notification** 3. Verify you received it: - **Email**: Check inbox (and spam folder!) - **Slack**: Check the channel - **PagerDuty**: Check incidents - **Webhook**: Check your endpoint ### If Test Fails **For Email:** - Check spam/junk folder - Verify email address is correct - Check firewall/email filters **For Slack:** - Confirm Slack workspace authorized - Check channel name is correct - Verify bot has permission to post **For PagerDuty:** - Check API key is valid - Verify integration configured - Check team email address **For Webhook:** - Test URL is reachable - Endpoint is returning 200 OK - Check firewall allows outbound --- ## Managing Channels ### Edit A Channel 1. Find the channel in Alert Config 2. Click **Edit** 3. Change settings 4. Click **Save** ### Disable A Channel Toggle **Enabled** off to disable temporarily: - Useful for maintenance - Prevents notifications to that channel - Easy to re-enable ### Delete A Channel 1. Find the channel 2. Click **Delete** 3. Confirm deletion **Note:** If alerts are routed to this channel, they'll no longer be sent. --- ## Linking Rules To Notifications Now that you have rules AND channels, connect them: ### For Each Alert Rule: 1. Edit the rule 2. Select which **Notification Channel** to use 3. Can select multiple channels 4. Save **Now when the rule triggers → notifications are sent to those channels** --- ## Notification Best Practices ### 1. Test Everything - Always test new channels - Run a test alert through the system - Don't find out alerts don't work when you need them ### 2. Start Simple - Start with email or Slack - Add PagerDuty for critical alerts - Add webhooks if you need custom integration ### 3. Use Clear Routing - Critical alerts → PagerDuty - Warnings → Slack - Info → Email digest ### 4. Keep Contact Information Updated - Email addresses change - Slack channels are renamed - Review quarterly ### 5. Respect Quiet Hours - Don't page at 3 AM for warnings - Use email digest for non-critical - Let team set do-not-disturb times ### 6. Monitor Notification Health - Check test notifications quarterly - Remove unused channels - Update credentials when they expire --- ## Common Issues & Solutions ### Issue: Test Notification Never Arrived **Check:** 1. Is the channel enabled? 2. Are credentials correct? 3. Is your receiving system up? 4. Check spam/junk folders **Fix:** 1. Re-test with fresh test notification 2. Verify settings 3. Contact channel provider if still failing ### Issue: Too Many Notifications **Solutions:** 1. Use email digest instead of single emails 2. Move non-critical alerts to Slack only 3. Adjust alert thresholds to fire less often 4. Remove duplicate rules ### Issue: Missing Notifications From Some Alerts **Check:** 1. Is the alert rule enabled? 2. Is it routed to a channel? 3. Does the channel have correct settings? 4. Test the channel ### Issue: Slack Bot Can't Post **Fix:** 1. Re-authorize Slack integration 2. Check bot permissions in Slack workspace 3. Verify channel is not archived 4. Check Slack workspace allows the bot --- ## Multiple Channels Per Alert Route the same alert to multiple channels: **Example: Critical Alert** ```text Alert Rule: "Database Down" Severity: Critical Send to: → PagerDuty (immediate page) → Email (documentation) → Slack (team visibility) ``` **This ensures:** - Immediate notification via page - Team sees it in Slack - Documented in email for records --- ## Escalation Patterns ### Pattern 1: Warning → Critical ```text Alert fires (Warning) → Slack notification ↓ (No acknowledgment after 15 min) Escalate to Critical → PagerDuty page ``` ### Pattern 2: Routing By Time ```text Business hours → Slack only After hours → PagerDuty page Weekends → Critical only to on-call ``` ### Pattern 3: Team-Based Routing ```text Database alerts → DBA email API alerts → Backend team Slack Frontend alerts → Frontend team Slack ``` --- ## Next Steps Now that you've configured notifications: 1. **[Create Alert Rules](/Alerts/Creating-Alert-Rules)** - Define what to monitor 2. **[Respond to Alerts](/Alerts/Responding-To-Alerts)** - Handle active alerts 3. **[Best Practices](/Alerts/Best-Practices)** - Advanced alert strategies --- ## Getting Help **Questions about notification setup?** - Click the **?** icon on the Alerts page - Try sending a test notification - Contact support: support@nife.io **Notifications not working?** - Click **Test** to diagnose - Check channel credentials - Review channel settings - Contact your channel provider (PagerDuty, Slack, etc.) --- ## Alert Best Practices & Management Guide | Nife Deploy URL: https://docs.nife.io/Alerts/Best-Practices Follow these best practices to keep your alert system effective and your team happy. ## 1. Reduce Alert Fatigue Alert fatigue happens when you get too many alerts, causing you to ignore important ones. ### Signs of Alert Fatigue - More than 10 alerts per day - Team ignoring notifications - People disabling alerts - False alarms outnumber real issues ### How to Fix It **Increase Thresholds** ```text Before: CPU > 70% = 50 alerts per day After: CPU > 85% = 5 alerts per day Result: Only alert on serious issues ``` **Disable Non-Critical Rules** - Remove low-priority alerts - Focus on what matters - Add back later if needed **Use Digests** ```text Instead of: 100 individual emails Use: 1 daily digest email with 100 alerts ``` **Combine Related Alerts** ```text Before: 3 separate memory alerts for 3 services After: 1 alert for "Any service memory > 90%" ``` --- ## 2. Write Clear Rule Names A good rule name tells you exactly what's wrong when you see it. ### Good Rule Names - ✅ "Production API - Response Time Over 5 Seconds" - ✅ "Database Server - Memory Usage High" - ✅ "Payment Service - Error Rate Above 5%" ### Bad Rule Names - ❌ "Alert 1" - ❌ "API" - ❌ "CPU" - ❌ "Monitoring" ### Naming Formula ```text [Service] - [What's Wrong] - [Threshold/Condition] Example: Production API - High Response Time - > 5000ms ``` --- ## 3. Set Thresholds Based on Reality Thresholds should be based on: - Your application's normal operating range - Your Service Level Agreement (SLA) - What value actually needs action ### Finding the Right Threshold **Step 1: Monitor for 1 Week** - Watch your metric without alerting - Note the normal range - Note the peak values **Step 2: Set Threshold Above Normal** ```text Normal range: 20-40% Peak values: 50-60% Alert threshold: 75% (Gives 15% buffer before crisis) ``` **Step 3: Test** - Watch if alerts fire naturally - Adjust if needed **Step 4: Document** - Note why you chose this threshold - Update if conditions change ### Examples **CPU Usage** ```text Typical: 30-50% Peak: 70% Alert: 80% (Warning) Alert: 95% (Critical) ``` **API Response Time** ```text Normal: 200-400ms Acceptable: 5000ms (Warning) Alert: > 10000ms (Critical) ``` **Error Rate** ```text Normal: 0.1% Alert: > 1% (Warning) Alert: > 5% (Critical) ``` --- ## 4. Document Your Rules Good documentation saves time during incidents. ### What to Document **Rule Description:** - What metric does it monitor? - What threshold triggers it? - Why is this threshold important? **Common Causes:** ```text Rule: "High Database CPU" Causes: 1. Slow SQL queries (run EXPLAIN PLAN) 2. High concurrent connections 3. Missing indexes 4. Data corruption ``` **How to Fix:** ```text Quick fixes: 1. Check slow query log 2. Kill long-running queries 3. Bounce database if needed Permanent fixes: 1. Optimize queries 2. Add indexes 3. Scale database resources ``` **Who Should Know:** - DBA team - Application team - SRE team --- ## 5. Use Appropriate Severity Levels Choose severity based on impact to users and system. ### Severity Decision Tree ```text Can users use the service? ├─ NO → Critical 🔴 └─ YES Performance degraded significantly? ├─ YES → Warning 🟠 └─ NO → Info 🟡 ``` ### Examples **Critical** 🔴 - Service is completely down - Data corruption risk - Security breach **Warning** 🟠 - Service is slow - Users can use it but frustrated - Approaching critical threshold **Info** 🟡 - Deployment completed - Scheduled maintenance - Metrics for awareness only --- ## 6. Start Simple and Add Gradually Don't create 100 rules on day one. ### Recommended Approach **Week 1: Critical Only** - Website/API Down - Database Down - Deployment Failures **Week 2: Add Performance** - High Response Time - High CPU Usage - High Error Rate **Week 3: Add Resource** - Low Disk Space - High Memory Usage - Network Issues **Week 4+: Refine and Optimize** - Adjust thresholds - Remove false alarms - Add team-specific rules --- ## 7. Route by Severity Different severities need different response channels. ### Recommended Routing ```text Critical Alert ├─ PagerDuty (immediate page) ├─ Email (documentation) └─ Slack (team visibility) Warning Alert ├─ Slack (team discussion) └─ Email digest (daily) Info Alert └─ Email digest (daily or weekly) ``` ### Benefits - Critical alerts get immediate attention - Warnings allow team discussion - Info alerts don't interrupt everyone --- ## 8. Review and Adjust Regularly Alert system needs maintenance. ### Weekly Review - Check which alerts fired - Any false alarms? - Any alert fatigue signals? ### Monthly Review - Are thresholds still appropriate? - Any new patterns? - Rules that should be removed? - Channels that need updating? ### Quarterly Review - Full alert system audit - Update documentation - Team training if needed - Adjust for seasonal changes --- ## 9. Test Before Relying Always test new alerts and channels. ### Test Checklist **For New Rules:** - [ ] Rule name is clear - [ ] Threshold makes sense - [ ] Notification channel selected - [ ] Test alert fires correctly - [ ] Received notification - [ ] Acknowledged and resolved it **For New Channels:** - [ ] Credentials configured - [ ] Send test notification - [ ] Verify you received it - [ ] Check message format - [ ] No special characters breaking it --- ## 10. Keep Contact Information Updated Alerts are useless if they go to wrong person. ### Quarterly Audit - [ ] Email addresses current? - [ ] Slack members still on team? - [ ] PagerDuty escalation policy updated? - [ ] Webhook URLs still valid? - [ ] All channels operational? ### When Team Changes - Add new team members to channels - Remove people who left - Update escalation paths - Test all channels after changes --- ## 11. Document Root Causes Learn from each incident. ### After Resolving Alert Write down: **What Happened:** ```text Production API CPU spiked to 95% at 2:30 PM Response time increased from 200ms to 5000ms Users reported page timeouts ``` **Root Cause:** ```text New campaign drove 10x traffic Caching was misconfigured after deployment Database connection pool was too small ``` **How We Fixed It:** ```text 1. Scaled API servers horizontally (15 min) 2. Fixed cache configuration (10 min) 3. Increased connection pool (5 min) 4. Traffic normalized after 30 minutes ``` **How to Prevent Next Time:** ```text 1. Load test before major campaigns 2. Implement auto-scaling 3. Better monitoring on traffic metrics 4. Pre-deployment checklist for configs ``` --- ## 12. Communicate with Your Team Alert system is a team tool. ### Share Knowledge - Document common issues - Share troubleshooting guides - Teach new team members - Review incidents together ### Team Alerts Meeting **Monthly 15-minute meeting:** - Review alert trends - Discuss improvements - Update documentation - Share learnings --- ## Common Mistakes to Avoid ### ❌ Too Many Alerts Creates alert fatigue. You'll ignore important ones. **Fix:** Increase thresholds, disable non-critical ### ❌ Alerts with No Action Alert fires but there's nothing to do about it. **Fix:** Delete alerts you can't act on ### ❌ Never Adjusting Thresholds Rules become outdated as system changes. **Fix:** Review and adjust monthly ### ❌ Not Testing Channels Notifications don't work when you need them. **Fix:** Test quarterly ### ❌ Vague Rule Names Team doesn't understand what's wrong. **Fix:** Use specific, descriptive names ### ❌ No Documentation Everyone asks what alert means. **Fix:** Document each rule's purpose ### ❌ Not Learning from Incidents Same problems keep happening. **Fix:** Document root causes and fixes --- ## Alert Checklist Use this checklist when creating new rules: **Planning:** - [ ] What metric should we monitor? - [ ] What threshold makes sense? - [ ] What's the normal range? - [ ] What's the current peak? - [ ] How often would this naturally trigger? **Configuration:** - [ ] Clear, specific rule name - [ ] Correct threshold value - [ ] Appropriate severity level - [ ] Documented description - [ ] Notification channel selected **Testing:** - [ ] Rule saves without errors - [ ] Rule enables successfully - [ ] Test notification received - [ ] Team aware of new rule - [ ] Know how to respond if it fires **Monitoring:** - [ ] Watch for 1 week - [ ] Adjust if too many false alarms - [ ] Adjust if never fires - [ ] Document findings --- ## Alert Audit Checklist Run quarterly to keep system healthy: **Rules:** - [ ] All active rules still needed? - [ ] Thresholds still appropriate? - [ ] Names still make sense? - [ ] Descriptions current? - [ ] Any duplicates? **Notifications:** - [ ] Email addresses correct? - [ ] Slack channels still exist? - [ ] PagerDuty policy updated? - [ ] All channels tested? **Team:** - [ ] Team trained on alerts? - [ ] Escalation path clear? - [ ] On-call rotation current? - [ ] Response procedures documented? --- ## Getting Help **For alert best practices questions:** - Check this guide - Review examples from successful teams - Contact: support@nife.io **To improve your alert system:** 1. Pick one best practice from this guide 2. Implement this week 3. Measure the improvement 4. Pick next best practice 5. Repeat monthly --- ## Next Steps 1. **[Creating Alert Rules](/Alerts/Creating-Alert-Rules)** - Create your rules 2. **[Alert Configuration](/Alerts/Alert-Configuration)** - Set up notifications 3. **[Responding to Alerts](/Alerts/Responding-To-Alerts)** - Handle active alerts --- ## Summary **Remember:** - ✅ Start simple and add gradually - ✅ Use clear names and documentation - ✅ Set realistic thresholds - ✅ Test before relying - ✅ Review and adjust regularly - ✅ Learn from incidents - ✅ Keep your team informed Happy alerting! 🎉 --- ## Creating Alert Rules - Step-by-Step Guide | Nife Deploy URL: https://docs.nife.io/Alerts/Creating-Alert-Rules Alert rules are the foundation of your monitoring system. A rule defines WHEN an alert should fire. ## What is an Alert Rule? An alert rule is a condition you set up that automatically watches your system. When the condition becomes true, an alert fires. **Simple Example:** ```text Rule: "Alert me if CPU usage goes above 80%" When: CPU reaches 80% or higher Then: Fire an alert and notify me ``` --- ## Step-by-Step: Create Your First Alert Rule ### Step 1: Navigate to Alert Rules 1. Go to **Alerts** in the main navigation menu 2. Click the **Alert Rules** tab 3. Click the **New Rule** button ### Step 2: Choose What to Monitor Select what metric or condition you want to watch. **Infrastructure Metrics:** - CPU usage (%) - Memory usage (%) - Disk space remaining (%) - Network traffic (bytes/sec) **Application Metrics:** - Error rate (%) - Response time (ms) - Request count (per second) - Success rate (%) **Service Status:** - Service is up/down - Endpoint responding (yes/no) - Health check status ### Step 3: Set the Threshold Define the exact value that triggers the alert: **Examples:** - CPU usage **> 80%** - Memory **> 90%** - Response time **> 5000 ms** (5 seconds) - Error rate **> 5%** - Disk space ** 5 seconds) - Error Rate High (> 5%) - Service Down (status code 503) **Database:** - CPU Usage High (> 80%) - Memory Usage High (> 90%) - Connection Pool Exhausted **Infrastructure:** - Disk Space Low ( 100ms) - Server Unreachable **Scheduled Jobs:** - Job Failed (0 success) - Job Took Too Long (> expected time) - Job Didn't Run --- ## Next Steps Now that you've created alert rules: 1. **[Configure Notifications](/Alerts/Alert-Configuration)** - Set up how you're notified 2. **[Respond to Alerts](/Alerts/Responding-To-Alerts)** - Handle active alerts 3. **[Alert Management](/Alerts/Best-Practices)** - More advanced topics --- ## Getting Help **Questions about creating rules?** - Check the examples above - Click the **?** icon on the Alerts page - Contact support: support@nife.io **Rule isn't working?** - Make sure it's **Enabled** - Check the threshold is set correctly - Verify the metric you're monitoring - Test with a temporary rule first ## Related Resources - 🚀 [Launch Dashboard](https://launch.nife.io) — Set up alerts for your Nife apps - 🌐 [nife.io](https://nife.io) — Learn more about Nife's monitoring capabilities --- ## Alerts Quick Reference & Cheatsheet | Nife Deploy URL: https://docs.nife.io/Alerts/Quick-Reference Quick answers to common alert questions. --- ## I Want To... ### Create an Alert Rule ``` Alerts → Alert Rules → New Rule ↓ Choose what to monitor (CPU, errors, etc.) ↓ Set threshold (> 80%, 80%, < 10%, etc.) **Status** Current state of alert (Firing/Acknowledged/Resolved) --- ## Response Times | Action | Time | |--------|------| | Create rule | 2-3 min | | Setup channel | 5-10 min | | Acknowledge alert | 30 sec | | Resolve alert | 30 sec | | Test channel | 30 sec | --- ## Support & Links | Need | Contact | |------|---------| | Questions | support@nife.io | | Help on page | ? button | | Documentation | [Alerts Overview](/Alerts/Alerts-Overview) | | Best Practices | [Best Practices](/Alerts/Best-Practices) | --- ## Related Pages - [Alerts Overview](/Alerts/Alerts-Overview) - Start here - [Creating Alert Rules](/Alerts/Creating-Alert-Rules) - How to create rules - [Alert Configuration](/Alerts/Alert-Configuration) - How to setup notifications - [Responding to Alerts](/Alerts/Responding-To-Alerts) - How to respond - [Best Practices](/Alerts/Best-Practices) - Advanced tips --- **Last Updated:** January 2026 **Need Help?** support@nife.io --- ## Responding to Alerts - SRE Guide | Nife Deploy URL: https://docs.nife.io/Alerts/Responding-To-Alerts When an alert fires, you need to respond quickly. This guide shows you how to handle active alerts. ## Getting an Alert ### What You'll See When an alert fires, you'll be notified through your configured channels: **If Email:** ``` Subject: CRITICAL: Production API Down Body: Your production API is not responding Severity: Critical Time: 2024-01-15 14:32:00 UTC ``` **If Slack:** ``` 🚨 CRITICAL: Production API Down Status: Firing Resource: api.example.com Click here to view details ``` **If PagerDuty:** - You'll get paged immediately - Incident automatically created - Escalates if not acknowledged --- ## Quick Response Workflow ``` 1. Get Notification ↓ 2. Open SRE Alerts page ↓ 3. Click "Acknowledge" ↓ 4. Investigate the issue ↓ 5. Fix the problem ↓ 6. Click "Resolve" ↓ 7. Confirm everything is working ``` --- ## Step 1: Access the Alert ### Via Notification Link Most notifications include a direct link: - Click the link - Goes straight to the alert details ### Via Dashboard 1. Go to **SRE** → **Alerts** 2. Look for the alert with **Firing** status (red badge) 3. Usually at the top of the list ### Find Specific Alert Use filters to find your alert quickly: ``` Status: Firing (most urgent) Severity: Critical (highest priority) ``` --- ## Step 2: Review Alert Details When you open the alert, you'll see: **Alert Information:** - 🔔 Alert status (Firing/Acknowledged/Resolved) - Alert title and description - Resource affected - Severity level - When it fired (e.g., "5 minutes ago") **Example Alert:** ``` Status: Firing 🔔 Title: High CPU Usage on Production API Severity: Critical Resource: prod-api-server-01 Fired: 3 minutes ago Description: CPU usage exceeded 80% threshold Current value: 87% ``` --- ## Step 3: Acknowledge the Alert ### Why Acknowledge? Tells your team: - You've seen the alert - You're investigating it - Others don't need to also respond ### How to Acknowledge 1. Click the **Acknowledge** button 2. Confirm in the popup dialog 3. Alert status changes from "Firing" to "Acknowledged" 4. Your name appears as the investigator ### What Happens: ``` Before: Status = Firing (everyone should look at it) ↓ You click Acknowledge ↓ After: Status = Acknowledged (I'm looking at it) ``` ### When to Acknowledge: - ✅ Immediately when you start investigating - ✅ Even if you can't fix it right away - ✅ So team knows you're on it ### When NOT to Acknowledge: - ❌ If you don't actually know what's happening - ❌ If someone else should handle it - ❌ If you can't take action --- ## Step 4: Investigate the Issue ### What to Do 1. **Understand the Alert** - What is it monitoring? - What threshold triggered it? - What's the current value? 2. **Check the Resource** - Log in to the system - View metrics/logs for that resource - Check for errors or anomalies 3. **Identify the Problem** - What's causing the issue? - When did it start? - Is it affecting users? 4. **Document Your Findings** - Write down what you found - Note what you're trying - Keep team informed in Slack if needed ### Investigation Tips **If CPU is High:** - Check what process is using CPU - Look for runaway queries or loops - Check if traffic spike occurred **If API is Slow:** - Check database performance - Review error logs - Check if upstream service is down **If Memory is High:** - Look for memory leaks - Check if cache is bloated - Verify application version **If Service is Down:** - Check if it's running - Look at recent deployments - Check network connectivity - Review error logs --- ## Step 5: Fix the Problem ### Take Action Based on your investigation, take appropriate action: **Common Fixes:** - Restart the service - Scale up the application - Clear cache - Kill runaway process - Deploy a fix - Adjust configuration - Route traffic elsewhere ### Verify the Fix After taking action, verify it worked: - Check the metric that triggered alert - Confirm it's back to normal - Test the functionality - Have users report if working **Before Resolving:** Make absolutely sure the issue is fixed. Don't resolve and have it fire again 5 minutes later. --- ## Step 6: Resolve the Alert ### How to Resolve 1. Click the **Resolve** button 2. Confirm in the popup dialog 3. Alert status changes to "Resolved" (✓) 4. Your name appears as who resolved it ### What This Means: ``` Status: Resolved ✓ = Issue is fixed, no more action needed ``` ### When to Resolve: - ✅ After you've fixed the underlying issue - ✅ After you've verified the fix works - ✅ When the metric is back to normal ### Don't Resolve Until: - ❌ The issue is completely fixed - ❌ You've verified the fix works - ❌ Metric is back to acceptable level --- ## Step 7: Verify and Document ### Final Verification Check that: - The alert status changed to "Resolved" - The metric is back to normal - No related alerts are firing - Users aren't reporting issues - Team is aware it's resolved ### Document for the Team Post an update in Slack: ``` ✅ RESOLVED: Production API High CPU Issue: Memory leak in v2.1.0 Fix: Rolled back to v2.0.5 Status: All systems normal, no user impact ETA for permanent fix: Tuesday ``` --- ## Alert Statuses Reference ### Firing Status 🔔 (Red) **What it means:** Alert condition is currently true. Action is needed. **What you should do:** 1. Acknowledge it 2. Investigate 3. Fix it 4. Resolve it **Duration:** Until you resolve it ### Acknowledged Status ⏱️ (Yellow) **What it means:** Someone is already investigating. No need for others to duplicate work. **What it shows:** - Shows who acknowledged it - Shows when they acknowledged it **Next step:** Resolve once the issue is fixed **Duration:** While being investigated ### Resolved Status ✓ (Green) **What it means:** The issue has been fixed. Alert is closed. **What it shows:** - Shows who resolved it - Shows when it was resolved **Historical:** Kept for records and trend analysis **Duration:** Forever (historical record) --- ## Filtering to Find Alerts ### Filter by Status **Firing:** - Currently active alerts - Need attention NOW - Most urgent **Acknowledged:** - Someone is investigating - Not yet resolved - Don't need to duplicate work **Resolved:** - Historical view - Issue is fixed - Use for trend analysis ### Filter by Severity **Critical:** - Immediate action needed - System down or critical function broken **High:** - Needs urgent attention - User-impacting **Medium:** - Should be addressed - Non-critical issues **Low:** - Nice to know - Can handle when you have time --- ## Team Coordination ### When Multiple People Need to Help 1. **First person:** Acknowledge the alert 2. **Post in Slack:** "I'm on the X alert, currently investigating" 3. **Assign tasks:** "Can someone check the database?" 4. **Coordinate:** "Try restarting service on server-02" 5. **Report:** "Found the issue, deploying fix now" 6. **Resolve:** Once fixed ### Escalation if Stuck If you can't resolve it: 1. Post in Slack asking for help 2. Escalate to team lead if urgent 3. If critical, create incident ticket 4. Keep alert Acknowledged so others know it's being worked on --- ## Common Alert Scenarios ### Scenario 1: False Alarm **Problem:** Alert fired but nothing is actually wrong **Solution:** 1. Acknowledge it 2. Verify the metric 3. Resolve if confirmed to be false 4. Later: Adjust the alert threshold to prevent false alarms ### Scenario 2: Recurring Alert **Problem:** Same alert keeps firing over and over **Solution:** 1. First time: Acknowledge and investigate 2. Second time: Find root cause 3. Implement permanent fix 4. Adjust alert threshold if needed ### Scenario 3: Cascading Alerts **Problem:** One issue causes multiple alerts to fire **Example:** ``` Database goes down → API Alert fires → Website Alert fires → Scheduled Job Alert fires ``` **Solution:** 1. Fix the root cause (database) 2. All related alerts auto-resolve 3. Document it for future reference ### Scenario 4: Alert During Maintenance **Problem:** Alert fires while you're doing planned maintenance **Solution:** 1. You expected it 2. Still acknowledge it 3. Note in alert: "Expected, maintenance in progress" 4. Resolve when maintenance complete --- ## Best Practices for Responding ### 1. Respond Quickly - Acknowledge within 5 minutes - Team should see it's being handled - Time is critical for critical alerts ### 2. Acknowledge Immediately - Don't wait until you have the solution - Let team know you're investigating - Prevents duplicate work ### 3. Keep Team Informed - Post updates in Slack - Let others know what you found - Ask for help if needed ### 4. Verify Before Resolving - Don't resolve until truly fixed - Verify the metric is back to normal - Check downstream systems ### 5. Document What Happened - Write it down for future reference - Include root cause - Note how you fixed it ### 6. Learn from It - Why did it happen? - How can we prevent it next time? - Do we need to adjust alert thresholds? - Do we need better monitoring? --- ## Quick Response Checklist - [ ] Alert notification received - [ ] Opened SRE Alerts page - [ ] Found the firing alert - [ ] Clicked Acknowledge - [ ] Reviewed alert details - [ ] Investigated the issue - [ ] Found the root cause - [ ] Implemented a fix - [ ] Verified the fix works - [ ] Metric back to normal - [ ] Clicked Resolve - [ ] Posted update in Slack - [ ] Documented for future reference --- ## Getting Help During an Alert **Need to ask for help?** - Post in Slack channel - @mention the relevant team - Include alert details - Ask specific questions **Example:** ``` @backend-team: Production API CPU alert Currently at 87%, investigating. Can someone check database performance? Last deployment was 2 hours ago, could be related. ``` --- ## Next Steps 1. **[Best Practices](/Alerts/Best-Practices)** - Learn more advanced strategies 2. **[Alert Management](/Alerts/Creating-Alert-Rules)** - Manage your rules 3. **[Monitoring Guide](/Monitoring/Overview)** - Overall monitoring strategy --- ## Quick Links | Need | Location | |------|----------| | View alerts | SRE → Alerts | | Create rule | Alerts → Alert Rules | | Configure notifications | Alerts → Alert Config | | Help | Click ? icon | --- ## Contact Support **For issues with responding to alerts:** - Email: support@nife.io - Dashboard chat: Available 24/7 --- ## Alerts & Monitoring Guide | Nife Deploy URL: https://docs.nife.io/Alerts/Intro Alerts help you stay informed about important events in your applications and infrastructure. Get notified when issues occur so you can respond quickly. ## What are Alerts? Alerts are automated notifications that trigger when specific conditions are met in your system. For example: - Your application CPU usage exceeds 80% - An API endpoint stops responding - Database connection fails - Memory usage reaches a critical level Instead of constantly monitoring your dashboard, alerts bring problems to your attention automatically. --- ## Why Use Alerts? **Benefits of Using Alerts:** - 🔔 Get notified immediately when problems occur - ⚡ Faster response time to issues - 📊 Reduce manual monitoring overhead - 🎯 Focus on what matters most - 👥 Keep your team synchronized --- ## Getting Started with Alerts ### Accessing the Alerts Page 1. Log into your Nife dashboard 2. Click **Alerts** in the main navigation menu 3. You'll see two tabs: **Alert Rules** and **Alert Config** ### Understanding the Dashboard When you open Alerts, you'll see key information at the top: **Active Alerts Badge** Shows how many alerts are currently firing. The badge turns red if there are critical alerts. **Alert Statistics** - **Total Rules**: How many alert rules you've set up - **Enabled Rules**: How many rules are currently active - **Critical Alerts**: Number of critical severity alerts - **Warning Alerts**: Number of warning severity alerts --- ## Quick Start: Create Your First Alert ### Step 1: Start a New Rule Click the **New Rule** button on the Alerts page. ### Step 2: Define the Trigger Choose what should trigger the alert: - CPU usage > 80% - Memory usage > 90% - API response time > 5 seconds - Error rate > 5% - Service unavailable ### Step 3: Set Severity Choose how serious this is: - **Critical**: Immediate action needed - **Warning**: Soon, but not emergency - **Info**: Nice to know ### Step 4: Name It Give it a clear name: - ✅ "High CPU Usage on Production API" - ❌ "Rule 1" ### Step 5: Save and Enable Click **Save**, then toggle **Enabled** to turn it on. **Congratulations!** Your first alert is now monitoring your system. --- ## Two Types of Alerts ### Standard Alerts Page Located at: **Alerts** in main menu **For:** - Creating and managing alert rules - Configuring notification channels - Setting up your alert system **Features:** - Alert Rules Tab - Create and manage rules - Alert Config Tab - Set up notifications ### SRE Alerts Page Located at: **SRE** → **Alerts** **For:** - Real-time alert monitoring - Responding to active alerts - Team collaboration **Features:** - View firing, acknowledged, and resolved alerts - Acknowledge alerts you're investigating - Resolve alerts once fixed - Filter by status and severity --- ## Alert Status Lifecycle Alerts move through different statuses as they're handled: ``` Firing 🔔 (Red) ↓ You click Acknowledge Acknowledged ⏱️ (Yellow) ↓ You click Resolve Resolved ✓ (Green) ``` ### Firing Status - Alert condition is currently true - Requires attention - Click "Acknowledge" to claim it ### Acknowledged Status - Someone is investigating - Shows who acknowledged it - Ready to be resolved ### Resolved Status - Issue is fixed - Kept for historical records - No further action needed --- ## Severity Levels Choose the right severity for each alert: | Severity | When to Use | Example | |----------|-----------|---------| | **Critical** 🔴 | Immediate action needed | Application is down | | **Warning** 🟠 | Soon, but not emergency | High error rate detected | | **Info** 🟡 | FYI, nice to know | New deployment completed | --- ## Next Steps Now that you understand the basics: 1. **[Create Your First Alert Rule](/Alerts/Creating-Alert-Rules)** - Step-by-step guide 2. **[Configure Notifications](/Alerts/Alert-Configuration)** - Set up how you're notified 3. **[Respond to Alerts](/Alerts/Responding-To-Alerts)** - Handle active alerts --- ## Common Alert Scenarios **Monitor Your Website:** - Create alert for "Website Down" (Critical) - Create alert for "High Response Time" (Warning) **Monitor Your Database:** - Create alert for "High CPU Usage" (Critical) - Create alert for "Low Disk Space" (Critical) **Monitor Your API:** - Create alert for "High Error Rate" (Warning) - Create alert for "Slow Response Time" (Warning) --- ## Getting Help ### Built-in Help Click the **?** icon on the Alerts page for quick help ### Contact Support - Email: support@nife.io - Dashboard: Available in the chat widget --- ## Related Pages - [Creating Alert Rules](/Alerts/Creating-Alert-Rules) - [Alert Configuration](/Alerts/Alert-Configuration) - [Responding to Alerts](/Alerts/Responding-To-Alerts) - [Monitoring Guide](/Monitoring/Overview) --- ## Application Details & Configuration | Nife URL: https://docs.nife.io/Applications/details Access and understand complete information about your deployed applications and services. ## Viewing Application Details ### Accessing Detail Page **From Applications Dashboard** 1. Find application in list 2. Click "View Details" in actions menu 3. Detail page loads 4. Shows complete application information 5. Displays configuration and metrics ## Application Identification ### Basic Information **Application Name** - User-assigned identifier - Unique within organization - Used for access URLs - Reference for management **Application ID** - System-assigned identifier - Unique across platform - Used for APIs - Reference in logs **Type/Deployment Type** - Application category - App, Site, Database, Standalone - Determines available features - Affects management options **Status** - Current operational state - Running, Deploying, Paused, Failed, etc. - Real-time indicator - Last update timestamp ## Deployment Information ### Deployment Configuration **Deployment Strategy** - How updates are rolled out - Rolling update - Blue-green deployment - Canary deployment - Recreation - Affects update process **Version** - Current deployed version - Build/release version - Rollback history - Version selection **Deployed Region(s)** - Geographic location(s) - Single or multiple regions - Affects latency - Redundancy information **Deployment Status** - Current deployment progress - Percentage complete - Status: In Progress, Completed, Failed - Last deployment time ## Resource Configuration ### Compute Resources **CPU Allocation** - Virtual CPUs assigned - Per replica/instance - Affects performance - Cost implication **Memory Allocation** - RAM in GB - Per replica/instance - Determines capacity - Swap availability **Replica Count** (Apps only) - Number of running instances - Load distribution - High availability - Scalability indicator **Instance Type** - Machine type or SKU - Performance tier - Standard, premium, custom - Cost tier ### Storage Configuration **Volumes** (if applicable) - Persistent storage attached - Storage size - Mount points - Access permissions **Cache Configuration** - Cache size if enabled - Cache type - TTL settings - Performance impact ## Network Configuration ### Networking Details **Application URL** - Public access point - HTTPS enabled - Domain name - Format: app-name.nifetency.com or custom **Port Mapping** - External port - Internal port (if different) - Protocol (HTTP, TCP, UDP) - Port forwarding rules **Network Settings** - Public or private - Load balancer configuration - SSL/TLS settings - Custom headers **Domain Configuration** - Custom domain (if set) - Primary domain - Aliases/subdomains - DNS configuration ## Environment Configuration ### Environment Variables **Configured Variables** - Name and value - Type (public/secret) - Last modified - Set by user or system **Secrets** - Secret variables - Encrypted storage - Not displayed plaintext - Used for credentials **Configuration Files** - Config maps if available - Files mounted in app - Configuration location - Update frequency ## Health and Status ### Health Indicators **Overall Health Status** - Healthy (green) - Warning (yellow) - Critical (red) - Timestamp of last check **Health Checks** - Endpoint checked - Success rate - Response time - Last check result **Uptime Metrics** - Current uptime - Uptime percentage - Availability SLA - Incident history ## Performance Metrics ### Key Metrics **CPU Usage** - Current usage percentage - Peak usage - Average usage - Trending up/down **Memory Usage** - Current usage - Peak usage - Percentage of allocated - Trending up/down **Request Metrics** (Apps) - Requests per second - Error rate - Response time (p50, p95, p99) - Request count **Throughput** - Data in/out - Requests processed - Concurrent connections - Peak capacity ## Logging and Monitoring ### Application Logs **Log Access** - View recent logs - Filter by severity - Search within logs - Download log files **Log Types** - Application output - System logs - Error logs - Access logs **Real-time Logs** - Stream live logs - Watch deployment - Monitor errors - Troubleshoot issues ### Monitoring Data **Metrics Available** - Performance graphs - Historical data - Export metrics - Custom dashboards **Alert Configuration** - Configured alerts - Threshold values - Notification methods - Alert history ## Related Services ### Dependencies **Database Connections** - Connected databases - Connection string (masked) - Database name - User information **Cache Services** - Redis or similar caches - Connection details - Memory limits - Cache stats **External Services** - Third-party integrations - API keys (masked) - Service endpoints - Authentication method ## Recent Activity ### Activity Log **Recent Events** - Deployment completed - Configuration changed - Restart initiated - Pause/resume - Scale changes - Error occurred **Activity Details** - Timestamp - Type of activity - User who triggered - Change details - Status/result **View History** - Click to expand activity - See details - Filter by type - Download report ## Backup and Recovery ### Backup Information **Backup Status** - Last backup time - Backup frequency - Backup location - Data covered **Recovery Options** - Point-in-time restore - Version rollback - Disaster recovery plan - Recovery time estimate ### Version History **Previous Versions** - Version number - Deployment date - Size - Status **Rollback** - Roll back to previous version - Takes several minutes - Automatic backup first - Brief downtime ## Settings and Configuration ### Application Settings **Basic Settings** - Name (can be changed) - Description - Labels/tags - Owner/team **Advanced Settings** - Environment specific - Build settings - Deploy settings - Performance settings **Security Settings** - Authentication required - IP whitelisting - Rate limiting - DDoS protection ## Customization Options ### Custom Configuration **Custom Domains** - Add custom domain - Remove domain - Change primary domain - SSL certificate management **Build Configuration** - Build command - Dockerfile location - Build context - Build variables **Runtime Configuration** - Environment variables - Secret variables - Port settings - Health check configuration ## Access and Permissions ### Access Control **Owner/Creator** - User who created app - Primary contact - Can manage access - Can transfer ownership **Team Members** - Who has access - Permission level - Can be added/removed - Roles assigned **Visibility** - Public or private - Share settings - Organization access - External access ## Cost Information ### Cost Details **Monthly Cost Estimate** - Based on configuration - Resource utilization - Additional services - Region-specific pricing **Cost Breakdown** - Compute cost - Storage cost - Network transfer cost - Data processing cost **Billing Information** - Organization for billing - Cost center - Budget allocation - Spending trend ## Export and Download ### Export Options **Export Configuration** - Download as JSON - Includes all settings - For backup - For migration **Export Metrics** - Historical data - CSV or JSON format - Date range - Specific metrics **Export Logs** - Recent log entries - Date range - Log levels - Search filters ## Troubleshooting Information ### Diagnostic Data **Status Summary** - Overall health - Known issues - Recent errors - Performance warnings **Error Messages** - Last error - Error history - Resolution steps - Support contact **System Information** - Deployment ID - Build ID - Instance IDs - Region information ## Comparison and Export ### Compare Versions **Compare with Previous** - Configuration changes - Version differences - Metrics comparison - Performance changes **Side-by-Side View** - Current vs previous - Highlight changes - Show deletions/additions - Revert if needed ## Best Practices 1. **Regular Monitoring**: Check details regularly 2. **Document Configuration**: Keep records 3. **Test Changes**: In staging first 4. **Monitor Costs**: Track spending 5. **Review Logs**: Regular troubleshooting 6. **Update Info**: Keep description current 7. **Backup Regularly**: Frequent backups 8. **Archive Old**: Clean up old data ## Application Details Overview The application detail page provides complete visibility into your deployed application including: - **Identification**: Name, ID, type, status - **Deployment**: Strategy, version, regions, status - **Resources**: CPU, memory, storage allocation - **Network**: URLs, ports, domains, SSL configuration - **Configuration**: Environment variables, secrets, settings - **Health**: Status indicators, uptime, health checks - **Metrics**: Performance data, usage trends - **Logs**: Application and system logs - **Activity**: Recent events and changes - **Dependencies**: Connected services ## Summary Understanding your application details helps you: - Optimize resource allocation - Troubleshoot performance issues - Configure for specific requirements - Monitor health and availability - Plan scaling decisions - Manage security and access - Document infrastructure ## Next Steps - [Managing Applications](/Applications/managing) - Control and operate your applications - [Application Types](/Applications/types) - Understand application type-specific settings - [Scaling Applications](/Applications/scaling) - Use resource information for scaling decisions - [Applications Overview](/Applications/overview) - Return to dashboard guide --- ## Managing Applications - Control, Monitor & Operate Apps | Nife URL: https://docs.nife.io/Applications/managing This guide covers all operations for managing deployed applications, sites, databases, and services. ## Viewing Applications ### Accessing Applications Dashboard **Navigate to Applications** 1. From main dashboard, click Applications in navigation 2. Dashboard loads with all deployed applications 3. Summary cards show key metrics 4. Applications displayed in your chosen view ### Application List Organization Applications are organized by: - Type (Apps, Sites, Databases, Standalone) - Current status - Deployment region - Active filters ## Filtering Applications ### Search by Name **Using Search Box** 1. Click search field in filter panel 2. Type application name or partial name 3. Results filter in real-time 4. Enter to confirm search 5. Clear search to see all **Search Features** - Case-insensitive search - Partial name matching - Real-time filtering - Works with all application types ### Status Filtering **Filter by Status** 1. Click Status dropdown in filters 2. Choose from available statuses: - All Statuses (show all) - Running (active apps) - Deploying (being deployed) - Paused (temporarily stopped) - Stopped (powered off) - Failed (deployment failed) **When to Use** - Find running applications - Monitor deployments - Find paused apps - Troubleshoot failed deploys ### Region Filtering **Filter by Region** 1. Click Region dropdown in filters 2. Choose from available regions: - All Regions - US East - US West - Europe - Asia Pacific - Other regions **When to Use** - Focus on specific region - Check regional distribution - Performance optimization - Compliance verification ## Application Tabs ### Tab-Based Organization Switch between application types using tabs: **All Tab** - Shows all applications - All types combined - Useful overview - Full inventory **Apps Tab** - Containerized applications only - Microservices and services - Scalable workloads - Dynamic applications **Sites Tab** - Static websites only - JAM stack apps - CDN-hosted content - No databases **Database Tab** - Database services only - Data stores - Caches and queues - Persistent data **Standalone Tab** - Services on servers - Monolith applications - Non-Nife managed - Custom infrastructure ## Application Information Display ### Table View Shows applications in columns: **Name Column** - Application identifier - Click to view details - Type indicator - Status badge **Status Column** - Current state - Visual indicator - Last status update - Color-coded **Type Column** - Deployment type shown - App, Site, Database, etc. - Helps organize - Filter by type **Replicas Column** - Number of instances - For Apps: replica count - For Standalone: service count - Indicates scale **Region Column** - Primary region - Geographic location - Deployment zone - Affects latency **Actions Column** - Manage buttons - Quick operations - Three-dot menu - Context options ### Card View Shows applications as visual cards with: - Application name - Status badge - Type icon - Quick action buttons - Key metrics - Region information **Switch Views** 1. Find layout toggle buttons 2. Click List icon for table 3. Click Grid icon for cards 4. Your preference is remembered ## Application Actions ### Viewing Details **Open Application Details** 1. Find application in list 2. Click "View Details" in actions menu 3. Detail page opens 4. Shows full configuration 5. Displays metrics and logs **Information Shown** - Complete configuration - Environment variables - Resource allocation - Deployment strategy - Performance metrics - Recent activity logs ### Opening Sites **For Deployed Sites Only** **Open in Browser** 1. Find site application 2. Click "Open Site" in menu 3. Site opens in new tab 4. See live deployment 5. Test functionality ### Copying Site URL **Copy Site URL** 1. Find site application 2. Click "Copy URL" in menu 3. URL copied to clipboard 4. Confirmation message appears 5. Share URL with others ## Controlling Applications ### Pausing Applications **Pause Running App** 1. Find running application 2. Click actions menu (three dots) 3. Select "Pause" 4. Confirmation may appear 5. App transitions to paused state **Effect of Pausing** - Application stops running - Instances halt - No requests served - Resources freed - Data preserved - Quick resume possible **When to Pause** - Maintenance windows - Temporary disable - Cost reduction - Testing purposes - Development work ### Resuming Applications **Resume Paused App** 1. Find paused application 2. Click actions menu 3. Select "Resume" 4. Application restarts 5. Services become available **Resume Process** - Takes a few seconds - Instances start up - Health checks run - Traffic accepted - Fully operational **When to Resume** - After maintenance - Restore service - Re-enable functionality - Return to production ### Restarting Applications **Restart Running App** 1. Find application 2. Click actions menu 3. Select "Restart" 4. Confirmation appears 5. Application restarts **Restart Process** - Graceful shutdown - All instances stopped - Fresh startup - Health checks - Back to running - Brief service interruption **When to Restart** - After configuration changes - Apply updates - Clear memory issues - Refresh connections - Troubleshoot problems :::warning Restarting causes brief downtime. Plan for service interruption. ::: ## Deleting Applications ### Before Deleting :::danger Deletion is permanent. Ensure backups exist if needed. ::: **Pre-Deletion Checklist** 1. Back up any important data 2. Verify no dependencies 3. Check not in use 4. Notify team members 5. Get approvals if needed 6. Document reason **What Gets Deleted** - Application code/container - Configuration - Environment variables - Logs - Custom domains - Data (unless backed up) ### Deletion Process **Delete Application** 1. Find application to delete 2. Click actions menu 3. Select "Delete" 4. Confirmation dialog appears 5. Review warning message 6. Confirm deletion 7. Application removed **Confirmation Dialog** - Shows application name - Warning about permanent deletion - Confirmation required - Cannot be undone message **After Deletion** - Application immediately stopped - Removed from cloud provider - No longer listed in dashboard - Billing stops - Recovery only from backups ## Bulk Operations ### Selecting Multiple Applications **Select Individual Applications** 1. Check checkbox next to app 2. Application is selected 3. Shows checkmark 4. Count appears in header **Select All Applications** 1. Click "Select All" button (if visible) 2. All visible applications checked 3. Bulk action options appear 4. Shows total selected count ### Bulk Deletion **Delete Multiple Apps at Once** 1. Select multiple applications 2. Menu shows "Delete X Selected" 3. Click delete option 4. Confirmation dialog 5. All selected apps deleted 6. Takes several seconds **Warning** - Deletes all selected - No individual confirmations - Cannot undo - Plan carefully ## Copying URLs ### Copy Site URLs **For Static Sites** 1. Find site in list 2. Click "Copy URL" in actions 3. URL copied automatically 4. Success message shown 5. Paste anywhere **URL Format** - HTTPS secure - Custom domain (if configured) - Or nifetency.com domain - Direct site access ## Exporting Application Data ### Export All Applications **Export as CSV** 1. Click overflow menu (three dots) 2. Select "Export as CSV" 3. File downloads 4. Open in Excel/Sheets 5. Contains all app data **Export as JSON** 1. Click overflow menu 2. Select "Export as JSON" 3. File downloads 4. Use for analysis 5. Integration-ready format **Exported Data Includes** - Application name - Type - Status - Replicas count - Region - Deployment strategy ### Export Selected Applications **Export Subset Only** 1. Select desired applications 2. Menu shows export options 3. Exports only selected 4. Smaller file size 5. Focused data ## View Toggle ### Switching Between Views **Table View** 1. Click List icon in header 2. Applications show as table 3. Columns for each property 4. Sortable columns 5. Dense information display **Card View** 1. Click Grid icon in header 2. Applications show as cards 3. Visual layout 4. Quick overview 5. More whitespace **Choose Based On** - Table: Detailed comparison - Cards: Quick visual scan - Your preference - Task at hand ## Status Monitoring ### Understanding Status **Running/Active** - Application fully operational - Serving traffic - Health checks passing - Ready for use **Deploying** - Currently being deployed - Not yet available - In progress - Will be running soon **Paused** - Temporarily stopped - Can be resumed - No traffic served - Resources reduced **Stopped** - Powered off - Not running - No resources used - Can be started **Failed** - Deployment or operation failed - Not operational - Requires investigation - Check error logs ## Troubleshooting ### Application Won't Start 1. Check status details 2. Review error message 3. Check resource limits 4. Verify configuration 5. Check logs 6. Try restart again ### Cannot Delete Application 1. Verify no dependencies 2. Check it's not in use 3. Ensure it's not protected 4. Confirm sufficient permissions 5. Try again 6. Contact support if issue persists ### Status Not Updating 1. Click Refresh button 2. Wait for reload 3. Check notifications 4. Try again after waiting 5. Check cloud provider status ## Operations Summary | Operation | Purpose | Duration | Risk | |-----------|---------|----------|------| | Pause | Temporary stop | Instant | Low | | Resume | Restart paused | Seconds | Low | | Restart | Refresh services | Minutes | Medium | | Delete | Remove app | Minutes | High | ## Best Practices 1. **Regular Backups**: Before major changes 2. **Monitor Status**: Check dashboard regularly 3. **Use Consistent Names**: Easy identification 4. **Document Changes**: Track what's deployed 5. **Test Changes**: In staging first 6. **Plan Maintenance**: Notify users 7. **Clean Up**: Delete unused apps 8. **Review Logs**: Monitor for issues ## Application Management Operations Reference Quick reference for common application operations: | Operation | Purpose | Impact | Duration | Risk Level | |-----------|---------|--------|----------|-------------| | **Pause** | Temporarily stop application | Frees resources, no traffic | Instant | Low | | **Resume** | Restart paused application | Restores service | Seconds | Low | | **Restart** | Gracefully restart | Clears state, refreshes | Minutes | Medium | | **Delete** | Permanently remove app | Complete removal | Minutes | High | | **Export** | Download application data | Backup for records | Instant | None | ## Application State Lifecycle **State Transitions:** Running ↔ Paused → Stopped → Restarted → Running → Deploying → Running → Failed (requires manual intervention) ## Bulk Operations Guide **Selecting Multiple Applications:** 1. Use individual checkboxes for specific apps 2. Click "Select All" for all visible apps 3. Operations apply to all selected 4. More efficient than individual operations 5. Always confirm before executing ## Summary of Application Lifecycle Understanding how to manage your applications allows you to: - Control costs through pausing - Maintain service availability - Update and maintain applications - Clean up unused deployments - Bulk manage large deployments - Export infrastructure data ## Next Steps - [Application Details](/Applications/details) - View detailed configuration and metrics - [Application Types](/Applications/types) - Understand type-specific management options - [Scaling Applications](/Applications/scaling) - Grow your applications - [Applications Overview](/Applications/overview) - Return to dashboard guide --- ## Scaling Applications - Horizontal & Vertical Growth | Nife URL: https://docs.nife.io/Applications/scaling Scale your applications to handle growing demand and improve availability. ## Scaling Overview ### What is Scaling? Scaling adjusts your application's capacity to handle traffic and load. **Types of Scaling** - **Horizontal**: Add more replicas/instances - **Vertical**: Increase CPU/memory per instance - **Regional**: Deploy to additional regions - **Auto**: Automatic based on load ## Horizontal Scaling (Replicas) ### Understanding Replicas **What are Replicas?** - Multiple copies of your application - Each runs independently - Load balancer distributes traffic - Provides redundancy - Improves availability **Benefits** - Handle more traffic - Distribute load - Tolerate failures - Rolling updates - No downtime deployments ### Scaling Replicas **Increase Replica Count** 1. Open application details 2. Find replica configuration 3. Increase replica count 4. New instances start 5. Load balancer includes them **Scaling Process** - Takes several minutes - Instances start one by one - Health checks run - Traffic gradually added - Monitoring updates **Decrease Replica Count** 1. Open application details 2. Reduce replica count 3. Instances gracefully shut down 4. In-flight requests complete 5. Load shifts to remaining :::warning Decreasing replicas may impact availability during traffic spikes. ::: ### Replica Best Practices 1. **Minimum 2 Replicas**: For high availability 2. **Match Traffic**: Scale for expected load 3. **Monitor Metrics**: Watch CPU/memory 4. **Test Scaling**: Try before production 5. **Plan Gradual**: Scale slowly 6. **Monitor Cost**: More replicas = more cost ## Vertical Scaling (Resources) ### Understanding Resource Scaling **CPU Allocation** - Virtual CPUs per instance - Affects performance - Higher cost - Better processing power **Memory Allocation** - RAM per instance - Determines capacity - Affects cost - Performance impact ### Scaling Resources **Increase CPU** 1. Open application settings 2. Select higher CPU tier 3. Restart application 4. New CPU allocated 5. Performance improves **Increase Memory** 1. Open application settings 2. Select higher memory 3. Restart application 4. New memory available 5. Can handle more data **Scaling Impact** - Requires restart - Brief downtime - New instances created - Old instances terminated - May take 5-10 minutes ### Resource Best Practices 1. **Monitor Metrics**: Watch usage 2. **Right-size**: Don't over-allocate 3. **Test First**: In staging 4. **Plan Gradual**: Increase slowly 5. **Watch Costs**: Higher = more expense 6. **Review Regularly**: Optimize allocation ## Regional Scaling ### Multi-Region Deployment **Why Deploy to Multiple Regions?** - Reduced latency for users - Geographic redundancy - High availability - Disaster recovery - Compliance requirements - Performance improvement **Available Regions** - US East (N. Virginia) - US West (Oregon) - EU West (Ireland) - EU Central (Frankfurt) - Asia Pacific (Multiple) - Other regions ### Deploying to Additional Regions **Add Region** 1. Open application 2. Find region configuration 3. Select new region 4. Deploy application 5. Monitor deployment **Deployment Process** - Takes 5-15 minutes - Containers pulled - Health checks run - Traffic gradually routed - Monitoring configured **Remove Region** 1. Open application 2. Find region settings 3. Select region to remove 4. Confirm removal 5. Traffic rerouted ### Regional Load Balancing **Traffic Distribution** - Load balancer directs traffic - Based on location - Latency optimization - Failover handling - Geographic routing **Failover** - If region fails - Traffic automatically rerouted - To healthy region - Minimal disruption - Transparent to users ## Auto-Scaling ### Understanding Auto-Scaling **What is Auto-Scaling?** - Automatically adjust replicas - Based on metrics - Scale up under load - Scale down when quiet - Cost efficient **Metrics Monitored** - CPU utilization - Memory usage - Request rate - Custom metrics ### Configuring Auto-Scaling **Set Auto-Scaling Limits** 1. Open application settings 2. Find auto-scaling configuration 3. Set minimum replicas 4. Set maximum replicas 5. Configure metrics/thresholds **Configuration Parameters** - Min replicas: Minimum always running - Max replicas: Maximum allowed - Scale-up threshold: When to add - Scale-down threshold: When to remove - Cooldown period: Wait between scales ### Auto-Scaling Behavior **Scale Up** - When metric exceeds threshold - Creates new replica - Adds to load balancer - Handles increased load - Cost increases **Scale Down** - When metric drops - Removes replica - Scales down gradually - Reduces cost - Maintains minimum **Example Thresholds** - CPU > 70%: Add replica - CPU < 30%: Remove replica - Wait 5 minutes between scales - Keep minimum 2 replicas ## Monitoring Scaling ### Metrics to Watch **During Scaling** - Deployment status - Instance startup - Health check results - Traffic distribution - Performance metrics **After Scaling** - Response times - Error rates - Resource utilization - Cost impact - User experience ### Scaling Alerts **Set Alerts For** - Scale-up events - Scale-down events - Failed scaling - Unhealthy instances - Resource limits ## Cost Implications ### Understanding Scaling Costs **Replica Costs** - Each replica = compute cost - Per month billing - More replicas = more cost - But handles more traffic **Resource Costs** - Higher CPU = higher cost - More memory = higher cost - Different regions may cost differently - Premium instances cost more **Optimization** - Right-size resources - Use auto-scaling - Scale down off-peak - Choose efficient regions - Monitor spending ## Load Balancing ### How Load Balancing Works **Traffic Distribution** - Requests distributed across replicas - Even distribution - Health checks ensure healthy - Failed replicas removed - Transparent to users **Load Balancer Types** - Round-robin - Least connections - Resource based - Geographic based ### Session Affinity **Sticky Sessions** - User stays on same replica - Session persistence - For stateful apps - Configure if needed - May impact load distribution ## Deployment During Scaling ### Rolling Updates **Zero-Downtime Updates** - Scale up to extra replicas - Update old instances - Gradually shift traffic - Remove old replicas - No service interruption **Process** 1. Create new replicas with new version 2. Health checks 3. Gradually route traffic 4. Remove old replicas 5. Deployment complete ### Scaling with Updates **When Scaling and Updating** 1. Update image 2. Scale to new version 3. Old replicas shut down 4. New replicas created 5. Minimal disruption ## Best Practices 1. **Start Conservative**: Begin with 2 replicas 2. **Monitor Metrics**: Watch performance 3. **Auto-Scale**: For variable load 4. **Test First**: In staging environment 5. **Plan Ahead**: Know peak loads 6. **Cost Aware**: Monitor spending 7. **Redundancy**: Always have backup 8. **Document**: Record scaling decisions ## Scaling Strategies ### Strategy by Application Type **High Traffic APIs** - Start: 3-5 replicas - Scale: Auto-scale on CPU - Max: 10-20 replicas - Regional: Global deployment **Microservices** - Per service: 2-3 minimum - Auto-scale each service - Different max for each - Regional: As needed **Static Sites** - No scaling needed - CDN handles load - Single replica sufficient - Global edge locations **Databases** - Read replicas for scaling - Sharding for large data - Regional replication - No horizontal scaling ## Troubleshooting Scaling ### Issues and Solutions **Scaling Stuck** 1. Check resource limits 2. Verify permissions 3. Review logs 4. Try manual scaling 5. Contact support **Not Scaling When Expected** 1. Check thresholds 2. Verify metrics 3. Check cooldown period 4. Ensure auto-scaling enabled 5. Monitor for time lag **Performance Not Improving** 1. Verify new replicas healthy 2. Check load distribution 3. Monitor actual metrics 4. May need vertical scaling 5. Consider regional scaling ## Scaling Strategies Overview **Three Core Scaling Approaches:** ### Three Core Scaling Approaches: 1. **Horizontal Scaling (Replicas)** - Add more instances of your application - Load balanced across replicas - Simple to implement - Improves availability - Best for stateless services 2. **Vertical Scaling (Resources)** - Increase CPU and memory per instance - Better performance per instance - Simpler management - Higher cost per instance - Best for compute-intensive workloads 3. **Regional Scaling (Geographic Distribution)** - Deploy to multiple regions - Reduces latency for users - Improves disaster recovery - Higher cost due to replication - Best for global applications ## Scaling Comparison Matrix | Approach | Complexity | Implementation Time | Cost Impact | Latency | Availability | Auto-Scale Support | |----------|-----------|-------------------|------------|---------|--------------|-------------------| | **Horizontal** | Low | Minutes | Medium | None | Improves | Yes | | **Vertical** | Low | Minutes | Medium | None | Same | Limited | | **Regional** | Medium | 5-15 min | High | Improves | Improves | No | | **Auto-Scaling** | Medium | Minutes | Variable | None | Improves | Yes | ## Scaling Decision Framework **Ask These Questions:** 1. What is your current capacity? 2. What is expected peak load? 3. What is acceptable latency? 4. What is your budget? 5. Do you need global coverage? 6. Is your app stateless? 7. Can you tolerate brief downtime? ## Real-World Scaling Scenarios **Scenario 1: Growing SaaS Application** - Current: 2 replicas in US East - Peak load: 10x baseline - Solution: Auto-scaling to 10-20 replicas - Regional: Add EU and Asia for global users **Scenario 2: High-Performance Computing** - Current: Small instances - Bottleneck: CPU-bound processing - Solution: Vertical scale to larger instances - No need for additional replicas **Scenario 3: Global Content Platform** - Current: Single region - Solution: Multi-region deployment - Add regional caching - CDN for static content ## Scaling Best Practices Checklist - \[ ] Monitor current metrics before scaling - [ ] Set realistic minimum and maximum limits - [ ] Test scaling in staging first - [ ] Plan for cost implications - [ ] Document scaling decisions - [ ] Set up monitoring and alerts - [ ] Have rollback plan ready - [ ] Notify team of scaling operations - [ ] Review performance after scaling - [ ] Adjust strategy based on results ## Summary Successful application scaling depends on: - Understanding your growth trajectory - Choosing appropriate scaling strategy - Monitoring and adjusting continuously - Balancing performance and costs - Planning for high availability - Testing before production changes ## Next Steps - [Managing Applications](/Applications/managing) - Control your applications - [Application Details](/Applications/details) - Monitor resource usage and metrics - [Application Types](/Applications/types) - Understand type-specific scaling limits - [Applications Overview](/Applications/overview) - Return to dashboard guide --- ## Application Types Guide - Apps, Sites & Databases | Nife URL: https://docs.nife.io/Applications/types Understand the different types of applications you can deploy and manage on Nife. ## Application Types Overview Nife supports four main application types, each optimized for different deployment scenarios. ## Apps (Containerized Applications) ### What are Containerized Apps? Containerized applications are Docker containers running your custom code or services. **Characteristics** - Docker container-based - Microservices architecture - Scalable across replicas - Custom code deployable - Stateless or stateful - API backends - Long-running services **Use Cases** - REST APIs - GraphQL servers - Microservices - Worker services - Custom applications - Real-time applications - Background jobs ### Managing Container Apps **Create Container App** - Click "Deploy App" button - Upload Docker image or Git repo - Configure environment - Set resource requirements - Deploy to regions **Scale Container Apps** - Increase replica count - Load balance traffic - Update configuration - Rolling deployments - Blue-green deployment **Monitor Container Apps** - CPU/memory metrics - Request counts - Error rates - Latency - Container logs ### Container App Metrics **Key Metrics** - Running replicas - Deployment status - Region deployed - Resource usage - Request metrics ## Sites (Static Websites) ### What are Static Sites? Static websites served from CDN for fast global delivery. **Characteristics** - HTML/CSS/JavaScript - Pre-built content - No server processing - CDN distributed - Fast delivery - Low latency - Cost effective **Use Cases** - Documentation - Blogs - Portfolio websites - Landing pages - JAM stack applications - Single-page applications - Static content ### Managing Static Sites **Create Static Site** - Click "New Site" button - Upload build files or Git repo - Configure build process - Select CDN locations - Deploy to edge **Update Site** - Redeploy from Git - Upload new files - Clear cache - Version history **Access Site** - Open in browser - Copy URL for sharing - Custom domain - SSL certificate included ## Databases ### What are Database Services? Managed databases for data persistence and querying. **Supported Databases** - PostgreSQL - MySQL - MongoDB - Redis - Other data stores **Characteristics** - Managed database - Automatic backups - High availability - Built-in replication - Connection pooling - Performance optimized **Use Cases** - Data persistence - Relational data - Document storage - Caching layer - Session storage - Queue data - Analytics data ### Managing Databases **Create Database** - Click "New Database" button - Select database type - Configure size - Set regions - Create initial database **Manage Database** - Backups and restore - User management - Connection strings - Performance tuning - Monitoring **Database Metrics** - Connection count - Query performance - Storage usage - Backup status - Replication lag ## Standalone Services ### What are Standalone Services? Custom Docker services running on dedicated servers you manage. **Characteristics** - Docker-based - Server managed - Monolith architecture - Custom infrastructure - Full control - IP-based access - Status monitoring **Use Cases** - Legacy applications - Custom services - Specialized workloads - On-premises integration - Custom infrastructure - Non-containerized apps - Server-based services ### Managing Standalone Services **Register Server** - Add server IP address - Configure credentials - Install Docker - Enable monitoring **Deploy Service** - Docker image - Environment configuration - Port mapping - Resource allocation **Monitor Services** - Service status (active/inactive) - Server health - Performance metrics - Service logs ## Comparison of Types ### Feature Comparison | Feature | Apps | Sites | Databases | Standalone | |---------|------|-------|-----------|-----------| | Scalability | High | CDN | Built-in | Limited | | Complexity | Medium | Low | Medium | High | | Cost | Medium | Low | Medium | Variable | | Management | Nife | Nife | Nife | Your infra | | Auto-scaling | Yes | No | No | No | | Global Reach | Yes | Yes | Regional | Limited | | Uptime SLA | 99.9% | 99.99% | 99.95% | As configured | ## Deployment Type Indicators ### Identifying Application Type Each application shows its type: - **App Icon**: Containerized applications - **Globe Icon**: Static websites - **Database Icon**: Database services - **Rocket Icon**: Standalone services ### Type-Specific Features **Apps Only** - Replica scaling - Auto-restart - Rolling updates - Load balancing **Sites Only** - CDN distribution - Cache purging - Build pipeline - Custom domains **Databases Only** - Backups - Replication - Connection pooling - User management **Standalone Only** - Server registration - Service listing - Custom monitoring - Direct IP access ## Choosing Application Type ### Decision Guide **Choose Apps for:** - Containerized microservices - APIs and backends - Scalable workloads - Dynamic content - Auto-scaling needs - Global distribution **Choose Sites for:** - Static content - Websites - JAM stack apps - Documentation - Fast delivery - Low complexity **Choose Databases for:** - Data persistence - Relational data - Document storage - Caching - Managed service - Built-in features **Choose Standalone for:** - Legacy apps - Custom infrastructure - Special requirements - Full control needed - On-premises integration - Specialized workloads ## Application Type Details ### Viewing Type Details **In Dashboard List** - See deployment type - View type icon - Filter by type - Use type-specific filters **In Application Details** - Full type information - Type-specific settings - Related services - Configuration options ## Type-Specific Operations ### Operations by Type **Apps Operations** - Scale replicas - Configure environment - View metrics - Access logs - Restart service - Pause/resume **Sites Operations** - Trigger rebuild - Purge cache - Configure domain - View build logs - Redeploy **Database Operations** - Create backup - Restore backup - Manage users - Tune performance - Monitor connections **Standalone Operations** - Check status - View services - Manage services - Monitor server - Manage registration ## Integration Between Types ### Multi-Type Deployments Deploy multiple types together: **Common Stack** 1. App: API backend 2. Database: Data store 3. Site: Frontend website 4. Cache: Redis for performance **Communication** - Apps connect to databases - Sites call app APIs - Services use caches - Standalone integrates with others ## Regional Considerations ### Regional Features by Type **Apps** - Multi-region deployment - Load balancing across regions - Regional failover - Global scale **Sites** - CDN edge locations - Global distribution - Regional caching - Automatic failover **Databases** - Regional replicas - Cross-region backup - Read replicas - Disaster recovery **Standalone** - Fixed server location - No replication - Limited scaling - Single region ## Best Practices 1. **Choose Right Type**: Match your needs 2. **Use Databases Wisely**: For persistence 3. **Leverage CDN**: For static sites 4. **Scale Apps**: Use multi-replica 5. **Monitor All**: Track every type 6. **Document Architecture**: Keep records 7. **Plan Growth**: Design for scale 8. **Test Integration**: Between types ## Quick Decision Guide: Choosing Application Types Use this table to quickly identify the right application type for your use case: | Use Case | Best Type | Why | Key Benefits | |----------|-----------|-----|---------------| | REST APIs, Microservices | Apps | Containerized, scalable | Auto-scaling, multi-region | | Websites, Documentation | Sites | CDN-optimized | Fast delivery, low cost | | Data Persistence | Databases | Managed service | Automated backups, replication | | Legacy Applications | Standalone | Custom infrastructure | Full control, on-premises integration | ## Application Type Comparison Matrix **Core Characteristics by Type:** | Feature | Apps | Sites | Databases | Standalone | |---------|------|-------|-----------|-----------| | Scalability | Horizontal (replicas) | CDN distribution | Replication | Limited | | Complexity | Medium | Low | Medium | High | | Cost Model | Pay per replica | Low/Fixed | Variable | Custom | | Auto-scaling | Yes | No | No | No | | Global Reach | Multi-region | Edge locations | Regional | Limited | | Management | Nife | Nife | Nife | Your responsibility | | Best For | Dynamic services | Static content | Data layer | Custom needs | ## Next Steps - [Managing Applications](/Applications/managing) - Control and monitor all application types - [Application Details](/Applications/details) - View type-specific information and settings - [Scaling Applications](/Applications/scaling) - Scale based on application type - [Applications Overview](/Applications/overview) - Return to dashboard guide --- ## Invoices and Billing History - Download & Manage Records | Nife URL: https://docs.nife.io/Billing/invoices Access, download, and manage all your billing records and invoices in one place. --- ## Understanding Your Invoices ### What Is an Invoice? An invoice is a bill from Nife for services rendered: - **Statement of charges**: What you were billed for - **Payment record**: Documentation of transactions - **Tax information**: Tax and fees applied - **Receipt**: Proof of payment - **Business record**: For accounting purposes ### When You Receive Invoices **Automatic Invoice:** - Generated on renewal date - Sent via email - Available in dashboard - Monthly for monthly plans **Timing:** - Generated day of billing - Email within 1 hour - Always available online - Accessible for 7 years --- ## Billing History Section The **Billing History** table shows all your past invoices and payments. ### Columns Explained **Invoice #** - Unique invoice identifier - Reference number for support - Matches email notifications - Format: INV-XXXXX **Amount** - Total amount charged - Includes all fees and tax - Currency displayed - Format: $XX.XX USD **Date** - When invoice was issued - Billing cycle end date - Payment due date - Format: Month Day, Year **Status** - **Paid**: Payment received and processed - **Unpaid**: Payment due, not yet received - **Overdue**: Payment due date passed - **Pending**: Being processed - **Cancelled**: Voided invoice **Actions** - Download button - Opens PDF invoice - Saves to your computer - Named with invoice number ### Understanding Invoice Status **Paid Status** ✅ - Payment received - Cleared and posted - No action needed - Available for reference **Unpaid Status** ⏳ - Payment not received - Due date approaching - Update payment method - No service interruption yet **Overdue Status** ⚠️ - Past due date - Immediate action needed - Service may be suspended - Contact support urgently **Pending Status** ⏸️ - Being processed - Not yet cleared - Within 24 hours typically - Check back soon --- ## Viewing Invoice Details ### Online Invoice Display **Quick Preview:** 1. Find invoice in table 2. Status badge shows payment status 3. Amount displayed clearly 4. Date easily identified ### Downloading Invoice PDF **How to Download:** 1. **Locate Invoice** - Find in Billing History table - Identify date and amount - Verify it's correct invoice 2. **Click Download Button** - Located in Actions column - Blue link labeled "Download" - Opens in new tab - Or downloads directly 3. **Save to Computer** - Choose location to save - Filename: Invoice-[number].pdf - Or name as you prefer - Keep for records ### What's on Invoice PDF **Invoice Header** - Invoice number - Issue date - Due date - Invoice period **Company Information** - Nife company details - Address and contact - Business registration - Tax information **Billing Information** - Your name and email - Billing address - Account ID - Company (if applicable) **Itemization** - Service description - Usage period - Quantity (if applicable) - Unit price - Total price **Summary** - Subtotal (before tax) - Tax amount and rate - Total amount due - Payment method **Payment Details** - Payment status - Payment date - Confirmation number - Next billing date --- ## Filtering and Finding Invoices ### Viewing All Invoices **Default View:** - Shows most recent invoices first - 10-25 items per page - Scrollable table - Sorted by date (newest first) ### Searching Invoices **By Date:** - Look at date column - Sort by date - Find specific month/year - Scroll through table **By Amount:** - Review amount column - Identify specific charges - Compare monthly costs - Find anomalies **By Invoice Number:** - Look up invoice # - Reference number from email - Use Ctrl+F to search - Quick identification ### Organizing Invoices **Print For Records:** 1. Download PDF 2. Print to paper 3. File by month/year 4. Keep organized **Digital Filing:** 1. Create folder structure 2. Save by year/month 3. Name consistently 4. Back up regularly --- ## Understanding Invoice Breakdown ### Service Charges **Monthly Subscription Fee** - Your plan's base cost - Charged monthly - Begins on subscription date - Pro-rated for partial months **Usage Charges** - Additional costs beyond plan - Extra resources used - Overage fees - Usage-based pricing **Add-on Services** - Optional additional services - Premium features - Extra support - Custom additions ### Taxes and Fees **Sales Tax** - Applied based on location - Varies by region - Calculated on subtotal - Shown separately on invoice **VAT/GST** (if applicable) - Value Added Tax - Goods and Services Tax - Applies in some regions - Included in total **Processing Fees** - Payment processing costs - Rare, if applied - Shown as separate line - Minimal amount ### Cost Summary Example ```text Subscription (Pro Plan) $50.00 Usage Overage (2GB extra) $5.00 Premium Support Addon $10.00 ----------- Subtotal $65.00 Sales Tax (7%) $4.55 ----------- Total Amount Due $69.55 Payment Method: Visa •••• 4242 Payment Date: June 15, 2024 ``` --- ## Handling Multiple Invoices ### Monthly Invoice Pattern **Typical Pattern:** - 1 invoice per month - Same date each month - Same amount (usually) - Variations for pro-ration ### Pro-Ration Invoices **Partial Month Invoices:** - When signup mid-month - When plan change occurs - When cancellation scheduled - Adjusted for days used **Pro-Ration Calculation:** ```text Full month price: $50 Days in invoice: 15 Days in month: 30 Charge = ($50 / 30) * 15 = $25 ``` ### Variable Usage Invoices **If Using Pay-Per-Use:** - Amount varies monthly - Based on usage - More or less each month - Shown in invoice detail --- ## Exporting Billing Data ### Exporting All Invoices **Export as JSON:** 1. Click "Export Invoices" button 2. Select JSON format 3. File downloads 4. Opens in text editor 5. Contains all invoice data **Export as CSV:** 1. Click "Export Invoices" button 2. Select CSV format 3. File downloads 4. Opens in spreadsheet 5. Columns: Invoice #, Amount, Date, Status **File Contents:** - Invoice number - Amount charged - Invoice date - Payment date - Status - Currency ### Using Exported Data **For Accounting:** - Import to accounting software - Reconcile with statements - Generate reports - Track expenses **For Analysis:** - Analyze spending trends - Compare monthly costs - Identify patterns - Budget forecasting **For Records:** - Backup of invoices - Off-platform storage - Long-term archiving - Historical reference --- ## Missing or Problem Invoices ### Invoice Not Received by Email **Check:** 1. Spam/junk folder 2. Search for "nife" or "invoice" 3. Check all email accounts 4. Verify email on account **Solution:** 1. Go to Billing History 2. Find invoice in table 3. Download directly 4. Contact support if still missing ### Can't Find Specific Invoice **Try:** 1. Review invoice dates 2. Look for similar amounts 3. Check payment status 4. Scroll through history 5. Use browser search (Ctrl+F) **Contact Support If:** - Invoice truly missing - Amount incorrect - Status wrong - Need older invoice ### Duplicate Invoices **If You See Duplicates:** 1. Note invoice numbers 2. Check amounts carefully 3. Verify payment dates 4. Contact billing support 5. Provide details ### Incorrect Invoice Amount **If Amount Seems Wrong:** 1. Review invoice detail 2. Check plan pricing 3. Verify pro-ration math 4. Look for add-ons 5. Contact support with details --- ## Invoice Best Practices 1. **Save Regularly**: Download new invoices monthly 2. **Organize Files**: Create organized folder structure 3. **Review Promptly**: Check invoices when received 4. **Verify Accuracy**: Confirm charges are correct 5. **Keep Records**: Retain invoices for 7 years 6. **Export Backup**: Periodically export all invoices 7. **Monitor Costs**: Track spending trends 8. **Report Issues**: Contact support about discrepancies --- ## Billing History Management ### Accessing Older Invoices **Old Invoices Available:** - Go back 7+ years - All accessible in dashboard - Can be downloaded anytime - Never deleted unless requested **Finding Specific Invoice:** 1. Determine invoice date 2. Scroll to that period 3. Find by date and amount 4. Download as needed 5. Save to records ### Archiving Invoices **Personal Archiving:** 1. Download PDFs regularly 2. Store on external drive 3. Back up to cloud storage 4. Organize by year 5. Create duplicate copies **Long-term Storage:** - Print important invoices - File by year - Store in safe location - Or scan to backup - Cloud storage recommended --- ## Billing Cycle Explained ### Monthly Billing Cycle **Standard Cycle:** - Starts: Signup date - Ends: One month later - Renews: Automatically - Billing: First of each month **Example Timeline:** ```text June 15: Signup (Pro Plan $50) June 15 - July 14: First month July 15: First invoice generated July 15: Charged $50 July 15: Invoice email sent ``` ### Next Billing Date **Finding Your Date:** 1. Go to Current Subscription card 2. Look for "Renewal Date" or "Next Billing" 3. Date shown in format: Month Day, Year 4. Same date occurs monthly --- ## FAQ: Invoices & History **How long are invoices kept?** - Indefinitely in our system - You can access anytime - We retain 7+ years minimum - Never automatically deleted **Can I change my invoice date?** - Contact billing support - May be possible in some cases - Requires manual adjustment - 5-7 business days to process **How do I get duplicate invoices?** - Go to Billing History - Find the invoice - Click Download twice - Both PDFs created **Are invoices emailed automatically?** - Yes, on billing date - Check spam folder - Email may be delayed - Always available in dashboard **Can I get an invoice before billing date?** - Go to Upcoming Invoice card - Preview shows next charge - PDF not yet available - Will be available after billing --- ## Invoice Management Quick Reference Key invoice information at a glance: | Element | Description | Example | |---------|-------------|----------| | **Invoice #** | Unique identifier | INV-12345 | | **Amount** | Total charged (with tax) | $69.55 | | **Date** | When invoice issued | June 15, 2024 | | **Status** | Payment state | Paid/Unpaid/Overdue | | **Period** | Billing period covered | June 1-30, 2024 | ## Invoice Breakdown Example ```text Subscription (Pro Plan) $50.00 Usage Overage (2GB extra) $5.00 Premium Support Addon $10.00 ----------- Subtotal $65.00 Sales Tax (7%) $4.55 ----------- Total Amount Due $69.55 Payment Method: Visa •••• 4242 Payment Date: June 15, 2024 ``` ## Invoice Access & Organization **Accessing Invoices:** 1. Go to Billing & Subscriptions 2. Scroll to Billing History table 3. Find desired invoice by date/amount 4. Click Download button 5. PDF saves to your computer **Organizing Invoices:** - Create folder structure by year/month - Name files consistently - Back up to cloud storage - Retain for 7+ years minimum ## Billing Summary Effective invoice management: - Maintains accurate financial records - Supports tax compliance - Enables expense tracking - Documents spending history - Facilitates audits and reconciliation ## Next Steps - [Payment Methods](/Billing/payment) - Manage payment information - [Managing Your Subscription](/Billing/managing) - Change or cancel plans - [Plans and Pricing](/Billing/plans) - Compare subscription plans - [Billing Overview](/Billing/Billing-Overview) - Return to billing dashboard --- ## Managing Your Subscription - Change & Cancel Plans | Nife URL: https://docs.nife.io/Billing/managing Learn how to manage your subscription, change plans, and control your service. --- ## Current Subscription Details The **Current Subscription** card displays your active plan information: ### Information Shown **Plan Name** - Your current subscription plan - Starter, Pro, Enterprise, or custom plan - Identifies your service tier **Price** - Monthly subscription cost - Base price before tax - Does not include usage charges **Status** - **ACTIVE**: Currently subscribed and active - **CANCELLED**: Scheduled for cancellation - **PAUSED**: Temporarily suspended - **INACTIVE**: No active subscription **Renewal Date** - When your next billing cycle starts - When next charge will occur - Format: Month Day, Year - Plan renews automatically ### Card Actions Three main action buttons available: **Change Plan Button** - Available for all active subscriptions - Opens plan selection dialog - Allows upgrading or downgrading - Changes take effect immediately **Cancel Subscription Button** - Only appears for active subscriptions - Not yet scheduled for cancellation - Opens cancellation confirmation dialog - Allows providing cancellation reason **Reactivate Button** - Only appears for cancelled subscriptions - Restarts your service - Applies to next billing cycle - Reactivation is instant --- ## Changing Your Plan ### Understanding Plan Changes **What Happens When You Change Plans:** - New plan takes effect immediately - Pro-rated billing applied - No service interruption - Difference charged/credited to account **Pro-Ration Explained** - If upgrading: Pay difference for remaining days - If downgrading: Credit applied to next billing - Calculated daily - Transparent pricing ### How to Change Your Plan **Step-by-step Process:** 1. **Navigate to Billing** - Go to Settings or Account menu - Select Billing & Subscriptions - Find Current Subscription card 2. **Click Change Plan** - Button is visible on the card - Opens plan selection dialog - Shows all available plans 3. **Select New Plan** - View plan name and price - Choose your desired plan - Displays pricing clearly - Compare features if needed 4. **Confirm Change** - Click "Confirm Change" button - System processes request - Shows confirmation message - Plan updates immediately 5. **Review Invoice** - Check next invoice - Verify pro-rated amount - Confirm changes applied - Billing reflects new plan ### Available Plans **Starter Plan - $10/month** - Perfect for: - Getting started - Testing the platform - Small projects - Includes: - Basic features - Limited resources - Community support **Pro Plan - $50/month** - Perfect for: - Production workloads - Growing applications - Team collaboration - Includes: - Advanced features - More resources - Priority support **Enterprise Plan - Custom** - Perfect for: - Large deployments - Custom requirements - Dedicated support - Includes: - All features - Maximum resources - Dedicated account manager --- ## Upgrading Your Plan ### When to Upgrade Consider upgrading when: - **Approaching Limits**: Running out of resources - **New Features Needed**: Need advanced capabilities - **Team Growth**: Adding team members - **Production Use**: Moving to production - **Support Needed**: Require priority assistance ### Benefits of Upgrading **Immediate Benefits** - Access to advanced features - Increased resource limits - Priority customer support - Better performance - Reduced rate limiting ### Upgrade Process **Quick Upgrade:** 1. Go to Billing & Subscriptions 2. Click "Change Plan" 3. Select higher tier plan 4. Confirm upgrade 5. Done! Features available immediately **Pro-Rated Charge Example:** ```text Current Plan: Starter ($10/month) Remaining Days: 15 days New Plan: Pro ($50/month) Calculation: - Upgrade cost: $50 * (15/30) = $25 - Current plan refund: $10 * (15/30) = -$5 - Net charge: $20 additional Next invoice reflects full Pro Plan charge ``` --- ## Downgrading Your Plan ### When to Downgrade Consider downgrading when: - **Cost Saving**: Need to reduce spending - **Resource Reduction**: Using fewer resources - **Feature Needs**: Don't need advanced features - **Budget Constraints**: Financial limitations - **Usage Patterns**: Lower usage requirements ### Downgrade Considerations :::warning Downgrading may affect your service: - Some features may become unavailable - Resource limits will decrease - Ensure you won't exceed new limits - Data is preserved, not deleted ::: **Before Downgrading:** 1. Review plan feature comparison 2. Check resource limits 3. Verify usage patterns 4. Inform your team 5. Plan for transition ### Downgrade Process **Step-by-step:** 1. Go to Billing & Subscriptions 2. Click "Change Plan" 3. Select lower tier plan 4. Confirm downgrade 5. Changes take effect immediately **Pro-Rated Credit Example:** ```text Current Plan: Pro ($50/month) Remaining Days: 20 days New Plan: Starter ($10/month) Calculation: - Current plan value: $50 * (20/30) = $33.33 - New plan cost: $10 * (20/30) = $6.67 - Credit to account: $26.66 Used toward next billing cycle ``` --- ## Cancelling Your Subscription ### Before Cancellation :::danger Review this before cancelling: - Service will stop at period end - Can be reactivated later - No immediate refund (service through end date) - Data remains accessible - Cancellation is reversible ::: **Consider Before Cancelling:** 1. Do you need the service later? 2. Is there an issue we can solve? 3. What's causing cancellation? 4. Can we help with a lower plan? ### How to Cancel **Cancellation Steps:** 1. **Navigate to Billing** - Go to Settings - Select Billing & Subscriptions - Find Current Subscription card 2. **Click Cancel Subscription** - Red button labeled "Cancel Subscription" - Opens confirmation dialog - Shows what will happen 3. **Provide Reason (Optional)** - Text field for cancellation feedback - Helps us improve service - Not required - Any feedback appreciated 4. **Confirm Cancellation** - Click "Confirm Cancel" button - Action processes - Confirmation message appears - Email confirmation sent 5. **Service Continues** - Access continues through period end - Next billing charge does NOT occur - Can reactivate anytime - Data preserved for 30 days ### What Happens After Cancellation **Immediately:** - Status changes to CANCELLED - Reactivate button becomes available - Access continues as usual - Billing stopped **At Period End:** - Service access ends - Credentials become invalid - Data may be archived - Can request data export **After Period End:** - Account becomes inactive - Limited access available - Reactivation may be possible - Contact support for details --- ## Reactivating Your Subscription ### When to Reactivate You can reactivate a cancelled subscription: - Any time after cancellation - Before your period completely expires - After period end (contact support) - Same plan or different plan ### How to Reactivate **Reactivation Steps:** 1. **Navigate to Billing** - Go to Billing & Subscriptions - Find Current Subscription card 2. **Click Reactivate Subscription** - Button appears when subscription cancelled - Blue button labeled "Reactivate Subscription" - Click to begin reactivation 3. **Confirm Reactivation** - System processes request - Confirmation message appears - Email confirmation sent - Status updates to ACTIVE 4. **Service Resumes** - Access restored immediately - Billing resumes on next cycle - Previous settings preserved - No data loss ### Reactivation Timeline **Same Billing Cycle** - Reactivate before period end - Pro-rated charge for remaining days - Continues original subscription - Next billing at original date **After Billing Cycle** - Reactivate after period end - Contact support for reactivation - May require payment verification - New billing cycle starts --- ## Plan Comparison | Feature | Starter | Pro | Enterprise | |---------|---------|-----|------------| | Price | $10/mo | $50/mo | Custom | | Applications | 5 | Unlimited | Unlimited | | Storage | 10GB | 100GB | Custom | | Team Members | 1 | 10 | Unlimited | | Support | Email | Priority | Dedicated | | SLA | 99% | 99.9% | 99.99% | | Custom Domain | Yes | Yes | Yes | | API Access | Basic | Full | Full | --- ## Troubleshooting Plan Changes ### Plan Change Not Taking Effect **If changes don't appear:** 1. Refresh page (Ctrl+F5) 2. Clear browser cache 3. Log out and log back in 4. Wait 5 minutes for sync 5. Contact support if issue persists ### Plan Change Charges Incorrect **If charges seem wrong:** 1. Review pro-ration calculation 2. Check plan pricing 3. Verify billing date 4. Review invoice details 5. Contact billing support ### Cannot See Change Plan Button **If button not visible:** 1. Verify subscription status 2. Check if you have permissions 3. Try different browser 4. Clear cache and cookies 5. Contact support --- ## Best Practices 1. **Monitor Usage**: Regularly check resource usage 2. **Plan Ahead**: Change plans before reaching limits 3. **Budget Regularly**: Review monthly costs 4. **Test First**: Test on lower tier before upgrading 5. **Keep Current**: Update payment method before changes 6. **Save Invoices**: Download invoices regularly 7. **Communicate**: Tell team of plan changes 8. **Review Pricing**: Check pricing page regularly --- ## Subscription Management Quick Reference Quick guide for common subscription tasks: | Action | Use Case | Cost Impact | Timing | |--------|----------|------------|--------| | **Upgrade** | Need more features | Pro-rated charge | Immediate | | **Downgrade** | Reduce costs | Pro-rated credit | Immediate | | **Change Plan** | Different tier needed | Adjusted billing | Immediate | | **Cancel** | Stop service | No charge | End of period | | **Reactivate** | Resume service | Billing resumes | Next cycle | ## Subscription Lifecycle **Active → Change Plans → Continued Service** OR **Active → Cancel → Cancelled → Reactivate → Active** ## Plan Comparison at a Glance | Aspect | Starter | Pro | Enterprise | |--------|---------|-----|-----------| | **Price** | $10/month | $50/month | Custom | | **Best For** | Testing | Production | Large-scale | | **Apps** | 5 | Unlimited | Unlimited | | **Team** | 1 | 10 | Unlimited | | **Support** | Email | Priority | Dedicated | ## Subscription Management Summary Managing your subscription effectively: - Ensures optimal resource allocation - Controls monthly costs - Scales with your needs - Maintains service continuity - Enables cost optimization ## Next Steps - [Payment Methods](/Billing/payment) - Update your payment information - [Invoices and History](/Billing/invoices) - View billing records - [Plans and Pricing](/Billing/plans) - Detailed plan comparison - [Billing Overview](/Billing/Billing-Overview) - Return to billing dashboard --- ## Payment Methods - Secure Payment & Billing Information | Nife URL: https://docs.nife.io/Billing/payment Manage your payment information securely and keep your billing up to date. --- ## Updating Your Payment Method ### Why Update Payment Method? Update when: - **Card Expiring**: Current card expires soon - **New Card**: Got a new credit card - **Card Lost**: Previous card lost or stolen - **Payment Failed**: Ensure payment succeeds - **Different Payment**: Want to use different method ### How to Update Payment Method **Step-by-step Process:** 1. **Go to Billing & Subscriptions** - Navigate to Settings - Select Billing & Subscriptions - Scroll to Upcoming Invoice section 2. **Click Update Payment Method** - Button located in Upcoming Invoice card - Opens payment update dialog - Shows secure payment form 3. **Enter Payment Details** - Card number (16 digits) - Card holder name - Expiration date (MM/YY) - CVC/CVV code (3-4 digits) - Billing address 4. **Confirm Update** - Click "Update" button - System validates payment info - Confirmation message appears - Email confirmation sent 5. **Payment Method Updated** - New method stored securely - Used for next billing cycle - Previous method removed - Billing continues normally --- ## Payment Methods Accepted ### Credit Cards **Supported Cards** - ✅ Visa - ✅ Mastercard - ✅ American Express - ✅ Discover **Card Information Required** - Card number - Card holder name - Expiration date - Security code (CVC/CVV) - Billing address **Card Processing** - Secure SSL encryption - PCI DSS compliant - Tokenized payment - No data stored locally ### Digital Payment Methods **PayPal** - Direct PayPal account - PayPal balance or linked card - PayPal credit available - Buyer protection included **Apple Pay** (if available) - Saved payment method - Biometric authentication - Secure token - Quick payment **Google Pay** (if available) - Google Wallet integration - Stored payment methods - One-click payment - Secure authentication --- ## Upcoming Invoice & Payment ### Understanding Upcoming Invoice The **Upcoming Invoice** card shows: **Subtotal** - Base service cost - Monthly plan fee - Pro-rated charges - Before tax **Tax** - Sales tax applied - Based on billing location - Calculated automatically - Itemized separately **Total** - Final amount charged - Subtotal + tax - What will be billed - Next billing date **Next Payment Date** - When payment will occur - Coincides with renewal date - Automatic charge - Advance notice provided ### Payment Timeline **Example Timeline:** ```text Today: May 15 Next Billing: June 15 Invoice Generated: June 10 Payment Charge: June 15 Statement Delivery: June 15 ``` ### Before Payment Occurs **7 Days Before** - Reminder email sent - Invoice preview available - Time to update payment - Address any concerns **3 Days Before** - Second reminder sent - Final notice - Ensure payment method valid - Update if needed **On Due Date** - Automatic charge processed - Immediate confirmation email - Invoice delivered - Account updated --- ## Managing Billing Information ### Current Billing Address **Stored Information** - Your registered address - Used for tax calculation - Matches payment card - Displayed on invoices **Updating Address** 1. Go to Account Settings 2. Select Billing Address 3. Update address details 4. Save changes 5. Confirm update ### Company Information (if applicable) **Business Billing** - Company name - Business address - Tax ID/VAT number - Billing contact --- ## Payment Issues & Troubleshooting ### Payment Failed **Common Reasons:** - **Insufficient Funds**: Account balance too low - **Expired Card**: Card expiration date passed - **Incorrect Info**: Wrong card number or CVC - **Fraud Block**: Bank flagged transaction - **Connectivity**: Payment gateway error **How to Fix:** 1. **Check Card Status** - Verify card not expired - Confirm card active - Check account balance - Contact card issuer if needed 2. **Update Payment Method** - Go to Billing - Click "Update Payment Method" - Enter correct information - Confirm update 3. **Retry Payment** - System retries automatically - Wait 1-2 hours - Or retry manually in dashboard - Check confirmation email 4. **Contact Support** - If payment still fails - Provide error message - Submit payment details - Get assistance :::warning Failed payments may result in service suspension. Update your payment method immediately! ::: ### Card Declined **When Card is Declined:** - Payment fails immediately - Email notification sent - Service continues (for now) - Update payment method required **Why Card Might Decline:** - Insufficient funds - Card expired - Invalid card number - Bank fraud detection - Billing address mismatch **Solution:** 1. Verify card details 2. Check card expiration 3. Confirm billing address 4. Update payment method 5. Retry payment ### Duplicate Charges **If Charged Twice:** 1. **Don't Panic** - Verify charge actually occurred - Check both statements - Wait for processing - Duplicate may be pending only 2. **Contact Support Immediately** - Provide invoice numbers - Show duplicate charges - Include dates and amounts - Submit screenshots 3. **Refund Process** - Support investigates - Confirms duplicate - Issues refund - Timeline: 5-7 business days --- ## Payment Security ### How We Protect Your Payment **Encryption** 🔐 - SSL/TLS encryption - Industry standard security - Secure data transmission - End-to-end protection **Compliance** ✅ - PCI DSS Level 1 compliant - Highest security standards - Third-party audited - Regular security checks **Data Protection** 🛡️ - No card data stored - Tokenized payments - Secure payment gateway - Limited access to data **Fraud Prevention** 🚨 - Advanced fraud detection - Real-time monitoring - Suspicious activity alerts - Account protection ### What We Store **We Do NOT Store:** - ❌ Full card numbers - ❌ CVV/CVC codes - ❌ Card PINs - ❌ Sensitive financial data **We DO Store:** - ✅ Last 4 digits (for reference) - ✅ Card brand (Visa, Mastercard, etc.) - ✅ Expiration month/year - ✅ Billing address - ✅ Cardholder name --- ## Payment Receipts & Records ### Email Receipts **Automatic Emails Sent:** - Payment confirmation - Invoice attached - Receipt for records - Tax documentation **When Received:** - Immediately after payment - Same day as billing - Archive in email - Save for records ### Downloading Receipts **To Download Payment Receipt:** 1. Go to Billing History 2. Find the invoice 3. Click "Download" button 4. PDF saves to computer 5. Use for accounting --- ## Refunds & Disputes ### Refund Eligibility **Refunds Available For:** - Duplicate charges - Billing errors - Service not delivered - Unauthorized transactions - Plan cancellation (within period) **Refund Timeline:** - Processing: 5-7 business days - Bank processing: 2-5 business days - Total: 7-12 business days - Status updates via email ### How to Request Refund **Step-by-step:** 1. **Prepare Information** - Invoice number - Amount of charge - Reason for refund - Screenshots/proof 2. **Contact Billing Support** - Email: support@nife.io - Include all details - Provide documentation - Be specific about issue 3. **Support Reviews** - Investigates claim - May request more info - Reviews transaction - Makes determination 4. **Refund Issued** - If approved, refund processed - Original payment method used - Confirmation email sent - Funds appear in account --- ## Payment Methods Best Practices 1. **Keep Card Current**: Update before expiration 2. **Valid Address**: Billing address matches card 3. **Sufficient Funds**: Ensure funds available 4. **Check Emails**: Monitor payment confirmations 5. **Save Receipts**: Download and archive 6. **Review Statements**: Verify charges monthly 7. **Secure Details**: Never share card info 8. **Contact Support**: Report issues immediately --- ## FAQ: Payment Methods **How often will I be charged?** - Monthly on the same date as signup - Automatic renewal unless cancelled - Pro-rated for partial months **Can I change payment date?** - Contact billing support - May be possible depending on plan - 5-7 business days to process **Is payment information secure?** - Yes, PCI DSS Level 1 compliant - SSL encryption - No sensitive data stored **What if payment fails?** - System retries automatically - Service continues for 3 days - Update payment method immediately **Do you offer payment plans?** - Contact sales for custom arrangements - Enterprise customers only - Custom billing available --- ## Payment Management Summary Effectively managing your payment methods ensures: - Continuous service without interruption - Smooth billing cycles - Secure transaction processing - Up-to-date payment information - Quick resolution of payment issues ## Payment Methods Quick Reference | Payment Type | Processing Time | Security | Best For | |---|---|---|---| | **Credit Cards** | Instant | PCI DSS | Primary payments | | **PayPal** | Instant | High | Alternative option | | **Digital Wallets** | Instant | Very High | Quick payments | ## Payment Best Practices Summary Best practices for managing payments: 1. Keep card information current 2. Update before expiration 3. Use strong billing addresses 4. Monitor confirmation emails 5. Check statements regularly 6. Report issues immediately 7. Maintain backup payment method 8. Save payment receipts ## Next Steps - [Managing Your Subscription](/Billing/managing) - Change plans and subscriptions - [Invoices and History](/Billing/invoices) - View and download invoices - [Plans and Pricing](/Billing/plans) - Explore subscription plans - [Billing Overview](/Billing/Billing-Overview) - Return to billing dashboard --- ## Plans and Pricing - Compare Features & Costs | Nife URL: https://docs.nife.io/Billing/plans Understand our subscription plans and find the right plan for your needs. --- ## Subscription Plans Overview Nife offers flexible subscription plans designed for different use cases and budgets. ### Plan Tiers **Starter Plan** - For individuals and small projects - Cost-effective entry point - Limited resources - Perfect for testing and development **Pro Plan** - For production workloads - Best value for growing businesses - Advanced features - Priority support **Enterprise Plan** - For large-scale deployments - Unlimited resources - Dedicated support - Custom solutions available --- ## Starter Plan - $10/month Perfect for getting started or testing the platform. ### Pricing **Base Price**: $10/month **Billing**: Monthly, auto-renewing **Minimum Contract**: None (cancel anytime) **Free Trial**: 14 days (credit card required) ### Features Included **Applications** - Up to 5 applications - 2 replicas per application - Basic scaling - Docker container support **Storage** - 10GB total storage - 1GB per application - Backup storage - Data retention: 30 days **Networking** - Default domain (app.nifetency.com) - Basic SSL/TLS - Shared infrastructure - Standard latency **Databases** - 1 database instance - 5GB database storage - PostgreSQL, MySQL, MongoDB options - Basic backup (weekly) **Support** - Email support only - 24-48 hour response - Community forum access - Documentation access **Team** - 1 user account - No team members - No role-based access - Personal use only **API** - Basic API access - 1,000 requests/day - Read-only operations - Limited endpoints **Monitoring** - Basic metrics - Daily data retention - Email alerts (basic) - No custom dashboards ### Good For - 👨‍💻 Individual developers - 🧪 Testing and prototyping - 📚 Learning the platform - 🚀 Side projects - 🎓 Educational use --- ## Pro Plan - $50/month Our most popular plan for production workloads. ### Pricing **Base Price**: $50/month **Billing**: Monthly, auto-renewing **Minimum Contract**: None (cancel anytime) **Free Trial**: 14 days (credit card required) ### Features Included **Applications** - Unlimited applications - 10 replicas per application - Advanced scaling - Docker container support - Canary deployments **Storage** - 100GB total storage - 10GB per application - Full backup storage - Data retention: 90 days **Networking** - Custom domain support - Advanced SSL/TLS - Dedicated infrastructure - Optimized latency - CDN included **Databases** - Unlimited database instances - 100GB database storage - All database types supported - Automated daily backup - Point-in-time restore **Support** - Priority email support - 2-4 hour response - Phone support - Slack integration - Dedicated account manager option **Team** - Up to 10 team members - Role-based access control - Team permissions - Activity logs - Audit trails **API** - Full API access - 100,000 requests/day - All operations supported - Webhooks - Rate limiting: 10 req/sec **Monitoring** - Advanced metrics - Hourly data retention - Customizable alerts - Performance dashboard - Real-time monitoring - Log streaming **Additional Features** - Environment variables - Secrets management - Scheduled tasks - CI/CD integration - GitHub integration ### Good For - 🏢 Growing businesses - 🎯 Production applications - 👥 Teams - 📊 Data-intensive apps - 🌐 Global applications --- ## Enterprise Plan - Custom Pricing For organizations with large-scale deployments and custom requirements. ### Pricing **Base Price**: Custom (contact sales) **Billing**: Monthly or annual **Minimum Contract**: Customizable **Dedicated Account Manager**: Yes ### Features Included **Applications** - Unlimited applications - Unlimited replicas - Advanced deployment strategies - Custom scaling policies - Multi-region deployment **Storage** - Unlimited storage - Unlimited databases - Custom retention policies - Dedicated storage cluster - Premium SSD storage **Networking** - White-label domain - Advanced SSL/TLS (custom certs) - Dedicated infrastructure - Global load balancing - DDoS protection **Databases** - Unlimited databases - Unlimited size - All database types - Real-time replication - High availability setup - Disaster recovery **Support** - 24/7 phone support - 15-minute response time - Dedicated support team - Slack channel - Dedicated account manager - Custom SLA **Team** - Unlimited users - Custom roles - Advanced permissions - SSO/SAML support - Organization management **API** - Unlimited API access - Custom rate limits - Webhook management - API authentication - API monitoring **Monitoring** - Real-time monitoring - Custom dashboards - Advanced alerting - Predictive analytics - Performance insights - Cost optimization tools **Additional Features** - Custom integrations - Compliance features - Audit logging - Data residency options - Custom infrastructure - Dedicated cluster ### Includes - Infrastructure as needed - Priority feature development - Custom integrations - Security consulting - Performance optimization - Training and onboarding ### Good For - 🏛️ Large enterprises - 🌍 Global operations - 🔒 High compliance requirements - 📈 Mission-critical applications - 🛡️ Dedicated security needs --- ## Feature Comparison | Feature | Starter | Pro | Enterprise | |---------|---------|-----|-----------| | **Price** | $10/mo | $50/mo | Custom | | **Applications** | 5 | Unlimited | Unlimited | | **Replicas** | 2 per app | 10 per app | Unlimited | | **Storage** | 10GB | 100GB | Unlimited | | **Databases** | 1 | Unlimited | Unlimited | | **Team Members** | 1 | 10 | Unlimited | | **Support** | Email | Priority | 24/7 Phone | | **Support Response** | 24-48h | 2-4h | 15 min | | **SLA** | 99% | 99.9% | 99.99% | | **API Calls/day** | 1,000 | 100,000 | Unlimited | | **Custom Domain** | Yes | Yes | Yes | | **SSL/TLS** | Basic | Advanced | Custom | | **Monitoring** | Basic | Advanced | Real-time | | **Backup** | Weekly | Daily | Real-time | | **Data Retention** | 30 days | 90 days | Custom | | **Account Manager** | No | Optional | Yes | | **SSO** | No | No | Yes | | **DDoS Protection** | No | No | Yes | --- ## Add-ons and Extras ### Premium Support **Available for Pro and Enterprise** - Priority support queue - Faster response times - Dedicated support contact - Phone support access - SLA guarantees **Cost**: $50-500/month (varies by plan) ### Additional Storage **Add More Storage Space** **Starter Plan** - Extra storage: $1/GB/month - Maximum: Can upgrade to Pro **Pro Plan** - Extra storage: $0.50/GB/month - Unlimited scale **Enterprise Plan** - Included in custom pricing ### Team Member Overages **Pro Plan Team Limit Exceeded** - Additional members: $10/month each - Beyond 10 team members - Unlimited with Enterprise ### Custom Domain SSL **Advanced SSL Features** - Wildcard certificates: $20/month - Multi-domain certificate: $15/month - Custom certificate upload: Included Enterprise ### Enhanced Monitoring **Advanced Monitoring Add-on** - Custom dashboards - Predictive alerts - Advanced metrics - Cost: $25/month --- ## Choosing the Right Plan ### Decision Framework **Choose Starter If:** - ✅ New to the platform - ✅ Testing or learning - ✅ Personal projects - ✅ Low traffic apps - ✅ Budget limited **Choose Pro If:** - ✅ Production apps - ✅ Team of developers - ✅ Growing traffic - ✅ Need priority support - ✅ Multiple applications - ✅ Data-critical apps **Choose Enterprise If:** - ✅ Large organization - ✅ Mission-critical apps - ✅ Complex requirements - ✅ High compliance needs - ✅ 24/7 support needed - ✅ Custom solutions needed ### Cost Estimation **Starter Plan Scenario** ```text Base Plan: $10/month 5 applications × small size Personal use only Estimated Cost: $10/month ``` **Pro Plan Scenario** ```text Base Plan: $50/month Unlimited applications Team of 5 members Extra storage: $5/month Estimated Cost: $55/month ``` **Enterprise Scenario** ```text Base Plan: $5,000/month Unlimited everything Dedicated account manager Custom SLA Estimated Cost: Custom ``` --- ## Billing & Payments ### Billing Cycles **Monthly Billing** - Charge every 30 days - Auto-renewal - Cancel anytime - Pro-rated adjustments **Annual Billing** (Enterprise) - 12-month commitment - 20% discount - Single annual charge - Custom terms available ### What's Included **All Prices Include:** - ✅ Unlimited updates - ✅ Customer support - ✅ Platform access - ✅ All core features - ✅ Automatic backups **Not Included:** - ❌ Premium support add-on - ❌ Extra storage beyond plan - ❌ Custom integrations - ❌ Professional services ### No Hidden Fees **Transparent Pricing:** - No setup fees - No hidden charges - No surprise fees - No long-term contracts - Cancel anytime --- ## Upgrading and Downgrading ### Upgrading Your Plan **When to Upgrade:** - Running out of resources - Need advanced features - Growing your team - Production ready - Need priority support **How:** 1. Go to Billing & Subscriptions 2. Click "Change Plan" 3. Select higher tier 4. Confirm change 5. Pro-rated charge applied ### Downgrading Your Plan **When to Downgrade:** - Reducing costs - Using fewer resources - Smaller team - Project complete **What Happens:** - Pro-rated credit applied - Resource limits may restrict - Some features unavailable - Data preserved ### Free Trial **14-Day Free Trial** - All plan features - Credit card required - No automatic charges - Cancel anytime - Full access --- ## FAQ: Plans and Pricing **Can I change plans anytime?** - Yes, change anytime - Pro-rated charges/credits - Changes effective immediately - No cancellation fees **What happens if I exceed limits?** - Starter: Cannot exceed (hard limits) - Pro: Pay-as-you-go overages - Enterprise: Included in custom pricing **Is there a long-term contract?** - No contracts - Month-to-month only - Cancel with notice - Enterprise: Custom terms available **Do you offer discounts?** - Annual plans: 20% off (Enterprise) - Volume discounts: Contact sales - Non-profit discounts: Inquire - Educational: Contact sales **Can I get a custom plan?** - Enterprise plans: Yes, custom pricing - Special requirements: Contact sales - Volume users: Negotiate terms - Dedicated resources: Available --- ## Quick Plan Selection Guide Choosing the right plan is easy with this quick reference: | Your Situation | Best Plan | Reason | |---|---|---| | New to Nife, testing | **Starter** | Cost-effective, all core features | | Running production apps | **Pro** | Unlimited apps, priority support | | Large organization | **Enterprise** | Custom pricing, 24/7 support | | Team of developers | **Pro** | Team features, advanced capabilities | | Single app/project | **Starter** | Perfect for small-scale projects | | Fast-growing business | **Pro** | Room to scale without limits | | Compliance requirements | **Enterprise** | Custom SLA, SSO, advanced security | | Cost-conscious | **Starter** | Lowest price point | ## Plan Selection Decision Framework **Step 1: Current Needs** - How many applications? - How many team members? - What's your budget? - Do you need support? **Step 2: Growth Plans** - Will you scale soon? - Adding team members? - More applications? - Complex requirements? **Step 3: Feature Needs** - Advanced scaling? - Custom domains? - Team collaboration? - Compliance/security? **Step 4: Select Plan** - Starter for individuals - Pro for production - Enterprise for large-scale ## Summary Choosing the right Nife plan ensures: - Optimal resource allocation - Cost-effective operations - Feature coverage for needs - Room for growth - Appropriate support level ## Next Steps - [Managing Your Subscription](/Billing/managing) - Change or upgrade plans - [Payment Methods](/Billing/payment) - Add and manage payment methods - [Billing Overview](/Billing/Billing-Overview) - Return to billing dashboard - [Contact Sales](https://nife.io/contact-us) - Get custom Enterprise pricing --- ## Creating a Civo API Key for Nife-Cost Integration URL: https://docs.nife.io/Cloud-Cost-Monitoring/creating-civo-api-key ### Creating a Civo API Key 1. **Login to Civo**: - Go to the [Civo Control Panel](https://civo.com/). 2. **Navigate to API Key Section**: - Click on your profile icon in the top-right corner and select **Profile**. - Go to the **Security** tab and find the **API Keys** section. 3. **Generate a New API Key**: - Click **Generate New API Key**. - Enter a **Name** for the key (e.g., `Nife-Cost-api-key`). - Click **Generate**. 4. **Save the API Key**: - The API key will be displayed only once. Copy the key and store it securely. This key is required to configure Nife-Cost. ### Need Help? If you need further assistance with creating a Civo API key, refer to the [official Civo documentation](https://www.civo.com/docs/account/api-keys). --- ## Cloud Cost Monitoring on Nife | AWS & GCP Cost Dashboard URL: https://docs.nife.io/Cloud-Cost-Monitoring/Cost-Monitoring `} Efficient management of cloud resources is crucial for optimizing operational expenses and ensuring optimal performance. Cloud cost monitoring plays a pivotal role in this strategy, providing organizations with comprehensive insights into their expenditure across various cloud platforms. Note: Currently, we provide Cost Monitoring for AWS and GCP. Excitingly, we are actively developing support for Azure, coming soon. ### Steps to Access Cloud Cost Monitoring #### Step 1: Navigate to the Dashboard Page Log in to your account and access the Dashboard page. #### Step 2: Select "Cost Monitoring" from the Side Navigation On the Dashboard, locate the side navigation menu. Look for the `Cost Monitoring` option and click on it. #### Step 3: Enable Cost Monitoring On the "Cost Monitoring" page, click the `Enable Now` button to activate the Cost Monitoring feature. #### Step 4: Adding Cloud Account ### Adding AWS Account Here is a step-by-step guide on generating an AWS access key and secret key with the required permissions: [Generating AWS Access Key](/Cloud-Cost-Monitoring/aws-generating-keys). + AWS Account Name: Choose a user-friendly name for your AWS account. + AWS Access Key ID: Enter the Access Key ID for authentication. + AWS Secret Access Key: Provide the Secret Access Key for secure authorization. + Select AWS Region: Choose the AWS region. If you desire [alerts](#adding-slack-alerts-optional), provide the Slack Webhook URL to receive notifications. If you also have an AWS account, you can enable it concurrently with your GCP account. ### Adding GCP Account Here is a step-by-step guide on creating a Google Service Account and downloading its key as a JSON file for integration with Nife-Cost: [Creating Google Service Account](/Cloud-Cost-Monitoring/creating-google-service-account). + Upload Service Account JSON: Click "Upload" below and select the downloaded GCP Service Account JSON file. If you desire [alerts](#adding-slack-alerts-optional), provide the Slack Webhook URL to receive notifications. If you also have an AWS account, you can enable it concurrently with your GCP account. #### Adding Slack Alerts (Optional) - Paste the Slack webhook URL. How to get slack webhook url? [user guide](/Cloud-Cost-Monitoring/slack-alert) #### Step 5: Click on Enable - Clicking on enable initiates the deployment of the cost monitoring application. #### Step 6: Click on Open Dashboard - After deploying, click on the ` Open Dashboard`. This opens your cloud cost monitoring application in a new tab. ## Related Resources - 💰 [Nife Cost](https://nife.io/nife-cost) — FinOps & cost visibility product overview - 🧮 [Cloud Price Calculator](https://nife.io/cloud-cost-calculator) — estimate multi-cloud spend before you deploy - 🌐 [nife.io](https://nife.io) — Learn about Nife's cost-efficient edge cloud platform - 🚀 [Launch Dashboard](https://launch.nife.io) — Start monitoring your cloud costs - 📖 [Blog: Cloud Cost Optimization](https://blog.nife.io) --- ## Generating an AWS access key and secret key URL: https://docs.nife.io/Cloud-Cost-Monitoring/aws-generating-keys To integrate Nife-Cost with your AWS account, you need to create an IAM user and attach a policy that grants the necessary read-only permissions. Here is a step-by-step guide on how to generate the access key and secret key with the required permissions based on the provided JSON policy. #### Step 1: Create a Custom IAM Policy 1. **Sign in to the AWS Management Console** and open the IAM console at [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 2. In the navigation pane, choose **Policies**, then click **Create policy**. 3. Select the **JSON** tab and paste the following JSON policy: ```json , ] } ``` 4. Click **Next: Tags** to add any optional tags, then **Next: Review**. 5. Name the policy (e.g., `Nife-CostReadOnlyPolicy`), provide an optional description, and click **Create policy**. #### Step 2: Create an IAM User 1. In the IAM console, navigate to **Users** and click **Add user**. 2. Enter a user name (e.g., `Nife-CostReadOnlyUser`) and select **Programmatic access**. 3. Click **Next: Permissions**, then select **Attach existing policies directly**. 4. Search for the policy you created in Step 1 and select it. 5. Click **Next: Tags** to add any optional tags, then **Next: Review**. 6. Review the user details and click **Create user**. #### Step 3: Retrieve Access Key and Secret Key 1. After creating the user, you will see the **User Summary** page. 2. Click on **Download .csv** to save the user credentials (access key ID and secret access key) securely. Alternatively, you can copy these values directly from the console. 3. Store these credentials in a safe place. You will need them to configure Nife-Cost. ## Related Resources - 🛠️ [AWS CLI Command Builder](https://freetools.nife.io/aws-cli-builder/) — build AWS CLI commands interactively without memorizing syntax --- ## Cloud Deployment Best Practices URL: https://docs.nife.io/deploy/cloud # Best Practices for Cloud Deployment with AWS, GCP, and Azure This guide covers essential strategies for deploying applications reliably and securely across the major cloud providers: - **AWS (Amazon Web Services)**: https://aws.amazon.com - **Google Cloud Platform (GCP)**: https://cloud.google.com - **Microsoft Azure**: https://azure.microsoft.com ## Architecture and Design Principles ### Select the Appropriate Compute Model - **AWS**: EC2, Lambda, ECS, EKS - **GCP**: Compute Engine, Cloud Run, GKE - **Azure**: Virtual Machines, Azure Functions, AKS ### Use Modern Application Architecture Follow the Twelve-Factor App methodology and ensure externalized configuration, stateless design, and reproducible builds. ### Containerization and Packaging - Prefer Docker images or build artifacts - Use CI/CD pipelines to automate build and deploy processes ## Networking and Security ### Network Isolation Use VPCs/VNets, private subnets, and managed gateways. ### Secure Secret Management - **AWS Secrets Manager** / Parameter Store - **GCP Secret Manager** - **Azure Key Vault** Do not hardcode secrets. Use IAM roles instead of static keys. ### Apply Zero-Trust and Least Privilege Regularly audit IAM and remove unused permissions. ## Scalability and Performance ### Autoscaling - AWS Auto Scaling Groups - GCP Managed Instance Groups - Azure VM Scale Sets ### Cloud-Native Load Balancers - AWS ALB/NLB - GCP Internal/External Load Balancers - Azure Application Gateway / Load Balancer ### Caching Use managed Redis or Memcached: ElastiCache, Memorystore, Azure Cache for Redis. ## Observability and Logging ### Centralized Logging - CloudWatch (AWS) - Cloud Logging (GCP) - Log Analytics (Azure) ### Monitoring and Tracing Use CloudWatch, Cloud Monitoring, Azure Monitor, and distributed tracing for microservices. ## CI/CD and Automation ### Use Cloud-Native DevOps Tools - AWS CodePipeline - Google Cloud Build - Azure DevOps Pipelines ### Infrastructure as Code Use Terraform, CloudFormation, Deployment Manager, or ARM/Bicep. ## Storage and Data Management ### Storage Selection Use: - Block storage for high performance - Object storage (S3, Cloud Storage, Blob Storage) for static assets - Managed databases (RDS, Cloud SQL, Azure SQL) ### Backup and Disaster Recovery Implement automated backups, multi-region replication, and regular restore tests. ## Security and Compliance ### Encryption Ensure encryption at rest and in transit using cloud-native key management. ### Compliance Frameworks Follow SOC2, HIPAA, GDPR, or ISO 27001 as relevant. ### Vulnerability Management Use Amazon Inspector, GCP SCC, and Azure Security Center. ## Cost Optimization ### Rightsize Resources Use cloud cost analysis tools and avoid over-provisioning. ### Reserved and Spot Instances Use reserved instances for predictable workloads and spot/preemptible instances for fault-tolerant tasks. ### Resource Cleanup Remove unused volumes, IPs, snapshots, and orphaned services. ## High Availability and Reliability ### Multi-Zone Redundancy Deploy across multiple availability zones and consider multi-region failover. ### Managed Services Prefer managed databases, message queues, and caches to reduce operational overhead. ### Health Checks and Failover Implement automated failover and health-based routing. ## Governance and Lifecycle Management ### Naming and Tagging Follow strict naming conventions and tag assets for cost management and ownership. ### Deployment Governance Enforce review and approval policies. ### Resource Lifecycle Set cleanup policies for unused or temporary assets. ## Related Resources - 🛠️ [Terraform Plan/State Viewer](https://freetools.nife.io/terraform-plan-viewer/) — visualize Terraform execution plans and state files - 🛠️ [YAML Formatter & Validator](https://freetools.nife.io/yaml-formatter/) — validate CloudFormation and CI/CD YAML configs --- ## Creating an Azure Service Principal for Nife-Cost Integration URL: https://docs.nife.io/cost-monitoring-for-azure To enable Nife-Cost to collect your Azure resources, you need to set up a Service Principal with the necessary permissions. Follow these steps to create the Service Principal and obtain the necessary credentials. #### Prerequisites Before you begin, ensure you have the following: 1. **Azure Account**: - You must have an active Azure account with administrative privileges. 2. **Azure CLI Installed**: - Make sure you have the Azure CLI installed on your system. You can download and install it from [here](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). 3. **Permissions to Create Service Principals**: - Ensure that you have the required permissions to create Service Principals and manage roles within your Azure subscription. #### Step 1: Create a Service Principal 1. **Login to Azure CLI**: ```shell az login ``` 2. **Create a Service Principal**: ```shell az ad sp create-for-rbac --name "Nife-CostServicePrincipal" --role "Contributor" --scopes "/subscriptions/" ``` Replace `` with your Azure subscription ID. 3. **Save the Output**: The output will contain the `appId`,`displayName`, `password`, and `tenant`. The output should look something like this: ```json ``` Store these credentials in a safe place. You will need them to configure Nife-Cost. --- ## Creating a DigitalOcean API Token for Nife-Cost Integration URL: https://docs.nife.io/Cloud-Cost-Monitoring/creating-digitalocean-api-token #### Prerequisites Before you begin, ensure you have the following: 1. **DigitalOcean Account**: - You must have an active DigitalOcean account. If you don't have one, you can sign up [here](https://www.digitalocean.com/signup/). 2. **Permissions to Generate API Tokens**: - Ensure you have the necessary permissions to generate API tokens in your DigitalOcean account. #### Creating a DigitalOcean API Token 1. **Login to DigitalOcean**: - Go to the [DigitalOcean Control Panel](https://cloud.digitalocean.com/). 2. **Navigate to API Section**: - In the left-hand menu, click on **API**. 3. **Generate a New API Token**: - Under the **Personal Access Tokens** section, click **Generate New Token**. - Enter a **Name** for the token (e.g., `Nife-Cost-api-token`). - Set the **Scope** to `Read` (this is sufficient for monitoring purposes). - Click **Generate Token**. 4. **Save the API Token**: - The API token will be displayed only once. Copy the token and store it securely. This token is required to configure Nife-Cost. --- ## Creating a GCP Service Account for Nife-Cost Integration URL: https://docs.nife.io/Cloud-Cost-Monitoring/creating-google-service-account To enable Nife-Cost to collect your GCP resources, you need to set up a Service Account with the necessary permissions. Follow these steps to create the Service Account and obtain the JSON key. #### Step 1: Create a Service Account 1. **Go to the GCP Console**: Open the Google Cloud Console at [https://console.cloud.google.com/](https://console.cloud.google.com/). 2. **Select or Create a Project**: Ensure you have the correct project selected, or create a new project if necessary. You can select a project from the project dropdown at the top of the page. 3. **Navigate to the IAM & Admin**: In the left-hand menu, click on **IAM & Admin**, then select **Service Accounts**. 4. **Create a Service Account**: - Click **+ CREATE SERVICE ACCOUNT**. - Enter a **Service Account Name** (e.g., `Nife-Cost-read-only`). - (Optional) Enter a **Service Account Description**. - Click **CREATE AND CONTINUE**. 5. **Grant the Service Account Permissions**: - In the **Grant this service account access to project** section, click **Select a role**. - Choose **Viewer** under the **Basic** category to provide read-only access. - Click **+ ADD ANOTHER ROLE**. - Select **Storage Object Viewer** to list Buckets. - Click **+ ADD ANOTHER ROLE**. - Select **Compute Viewer** to list VM instances. - Click **+ ADD ANOTHER ROLE**. - Select **Monitoring Viewer** to allow for cost estimation of your Buckets. - Click **CONTINUE**. 6. **Skip Granting Users Access**: - Click **DONE** on the next screen to skip granting users access to this service account. #### Step 2: Create and Download the JSON Key 1. **Navigate to the Service Account**: - Find the newly created service account in the list and click on it. 2. **Create a Key**: - Click on the **KEYS** tab. - Click **ADD KEY**, then select **Create new key**. - Ensure the key type is set to **JSON** and click **CREATE**. 3. **Download the JSON Key**: - The JSON key file will be automatically downloaded to your computer. Store this file securely, as it contains the credentials needed to authenticate Nife-Cost with your GCP account. ## Related Resources - 🛠️ [GCP CLI Command Builder](https://freetools.nife.io/gcloud-cli-builder/) — build Google Cloud CLI commands interactively - 🛠️ [JSON Validator](https://freetools.nife.io/json-validator/) — verify your downloaded service account key is well-formed JSON --- ## Slack Alerts for Cost Monitoring URL: https://docs.nife.io/Cloud-Cost-Monitoring/slack-alert #### To receive Slack Alert, you need to set up an incoming webhook. Follow these steps: #### Step 1: Sign In to Slack If you don't have an account, create one on [Slack's website](https://slack.com/get-started#/createnew) and create a channel in your workspace named "cloud-alerts". #### Step 2: Create a Slack App Go to the https://api.slack.com/apps page and click on `Create an App`. #### Step3: Click on `From scratch` #### Step4: Fill in App Details - Enter a name for your app - Select your workspace - Click on `Create App` #### Step 5: Set Up Incoming Webhooks In the left sidebar, navigate to "Incoming Webhooks" under the "Features" section. #### Step 6: Activate Incoming Webhooks Toggle the switch to activate incoming webhooks. #### Step 7: Add a New Webhook Go to end of the incoming webhook page and click on `Add New Webhook to Workspace`. #### Step 8: Where should cloud alerts post?: - Here you need choose a channel.(note: this selected channel receive all the alerts) - Click on `Allow` #### Step 9: Copy the Webhook URL: After authorizing, you'll get a webhook URL. Copy it. --- ## Connecting Kubernetes Clusters - Step-by-Step Guide | Nife Deploy URL: https://docs.nife.io/Clusters/Connecting-Clusters Learn how to connect your Kubernetes clusters to Nife using standalone or BYOC options. ## Before You Begin **Requirements:** - Admin access to your Kubernetes cluster - Kubeconfig file (for standalone clusters) - Cloud credentials (for BYOC) - Network connectivity to your cluster --- ## Connecting a Standalone Cluster A standalone cluster is your own Kubernetes cluster that you manage. ### Step 1: Prepare Your Kubeconfig 1. Get your kubeconfig file from your cluster administrator 2. The file typically contains: - Cluster endpoint - Authentication credentials - Context information **Location of kubeconfig:** - Linux/Mac: `~/.kube/config` - Windows: `%USERPROFILE%\.kube\config` ### Step 2: Start the Connection 1. Go to **Clusters** page 2. Click **Connect Cluster** button 3. Choose your connection method from the dialog: - **Standalone Cluster** — connect using a kubeconfig file - **Bring Your Own Cluster (BYOC)** — connect via AWS, GCP, or Azure ### Step 3: Fill in Details **Cluster Name:** - Give your cluster a descriptive name - Example: "Production API Cluster" - Used for easy identification **Region Code:** - Select the region where your cluster runs - Examples: `us-east-1`, `eu-west-1` - Important for global deployments **Kubeconfig Content:** - Paste your kubeconfig file content - OR upload the kubeconfig file directly ### Step 4: Verify Connection 1. Nife will validate the kubeconfig 2. Test connection to the cluster 3. Once confirmed, cluster appears in your list ### Troubleshooting Connection **Problem: Connection Failed** Possible causes: - Invalid kubeconfig format - Cluster unreachable - Authentication failed - Network connectivity issue **Solutions:** 1. Verify kubeconfig is valid 2. Check cluster is running and accessible 3. Verify network allows outbound connections 4. Check credentials in kubeconfig 5. Try uploading kubeconfig file again --- ## Connecting with BYOC (Cloud Providers) BYOC allows you to connect cloud infrastructure directly. ### Supported Cloud Providers #### Amazon Web Services (AWS) **What you need:** - AWS account with cluster access - IAM credentials (Access Key & Secret Key) **Steps:** 1. Go to **Clusters** → **Connect Cluster** 2. Select **BYOC** → **AWS** 3. Enter AWS credentials: - Access Key ID - Secret Access Key 4. Choose existing cluster or create new 5. Click **Connect** **Permissions Required:** - EC2 access - EKS cluster access - IAM role permissions #### Google Cloud Platform (GCP) **What you need:** - GCP project with GKE cluster - Service account JSON key **Steps:** 1. Go to **Clusters** → **Connect Cluster** 2. Select **BYOC** → **GCP** 3. Upload service account JSON key 4. Select cluster from dropdown 5. Click **Connect** **Permissions Required:** - GKE cluster access - Container API enabled - Service account with cluster admin #### Microsoft Azure **What you need:** - Azure subscription with AKS cluster - Service principal or managed identity **Steps:** 1. Go to **Clusters** → **Connect Cluster** 2. Select **BYOC** → **Azure** 3. Enter credentials: - Subscription ID - Tenant ID - Client ID - Client Secret 4. Select cluster from list 5. Click **Connect** **Permissions Required:** - AKS cluster access - Azure Role-Based Access Control (RBAC) --- ## After Connecting ### What Happens Next 1. **Validation**: Nife validates cluster access 2. **Registration**: Cluster is registered to your organization 3. **Agent Deployment**: You can now deploy agents 4. **Monitoring**: Cluster appears in your dashboard ### Next Steps 1. **Deploy an Agent**: Enable monitoring and additional features 2. **Configure Cluster**: Set region and other preferences 3. **Deploy Applications**: Start deploying to your cluster --- ## Managing Connected Clusters ### View Cluster Details 1. Go to **Clusters** page 2. Click cluster name or **View Details** 3. See: - Cluster configuration - Deployed agents - Connected status - Resource information ### Set Default Cluster 1. Select cluster from list 2. Click **Set as Default** 3. Default cluster is used for new deployments ### Disconnect a Cluster 1. Find cluster in list 2. Click menu (three dots) → **Disconnect** 3. Confirm disconnection 4. Cluster is removed from Nife (but not deleted from your infrastructure) **Warning:** Disconnecting doesn't delete your cluster, only removes it from Nife. ### Update Cluster Configuration 1. Click **Edit** on cluster 2. Update: - Cluster name - Region - Additional settings 3. Click **Save** --- ## Cluster List View Modes ### Card View (Default) Shows clusters as cards with: - Cluster name and status - Region information - Agent count - Quick action buttons **Best for:** - Visual overview - Quick status checks - Small number of clusters ### Grid View Shows clusters in a table format with: - Columns for name, region, status - Sortable headers - Detailed information **Best for:** - Large number of clusters - Comparing details - Quick data lookup ### Switch View Mode 1. Top right: Click **Grid** or **Card** button 2. View mode updates immediately 3. Your preference is saved --- ## Common Cluster Connection Issues ### Issue: Invalid Kubeconfig **Symptoms:** - Connection fails immediately - Error message about invalid format **Solution:** 1. Verify kubeconfig syntax 2. Check file is not corrupted 3. Try different kubeconfig version 4. Test with `kubectl` command first ### Issue: Authentication Failed **Symptoms:** - Connection succeeds but operations fail - Permission denied errors **Solution:** 1. Verify credentials in kubeconfig 2. Check token hasn't expired 3. Verify user has cluster admin 4. Try refreshing credentials ### Issue: Cluster Unreachable **Symptoms:** - Connection timeout - Network unreachable errors **Solution:** 1. Check cluster is running 2. Verify network allows outbound HTTPS 3. Check firewall rules 4. Test ping/curl to cluster endpoint ### Issue: Region Not Available **Symptoms:** - Cannot select desired region - Region dropdown is empty **Solution:** 1. Request region in **Requested** tab 2. Wait for region approval 3. Select from available regions 4. Use closest available region temporarily --- ## Best Practices ### 1. Naming Convention Use clear, descriptive names: - ✅ "Production API Cluster - US East" - ✅ "Staging Database Cluster - EU" - ❌ "Cluster 1" - ❌ "Test" ### 2. Organize by Region Keep clusters organized geographically for easier management. ### 3. Regular Verification Periodically check that clusters are still connected and healthy. ### 4. Credential Security - Store credentials securely - Rotate credentials regularly - Don't share kubeconfig files - Use IAM roles when possible ### 5. Network Security - Use private endpoints when available - Restrict cluster access by IP - Enable encryption for connections - Monitor access logs --- ## Next Steps 1. **[Deploy Agents](/Clusters/Deploying-Agents)** - Enable monitoring 2. **[Manage Resources](/Clusters/Managing-Resources)** - Monitor cluster health 3. **[Deploy Applications](/deploy/deploy)** - Start using your cluster --- ## Support **Having trouble connecting?** - Check the troubleshooting section above - Review your cloud provider's documentation - Contact support: support@nife.io ## Related Resources - 🛠️ [Kubernetes YAML Generator](https://freetools.nife.io) — Generate K8s manifests online for free - 📖 [Blog: Mastering Kubernetes Deployments with Helm](https://blog.nife.io/post/mastering-kubernetes-deployments-with-helm/) - 🚀 [Launch Dashboard](https://launch.nife.io) — Connect your cluster on Nife --- ## Managing Cluster Resources & Performance | Nife Deploy URL: https://docs.nife.io/Clusters/Managing-Resources Monitor your cluster's health and performance with real-time metrics and resource tracking. ## Understanding Cluster Resources Cluster resources include everything your cluster uses: - **CPU**: Processing power - **Memory**: RAM - **Disk**: Storage space - **Network**: Data transfer - **Pods**: Running containers --- ## Resource Dashboard ### Viewing Cluster Metrics 1. Go to **Clusters** page 2. Click a cluster to see details 3. **Metrics** tab shows resource data **Information Displayed:** - Current CPU usage % - Current memory usage % - Disk space used/available - Pod count and status - Node health ### Real-time Monitoring Metrics update in real-time when agent is deployed: - CPU and memory updates every 30 seconds - Disk usage updates every 5 minutes - Pod status updates immediately - Node health updates continuously --- ## CPU Metrics ### Understanding CPU Usage CPU is measured as a percentage (0-100%): - **0-20%**: Idle, plenty of capacity - **20-50%**: Normal operating range - **50-80%**: Moderate load - **80-100%**: High load, at capacity ### CPU Guidelines **Recommended Range:** - Development: 20-50% average - Production: 30-60% average - Peak: Should stay below 80% - Never: Sustained 100% usage ### Managing High CPU If CPU is consistently high: 1. **Identify the cause:** - Check Pod Logs tab - Look for error messages - Check for runaway processes 2. **Temporary solutions:** - Restart problematic pods - Disable non-essential services - Kill stuck processes 3. **Long-term solutions:** - Scale up cluster (add nodes) - Optimize application code - Fix resource leaks - Load balance better --- ## Memory Metrics ### Understanding Memory Usage Memory is also measured as a percentage (0-100%): - **0-30%**: Plenty of available memory - **30-60%**: Normal operating range - **60-80%**: Getting full, monitor closely - **80-100%**: Critical, pods may be evicted ### Memory Guidelines **Recommended Range:** - Always keep 20% free for OS - Applications: 40-70% of total - Peak: Should stay below 80% - Emergency: Never above 90% ### Managing High Memory If memory is consistently high: 1. **Identify memory leaks:** - Check Pod Logs for leak messages - Monitor memory trend over time - Identify which pod is using most 2. **Free up memory:** - Restart affected pods - Delete unused deployments - Clear caches 3. **Optimize:** - Scale up (add more RAM) - Optimize application memory - Use smaller images - Enable memory compression --- ## Disk Space ### Understanding Disk Usage Disk shows used/available space: - **Free Space**: How much is available - **Used Space**: How much is being used - **Used Percentage**: % of total ### Disk Guidelines **Healthy Disk State:** - Keep at least 10% free space - Recommended: 20-30% free - Never drop below 5% free - Critical: Less than 2% free ### Managing Low Disk If disk space is low: 1. **Find what's using space:** - Check container images - Look for log files - Review persistent volumes 2. **Free up space:** - Delete old images - Clear temporary files - Rotate old logs - Delete unused volumes 3. **Long-term:** - Add more storage - Implement log rotation - Use image cleanup policies - Monitor usage regularly --- ## Pod Monitoring ### What are Pods? Pods are running instances of your applications: - One or more containers - Basic deployable unit - Can be created/destroyed dynamically ### Pod Status | Status | Meaning | Action | |--------|---------|--------| | **Running** | Pod is healthy and running | No action needed | | **Pending** | Pod is starting | Wait for startup | | **Succeeded** | Pod completed (job) | Normal completion | | **Failed** | Pod crashed | Check logs and investigate | | **CrashLoop** | Pod keeps restarting | Fix application error | | **Unknown** | Cannot determine status | Check cluster health | ### Pod Health Indicators **Green (Healthy):** - All containers running - No restarts - Ready for traffic **Yellow (Warning):** - Frequent restarts - High resource usage - Slow response **Red (Error):** - Containers failing - Crash loops - Not responding --- ## Node Health ### What are Nodes? Nodes are the machines that run your pods: - Physical or virtual machines - Have their own CPU, memory, disk - Run multiple pods ### Node Metrics Each node shows: - Node name/ID - CPU capacity and usage - Memory capacity and usage - Disk capacity and usage - Pod count ### Node Status **Healthy Node:** - Status: Ready - No taints or conditions - Resources available - All components running **Problem Node:** - Status: NotReady - May have taints - Resources exhausted - Components failing --- ## Setting Resource Limits ### Understanding Limits Limits prevent containers from using too many resources: - **Request**: Minimum guaranteed resources - **Limit**: Maximum allowed resources ### Setting Limits Via Nife Dashboard: 1. Go to cluster details 2. Click **Configure** 3. Set CPU limits 4. Set memory limits 5. Click **Save** Via kubectl: ```yaml resources: requests: cpu: "100m" memory: "128Mi" limits: cpu: "500m" memory: "512Mi" ``` ### Limit Guidelines **Frontend Application:** - CPU request: 100m - CPU limit: 500m - Memory request: 128Mi - Memory limit: 512Mi **Backend API:** - CPU request: 200m - CPU limit: 1000m - Memory request: 256Mi - Memory limit: 1Gi **Database:** - CPU request: 500m - CPU limit: 2000m - Memory request: 512Mi - Memory limit: 4Gi --- ## Autoscaling ### Horizontal Pod Autoscaling (HPA) Automatically scales number of pods based on metrics: **How it works:** 1. Monitor CPU/memory metrics 2. If above threshold, scale up (add pods) 3. If below threshold, scale down (remove pods) 4. Maintains target metric percentage **When to use:** - Variable traffic patterns - Cost optimization - High availability needs ### Vertical Pod Autoscaling (VPA) Automatically adjusts resource requests/limits: **How it works:** 1. Monitor actual resource usage 2. If using more, increase limits 3. If using less, decrease limits 4. Optimizes resource efficiency **When to use:** - Unknown resource requirements - Right-sizing applications - Cost optimization ### Cluster Autoscaling Automatically adds/removes nodes: **How it works:** 1. When pods can't fit, scale up cluster 2. When nodes are idle, scale down cluster 3. Maintains desired capacity **When to use:** - Dynamic workloads - Cost savings - Unused capacity --- ## Performance Optimization ### 1. Right-Size Applications **Before:** ``` Pod requests: 2 CPU, 2Gi memory Actual usage: 200m CPU, 256Mi memory Result: Wasting 90% of resources ``` **After:** ``` Pod requests: 250m CPU, 512Mi memory Actual usage: 200m CPU, 256Mi memory Result: Optimized allocation ``` ### 2. Use Resource Quotas Limit namespace resource usage: ```yaml apiVersion: v1 kind: ResourceQuota metadata: name: compute-quota spec: hard: requests.cpu: "10" requests.memory: "20Gi" limits.cpu: "20" limits.memory: "40Gi" ``` ### 3. Enable Metrics Server Required for monitoring: ```bash kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml ``` ### 4. Monitor Regularly - Check metrics daily - Review trends weekly - Plan capacity monthly - Optimize quarterly --- ## Troubleshooting Resource Issues ### Problem: Nodes Running Out of Memory **Symptoms:** - Pod evictions - Out of memory errors - Node goes "NotReady" **Solutions:** 1. Delete unnecessary pods 2. Increase node memory 3. Adjust pod memory limits 4. Identify memory leaks ### Problem: Pods Keep Crashing **Symptoms:** - CrashLoopBackOff status - Frequent restarts **Solutions:** 1. Check pod logs 2. Increase memory/CPU 3. Fix application code 4. Verify configuration ### Problem: Cluster Won't Scale **Symptoms:** - Pods stuck in Pending - Autoscale not working **Solutions:** 1. Check cluster capacity 2. Verify autoscaling enabled 3. Check resource quotas 4. Add more nodes manually --- ## Best Practices ### 1. Monitor Continuously - Set up alerts for thresholds - Review metrics regularly - Plan for growth ### 2. Set Realistic Limits - Not too high (waste resources) - Not too low (pod crashes) - Based on actual usage ### 3. Plan Capacity - Monitor trends - Forecast growth - Scale before hitting limits ### 4. Use Autoscaling - Set up HPA for applications - Enable cluster autoscaling - Monitor autoscaling behavior ### 5. Clean Up Regularly - Delete old images - Remove unused deployments - Clear temporary files - Archive old logs --- ## Next Steps 1. **[View Pod Logs](/Clusters/Monitoring-Logs)** - Debug issues 2. **[Connect Clusters](/Clusters/Connecting-Clusters)** - Add more clusters 3. **[Deploy Applications](/deploy/deploy)** - Use your cluster --- ## Support **Questions about resources?** - Check the guidelines above - Review your metrics - Contact support: support@nife.io --- ## Kubernetes Pod Logs Monitoring & AI Analysis | Nife Deploy URL: https://docs.nife.io/Clusters/Monitoring-Logs View real-time logs from your pods and use AI-powered analysis to understand issues. --- ## Pod Logs Overview Pod logs show output from your running applications in the cluster. ### What are Pod Logs? Pod logs are text output generated by applications: - Application startup messages - Errors and warnings - Debug information - Info messages - Business events ### Why View Logs? - **Troubleshooting**: Find out what went wrong - **Debugging**: Understand application behavior - **Monitoring**: Watch real-time activity - **Auditing**: Record what happened - **Analysis**: Find patterns and issues --- ## Accessing Pod Logs ### Option 1: Via Dashboard 1. Go to **Clusters** page 2. Select cluster with agent 3. Click **Pod Logs** tab 4. Select application from dropdown 5. Click **Fetch Logs** or **Stream Logs** ### Option 2: Via Command Line ```bash # View recent logs kubectl logs -n # Stream live logs kubectl logs -f -n # View last 100 lines kubectl logs -n --tail=100 # View logs from specific time kubectl logs --since=1h ``` --- ## Fetching Logs ### One-Time Fetch Get a snapshot of recent logs: 1. **Select Application** - Choose app from dropdown - Select how many lines: - 50 lines: Last few seconds - 100 lines: Last minute - 500 lines: Last 5 minutes - 1000 lines: Last 10 minutes 2. **Click Fetch Logs** - Wait for logs to load - Results appear in viewer 3. **View Results** - See log entries with timestamps - Each line shows log level and message ### Log Format ``` [Timestamp] [Pod Name] [Level] Message [2024-01-15 14:32:45] [api-server-xyz] [INFO] Request processed [2024-01-15 14:32:46] [api-server-xyz] [ERROR] Database connection failed ``` --- ## Streaming Logs Watch logs in real-time as they're generated: ### Start Streaming 1. **Select Application** - Choose the app to monitor - Only one stream at a time 2. **Click Stream Logs** - Live logs start appearing - New entries appear at bottom - Stream indicator shows status ### Streaming Features **Auto-Scroll:** - Toggle "Auto-scroll" on/off - When on: Jumps to newest entry - When off: Stay at current position **Search:** - Type in search box - Filters logs in real-time - Shows matching entries - Case-insensitive **Filter by Level:** - All Levels: Show everything - Error: Only error messages - Warn: Warnings and errors - Info: Info and above - Debug: All messages ### Stop Streaming 1. Click **Stop Stream** button 2. Live updates stop 3. View your captured logs 4. Can export or analyze --- ## Filtering and Searching ### Search Logs Find specific messages: 1. **Enter search term** - Type what you're looking for - Search is real-time 2. **Results update** - Only matching logs shown - Count shows matches found 3. **Clear search** - Delete search text - All logs appear again ### Filter by Level Show only certain severity: ``` ERROR: Application errors └─ Indicates something failed WARN: Warnings └─ Indicates potential issue INFO: Information messages └─ General status updates DEBUG: Debug information └─ Detailed technical info ``` ### Example Searches **Find database errors:** ``` Search: "database" Shows: All lines mentioning database ``` **Find timeout errors:** ``` Search: "timeout" Shows: All timeout-related errors ``` **Find a user's activity:** ``` Search: "user@example.com" Shows: Everything that user did ``` --- ## Exporting Logs Save logs for analysis or archival: ### Export Options **Export as Text (.txt)** - Plain text format - Easy to read - Good for sharing - Use for: Documentation, emails **Export as JSON (.json)** - Structured format - Includes metadata - Machine-readable - Use for: Analysis tools, automation ### How to Export 1. **Load or filter logs** - Fetch or stream logs first - Filter to what you want 2. **Click Export** - Choose format (TXT or JSON) - File downloads automatically 3. **Use exported logs** - Analyze offline - Share with team - Import to analysis tools - Archive for compliance --- ## AI-Powered Log Analysis Use AI to automatically analyze logs and find issues. ### What AI Analysis Does The AI analyzes your logs to: - **Detect Issues**: Find errors and problems - **Identify Patterns**: Spot recurring issues - **Provide Recommendations**: Suggest fixes - **Explain Problems**: Describe what went wrong --- ## Using AI Analysis ### Step 1: Prepare Logs **Option A: Use Current Pod Logs** 1. Toggle **"Use current pod logs"** ON 2. Make sure logs are loaded 3. Shows how many entries will be analyzed **Option B: Paste Logs Manually** 1. Toggle **"Use current pod logs"** OFF 2. Paste your logs in the text area 3. Any log format is fine ### Step 2: Run Analysis 1. Click **Analyze with AI** 2. Wait for analysis (usually 10-30 seconds) 3. Hourglass icon shows progress 4. Results appear when ready ### Step 3: Review Results AI provides: - **Summary**: What happened overall - **Issues Found**: Specific problems detected - **Severity**: How serious each issue is - **Recommendations**: How to fix --- ## Understanding AI Analysis Results ### Analysis Summary Brief overview of what AI found: ``` "Application experienced 5 errors in the last hour, mostly related to database timeouts. Performance degraded after 14:30 UTC." ``` ### Issues Detected Specific problems found: | Issue | Severity | Description | |-------|----------|-------------| | Database Connection Timeout | High | Could not connect to database | | Memory Leak | Medium | Memory usage growing over time | | Slow Query | High | Query taking 5+ seconds | ### Recommendations How to fix each issue: ``` Database Connection Timeout Recommendations: 1. Increase database connection pool size 2. Check database server health 3. Verify network connectivity 4. Review query timeouts ``` ### Patterns Found Recurring issues and trends: ``` Error Pattern 1: Database timeouts spike at 14:00-15:00 UTC → Coincides with backup jobs → Recommendation: Schedule backups at off-peak hours Error Pattern 2: Memory usage grows 100MB per hour → Suggests memory leak in application → Recommendation: Profile application memory usage ``` --- ## Interpreting AI Insights ### Issue Severity Levels **Critical:** 🔴 - Application is down or failing - Immediate action required - Fix immediately **High:** 🟠 - Performance degraded - Users affected - Fix very soon **Medium:** 🟡 - Minor issues - Should be addressed - Fix when convenient **Low:** 🔵 - Informational - Good to know - Can defer --- ## Common Troubleshooting Scenarios ### Scenario 1: Application Keeps Crashing **Logs show:** ``` Starting application... OutOfMemoryError: Java heap space Application terminated ``` **AI Analysis suggests:** - Insufficient memory allocated - Possible memory leak - Large data processing causing spike **Solutions:** 1. Increase pod memory limit 2. Check for memory leaks in code 3. Process data in smaller chunks 4. Enable memory profiling ### Scenario 2: Database Errors **Logs show:** ``` ERROR: Cannot connect to database Connection timeout after 30s Failed to execute query ``` **AI Analysis suggests:** - Database server unreachable - Network connectivity issues - Connection pool exhausted **Solutions:** 1. Verify database is running 2. Check firewall rules 3. Increase connection pool 4. Review network configuration ### Scenario 3: High Latency **Logs show:** ``` Request received Processing... Completed in 5000ms (expected: 100ms) ``` **AI Analysis suggests:** - Slow queries - External API delays - Resource contention **Solutions:** 1. Optimize database queries 2. Add caching 3. Use CDN for external assets 4. Scale cluster resources --- ## Best Practices ### 1. Regular Monitoring - Check logs daily - Monitor trends - Act on warnings - Review errors ### 2. Use Streaming for Live Issues - Stream when troubleshooting - Watch real-time behavior - Easier than fetching later - See issue as it happens ### 3. Use AI Analysis Regularly - Run weekly analysis - Track recurring issues - Monitor for patterns - Proactive problem finding ### 4. Export and Archive - Export important logs - Keep for compliance - Analyze historical patterns - Document issues ### 5. Set Up Alerts - Alert on error rates - Alert on specific errors - Alert on performance degradation - Set up escalation --- ## Log Retention ### How Long are Logs Kept? - **Real-time logs**: 7 days - **Archived logs**: 30 days - **Compliance logs**: 1 year (if enabled) ### Exporting Before Expiration If you need logs longer: 1. Export before expiration date 2. Store in your own system 3. Archive as needed 4. Use for analysis later --- ## Limitations ### Maximum Log Entries - Fetch: Up to 1000 lines - Stream: Keeps last 500 lines - Export: Based on what's loaded ### Network Requirements - Stable internet connection - 1+ Mbps bandwidth for streaming - Some browsers better than others ### App Requirements - Application must have agent deployed - Agent must have Logging capability - Application must output logs to stdout/stderr --- ## Next Steps 1. **[View Security Findings](/Clusters/Connecting-Clusters)** - Check cluster security 2. **[Manage Resources](/Clusters/Managing-Resources)** - Monitor cluster health 3. **[Deploy Applications](/deploy/deploy)** - Use your cluster --- ## Support **Questions about logs?** - Check the scenarios above - Review AI analysis suggestions - Contact support: support@nife.io **Logs not appearing?** - Verify agent is deployed - Check agent status - Ensure Logging capability enabled - Verify application outputs logs --- ## Nife Application Concepts | Stateless Apps on the Edge Cloud URL: https://docs.nife.io/Concept/Applications The smallest component in Nife is Apps. Apps are application installed on the server and need computational information. ## Type of Apps A typical app consists of all running components to execute the functionality. On Nife you can deploy stateless applications seamlessly All deployed applications have access - Global Load Balancer: Network and Network configuration is auto configured across the locations, ensure seamless access to the application anywhere. - Application Life Cycle Management (including version Control): Once deployed all applications are maintained with version information helping with continuous integration. - Application Performance: Application information including the global access locations are provide easy access to knowing the busy locations --- ## Nife Build Options | Dockerfile, Buildpacks & Docker Images URL: https://docs.nife.io/Concept/Builders-and-Build-Options Build and Deployment Options are essential to deploy an Application A builders help creating a deployable image. There are three kinds of builders - dockerfile, buildpacks, and image. ### Dockerfile The default builder is the dockerfile builder, invoked when there is a dockerfile, and no specific build option is selected. The default builder looks for a Dockerfile in the current directory and uses that to construct the deployable image. It is similar to a simple docker deploy option! ### Buildpacks Buildpacks are bundled into a "builder" stack with an operating system and can be called upon to build an app. Standardized with Cloud Native Buildpacks, Heroku has popularized this idea. Buildpacks use several tests to detect if an application can be built and create an image. Standardized libraries for buildpacks for Nife are available from Paketo Buildpacks and Heroku's Heroku18 buildpack. ### Image If a Docker image is already present, then you can use the docker image option and directly upload from the repository. --- ## Nife Edge Network | Global Load Balancing & Low-Latency Routing URL: https://docs.nife.io/Concept/Edge-Network Understanding the Network and the options to access the applications Every deployed application can be accessed by `.nifetency.com` Each application is deployed on the Global Network of the Load Balancer. --- ## HTTP Load-balancing All deployments are routed through a Global Load Balancer. The Load Balancer ensures that the closest deployment to the end-user is accessed. --- ## Secrets Management on Nife | Secure Environment Variables URL: https://docs.nife.io/Concept/Secrets Nife allow you to securely store and retrieve sensitive information like passwords or API tokens. # Secrets Secrets allow you to securely store and retrieve sensitive information like passwords or API tokens. With Secrets you can securely store hardcoded credentials and pass them as environment variables to your applications. Secrets provides re-usability across applications. All Secret values are automatically encrypted server-side. ## Create a Secret A Secret consists of a name and a value. Name: The name of a Secret must comply with RFC1123, the DNS naming convention, and can only contain lowercase letters, numbers and dashes. Value: Password or Secret Information that needs to be stored Secrets can be managed from Nife UI, click Settings->Secrets located in the Left Side Bar. ## Using Secrets Secrets can be used within services: ### Pull Images from Private Repositories You can pull Docker Images from Private Repositories and Deploy on Nife To pull Docker Images, refer to [Private Container Registry Secrets](/Quick-Start/Private-Registry). ### Environment Variables You can use environment variables across your services To provide environment variables to your services, refer to Using environment variables and secrets. ## Manage Secrets You can Easily Mange, Edit and Delete the Secrets from Dashboard and CLI Make sure no production service is using your secret before deleting it as this might generate production failures or outages especially in re-deployemnts and moving applications ```text Note: Deleting a Secret is permanent and irreversible. When you delete a Secret, all resources using it will lose access to its value. ``` --- ## Nife Services | Ports, Environment Variables & Deployment URL: https://docs.nife.io/Concept/Services Applications are formed on multiple configurable services ## Services Services include Ports, API and Configuration information required for an App to function correctly. ### Configuration Information 1) Ports Specify the internal and external ports need for the running of your application 2) Environment Variables Specify any environmental variables needs to execute the application sucessfully 3) Remote Build Docker Containers Incase a basic docker container is not build, a bunch of technologies and builtin options allow for a remote build. 4) Technology Incase remote docker or the option to use the locally build docker is not available, you could specify the technology example: python, node etc. 5) Docker Containers The simplest way to use the docker containers is to use private and public docker containers to deploy from the container repository ### Deploy You can choose different options to deploy 1) Continuous Integration with GIT Actions Use the Git Actions option to directly deploy from the repository. You need to be registered on the UI and provide an access code to deploy from the GIT Repository 2) Easy Automation via CLI Use ClI instead of UI. You can download the CLI for the specific operating system. You would need to signup, registering on the UI and then automate the deployment. 3) Visual UI - Nife UI Follow simple steps to register, access, manage and deploy via the user interface. Follow Step by Step process to login, configure the image and then deploy. ### Specify Regions Once you deploy an application, you can choose the locations to deploy the application Choose between - Low-Latency Regions Low Latency Regions are closest end-points to the customers. Expected latency/response time is 10ms to 25ms - Geo-Routing locations If Latency is not a concern then the closest end points, don't better, making any other location a possible deployment location. --- ## Organizations on Nife | Manage Workspaces, Teams & App Access URL: https://docs.nife.io/Concept/Organizations Understanding the Organizations and the Apps Before Deploying an Application, Workplace-Organizations help with logical division of Apps. ## Organizations A workspace includes many application deployments along with the services for each. These applications can be managed by an Admin and Users associated with the workspace. Applications from one organization can be moved to another. ### Default Organization Nife creates a default workspace at the Time of Registration. This org can be renamed, changed and new orgs can be created #### Users in an Organization The Admin of the organization can manage all the operations. Admin can choose to add more users to the workspace. --- ## Configure Your App on Nife | nifectl init & Config Guide URL: https://docs.nife.io/configure/configure Configure an App using a public docker container, language-specific built-in builders locally or remotely. --- ## Nifectl Nifectl, Nife Platforms CLI is the most basic way to interact with the Platform. Before you access [Nifectl](/Quick-Start/nifectl-commands) ensure that you have signed up on the [platform](https://launch.nifetency.com/) ### Note You can also download directly from Github and use the CLI or [install](/Quick-Start/nifectl-Installation) Now, to configure a simple app, you need to follow two steps - Creating An App: [nifectl init](/CLI/init) - Deploying An App: [nifectl config](/CLI/config) --- ## Nife UI Nifecteny, Nife Platforms GUI has more graphical information including graphs and analytics. Sign up and access the [platform](https://launch.nife.io/) Now to deploy and configure an App, you need to follow two Steps: - Add an Application - Click Deploy --- ## Database Backup & Recovery: Disaster Recovery Guide | Nife Docs URL: https://docs.nife.io/Databases/Backup-Recovery Understand automatic backups, recovery options, and disaster recovery strategies. --- ## Automatic Backups ### What's Included All managed databases include automatic backups: **Backup Coverage:** - ✅ All data - ✅ All schemas - ✅ Configuration - ✅ User accounts - ✅ Indexes **Backup Frequency:** - Daily backups at 00:00 UTC - Weekly full backup - Monthly long-term archive **Automatic Backup Features:** - No configuration needed - Runs during low-traffic times - Encrypted backups - Geo-redundant storage - Automated retention ### Backup Retention How long backups are kept: | Backup Type | Retention | Keep Up To | |------------|-----------|-----------| | Daily | 7 days | 7 backups | | Weekly | 30 days | 4 backups | | Monthly | 1 year | 12 backups | | Manual | As long as needed | Unlimited | **Automatic Cleanup:** - Old backups deleted automatically - Compliant with retention policy - Can extend retention if needed --- ## Point-in-Time Recovery (PITR) ### What is PITR? Restore database to any point in the last 7 days: **Available Granularity:** - Minute-level precision - Any time within 7-day window - Before data was corrupted - Before accidental deletion - Before bad code deployment **How PITR Works:** 1. Takes daily full backup 2. Keeps transaction logs 3. Can replay transactions 4. Reconstruct any point in time ### Using PITR **Scenario: Accidental Data Delete** ``` 2024-01-15 14:00 - Someone deletes important data 2024-01-15 14:05 - You realize the mistake 2024-01-15 14:10 - Use PITR to restore to 13:50 Result: Data is recovered ``` **How to use:** 1. Go to **Backups** 2. Click **Point-in-Time Recovery** 3. Select the timestamp you want 4. Confirm recovery 5. New database created 6. Switch applications to new database **Available timestamps:** - All points in last 7 days - Timezone selection available - Minute-level precision --- ## Recovery Scenarios ### Scenario 1: Corrupted Data **Problem:** ``` Application bug caused data corruption Thousands of records affected Happened 2 hours ago ``` **Recovery:** 1. Identify when corruption started (14:30) 2. Use PITR to restore to 13:00 3. Export data from restored database 4. Verify data integrity 5. Re-import clean data 6. Fix application bug 7. Deploy fix **Time to recover:** 30 minutes to 2 hours ### Scenario 2: Accidental Deletion **Problem:** ``` User accidentally deleted customer records 200 records lost Backup available from same day ``` **Recovery:** 1. Create backup of current database (for safety) 2. Use Point-in-Time Recovery 3. Restore to before deletion (yesterday 23:00) 4. Export deleted records 5. Import into current database 6. Verify restored data **Time to recover:** 15-30 minutes ### Scenario 3: Ransomware/Intrusion **Problem:** ``` Ransomware encrypted database All data inaccessible Happened 12 hours ago ``` **Recovery:** 1. Isolate affected database 2. Shut down affected application 3. Restore from backup before infection 4. Verify no malware in restored data 5. Change all credentials 6. Re-deploy applications 7. Monitor for re-infection **Time to recover:** 1-4 hours depending on size ### Scenario 4: Failed Migration **Problem:** ``` Migration to new version failed Data corrupted Need to rollback ``` **Recovery:** 1. Backup current corrupted database 2. Restore from pre-migration backup 3. Investigate what went wrong 4. Fix migration process 5. Retry with fixes **Time to recover:** 30 minutes to 2 hours --- ## Manual Backups ### Creating Manual Backups Create on-demand backups anytime: **When to create:** - Before major changes - Before code deployments - Before version upgrades - Before scaling operations - Before configuration changes - Quarterly for compliance **How to create:** 1. Go to **Backups** tab 2. Click **Create Manual Backup** 3. Add optional description 4. Confirm **Time to complete:** 5-60 minutes depending on size ### Manual Backup Naming Use descriptive names: **Good names:** - `pre-upgrade-16.1` - `before-migration-20240115` - `quarterly-backup-q1-2024` - `before-schema-change` **Bad names:** - `backup1` - `backup_old` - `temp` **Naming tips:** - Include purpose - Include date/version - Make it searchable - Document reason ### Managing Manual Backups **View all backups:** 1. Go to **Backups** tab 2. See all automatic and manual 3. Filter by type 4. Sort by date **Restore from manual:** 1. Click **Restore** on backup 2. Choose: new database or replace 3. Confirm **Delete manual:** 1. Click **Delete** on backup 2. Confirm deletion 3. Cannot be undone --- ## Backup Exports ### Why Export Backups? **Use cases:** - Long-term archival (keep beyond 1 year) - Off-site disaster recovery - Migration to different system - Compliance requirements - Data analysis outside database ### Export Options **PostgreSQL/MySQL Export:** ```sql -- Exported as SQL dump -- Can restore anywhere -- Portable across systems -- Includes DDL and DML ``` **MongoDB Export:** ```json -- Exported as JSON/BSON -- Document structure preserved -- Can import to another MongoDB -- Large file sizes ``` **Redis Export:** ``` -- Exported as RDB dump -- Binary format -- Can restore to another Redis -- Preserves all data types ``` ### How to Export 1. Go to **Backups** 2. Click **Export** on backup 3. Select format (SQL, JSON, etc.) 4. Download starts 5. File saved to your computer **File sizes:** - Small database: 1-100 MB - Medium database: 100 MB - 1 GB - Large database: 1-10 GB+ - Download may take time ### Importing Exported Backups **PostgreSQL:** ```bash psql -h hostname -U root -d postgres < backup.sql ``` **MySQL:** ```bash mysql -h hostname -u root -p database < backup.sql ``` **MongoDB:** ```bash mongorestore --archive=backup.archive ``` --- ## Disaster Recovery Plan ### Planning for Disasters **Consider these risks:** - Data corruption - Accidental deletion - Hardware failure - Regional outage - Security breach - Application bug ### Recovery Time Objectives (RTO) **How fast can you recover?** | Scenario | Target Time | |----------|------------| | Corruption | 15 minutes | | Deletion | 30 minutes | | Failed upgrade | 1 hour | | Regional outage | 4 hours | | Complete loss | 24 hours | **Our capabilities:** - PITR: 15 minutes (7-day window) - From backup: 30 minutes - From manual export: 1-4 hours ### Recovery Point Objective (RPO) **How much data can you lose?** **Our options:** - Daily: Lose at most 1 day of data - Point-in-time: Lose at most minutes of data - Real-time replica: Lose zero data ### Disaster Recovery Strategy **Recommended approach:** 1. **Daily Backups** (automatic) - Included with service - Retain 7 days - Geo-redundant 2. **Point-in-Time Recovery** - Available 7 days - Minute-level precision - No setup needed 3. **Manual Backups** (monthly) - Created before major changes - Stored separately - Documented location 4. **Exported Backups** (quarterly) - SQL/JSON export - Stored off-site - Long-term archive 5. **Read Replicas** (optional) - Different region - Always in sync - Instant failover --- ## Testing Recovery ### Regular Testing **Test quarterly:** 1. Create manual backup 2. Restore to test database 3. Verify data integrity 4. Test application connects 5. Validate all data present 6. Document results ### Test Procedures **Unit Test Recovery:** ```bash # Restore from backup # Verify table counts SELECT COUNT(*) FROM users; SELECT COUNT(*) FROM orders; # Spot check data SELECT * FROM users LIMIT 10; # Verify recent data SELECT * FROM orders WHERE created_at > NOW() - INTERVAL '1 day'; ``` **Integration Test:** 1. Restore backup to new database 2. Update connection string 3. Start application 4. Run smoke tests 5. Check all features work 6. Verify data consistency **Load Test:** 1. Restore to test database 2. Run performance tests 3. Check query speed 4. Monitor resource usage 5. Document results --- ## Backup Best Practices ### 1. Verify Backups Work - Test restoration quarterly - Document procedures - Time the recovery process - Train team on recovery ### 2. Keep Multiple Copies - Automatic daily - Manual monthly - Exported quarterly - Off-site storage ### 3. Retention Policy - Keep daily 7 days - Keep weekly 30 days - Keep monthly 1 year - Archive as needed ### 4. Document Everything - Backup schedule - Retention policy - Recovery procedures - Contact information ### 5. Encryption - Backups encrypted at rest - Encrypted in transit - Store encryption keys securely - Document key location ### 6. Regular Testing - Test recovery quarterly - Update procedures - Train new team members - Time your recovery ### 7. Monitor Backups - Verify daily backups complete - Check backup size trends - Monitor storage usage - Alert on failures --- ## Compliance & Regulations ### GDPR Requirements - **Right to be forgotten**: Delete on request - **Data portability**: Export data - **Breach notification**: 72 hours - **Data residency**: Keep in EU **Our support:** - Export data on request - Geo-redundant backups in EU - Encryption at rest - Access logs for audit ### HIPAA Requirements - Encrypted backups - Access control - Audit logs - Disaster recovery **Our support:** - AES-256 encryption - Role-based access - Comprehensive logging - Backup redundancy ### Other Regulations - **SOC 2**: Audit reports available - **ISO 27001**: Certification available - **PCI-DSS**: Payment data protection - **Industry-specific**: Consult compliance team --- ## Next Steps 1. **[Managing Databases](/Databases/Managing-Databases)** - Scaling and monitoring 2. **[Databases Overview](/Databases/Databases-Overview)** - Overview and benefits 3. **[Connecting to Databases](/Databases/Connecting-Databases)** - Connection guides --- ## Support **Questions about backups?** - Check sections above - Test recovery process - Contact support: support@nife.io --- ## Connecting to Databases | PostgreSQL, MySQL, MongoDB URL: https://docs.nife.io/Databases/Connecting-Databases Connect your applications to managed databases using connection details and authentication. --- ## Getting Connection Details ### After Database Creation You'll receive connection details: - **Hostname**: `db-prod-001.database.nifetency.com` - **Port**: `5432` (PostgreSQL), `3306` (MySQL), etc. - **Username**: `root` - **Password**: Your set password - **Database Name**: `postgres` (default) ### Finding Existing Credentials 1. Go to **Databases** page 2. Click database name 3. Click **Connection Details** 4. Copy hostname, port, username **Password:** Store separately for security. --- ## Connection Methods ### Method 1: Connection String Use connection string format for your database type: **PostgreSQL:** ``` postgresql://root:PASSWORD@hostname:5432/database ``` **MySQL:** ``` mysql://root:PASSWORD@hostname:3306/database ``` **MongoDB:** ``` mongodb://root:PASSWORD@hostname:27017/database ``` **Redis:** ``` redis://root:PASSWORD@hostname:6379 ``` ### Method 2: Individual Parameters Provide individual connection parameters: ``` Hostname: db-prod.database.nifetency.com Port: 5432 Username: root Password: YourPassword Database: postgres ``` ### Method 3: Environment Variables Set connection details as environment variables: **Example:** ```bash export DB_HOST="db-prod.database.nifetency.com" export DB_PORT="5432" export DB_USER="root" export DB_PASSWORD="YourPassword" export DB_NAME="postgres" ``` --- ## Application Examples ### Node.js (PostgreSQL) ```javascript const = require('pg'); const pool = new Pool(); // Query pool.query('SELECT * FROM users', (err, res) => ); ``` ### Python (PostgreSQL) ```python conn = psycopg2.connect( host="db-prod.database.nifetency.com", port="5432", user="root", password="YourPassword", database="postgres" ) cursor = conn.cursor() cursor.execute("SELECT * FROM users") print(cursor.fetchall()) cursor.close() conn.close() ``` ### Python (MongoDB) ```python from pymongo import MongoClient client = MongoClient( 'mongodb://root:YourPassword@db-prod.database.nifetency.com:27017/' ) db = client['myapp'] users = db['users'] # Find documents result = users.find_one() print(result) ``` ### Node.js (MongoDB) ```javascript const MongoClient = require('mongodb').MongoClient; const url = 'mongodb://root:YourPassword@db-prod.database.nifetency.com:27017/'; MongoClient.connect(url, (err, client) => , (err, result) => ); }); ``` ### Docker Compose ```yaml version: '3' services: app: image: myapp:latest environment: DB_HOST: db-prod.database.nifetency.com DB_PORT: 5432 DB_USER: root DB_PASSWORD: YourPassword DB_NAME: postgres ``` ### Kubernetes ```yaml apiVersion: v1 kind: ConfigMap metadata: name: db-config data: DB_HOST: "db-prod.database.nifetency.com" DB_PORT: "5432" DB_USER: "root" DB_NAME: "postgres" --- apiVersion: v1 kind: Secret metadata: name: db-secret type: Opaque stringData: DB_PASSWORD: "YourPassword" ``` --- ## Connection Tools ### GUI Database Clients **For PostgreSQL/MySQL:** - **DBeaver**: Free, feature-rich, cross-platform - **MySQL Workbench**: Official MySQL client - **pgAdmin**: Web-based PostgreSQL admin - **HeidiSQL**: Free MySQL/PostgreSQL client **For MongoDB:** - **MongoDB Compass**: Official client - **NoSQL Booster**: Advanced client - **Robo 3T**: Community MongoDB client **For Redis:** - **Redis Desktop Manager**: GUI client - **RedisInsight**: Official Redis client ### Command Line Tools **PostgreSQL:** ```bash psql -h db-prod.database.nifetency.com -U root -d postgres ``` **MySQL:** ```bash mysql -h db-prod.database.nifetency.com -u root -p ``` **MongoDB:** ```bash mongosh -h db-prod.database.nifetency.com:27017 -u root -p ``` **Redis:** ```bash redis-cli -h db-prod.database.nifetency.com -p 6379 ``` --- ## Testing Connection ### Test Before Using Always test connection before deploying: **Bash script to test:** ```bash #!/bin/bash echo "Testing database connection..." PGPASSWORD="$DB_PASSWORD" psql -h "$DB_HOST" -U "$DB_USER" -d "$DB_NAME" -c "SELECT 1" if [ $? -eq 0 ]; then echo "✓ Connection successful" else echo "✗ Connection failed" exit 1 fi ``` **Python test:** ```python try: conn = psycopg2.connect( host="db-prod.database.nifetency.com", user="root", password="YourPassword", database="postgres" ) cur = conn.cursor() cur.execute("SELECT 1") print("✓ Connection successful") cur.close() conn.close() except Exception as e: print(f"✗ Connection failed: ") ``` --- ## Connection Pool Configuration ### What is Connection Pooling? Connection pooling reuses database connections instead of creating new ones each time. This improves performance and reduces resource usage. ### Recommended Pool Sizes | Application Type | Pool Size | Max Connections | |------------------|-----------|-----------------| | Small app | 2-5 | 10 | | Medium app | 5-10 | 20 | | Large app | 10-20 | 50 | | Enterprise | 20+ | 100+ | ### Configuring Pool (Node.js Example) ```javascript const pool = new Pool(); ``` --- ## SSL/TLS Connections ### Enable Encryption All connections support SSL/TLS encryption: **PostgreSQL with SSL:** ``` postgresql://root:PASSWORD@hostname:5432/database?sslmode=require ``` **MySQL with SSL:** ```javascript const connection = mysql.createConnection(); ``` **Recommendation:** Always use SSL/TLS in production. --- ## Troubleshooting Connection ### Problem: Connection Refused **Symptoms:** ``` Error: Connection refused Error: Cannot connect to [hostname] ``` **Solutions:** 1. Verify hostname is correct 2. Verify port is correct (5432 for PostgreSQL, 3306 for MySQL) 3. Check credentials 4. Verify database exists 5. Check firewall/network rules 6. Ensure application IP is whitelisted ### Problem: Authentication Failed **Symptoms:** ``` Error: Password authentication failed Error: Access denied for user 'root' ``` **Solutions:** 1. Verify password is correct 2. Check username is correct (usually 'root') 3. Verify database name 4. Reset password if forgotten 5. Copy password directly from dashboard ### Problem: Timeout **Symptoms:** ``` Error: Connection timeout Error: Timeout connecting to database ``` **Solutions:** 1. Check network connectivity 2. Increase timeout value in connection 3. Verify database is running 4. Check firewall rules 5. Contact support if database is down ### Problem: Too Many Connections **Symptoms:** ``` Error: Too many connections Error: Connection limit exceeded ``` **Solutions:** 1. Enable connection pooling 2. Close unused connections 3. Reduce pool size if needed 4. Scale up database plan 5. Monitor active connections --- ## Security Best Practices ### 1. Never Hardcode Credentials **Bad:** ```javascript const password = "MySecurePassword123"; ``` **Good:** ```javascript const password = process.env.DB_PASSWORD; ``` ### 2. Use Connection Pooling Reuse connections instead of creating new ones. ### 3. Use SSL/TLS Always encrypt connections in production. ### 4. Restrict Network Access - Use firewall rules - Allow only necessary IPs - Use VPN if possible ### 5. Change Default Passwords Don't use root account for applications. ### 6. Monitor Access - Check connection logs - Monitor for unusual activity - Set up alerts ### 7. Rotate Credentials - Change passwords periodically - After team changes - If credentials exposed --- ## Next Steps 1. **[Managing Databases](/Databases/Managing-Databases)** - Scale and monitor 2. **[Backup & Recovery](/Databases/Backup-Recovery)** - Data protection 3. **[Databases Overview](/Databases/Databases-Overview)** - Overview and benefits --- ## Support **Connection issues?** - Check sections above - Verify credentials - Test with command line first - Contact support: support@nife.io ## Related Resources - 🛠️ [SQL Formatter](https://freetools.nife.io/sql-formatter/) — format queries for PostgreSQL, MySQL, and MariaDB connections - 🛠️ [JSON Formatter](https://freetools.nife.io/json-formatter/) — inspect and format documents when working with MongoDB --- ## How to Create Databases | PostgreSQL, MySQL, MongoDB Setup URL: https://docs.nife.io/Databases/Creating-Databases Deploy a new managed database in a few simple steps. --- ## Before You Start **What you need:** - Active Nife organization - Knowledge of your database needs - Region preference **What to decide:** - Database type (MySQL, PostgreSQL, MongoDB, etc.) - Database version - Storage size - Region - Root password --- ## Step 1: Choose Database Type ### Database Options **PostgreSQL** 🐘 - **Best for**: Relational databases, complex queries, enterprise apps - **Versions**: 16.1, 15.6, 14.11, 13.14 - **Use when**: Need ACID compliance, complex joins, advanced features - **Example**: Financial systems, analytics platforms **MySQL** 🐬 - **Best for**: Web applications, LAMP stack, content management - **Versions**: 8.0.35, 8.0.34, 5.7.44 - **Use when**: Building WordPress, traditional web apps - **Example**: Drupal, Magento, custom web apps **MariaDB** 🌲 - **Best for**: Drop-in MySQL replacement, compatibility needed - **Versions**: 11.2.2, 10.11.6, 10.6.16 - **Use when**: Need MySQL compatibility with newer features - **Example**: Migration from MySQL, backward compatibility required **MongoDB** 📄 - **Best for**: Document databases, flexible schema, real-time apps - **Versions**: 7.0.5, 6.0.13, 5.0.24 - **Use when**: Need flexible document structure, JSON data - **Example**: Content management, user profiles, logs **Redis** ⚡ - **Best for**: Caching, sessions, real-time features - **Versions**: 7.2.4, 7.0.15, 6.2.14 - **Use when**: Need high-speed data access, caching layer - **Example**: Cache, sessions, real-time analytics ### Selection Tips - **Not sure?** PostgreSQL is good for most use cases - **Coming from MySQL?** Try PostgreSQL or MariaDB - **Need documents?** Use MongoDB - **Need speed?** Use Redis for caching layer - **Web shop?** MySQL is widely supported --- ## Step 2: Configure Database Settings ### Database Name Give your database a clear, descriptive name: **Good names:** - ✅ production-mysql - ✅ app-postgres-main - ✅ analytics-database - ✅ user-service-db **Bad names:** - ❌ db1 - ❌ test - ❌ MyDatabase - ❌ temp_db **Rules:** - Use lowercase letters - Use numbers and hyphens - No spaces - Max 63 characters - Should be descriptive ### Database Version Select the version you want: **Choose the latest version if:** - Starting a new project - Want newest features - Need latest security patches - No compatibility constraints **Choose older version if:** - Migrating existing database - Need specific feature - Compatibility required - Established team preference **Version Support:** - Latest: Full support, frequent updates - Previous 2: Supported, security patches - Older: Limited support, may need upgrade **Recommendation:** Use latest stable version unless you have a specific reason not to. ### Root Password Set a strong root password: **Requirements:** - Minimum 8 characters - Should be complex - Store securely - Don't share **Tips for strong passwords:** - Mix uppercase and lowercase: `aBcD` - Include numbers: `123` - Include special characters: `!@#$` - Avoid dictionary words - Avoid personal information - Example: `SecureP@ss123` **Security notes:** - Root password cannot be changed via UI - Store in password manager - Note it before creation - You'll need it to connect ### Storage Size Choose how much storage your database needs: | Size | Best For | Typical Use | |------|----------|-------------| | 1 GB | Development | Local testing, learning | | 5 GB | Small production | Small projects, MVP | | 10 GB | Medium production | Growing apps, moderate data | | 15 GB | Medium-large | Established businesses | | 20 GB | Large production | Significant data volume | | 50 GB | Enterprise | Large enterprises | | 100 GB | Large enterprise | Major corporations | **Estimate your needs:** - Development: 1-5 GB - Small app: 5-10 GB - Medium app: 10-20 GB - Large app: 50+ GB **You can scale later:** - Increase storage anytime - No downtime - Costs adjust accordingly - Plan ahead but don't over-provision ### Region Selection Choose where your database will be deployed: **Available Regions:** **North America:** - US East (N. Virginia) - `us-east-1` - US West (Oregon) - `us-west-2` **Europe:** - EU (Ireland) - `eu-west-1` - EU (Frankfurt) - `eu-central-1` **Asia Pacific:** - Asia Pacific (Mumbai) - `ap-south-1` - Asia Pacific (Singapore) - `ap-southeast-1` **Choose based on:** **User Location:** - Choose closest to majority of users - Reduces latency - Better performance **Compliance:** - GDPR: EU regions - China data residency: Asia regions - US data: North America regions **Cost:** - Some regions may cost more - Check pricing **Disaster Recovery:** - Consider backup region - Use different region for replicas - Protect against regional outages **Recommendation:** Choose closest to your primary users or your location. --- ## Step 3: Review Summary Before creating, review your settings: **Summary shows:** - Database Type: PostgreSQL - Version: 16.1 - Storage: 10 GB - Region: US East (N. Virginia) - Root Password: •••••••• **Double-check:** - ✅ Type is correct - ✅ Version is desired - ✅ Storage is sufficient - ✅ Region is preferred - ✅ Password was saved --- ## Step 4: Create Database 1. Click **Create Database** button 2. Wait for deployment (usually 2-5 minutes) 3. Receive confirmation message 4. Database is created and ready ### What Happens During Creation **Background process:** 1. Allocates storage 2. Initializes database 3. Sets root credentials 4. Configures networking 5. Enables backups 6. Runs health checks 7. Ready for connections **You'll get:** - Hostname/endpoint - Port number - Root username - Root password - Connection string - Sample connection code --- ## After Creation ### Next Steps **1. Save Connection Details** - Write down hostname, port, username, password - Or copy from connection string - Store securely - Use to connect applications **2. Test Connection** ```bash # For PostgreSQL psql -h -U root -d postgres # For MySQL mysql -h -u root -p # For MongoDB mongo -h :27017 -u root -p # For Redis redis-cli -h -p 6379 ``` **3. Create Databases/Schemas** - Log in as root user - Create application-specific databases - Create application-specific users - Set up tables/collections **4. Configure Applications** - Update connection strings - Set environment variables - Test connections - Monitor performance **5. Set Up Backups** - Automatic backups enabled - Review backup settings - Test recovery process --- ## Troubleshooting ### Issue: Creation Fails **Possible causes:** - Invalid name format - Storage size out of range - Region unavailable - Organization quota exceeded **Solutions:** 1. Verify name follows rules (lowercase, no spaces) 2. Try different storage size 3. Try different region 4. Check organization limits 5. Contact support ### Issue: Can't Connect **Possible causes:** - Credentials incorrect - Application not in network - Firewall blocking - Database not ready yet **Solutions:** 1. Verify credentials from confirmation 2. Check firewall rules 3. Verify hostname is correct 4. Wait a few minutes if just created 5. Test from terminal/command line first ### Issue: Getting "Password Too Simple" **Solution:** - Use at least 8 characters - Mix uppercase and lowercase - Include numbers - Include special characters - Avoid common words --- ## Best Practices ### 1. Use Descriptive Names - Name should indicate purpose - Include environment (prod, dev, staging) - Easy to identify in dashboard ### 2. Plan Storage - Start with what you need - Add buffer for growth - Monitor usage - Scale when reaching 70-80% ### 3. Choose Correct Version - Latest stable is usually best - Check compatibility needs - Document your choice - Plan upgrades in advance ### 4. Secure Your Password - Use strong password - Store in password manager - Don't hardcode in files - Rotate periodically ### 5. Select Appropriate Region - Minimize latency - Consider compliance - Plan for backup regions - Document your choice ### 6. Monitor After Creation - Test connection immediately - Monitor resource usage - Check backup status - Review access logs --- ## Database Comparison ### Relational vs Document **Choose PostgreSQL/MySQL for:** - Structured data - Complex relationships - ACID requirements - Complex queries - Financial data **Choose MongoDB for:** - Flexible schema - Document format - Unstructured data - Rapid development - Semi-structured data ### OLTP vs Caching **Choose Traditional DB for:** - Online transactions - Business operations - Complex queries - Data integrity critical **Choose Redis for:** - Caching layer - Session storage - Real-time features - High speed needed --- ## Next Steps 1. **[Connecting to Databases](/Databases/Connecting-Databases)** - Connect your applications 2. **[Managing Databases](/Databases/Managing-Databases)** - Scale and manage 3. **[Backup & Recovery](/Databases/Backup-Recovery)** - Data protection --- ## Support **Questions about database creation?** - Check sections above - Review database type guide - Contact support: support@nife.io ## Related Resources - 🛠️ [SQL Formatter](https://freetools.nife.io/sql-formatter/) — clean up queries before running them against your new database --- ## Database Management Guide | Monitoring, Scaling & Optimization URL: https://docs.nife.io/Databases/Managing-Databases Monitor your databases, scale resources, perform updates, and maintain performance. --- ## Accessing Database Management ### From Dashboard 1. Go to **Databases** page 2. Click database name 3. See management options ### Available Options - **Overview**: Database status and metrics - **Performance**: Metrics and monitoring - **Backups**: Backup management - **Settings**: Configuration options - **Logs**: Activity and error logs --- ## Monitoring Performance ### Key Metrics **CPU Usage** - Percentage of CPU being used - Green ( 85%): Performance issue **Memory Usage** - Percentage of RAM used - Green ( 80%): Scale needed **Disk Usage** - Percentage of storage used - Green ( 90%): Critical, scale immediately **Connections** - Current active connections - Compare to max connections - If near limit, scale up **Query Performance** - Average query time - Slow queries count - Long-running queries ### Reading the Dashboard **Healthy Database:** - CPU < 70% - Memory < 70% - Disk < 80% - Few slow queries - Active connections normal **Warning Signs:** - CPU > 85% consistently - Memory > 80% - Disk > 85% - Many slow queries - Connection limit approaching **Critical Issues:** - CPU at 100% - Memory at 100% - Disk > 95% - Queries failing - Connection refused errors --- ## Scaling Your Database ### Vertical Scaling (More Power) Increase CPU and memory: **When to scale:** - CPU consistently > 80% - Memory consistently > 80% - Queries getting slow - Response times increasing **How to scale:** 1. Go to **Settings** 2. Click **Change Plan** 3. Select larger plan 4. Apply changes **Downtime:** Usually 1-5 minutes ### Horizontal Scaling (More Storage) Increase storage capacity: **When to scale:** - Disk usage > 70% - Disk usage growing rapidly - Approaching storage limit - Planning for future growth **How to scale:** 1. Go to **Settings** 2. Click **Increase Storage** 3. Select new size 4. Apply changes **Downtime:** Usually none (online scaling) **Storage tiers:** - 1 GB → 100 GB available - Scale in increments - One-way increase (can't decrease) ### Read Replicas Add read-only copies for scale-out: **When to use:** - Read traffic overwhelming primary - Need distributed reads - High-availability needed - Multiple regions wanted **Benefits:** - Scales read traffic - High availability - Disaster recovery - Low latency for reads **Cost:** Additional replicas increase cost --- ## Database Updates ### Version Upgrades Update to newer database versions: **Available Upgrades:** - Minor versions (7.5 → 7.6) - Major versions (14 → 15) - Check compatibility first **Before Upgrading:** 1. Test in staging environment 2. Backup current database 3. Review breaking changes 4. Plan maintenance window **Upgrade Process:** 1. Go to **Settings** 2. Click **Upgrade Version** 3. Select new version 4. Confirm compatibility 5. Schedule upgrade **Downtime:** Usually 5-30 minutes ### Security Patches Automatic security updates applied: **What happens:** - Security patches applied automatically - Usually no downtime - Transparent to applications - Logged in activity logs **You can:** - Schedule preferred time - View patch history - Enable/disable auto-patching --- ## Backup Management ### Automatic Backups Included with all databases: **Backup Schedule:** - Daily automatic backups - Weekly full backups - Monthly long-term backups **Retention:** - 7-day backups: 7 days - 30-day backups: 30 days - 1-year backups: 1 year **Coverage:** - Full data backup - Schema backup - Configuration backup ### Manual Backups Create on-demand backups: **When to create:** - Before major changes - Before version upgrade - Before scaling operations - Before maintenance - Before application changes **How to create:** 1. Go to **Backups** 2. Click **Create Backup** 3. Add description 4. Confirm **Time taken:** 5-60 minutes depending on size ### Backup Storage Where backups are stored: **Locations:** - Same region as database (default) - Multiple regions available - Encrypted storage - Geo-redundant options **Cost:** Usually included in database cost --- ## Recovery Options ### Point-in-Time Recovery (PITR) Restore to any point in time: **Availability:** - Last 7 days available - Any timestamp within window - Minute-level granularity **How to use:** 1. Go to **Backups** 2. Click **Point-in-Time Recovery** 3. Select timestamp 4. Confirm recovery **Result:** New database created with data from that point ### Restore from Backup Restore from a specific backup: **Available backups:** - Daily backups - Weekly backups - Manual backups - Automatic backups **How to restore:** 1. Go to **Backups** 2. Click **Restore** on backup 3. Create new database or overwrite 4. Confirm **Result:** New database with backup data ### Backup Export Download backup for external storage: **Formats:** - SQL dump for MySQL/PostgreSQL - JSON for MongoDB - RDB dump for Redis **How to export:** 1. Go to **Backups** 2. Click **Export** on backup 3. Select format 4. Download file **Use for:** - Long-term archival - Off-site storage - Migration - Compliance requirements --- ## Maintenance ### Regular Tasks **Weekly:** - Monitor metrics - Check disk usage - Review slow queries - Verify backups **Monthly:** - Review performance trends - Optimize indexes - Archive old data - Update documentation **Quarterly:** - Test recovery - Review scaling needs - Plan upgrades - Security audit ### Database Optimization **Index Optimization:** ```sql -- Find missing indexes (PostgreSQL) SELECT * FROM pg_stat_user_tables WHERE n_live_tup > 10000 AND idx_scan = 0; ``` **Vacuum and Analyze:** ```sql -- PostgreSQL maintenance VACUUM ANALYZE; -- MySQL maintenance OPTIMIZE TABLE table_name; ``` **Archive Old Data:** - Move old records to archive table - Delete unnecessary data - Rebuild indexes - Update statistics ### Monitoring Logs View database activity: **Available logs:** - Error logs - Slow query logs - Access logs - Audit logs **How to view:** 1. Go to **Logs** 2. Filter by date/type 3. Search for keywords 4. Export for analysis --- ## Troubleshooting ### Problem: High CPU Usage **Symptoms:** - CPU > 85% - Slow queries - Connection timeouts **Causes:** - Heavy queries - Many concurrent connections - Missing indexes - Inefficient code **Solutions:** 1. Identify slow queries from logs 2. Optimize problem queries 3. Add missing indexes 4. Implement caching 5. Scale up if needed ### Problem: High Memory Usage **Symptoms:** - Memory > 80% - Slow performance - Out of memory errors **Causes:** - Large result sets - Inadequate indexes - Memory leaks - Large temporary tables **Solutions:** 1. Check for large queries 2. Add indexes 3. Optimize queries 4. Increase batch size 5. Scale memory ### Problem: Disk Space Running Out **Symptoms:** - Disk > 90% - Write errors - Cannot insert data **Causes:** - Accumulation of data - Large tables - Uncleared logs - Transaction logs **Solutions:** 1. Archive old data 2. Delete unnecessary data 3. Clear logs 4. Increase storage immediately 5. Implement data retention policy ### Problem: Slow Queries **Symptoms:** - Queries taking > 1 second - Application slower - High CPU with few queries **Causes:** - Missing indexes - Poor query design - Outdated statistics - Large tables **Solutions:** 1. Enable query logging 2. Identify slow queries 3. Add needed indexes 4. Rewrite problematic queries 5. Optimize schema --- ## Best Practices ### 1. Monitor Regularly - Check metrics daily - Set up alerts - Review performance trends - Act on warnings early ### 2. Plan for Growth - Monitor disk usage - Forecast data growth - Scale before hitting limits - Don't wait for emergency ### 3. Backup Regularly - Verify backups work - Test restoration quarterly - Keep backups in multiple locations - Document recovery procedures ### 4. Optimize Performance - Monitor slow queries - Add needed indexes - Archive old data - Update statistics ### 5. Keep Updated - Apply security patches - Upgrade versions periodically - Follow upgrade schedule - Test before upgrading ### 6. Secure Access - Restrict network access - Use SSL/TLS - Change default passwords - Monitor access logs ### 7. Document Changes - Keep change log - Document schema changes - Note scaling events - Record optimization changes --- ## Next Steps 1. **[Backup & Recovery](/Databases/Backup-Recovery)** - Deep dive into backups 2. **[Databases Overview](/Databases/Databases-Overview)** - Overview and benefits 3. **[Connecting to Databases](/Databases/Connecting-Databases)** - Connection guides --- ## Support **Questions about management?** - Check sections above - Review metrics regularly - Contact support: support@nife.io --- ## Managed Databases Guide | PostgreSQL, MySQL, MongoDB & Redis URL: https://docs.nife.io/Databases Deploy and manage fully-managed databases with automatic backups, high availability, and intelligent scaling. ## Getting Started with Databases Deploy your first managed database in minutes: 1. **[Databases Overview](/Databases/Databases-Overview)** - Understand database options and benefits 2. **[Creating Databases](/Databases/Creating-Databases)** - Create your first database 3. **[Connecting to Databases](/Databases/Connecting-Databases)** - Connect your applications 4. **[Managing Databases](/Databases/Managing-Databases)** - Monitor and scale your database 5. **[Backup & Recovery](/Databases/Backup-Recovery)** - Protect your data --- ## Supported Databases Deploy any of these popular database engines: ### PostgreSQL 🐘 Advanced relational database with powerful features - **Best for**: Complex queries, enterprise applications, analytics - **Versions**: 16.1, 15.6, 14.11, 13.14 - **Use**: ACID compliance, advanced features, complex joins ### MySQL 🐬 Popular relational database for web applications - **Best for**: Web apps, LAMP stack, content management - **Versions**: 8.0.35, 8.0.34, 5.7.44 - **Use**: WordPress, Drupal, traditional web applications ### MariaDB 🌲 MySQL-compatible open-source database - **Best for**: MySQL compatibility, modern features - **Versions**: 11.2.2, 10.11.6, 10.6.16 - **Use**: MySQL migration, backward compatibility ### MongoDB 📄 Flexible document database for modern applications - **Best for**: Document data, flexible schema, real-time apps - **Versions**: 7.0.5, 6.0.13, 5.0.24 - **Use**: Content management, user profiles, logs, JSON data ### Redis ⚡ In-memory data store for caching and real-time features - **Best for**: Caching, sessions, real-time analytics - **Versions**: 7.2.4, 7.0.15, 6.2.14 - **Use**: Cache layer, session storage, real-time applications --- ## Key Features ### ✅ Automatic Backups - Daily backups included - Point-in-time recovery (7 days) - 7-30 day retention - Geo-redundant storage ### ✅ High Availability - 99.9% uptime SLA - Automatic failover - Multi-zone replication - Redundancy built-in ### ✅ Secure - SSL/TLS encryption - Encrypted at rest (AES-256) - Access control & IAM - Audit logs for compliance ### ✅ Auto-Scaling - Vertical scaling (CPU/Memory) - Horizontal scaling (Storage) - No downtime scaling - Automatic performance tuning ### ✅ Fully Managed - Automatic patching - Version updates - Performance monitoring - Security updates included --- ## Database Lifecycle ### 1. Create Database Choose database type, configure storage and region ### 2. Connect Applications Get connection details and connect your apps ### 3. Monitor Performance Track metrics and optimize queries ### 4. Scale Resources Increase storage or compute as needed ### 5. Backup & Recovery Automated backups + point-in-time recovery ### 6. Archive & Delete Optional: Archive data and delete when done --- ## Quick Start ### Step 1: Create Database ``` 1. Go to Databases → Create Database 2. Choose database type (PostgreSQL, MySQL, etc.) 3. Configure storage size (5-100 GB) 4. Select region 5. Set root password 6. Deploy ``` ### Step 2: Get Connection Details ``` - Hostname: db-xxx.database.nifetency.com - Port: 5432 (PostgreSQL), 3306 (MySQL) - Username: root - Password: Your secure password ``` ### Step 3: Connect Your App ```javascript // Node.js example const = require('pg'); const pool = new Pool(); ``` ### Step 4: Monitor & Scale - Monitor performance metrics - Scale storage when reaching 70% - Enable automatic updates - Regular backup testing --- ## Frequently Asked Questions ### Q: Are backups automatic? **A:** Yes, daily automatic backups are included. You also get point-in-time recovery for the last 7 days. ### Q: How much does it cost? **A:** Pricing is based on storage size and compute resources. Check our pricing page for current rates. ### Q: Can I change the database version? **A:** Yes, you can upgrade to newer versions. Some downgrades may be possible depending on compatibility. ### Q: Is my data encrypted? **A:** Yes, data is encrypted in transit (SSL/TLS) and at rest using AES-256 encryption. ### Q: Can I scale my database? **A:** Yes, you can increase CPU, memory, and storage anytime without downtime. ### Q: What's the uptime guarantee? **A:** We guarantee 99.9% uptime SLA for all managed databases. ### Q: How do I migrate existing data? **A:** You can import from SQL dumps, use replication, or restore from backups. See [Creating Databases](/Databases/Creating-Databases) guide. ### Q: Which database should I choose? **A:** PostgreSQL is recommended for most use cases. Choose MongoDB for document data, MySQL for WordPress, Redis for caching. ### Q: Can I have multiple databases? **A:** Yes, create as many databases as you need. Each has independent backups and scaling. ### Q: How long do backups keep? **A:** Automatic backups kept 7-30 days. Manual backups kept as long as you specify. Exported backups stored indefinitely. --- ## Connection Methods ### Connection String ``` PostgreSQL: postgresql://root:pass@hostname:5432/database MySQL: mysql://root:pass@hostname:3306/database MongoDB: mongodb://root:pass@hostname:27017/database Redis: redis://root:pass@hostname:6379 ``` ### Environment Variables ```bash export DB_HOST="db-prod.nifetency.com" export DB_PORT="5432" export DB_USER="root" export DB_PASSWORD="secure-password" export DB_NAME="myapp" ``` ### Docker Compose ```yaml services: app: environment: DB_HOST: db-prod.nifetency.com DB_PORT: 5432 DB_USER: root DB_PASSWORD: secure-password ``` ### Connection Pooling Reuse connections for better performance and lower resource usage --- ## Performance Optimization ### Monitor Key Metrics - CPU usage (target: < 70%) - Memory usage (target: < 70%) - Disk usage (target: < 80%) - Query performance (identify slow queries) ### Optimization Tips 1. Add indexes to frequently queried columns 2. Optimize slow queries using EXPLAIN 3. Archive old data regularly 4. Enable connection pooling 5. Use read replicas for heavy read workloads ### Scaling Strategy - **Start small**: 5-10 GB for most projects - **Monitor growth**: Track disk/CPU usage - **Scale early**: Don't wait until limits - **Test scaling**: Use staging before production - **Plan replicas**: For high availability --- ## Security Best Practices ### 1. Access Control - Change default passwords immediately - Use strong, complex passwords - Create app-specific users (not root) - Enable SSL/TLS for all connections ### 2. Network Security - Use VPC/private networks when possible - Whitelist application IPs - Enable firewall rules - Audit access logs ### 3. Data Protection - Enable encryption at rest - Use SSL for all connections - Regular backup testing - Comply with regulations (GDPR, HIPAA, etc.) ### 4. Monitoring & Alerts - Monitor connection count - Alert on high CPU/memory - Track slow queries - Review audit logs --- ## Database Comparison | Feature | PostgreSQL | MySQL | MongoDB | Redis | |---------|-----------|-------|---------|-------| | **Type** | Relational | Relational | Document | Key-Value | | **Use Case** | Complex queries | Web apps | Flexible data | Caching | | **ACID** | ✅ Full | ✅ Full | ✅ 4.0+ | ❌ No | | **Transactions** | ✅ Full | ✅ Full | ✅ Full | ⚠️ Limited | | **Schema** | Fixed | Fixed | Flexible | N/A | | **Learning Curve** | Moderate | Easy | Easy | Very easy | --- ## Quick Links ### Guides - **[Creating Databases](/Databases/Creating-Databases)** - Complete setup guide - **[Connecting to Databases](/Databases/Connecting-Databases)** - Connection examples - **[Managing Databases](/Databases/Managing-Databases)** - Operations guide - **[Backup & Recovery](/Databases/Backup-Recovery)** - Data protection ### Related Documentation - [Applications](/CLI/apps) - Deploy applications using databases - [Volumes](/Volumes/overview) - Persistent storage for databases - [Quick Start](/Quick-Start/nifectl-commands) - Getting started guide ### Tools & Resources - DBeaver - Free database client (PostgreSQL, MySQL) - MongoDB Compass - Official MongoDB GUI - Redis Desktop Manager - Redis client - RedisInsight - Official Redis UI --- ## Support **Need help with databases?** - **Documentation**: Check the guides above - **FAQ**: See frequently asked questions section - **Status**: Check [Nife Status Page](https://status.nife.io) - **Contact**: support@nife.io - **Community**: Join our [OpenHub community](https://openhub.nife.io) --- ## What's Next? Ready to get started? Follow these steps: 1. **[Create your first database](/Databases/Creating-Databases)** - 5 minutes 2. **[Connect your application](/Databases/Connecting-Databases)** - 10 minutes 3. **[Set up monitoring](/Databases/Managing-Databases)** - 5 minutes 4. **[Test backup & recovery](/Databases/Backup-Recovery)** - 15 minutes **Estimated total time**: 35 minutes to production-ready database! --- ## DevOps Handbook | Nife Docs URL: https://docs.nife.io/Devops-Handbook Nife Docs DevOps Handbook A comprehensive guide to DevOps principles, culture, delivery practices, and engineering metrics — everything you need to build high-performing engineering teams and systems. 6 chapters · 24 sections · ~3 hour read export const Chapter = () => ( e.currentTarget.querySelector('.ch-title').style.color = 'var(--ifm-color-primary)'} onMouseLeave=> → ); export const PartLabel = () => ( ); Table of contents Part I — Foundations Part II — Culture Part III — Delivery Part IV — Platform & Metrics --- ## Start reading New to DevOps? Start with Chapter 01 — Introduction to DevOps Measuring performance? Jump to Chapter 06 — DORA, SPACE and MONK metrics Building pipelines? Jump to Chapter 04 — Deployment Pipelines --- ## Related resources - [Nife Platform](https://nife.io) — Deploy and manage apps with DevOps best practices built in - [Quick Start Guide](/Quick-Start/Deploy-First-App) — Deploy your first app on Nife in minutes - [Blog: Application Deployment Types Explained](https://blog.nife.io/post/application-deployment-and-the-various-deployment-types-explained/) - [Blog: Mastering Kubernetes Deployments with Helm](https://blog.nife.io/post/mastering-kubernetes-deployments-with-helm/) --- ## How to Add Custom Domains to Nife Apps | Step-by-Step Guide URL: https://docs.nife.io/Domains/Adding-Custom-Domains Map your custom domain to applications and static sites in a few simple steps. --- ## Before You Start **What you need:** - Registered domain name (e.g., myapp.com) - Domain registrar account access - Ability to modify DNS records - The domain must be registered before adding **Where to register:** - GoDaddy - Namecheap - Bluehost - AWS Route 53 - CloudFlare - Any domain registrar --- ## Step 1: Choose Resource Type ### Add Domain to Application For deployed web applications: 1. Go to **Domains** page 2. Click **Map Custom Domain** 3. Select **Application** 4. Choose app from dropdown **Requirements:** - Application must be deployed - Application must have external port - Must have active status ### Add Domain to Static Site For deployed static sites: 1. Go to **Domains** page 2. Click **Map Custom Domain** 3. Select **Static Site** 4. Choose site from dropdown **Requirements:** - Site must be deployed - Site must be active - S3 bucket must be configured --- ## Step 2: Enter Domain Name ### Domain Name Format Enter your custom domain: **Full Domain:** ``` myapp.com www.myapp.com api.myapp.com blog.myapp.com ``` **Subdomains Allowed:** ``` subdomain.myapp.com v2.api.myapp.com staging.myapp.com ``` **Valid Format:** - Lowercase letters (a-z) - Numbers (0-9) - Hyphens (-) - Dots for subdomains **Invalid Format:** - Uppercase letters - Spaces - Special characters (except hyphen and dot) - Bare domain without TLD ### Domain Requirements **Valid Domain:** - ✅ Registered with registrar - ✅ Active and not expired - ✅ You own or control it - ✅ 1-63 characters per label **Invalid Domain:** - ❌ Not registered - ❌ Expired - ❌ Belongs to someone else - ❌ Invalid characters --- ## Step 3: Review Connection Details Before confirming, you'll see: **Connection Information:** ``` Resource: myapp-api Domain: api.myapp.com Type: Application Current URL: myapp.nifetency.com DNS Record Type: CNAME Value: app.elb.nifetency.com ``` **What this means:** - Your domain will point to Nife infrastructure - CNAME record redirects traffic - Automatic SSL certificate will be provisioned - Domain will be active within 5-30 minutes --- ## Step 4: Update DNS Records ### Understanding DNS DNS (Domain Name System) translates domain names to IP addresses. **DNS Records:** - **CNAME**: Points domain to another domain (recommended) - **A Record**: Points domain to IP address - **ALIAS**: Special record type (some registrars) ### Access Your Registrar 1. Log into your domain registrar 2. Find DNS settings (may be called "Nameservers," "Records," "DNS Management") 3. Look for DNS or Advanced options **Common Registrars:** - GoDaddy: GoDaddy.com → Domain Control Panel - Namecheap: Namecheap.com → Manage Domain - Bluehost: Bluehost.com → cPanel - AWS Route 53: AWS Console → Route 53 ### Add CNAME Record **For most domains, add a CNAME record:** 1. In your registrar, find DNS/Records section 2. Click **Add Record** or **Add CNAME** 3. Fill in: - **Name**: `api` (subdomain part only) - **Type**: `CNAME` - **Value**: `app.elb.nifetency.com` (from Nife) - **TTL**: 3600 (or default) **Example for api.myapp.com:** ``` Name: api Type: CNAME Value: app.elb.nifetency.com TTL: 3600 ``` **Example for www.myapp.com:** ``` Name: www Type: CNAME Value: app.elb.nifetency.com TTL: 3600 ``` ### Add A Record (Alternative) If CNAME not available: ``` Type: A Name: @ Value: [IP Address from Nife] TTL: 3600 ``` --- ## Step 5: Verify Configuration ### Wait for DNS Propagation DNS changes take time to propagate: **Timeline:** - Immediate: Changes saved at registrar - 5 minutes: Most ISPs see change - 1 hour: Most providers updated - 24-48 hours: Complete propagation ### Test Your Domain **Before propagation completes:** 1. Check DNS record saved in registrar 2. Use online DNS checker 3. Wait 5-15 minutes before testing **After propagation:** 1. Open your domain in browser 2. Should show your application 3. Check for lock icon (HTTPS) 4. SSL certificate should be valid ### Verify in Nife 1. Go back to **Domains** 2. Find your domain in list 3. Status should show "Active" 4. SSL column shows "Secured" --- ## Troubleshooting ### Problem: Domain Not Working **Symptoms:** - Domain shows error page - "Site not found" message - DNS lookup fails **Solutions:** 1. **Verify DNS record:** - Go back to registrar - Check CNAME value is exactly correct - Remove any extra spaces - Check TTL setting 2. **Wait for propagation:** - DNS takes up to 24 hours - Check status with: `nslookup myapp.com` - Use online DNS checker tool 3. **Check domain spelling:** - Verify domain name is correct - Check for typos - Confirm registrar shows active 4. **SSL certificate:** - May take 5-10 minutes to provision - Check in Nife dashboard - Certificate should show "Valid" ### Problem: HTTPS Not Working **Symptoms:** - Page loads but no lock icon - SSL error in browser - Certificate error **Solutions:** 1. Wait for SSL provisioning (5-10 minutes) 2. Refresh browser (hard refresh: Ctrl+F5) 3. Clear browser cache 4. Check certificate status in Nife ### Problem: Old Domain Still Works **Symptoms:** - Old domain still resolves - Both old and new work - Confused which to use **Solutions:** 1. Old domain will continue working 2. Can use either domain 3. Consider setting up redirects 4. Update links to new domain ### Problem: Email Not Working **Symptoms:** - Email stopped working - Cannot send emails - Email bounces **Solutions:** 1. CNAME record doesn't affect email 2. Keep separate MX records for email 3. Don't replace MX records 4. DNS should have both CNAME and MX --- ## DNS Record Examples ### Gmail Custom Domain ``` Keep these MX records: aspmx.l.google.com (priority 10) alt1.aspmx.l.google.com (priority 20) Add this CNAME: www CNAME app.elb.nifetency.com ``` ### Forwarding Email ``` MX Records: (for email service) api CNAME app.elb.nifetency.com ``` ### Subdomain ``` api CNAME app.elb.nifetency.com www CNAME app.elb.nifetency.com ``` --- ## Best Practices ### 1. Double-Check Values - Copy CNAME value exactly from Nife - No extra spaces - Correct capitalization - Remove old records if present ### 2. Use Descriptive Names For subdomains, use clear names: - ✅ `www` for main domain - ✅ `api` for API endpoint - ✅ `blog` for blog section - ❌ `app1`, `test`, `temp` ### 3. Set Appropriate TTL - Lower TTL (300): More frequent updates, slower to propagate - Higher TTL (3600): Less frequent updates, faster propagation - Default (3600): Usually fine for most cases ### 4. Keep Email Working - Don't replace MX records - Keep both CNAME and MX records - MX for email, CNAME for web traffic - Test email after DNS changes ### 5. Monitor After Setup - Verify domain works - Check HTTPS works - Monitor for errors - Keep DNS records documented ### 6. Update Links - Update bookmarks to new domain - Update documentation - Update social media links - Update any hardcoded URLs --- ## Multiple Domains ### Same App, Multiple Domains Add multiple domains to same application: ``` myapp.com → myapp-app www.myapp.com → myapp-app app.myapp.com → myapp-app ``` **Each domain needs:** - Separate CNAME record - Same target (same app) - Separate SSL certificate (auto-provisioned) - Added through Domains interface ### Subdomains vs Root Domain **Root domain (example.com):** ``` Type: A Record (or CNAME depending on registrar) Name: @ (or leave blank) Value: IP address or CNAME target ``` **Subdomain (www.example.com):** ``` Type: CNAME Name: www Value: app.elb.nifetency.com ``` --- ## Next Steps 1. **[DNS Configuration](/Domains/DNS-Configuration)** - Detailed DNS setup 2. **[SSL Certificates](/Domains/SSL-Certificates)** - Certificate management 3. **[Monitoring Domains](/Domains/Monitoring-Domains)** - Track domain usage --- ## Support **Issues adding a domain?** - Check troubleshooting section above - Verify DNS records in registrar - Wait for DNS propagation - Contact support: support@nife.io --- ## Domain Backup & Recovery | Nife Docs URL: https://docs.nife.io/Domains/Backup-Recovery Learn how to safeguard your domain configurations and recover them quickly if needed. ## Overview Domain backup and recovery ensures your custom domains remain functional even during infrastructure changes, DNS provider issues, or accidental misconfigurations. ## Backing Up Domain Configuration Before making changes to your domain settings, record the following: - **CNAME or A record values** pointing to your Nife application - **SSL certificate status** and expiry dates - **DNS TTL settings** for each record You can view your current domain configuration under your application's **Domains** section in the Nife dashboard. ## Recovering a Domain If your domain stops resolving correctly: 1. Navigate to your application in the Nife dashboard 2. Go to **Domains** → select the affected domain 3. Verify the CNAME or A record matches your Nife-provided endpoint 4. Re-add the domain if it has been accidentally removed 5. Allow up to 48 hours for DNS propagation after changes ## Related - [DNS Configuration](/Domains/DNS-Configuration) - [Adding Custom Domains](/Domains/Adding-Custom-Domains) - [SSL Certificates](/Domains/SSL-Certificates) --- ## DNS Configuration Guide: CNAME, A Records & Setup | Nife Docs URL: https://docs.nife.io/Domains/DNS-Configuration Configure DNS records to point your domain to Nife applications. --- ## DNS Basics ### What is DNS? DNS (Domain Name System) translates domain names to server addresses: ``` myapp.com ↓ (DNS lookup) ↓ app.elb.nifetency.com ↓ (IP address) ↓ Your application ``` ### How It Works 1. **You type domain** in browser 2. **Browser queries DNS** for address 3. **DNS resolves domain** to target 4. **Browser connects** to application 5. **Content loads** from application --- ## DNS Record Types ### CNAME Record (Recommended) Points one domain to another domain: **Format:** ``` Name: api Type: CNAME Value: app.elb.nifetency.com TTL: 3600 ``` **When to use:** - ✅ Mapping subdomains - ✅ Flexible failover - ✅ Load balancing - ✅ Multiple apps **Advantages:** - Can change target easily - Multiple records point to same target - No IP address needed - More flexible **Limitations:** - Cannot use on root domain (@) with some registrars - Extra DNS lookup - Slightly slower than A records --- ### A Record Points domain to IP address: **Format:** ``` Name: myapp Type: A Value: 203.0.113.42 TTL: 3600 ``` **When to use:** - ✅ Root domain mapping - ✅ Direct IP address needed - ✅ Simple setup - ✅ Some registrars require it **Advantages:** - Fast resolution - Works for root domain - Direct IP connection - One step lookup **Limitations:** - Must update if IP changes - Less flexible than CNAME - Not ideal for load balancing --- ### ALIAS Record Special record (GoDaddy, some others): ``` Name: @ Type: ALIAS Value: app.elb.nifetency.com ``` **When to use:** - ✅ Root domain with CNAME-like benefits - ✅ When registrar supports it - ✅ Flexible root domain mapping **Registrars with ALIAS:** - GoDaddy - Route 53 - Some others --- ### MX Record For email routing: ``` Type: MX Name: @ Value: mail.example.com Priority: 10 ``` **Use for:** - Email delivery - Separate from website **Keep separate from:** - Website CNAME records - Application traffic --- ## Setting Up DNS Records ### Step 1: Log Into Registrar Access your domain registrar: **Popular registrars:** - **GoDaddy**: godaddy.com - **Namecheap**: namecheap.com - **Bluehost**: bluehost.com - **HostGator**: hostgator.com - **Route 53**: AWS console - **Cloudflare**: cloudflare.com ### Step 2: Find DNS Settings Navigate to DNS management: **GoDaddy:** ``` Home → My Products → Domains → Choose Domain → DNS or Manage Nameservers ``` **Namecheap:** ``` Dashboard → Manage Domain → DNS Records ``` **Route 53:** ``` AWS Console → Route 53 → Hosted Zones → Choose Domain ``` ### Step 3: Add Record Click "Add Record" or similar: **Fill in:** 1. **Name/Subdomain**: (e.g., api, www, @) 2. **Type**: CNAME or A 3. **Value**: Target from Nife 4. **TTL**: 3600 or default 5. **Priority**: (if MX record) ### Step 4: Save Save the DNS record: - Record saved immediately - Propagation may take time - Status may show "pending" --- ## Common DNS Configurations ### Website + Email **Setup:** ``` Type Name Value MX @ mail.example.com (priority 10) MX @ mail2.example.com (priority 20) CNAME www app.elb.nifetency.com CNAME api app.elb.nifetency.com ``` **Result:** - Email uses MX records - Website uses CNAME - Both can coexist ### Root Domain **Option 1: With ALIAS (GoDaddy, Route 53)** ``` Type Name Value ALIAS @ app.elb.nifetency.com ``` **Option 2: With A Record** ``` Type Name Value A @ [IP Address] ``` **Option 3: Redirect** ``` Redirect example.com → www.example.com Type www CNAME app.elb.nifetency.com ``` ### Multiple Subdomains **Setup:** ``` Type Name Value CNAME www app.elb.nifetency.com CNAME api app.elb.nifetency.com CNAME blog app.elb.nifetency.com CNAME staging app.elb.nifetency.com ``` **Result:** - All subdomains point to application - Can access via any subdomain - Same application for all ### Load Balancing **Setup:** ``` Type Name Value (weighted) CNAME app server1.elb.nifetency.com (weight 50) CNAME app server2.elb.nifetency.com (weight 50) ``` **Result:** - Traffic distributed - Failover protection - Load balanced access --- ## DNS Propagation ### How Propagation Works When you make DNS changes: 1. **Immediate**: Changes at registrar 2. **5 minutes**: Local ISP updates 3. **1 hour**: Most servers updated 4. **24 hours**: Complete propagation **Factors affecting speed:** - TTL value (lower = faster) - ISP caching - DNS resolver caching - Server locations ### Check Propagation **Using Terminal:** ```bash # Check DNS resolution nslookup myapp.com dig myapp.com host myapp.com # Specific record type nslookup -type=CNAME myapp.com dig CNAME myapp.com ``` **Using Online Tools:** - MXToolbox.com - DNSChecker.org - WhatIsMyIPAddress.com/DNS-Propagation **Result:** ``` Query returned: api.myapp.com → app.elb.nifetency.com ``` --- ## Troubleshooting DNS ### Problem: DNS Not Resolving **Symptoms:** - Domain returns error - DNS lookup fails - "Host not found" message **Solutions:** 1. Verify DNS record saved at registrar 2. Check record name and value 3. Wait 5-15 minutes for initial propagation 4. Use online DNS checker 5. Try flushing DNS cache: ```bash # Windows ipconfig /flushdns # macOS sudo dscacheutil -flushcache # Linux sudo systemctl restart nscd ``` ### Problem: Old DNS Still Resolving **Symptoms:** - Old website still loads - DNS shows old target - Changes not taking effect **Solutions:** 1. Wait longer for propagation 2. Lower TTL for faster updates 3. Check registrar saved changes 4. Try different DNS resolver: - 8.8.8.8 (Google) - 1.1.1.1 (Cloudflare) - 208.67.222.222 (OpenDNS) ### Problem: Partial Propagation **Symptoms:** - Works from some locations - Doesn't work from others - Inconsistent results **Solutions:** 1. Completely normal during propagation 2. Most locations update within 1 hour 3. Wait 24 hours for complete propagation 4. No action needed, just wait --- ## DNS Best Practices ### 1. Lower TTL Before Changes Before making DNS changes: 1. Lower TTL to 300-600 seconds 2. Wait for propagation 3. Make DNS changes 4. Propagates faster 5. Then increase TTL back to 3600 ### 2. Backup Records Keep record of current DNS: ``` Type Name Value TTL CNAME www current 3600 CNAME api current 3600 ``` ### 3. Use Descriptive Names Use clear subdomain names: - `www` - main domain - `api` - API endpoint - `blog` - blog section - `staging` - staging environment ### 4. Document Changes Track DNS modifications: - Date of change - What changed - Reason for change - Who made change ### 5. Monitor TTL Keep appropriate TTL: - Development: 300-600 seconds - Production: 3600+ seconds - Stability: 3600-86400 seconds ### 6. Separate Concerns Keep DNS records organized: - Web traffic → CNAME - Email → MX records - Other services → Separate records --- ## DNS Tools ### Free Checkers - **DNSChecker.org**: Visual checker - **MXToolbox.com**: Detailed diagnostics - **WhatsMyDNS.com**: Global propagation - **Zonemaster**: DNSSEC validation ### Command Line ```bash # Basic lookup nslookup domain.com dig domain.com host domain.com # Specific record type dig CNAME domain.com dig MX domain.com # Trace DNS path dig +trace domain.com ``` ### Registrar Tools Most registrars have built-in: - DNS record checker - Propagation status - Record editor - Export/import features --- ## Next Steps 1. **[Adding Custom Domains](/Domains/Adding-Custom-Domains)** - Setup your domain 2. **[SSL Certificates](/Domains/SSL-Certificates)** - Secure your domain 3. **[Monitoring Domains](/Domains/Monitoring-Domains)** - Track usage --- ## Support **DNS issues?** - Check sections above - Use online DNS tools - Verify records in registrar - Contact support: support@nife.io --- ## Domain Monitoring & Analytics Guide URL: https://docs.nife.io/Domains/Monitoring-Domains Track domain performance, analyze usage, and monitor health. --- ## Domain Dashboard ### Overview The Domains page shows key metrics: **Resources:** - Applications with domains - Static sites with domains - Total domains configured **SSL Status:** - Secured with HTTPS - Unsecured domains - Certificate health **Quick Status:** - Active domains - Configuration status - Health checks --- ## Key Metrics ### Traffic Metrics **Page Views:** Number of times your domain was accessed **Unique Visitors:** Number of different users visiting **Bounce Rate:** Percentage of single-page visits **Average Session Duration:** How long users stay on average ### Performance Metrics **Page Load Time:** How fast pages load **Time to First Byte (TTFB):** Time server takes to respond **Core Web Vitals:** - Largest Contentful Paint (LCP) - First Input Delay (FID) - Cumulative Layout Shift (CLS) ### Security Metrics **HTTPS Usage:** Percentage of encrypted traffic **Certificate Status:** Valid, expiring soon, or expired **SSL Errors:** Count of security-related issues --- ## Monitoring Domain Health ### Active Monitoring Nife continuously monitors: **Availability:** - Domain responds - Application running - Server healthy **Performance:** - Response time - Page load speed - Resource usage **Security:** - SSL certificate valid - No security errors - No vulnerabilities **Configuration:** - DNS correct - Certificate installed - Settings valid ### Health Status **Healthy** ✅ - Domain accessible - HTTPS working - Certificate valid - Performance good - No errors **Warning** ⚠️ - Slow performance - Certificate expiring soon - Some errors - Configuration issues **Critical** ❌ - Domain not accessible - Certificate expired - High error rate - Connection issues --- ## Analytics ### View Analytics 1. Go to **Domains** page 2. Click domain name 3. Go to **Analytics** tab 4. See traffic and performance data ### Traffic Patterns **By Time:** - Hourly traffic - Daily traffic - Weekly patterns - Monthly trends **By Source:** - Direct visits - Search engines - Referral sites - Social media **By Location:** - Geographic distribution - User countries - User regions - City-level data ### Performance Analysis **Page Speed:** - Improve load times - Optimize resources - Reduce latency - Compress images **User Experience:** - Core Web Vitals - Mobile performance - Desktop performance - Interaction metrics --- ## SSL Certificate Monitoring ### Certificate Status Monitor certificate health: **Active:** - Valid and working - Not expired - Properly installed **Expiring Soon:** - Less than 30 days until expiration - Renewal in progress - Usually auto-renewed **Expired:** - Certificate past expiration date - Users see warnings - Needs immediate action ### Renewal Status Track automatic renewal: **Auto-Renewal Enabled:** - Certificate auto-renews - No action needed - Tracked automatically **Manual Renewal:** - Explicit approval needed - You initiate renewal - Must monitor dates ### View Certificate 1. Go to **Domains** 2. Click domain 3. Go to **Certificate** tab 4. View details: - Issuer - Subject - Valid dates - Algorithms --- ## Setting Up Alerts ### Alert Types **Performance Alerts:** - Page load time exceeds threshold - Too many errors - High bounce rate **Security Alerts:** - SSL certificate expiring - Certificate invalid - Security errors detected **Availability Alerts:** - Domain unreachable - Application down - 404 errors high ### Create Alert 1. Go to **Domains** 2. Click **Settings** 3. Select **Alerts** 4. Choose alert type 5. Set threshold 6. Choose notification method ### Notification Channels **Email:** - Alerts to email address - Good for important events - Batch or immediate **SMS:** - Text message alerts - For critical issues - Immediate notification **Webhook:** - Custom integration - Program your response - Automated action **Dashboard:** - In-app notifications - Always visible - Persistent display --- ## Troubleshooting ### High Error Rate **Symptoms:** - 4xx or 5xx errors increasing - Users report issues - Analytics show errors **Investigation:** 1. Check application logs 2. Review error messages 3. Check database status 4. Review recent changes **Common Causes:** - Application bug - Database issue - Configuration error - Resource limit reached **Solutions:** 1. Roll back recent change 2. Restart application 3. Check resources 4. Fix underlying issue ### Slow Performance **Symptoms:** - Page load time increasing - Users report slowness - Analytics show high TTFB **Investigation:** 1. Check server metrics 2. Review database queries 3. Analyze resource usage 4. Check network latency **Common Causes:** - High CPU usage - Memory exhausted - Slow queries - External API delays **Solutions:** 1. Scale up resources 2. Optimize code 3. Add caching 4. Improve database queries ### Certificate Issues **Symptoms:** - Red lock icon - Certificate errors - Mixed content warnings **Investigation:** 1. Check certificate status 2. Verify expiration date 3. Check domain name 4. Review certificate chain **Solutions:** 1. Wait for auto-renewal 2. Manual renewal if needed 3. Verify DNS is correct 4. Contact support if persistent --- ## Performance Optimization ### Improve Page Load **Optimization Tips:** 1. Compress images 2. Minify CSS/JavaScript 3. Enable caching 4. Use CDN 5. Remove unused resources **Measure:** 1. Use PageSpeed Insights 2. Check Core Web Vitals 3. Monitor analytics 4. Track changes over time ### Improve Security Score **Actions:** 1. Ensure HTTPS everywhere 2. Add security headers 3. Keep certificate updated 4. Fix security warnings 5. Enable 2FA **Monitor:** 1. SSL test score 2. Security headers 3. Vulnerabilities 4. Best practices --- ## Best Practices ### 1. Monitor Regularly - Check analytics weekly - Review performance trends - Monitor certificate status - Track error rates ### 2. Set Alerts - Critical issues only - Avoid alert fatigue - Test alert channels - Document thresholds ### 3. Optimize Performance - Keep page load time low - Monitor Core Web Vitals - Improve user experience - Track improvements ### 4. Maintain Security - Monitor certificate dates - Keep HTTPS enabled - Watch for errors - Address warnings ### 5. Document Baselines - Record normal metrics - Note performance patterns - Document thresholds - Track changes ### 6. Act on Data - Analyze trends - Identify issues early - Implement improvements - Measure results --- ## Tools for Monitoring ### Built-in Tools **Nife Dashboard:** - Real-time monitoring - Analytics - Certificate status - Health checks ### External Tools **Performance:** - Google PageSpeed Insights - WebPageTest - GTmetrix - Lighthouse **Analytics:** - Google Analytics - Matomo - Plausible - Simple Analytics **Security:** - SSL Labs - Mozilla Observatory - Qualys SSL Checker - Hardenize --- ## Next Steps 1. **[Adding Custom Domains](/Domains/Adding-Custom-Domains)** - Domain setup 2. **[DNS Configuration](/Domains/DNS-Configuration)** - DNS setup 3. **[SSL Certificates](/Domains/SSL-Certificates)** - Certificate info --- ## Support **Monitoring questions?** - Check sections above - Use external tools - Contact support: support@nife.io --- ## SSL Certificates & HTTPS: Complete Security Guide | Nife Docs URL: https://docs.nife.io/Domains/SSL-Certificates Understand SSL certificates, HTTPS encryption, and domain security. --- ## What is SSL/TLS? ### Understanding HTTPS HTTPS (HyperText Transfer Protocol Secure) encrypts data between browser and server: **Without HTTPS (HTTP):** ``` Browser ←→ [plain text] ←→ Server (Anyone can read data) ``` **With HTTPS (HTTP + SSL/TLS):** ``` Browser ←→ [encrypted] ←→ Server (Only browser and server can read) ``` ### SSL vs TLS - **SSL** (Secure Sockets Layer): Older protocol - **TLS** (Transport Layer Security): Modern replacement - **HTTPS**: HTTP with SSL/TLS encryption - Modern browsers use TLS - Term "SSL" still used commonly --- ## Certificate Basics ### What is an SSL Certificate? A digital document that: - Identifies your domain - Verifies ownership - Encrypts connections - Proves authenticity - Enables HTTPS **Certificate contains:** - Domain name - Organization name - Issue date - Expiration date - Public key - Digital signature ### Certificate Types **Single Domain Certificate** ``` Covers: myapp.com only Subdomains: NO (www.myapp.com won't work) Cost: Cheapest Use: Single domain ``` **Wildcard Certificate** ``` Covers: *.myapp.com (all subdomains) Subdomains: YES Cost: More expensive Use: Multiple subdomains ``` **Multi-Domain Certificate (SAN)** ``` Covers: myapp.com, shop.com, blog.net Subdomains: As specified Cost: Varies Use: Multiple domains ``` --- ## Automatic Certificate Provisioning ### How Nife Issues Certificates Nife automatically provisions SSL certificates for all domains: **Process:** 1. You add custom domain 2. Nife verifies domain ownership 3. Automatic certificate issued 4. Certificate installed 5. HTTPS enabled **Verification Methods:** - DNS verification (CNAME record) - HTTP verification (temporary file) - Email verification (to domain owner) ### What's Included - ✅ Free SSL certificates - ✅ Automatic renewal - ✅ All custom domains covered - ✅ Wildcard support - ✅ Multi-domain support - ✅ HTTPS enabled by default ### Timeline ``` Day 1: - Add custom domain to Nife - DNS verification starts 5-10 minutes: - DNS propagates - Certificate issued 1 hour: - Certificate fully active - HTTPS enabled - Green lock appears ``` --- ## Certificate Status ### Check Certificate Status In Nife dashboard: 1. Go to **Domains** 2. Find your domain 3. Check SSL column 4. Status shows: - **Valid**: Working, encrypted - **Pending**: Being issued - **Expired**: Needs renewal - **Error**: Issue with certificate ### View Certificate Details In browser: 1. Click lock icon in address bar 2. Click "Certificate" or "Connection Secure" 3. See certificate details: - Issued to: (domain) - Issued by: (authority) - Valid from: (date) - Valid until: (date) --- ## HTTPS Enforcement ### Automatic Redirection HTTPS is automatically enforced: ``` http://myapp.com ↓ (redirect) ↓ https://myapp.com ``` **Benefits:** - All traffic encrypted - Transparent to users - No configuration needed - SEO boost (Google prefers HTTPS) ### Mixed Content If page loads HTTP resources on HTTPS page: **Browser may:** - Block resources - Show warnings - Mark as insecure **Fix:** - Use HTTPS for all resources - Use protocol-relative URLs: `//cdn.com/file.js` - Server should rewrite to HTTPS --- ## Certificate Renewal ### Automatic Renewal Nife automatically renews certificates: **Before Expiration:** - 60 days: Renewal begins - 30 days: Final notice - 7 days: Daily checks - On expiration: Auto-renewed **You don't need to:** - Request renewal - Provide anything - Take any action - Monitor expiration ### Manual Renewal If needed, you can: 1. Go to **Domains** 2. Find domain 3. Click **Renew Certificate** 4. Certificate renewed immediately --- ## Certificate Chain ### Understanding Certificate Hierarchy Certificate chains verify authenticity: ``` Root CA (Trusted Authority) ↓ Intermediate Certificate ↓ Your Domain Certificate ``` **Browser verifies:** 1. Your certificate signed by intermediate 2. Intermediate signed by root 3. Root is trusted by browser 4. All valid = green lock ### Certificate Details View full certificate chain: **In Browser:** 1. Click lock icon 2. Select "Certificate" 3. View certificate hierarchy 4. See all details **Common Details:** - **Subject**: Domain name - **Issuer**: Certificate authority - **Valid From**: Start date - **Valid To**: Expiration date - **Signature Algorithm**: Encryption method --- ## Security Best Practices ### 1. Always Use HTTPS - Never use HTTP for sensitive data - Enable automatic redirects - Use HTTPS for all pages - Encrypt all resources ### 2. Test Certificate Before going live: 1. Visit domain in browser 2. Check for green lock 3. Click lock for details 4. Verify domain name 5. Check expiration date ### 3. Monitor Expiration Although auto-renewal happens: - Monitor certificate expiration - Check renewal status - Verify new certificate issued - Test after renewal ### 4. Include Security Headers Add headers for extra security: ``` Strict-Transport-Security Content-Security-Policy X-Content-Type-Options: nosniff X-Frame-Options: DENY ``` ### 5. Update Links Update all links to HTTPS: - Internal links - External references - Hardcoded URLs - API endpoints --- ## Certificate Issues ### Problem: Expired Certificate **Symptoms:** - Red X on lock icon - "Certificate has expired" - Browser security warning **Solutions:** 1. Wait for auto-renewal 2. Manual renewal in dashboard 3. Check certificate status 4. Refresh browser ### Problem: Domain Mismatch **Symptoms:** - Yellow warning - "Subject does not match" - Domain name error **Solutions:** 1. Verify domain is correct 2. Add domain to certificate 3. Wildcard for subdomains 4. Request new certificate ### Problem: Untrusted Certificate **Symptoms:** - Red error - "Untrusted authority" - Browser refuses connection **Solutions:** 1. Verify certificate issuer 2. Check certificate chain 3. Request new certificate 4. Contact support ### Problem: Mixed Content **Symptoms:** - Some resources load, others don't - Browser warnings - Insecure content blocked **Solutions:** 1. Change HTTP to HTTPS 2. Use protocol-relative URLs 3. Update content sources 4. Check CDN settings --- ## Certificate Information ### What Nife Provides - **Type**: Single domain - **Authority**: Let's Encrypt or similar - **Encryption**: 256-bit (industry standard) - **Renewal**: Automatic before expiration - **Cost**: Free ### Certificate Authority Nife uses trusted, free authorities: - **Let's Encrypt**: Non-profit, free - **DigiCert**: Industry leading - **GlobalSign**: Trusted authority - All recognized by major browsers ### Certificate Validation Level of validation provided: - **Domain Validation (DV)**: Domain ownership verified - **No Business Validation**: Organization not verified - **Good for**: Websites, applications --- ## Wildcard Certificates ### When to Use Wildcard Use wildcard for multiple subdomains: ``` Certificate: *.myapp.com Covers: - www.myapp.com - api.myapp.com - blog.myapp.com - anything.myapp.com ``` ### Requesting Wildcard If needed: 1. Add subdomain with wildcard 2. Nife provisions wildcard certificate 3. All subdomains covered 4. Single certificate for all --- ## HTTPS Best Practices ### 1. Always Redirect Redirect HTTP to HTTPS: ``` http://myapp.com → https://myapp.com ``` ### 2. Use Secure Cookies ``` Set-Cookie: SessionID=xyz; Secure; HttpOnly; SameSite=Strict ``` ### 3. HSTS Header Enable strict HTTPS: ``` Strict-Transport-Security: max-age=31536000; includeSubDomains ``` ### 4. Certificate Transparency Enable certificate monitoring: - Google Certificate Transparency - Get notifications of new certs - Monitor for misuse ### 5. Test Regularly 1. Visit site in browser 2. Check green lock 3. Click for details 4. Verify certificate --- ## Next Steps 1. **[Adding Custom Domains](/Domains/Adding-Custom-Domains)** - Domain setup 2. **[Monitoring Domains](/Domains/Monitoring-Domains)** - Track usage 3. **[DNS Configuration](/Domains/DNS-Configuration)** - DNS setup --- ## Support **SSL/Certificate issues?** - Check sections above - Verify domain setup - Contact support: support@nife.io --- ## Domains & DNS Management | Complete Guide | Nife Docs URL: https://docs.nife.io/Domains Complete guide to managing custom domains, configuring DNS records, securing with SSL certificates, and monitoring domain health. ## Getting Started with Custom Domains Setting up a custom domain for your Nife applications takes just a few steps: 1. **[Domains Overview](/Domains/Domains-Overview)** - Understand domain types and benefits 2. **[Adding Custom Domains](/Domains/Adding-Custom-Domains)** - Connect your domain to apps 3. **[DNS Configuration](/Domains/DNS-Configuration)** - Configure DNS records 4. **[SSL Certificates](/Domains/SSL-Certificates)** - Secure with HTTPS 5. **[Monitoring Domains](/Domains/Monitoring-Domains)** - Track performance --- ## Key Features ### ✅ Automatic SSL Certificates Get free HTTPS certificates automatically for all your domains, with zero configuration. ### ✅ Easy DNS Setup Point your domain with simple CNAME records. Complete documentation for all registrars. ### ✅ Real-time Monitoring Track domain performance, uptime, and security with built-in analytics and alerts. ### ✅ Multiple Domains Connect unlimited custom domains and subdomains to your applications. ### ✅ Professional Branding Use your own domain to build brand credibility and customer trust. --- ## Topics ### Domain Setup - Custom domain management - Subdomain configuration - Domain mapping - Multi-domain applications ### DNS Configuration - CNAME records - A records - Nameserver setup - DNS propagation - DNS troubleshooting ### SSL & Security - HTTPS configuration - SSL certificate provisioning - Certificate renewal - Domain validation - Mixed content warnings ### Monitoring & Analytics - Domain performance - SSL certificate status - Traffic analytics - Core Web Vitals - Uptime monitoring --- ## Frequently Asked Questions ### How do I add a custom domain? Go to **Domains** → **Map Custom Domain**, select your application or site, enter your domain name, and follow the DNS setup instructions. It typically takes 5-30 minutes for propagation. [Learn more about adding custom domains →](/Domains/Adding-Custom-Domains) ### Is SSL included? Yes! Nife automatically provisions free SSL certificates for all domains. Your site will have HTTPS enabled automatically. [Learn more about SSL certificates →](/Domains/SSL-Certificates) ### How do I configure DNS records? DNS configuration depends on your registrar. Nife provides CNAME values - you add a CNAME record in your registrar pointing to Nife infrastructure. Most registrars support this in 2-3 minutes. [Detailed DNS setup guide →](/Domains/DNS-Configuration) ### Can I use subdomains? Yes! You can use any subdomain (www, api, blog, etc.) and point it to different applications or the same app. [Subdomain configuration guide →](/Domains/Adding-Custom-Domains#subdomains-vs-root-domain) ### What if DNS propagation is slow? This is normal - DNS takes up to 24-48 hours to propagate globally. You can check propagation status using online DNS tools. Most users will see the change within 1 hour. [DNS propagation troubleshooting →](/Domains/DNS-Configuration#dns-propagation) ### How do I monitor my domain? The Domains page shows all your domains with status, SSL certificates, and quick access to analytics. Click any domain to view detailed performance metrics. [Domain monitoring guide →](/Domains/Monitoring-Domains) --- ## Quick Links ### Setup Your Domain - [Step-by-step domain setup](/Domains/Adding-Custom-Domains) - [DNS configuration guide](/Domains/DNS-Configuration) - [SSL certificate info](/Domains/SSL-Certificates) ### Manage Your Domain - [Domain overview](/Domains/Domains-Overview) - [Monitoring & analytics](/Domains/Monitoring-Domains) - [Performance optimization](/Domains/Monitoring-Domains#performance-optimization) ### Troubleshoot Issues - [DNS troubleshooting](/Domains/DNS-Configuration#troubleshooting-dns) - [Domain not working](/Domains/Adding-Custom-Domains#problem-domain-not-working) - [SSL issues](/Domains/SSL-Certificates#certificate-issues) --- ## Related Documentation - [Deploy Applications](/deploy/deploy) - Deploy your apps to use with custom domains - [Static Sites](/UI-Guide/Site-deployment/Create-build) - Deploy static sites with custom domains - [Managing Applications](/manage/manage) - Application management --- ## Support **Need help with domains?** - Check the [FAQ](#frequently-asked-questions) section above - Browse troubleshooting guides for your specific issue - Contact support: **support@nife.io** - Visit our [OpenHub community](https://openhub.nife.io) --- ## K8s Logs API Reference - Complete Endpoint Documentation URL: https://docs.nife.io/K8s-Logs/API-Reference This guide provides comprehensive documentation for the Kubernetes Logs management API endpoints, including request/response formats and integration examples. ## Base URL ``` https://api.nife.io/v1/k8s/logs ``` All endpoints are prefixed with this base URL. ## Authentication All requests require authentication via Bearer token: ```bash Authorization: Bearer YOUR_ACCESS_TOKEN ``` Obtain access tokens from the **Access Tokens** page in the UI. ## API Endpoints Overview ### Collection Configuration (7 endpoints) Manage which logs to collect from Kubernetes clusters. | Endpoint | Method | Purpose | |----------|--------|---------| | `/config` | GET | List collection configurations | | `/config` | POST | Create collection configuration | | `/config` | PUT | Update configuration | | `/config` | DELETE | Delete configuration | | `/config/bulk-update` | POST | Bulk update multiple configs | | `/config/disable` | POST | Disable collection for namespace | | `/config/disable/cluster` | POST | Disable all collection for cluster | ### Log Retrieval (6 endpoints) Retrieve and search logs from your clusters. | Endpoint | Method | Purpose | |----------|--------|---------| | `/` | GET | Get logs with filters | | `/search` | POST | Advanced log search | | `/search/logql` | POST | Search using LogQL | | `/namespaces` | GET | List namespaces | | `/pods` | GET | List pods in namespace | | `/containers` | GET | List containers in pod | ### Log Collection (4 endpoints) Manage on-demand and continuous log collection jobs. | Endpoint | Method | Purpose | |----------|--------|---------| | `/collect` | POST | Start one-time collection | | `/collect/continuous` | POST | Start continuous collection | | `/collect/bulk` | POST | Collect from all pods | | `/collect/jobs` | GET | List collection jobs | ### Archive Management (6 endpoints) Create and manage log archival policies. | Endpoint | Method | Purpose | |----------|--------|---------| | `/archive/policies` | GET | List archive policies | | `/archive/policies` | POST | Create archive policy | | `/archive/policies` | PUT | Update policy | | `/archive/policies` | DELETE | Delete policy | | `/archive/start` | POST | Start archive job | | `/archive/jobs` | GET | List archive jobs | ### S3 Storage (4 endpoints) Access logs stored in S3. | Endpoint | Method | Purpose | |----------|--------|---------| | `/s3/metadata` | GET | Get S3 log metadata | | `/s3/content` | GET | Get log content from S3 | | `/s3/stats` | GET | Get S3 storage statistics | | `/storage/info` | GET | Get storage configuration | ### Metrics & Monitoring (3 endpoints) Monitor log collection and system health. | Endpoint | Method | Purpose | |----------|--------|---------| | `/metrics` | GET | Get general log metrics | | `/clusters//metrics` | GET | Get cluster-specific metrics | | `/stats` | GET | Get log statistics | | `/health` | GET | Get system health | ### Cluster Management (6 endpoints) Manage cluster connections and configuration. | Endpoint | Method | Purpose | |----------|--------|---------| | `/clusters/status` | GET | Get cluster status | | `/clusters/configs` | GET | Get cluster configurations | | `/clusters/configs` | POST | Create cluster config | | `/clusters/configs` | PUT | Update cluster config | | `/clusters/configs` | DELETE | Delete cluster config | | `/clusters/refresh` | POST | Refresh cluster connections | --- ## Detailed Endpoint Reference ### Create Collection Configuration **POST** `/config` Create a new log collection configuration for a Kubernetes cluster. **Request Body:** ```json ``` **Response (201):** ```json } ``` --- ### List Collection Configurations **GET** `/config` List all collection configurations, optionally filtered by cluster or namespace. **Query Parameters:** ``` ?cluster_id=cluster-123&namespace=production ``` **Response (200):** ```json ] } } ``` --- ### Update Collection Configuration **PUT** `/config` Update an existing collection configuration. **Query Parameters:** ``` ?cluster_id=cluster-123 ``` **Request Body:** ```json ``` **Response (200):** ```json } ``` --- ### Bulk Update Configurations **POST** `/config/bulk-update` Enable or disable multiple configurations in a single request. **Request Body:** ```json , ] } ``` **Response (200):** ```json } ``` --- ### Search Logs **POST** `/search` Advanced log search with flexible criteria. **Request Body:** ```json ``` **Response (200):** ```json ], "total_count": 45, "has_more": true } } ``` --- ### Search with LogQL **POST** `/search/logql` Execute LogQL queries for advanced log analysis. **Request Body:** ```json |= \"error\" | json | status >= 500", "start_time": "2024-01-06T00:00:00Z", "end_time": "2024-01-06T23:59:59Z", "limit": 100 } ``` **Response (200):** ```json } ``` --- ### List Namespaces **GET** `/namespaces` Get all available namespaces in a cluster. **Query Parameters:** ``` ?cluster_id=cluster-123 ``` **Response (200):** ```json } ``` --- ### Start Log Collection **POST** `/collect` Start an immediate log collection from specific pods. **Request Body:** ```json ``` **Response (201):** ```json } ``` --- ### Create Archive Policy **POST** `/archive/policies` Create an automatic log archival policy. **Request Body:** ```json ``` **Response (201):** ```json } ``` --- ### Get Archive Policies **GET** `/archive/policies` List all archive policies. **Response (200):** ```json ] } } ``` --- ### Start Archive Job **POST** `/archive/start` Manually trigger an archive job for a policy. **Request Body:** ```json ``` **Response (201):** ```json } ``` --- ### Get Archive Jobs **GET** `/archive/jobs` List archive jobs. **Query Parameters:** ``` ?policy_id=policy-111&status=completed ``` **Response (200):** ```json ] } } ``` --- ### Get S3 Log Metadata **GET** `/s3/metadata` List log files stored in S3. **Query Parameters:** ``` ?cluster_id=cluster-123&namespace=production&start_time=2024-01-01T00:00:00Z ``` **Response (200):** ```json ], "count": 1, "storage": "s3" } } ``` --- ### Get S3 Statistics **GET** `/s3/stats` Get aggregate statistics about S3-stored logs. **Response (200):** ```json , "by_namespace": } } ``` --- ### Get General Metrics **GET** `/metrics` Get log collection metrics. **Query Parameters:** ``` ?app_id=app-123&namespace=production ``` **Response (200):** ```json , "by_namespace": } } ``` --- ### Get Cluster Status **GET** `/clusters/status` Get status of all connected clusters. **Response (200):** ```json } ] } } ``` --- ### Get System Health **GET** `/health` Get overall system health status. **Response (200):** ```json , "database": , "storage": }, "uptime": "45d 12h 30m" } } ``` --- ## Error Handling ### Common Status Codes | Code | Description | |------|-------------| | 200 | Success | | 201 | Created | | 400 | Bad Request | | 401 | Unauthorized | | 403 | Forbidden | | 404 | Not Found | | 429 | Rate Limited | | 500 | Internal Server Error | ### Error Response Format ```json } ``` --- ## Rate Limiting API requests are rate-limited: - **100 requests per minute** for standard endpoints - **10 requests per minute** for heavy operations (search, archive) Rate limit headers: ``` X-RateLimit-Limit: 100 X-RateLimit-Remaining: 95 X-RateLimit-Reset: 1704545400 ``` --- ## Integration Examples ### Python Example ```python from datetime import datetime, timedelta BASE_URL = "https://api.nife.io/v1/k8s/logs" TOKEN = "your_access_token" headers = "} # Search logs response = requests.post( f"/search", headers=headers, json= ) logs = response.json()["data"]["logs"] print(f"Found error logs") ``` ### JavaScript Example ```javascript const axios = require('axios'); const BASE_URL = 'https://api.nife.io/v1/k8s/logs'; const TOKEN = 'your_access_token'; const client = axios.create(` } }); // Create archive policy async function createArchivePolicy() ); console.log('Policy created:', response.data); } catch (error) } createArchivePolicy(); ``` ### cURL Examples ```bash # Search logs curl -X POST https://api.nife.io/v1/k8s/logs/search \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '' # Create collection config curl -X POST https://api.nife.io/v1/k8s/logs/config \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '' ``` --- ## Best Practices 1. **Always use specific filters** - Reduce data transfer and improve performance 2. **Set reasonable limits** - Start with limit=100, increase only if needed 3. **Use date ranges** - Don't retrieve entire log history at once 4. **Handle pagination** - Check `has_more` flag in responses 5. **Cache credentials** - Use stored access tokens, don't regenerate frequently 6. **Monitor rate limits** - Check headers and implement backoff 7. **Compress archive logs** - Always enable compression to reduce costs 8. **Regular cleanup** - Archive old logs to reduce database load For more information, see the [User Guide](/K8s-Logs/Management). --- ## Kubernetes Logs Management Guide | Nife Deploy URL: https://docs.nife.io/K8s-Logs/Management Nife Deploy provides a comprehensive Kubernetes logs management system that allows you to collect, search, filter, and archive logs from your Kubernetes clusters. This guide will walk you through all the features and best practices. ## Overview The K8s Logs Management system helps you: - Collect logs from Kubernetes pods and containers across multiple clusters - Search and filter logs using flexible criteria or LogQL queries - Store logs in your database or archive them to S3 - Monitor system health and log collection status - Configure automatic log retention and archival policies ## Getting Started ### Accessing K8s Logs 1. Navigate to your **Nife Dashboard** 2. Select your **Organization** 3. Go to **Clusters** > **Kubernetes Logs** 4. Choose a cluster from the dropdown to begin managing logs ### Key Components The Kubernetes Logs interface consists of several tabs: - **Logs Tab** - Search and view log entries - **Metrics Tab** - Monitor log collection metrics - **Collection Config Tab** - Configure which logs to collect - **Archive Tab** - Set up automatic log archival - **S3 Storage Tab** - Manage logs stored in S3 - **Clusters Tab** - Manage cluster configurations - **Settings Tab** - System health and configuration --- ## Logs Tab - Searching and Viewing Logs The Logs tab allows you to search and view Kubernetes logs with multiple filtering options. ### Basic Log Search To search for logs: 1. **Select a Cluster** - The cluster dropdown at the top determines which cluster's logs you search 2. **Enter a Search Query** (optional) - Type keywords to search in log messages 3. **Filter by Namespace** - Select a specific namespace or "All Namespaces" 4. **Filter by Log Level** - Choose from: - All Levels - Error - Critical issues - Warning - Potential problems - Info - General information - Debug - Detailed debugging information 5. **Set Date Range** (optional) - Click the calendar icon to select start and end dates 6. **Click "Search Logs"** - Execute the search with your selected filters ### Log Entry Details Each log entry displays: - **Log Level Badge** - Color-coded severity (red=error, yellow=warning, blue=info, gray=debug) - **Namespace** - The Kubernetes namespace - **Pod Name** - The pod that generated the log - **Container Name** - The specific container within the pod - **Message** - The actual log message - **Timestamp** - When the log was generated ### Advanced Search with LogQL For advanced log queries, use LogQL (Log Query Language): 1. Scroll down to the **LogQL Query** section 2. Enter your query in the text area 3. Click **Execute** **Example LogQL queries:** ```logql # Find all error logs in production namespace |= "error" # Find logs containing "connection" in pod "api-server" |= "connection" # Search logs from the last hour | timestamp >= "1h" # Find slow requests (response time > 1000ms) |= "response_time" | duration > "1000ms" ``` :::info **What is LogQL?** LogQL is a query language similar to Prometheus PromQL, designed specifically for log querying. It allows complex filtering, label matching, and pattern searches. ::: ### Export Logs To export the current search results: 1. Click **Export** button 2. A JSON file containing all displayed logs will download to your computer 3. File naming: `k8s-logs-[timestamp].json` ### Tips for Effective Log Searching - **Use specific namespaces** - Narrowing down your search space makes queries faster - **Set reasonable date ranges** - Searching the entire log history can be slow; use date filters - **Start simple** - Begin with basic keyword searches before trying complex LogQL - **Save useful queries** - Note down LogQL queries you find helpful - **Export for analysis** - Download logs for offline analysis or integration with other tools --- ## Collection Config Tab - Configure Log Collection The Collection Config tab allows you to control which logs are collected from your Kubernetes clusters. ### Understanding Collection Configurations A collection configuration defines: - **Which cluster** logs come from - **Which namespace(s)** to collect logs from - **What log levels** to collect - **Collection frequency** and limits - **Which namespaces to exclude** ### Creating a New Configuration 1. Click **Add Configuration** button 2. Fill in the following details: **Cluster** (Required) - Select the target Kubernetes cluster **Namespace** (Required) - Specify which namespace to collect logs from - Use `all` to collect from all namespaces **App Filter** (Optional) - Filter logs by application name or label **Log Levels** (Optional) - Select which log levels to collect - Options: Debug, Info, Warning, Error - Default: Info, Warning, Error **Collection Interval** (Default: 300 seconds) - How frequently to collect logs (in seconds) - Minimum: 60 seconds - Recommended: 300-600 seconds (5-10 minutes) **Exclude Namespaces** (Optional) - List namespaces to skip (useful when collecting "all") - Example: kube-system, kube-public **Max Logs Per Collection** (Default: 1000) - Maximum number of logs to fetch in each collection cycle - Increase for high-volume logging; decrease to reduce load 3. Toggle **Enable** to activate the configuration 4. Click **Save Configuration** ### Managing Configurations **Edit Configuration** 1. Find the configuration in the list 2. Click the **Edit** icon 3. Modify the settings 4. Click **Update** **Disable Configuration** - Toggle the **Enable/Disable** switch in the configuration row - Disabled configurations won't collect logs **Delete Configuration** 1. Click the **Delete** icon 2. Confirm deletion **Bulk Update** - Enable/disable multiple configurations at once - Select checkboxes for configurations you want to update - Click **Bulk Update** and choose the action ### Best Practices for Collection - **Start with critical namespaces** - Enable collection for production namespaces first - **Exclude system namespaces** - Skip `kube-system`, `kube-public` if not needed - **Monitor storage** - Adjust collection intervals based on your storage capacity - **Use app filters** - Filter by application to reduce noise - **Review periodically** - Disable unused configurations to save resources --- ## Metrics Tab - Monitor Log Collection The Metrics tab displays real-time statistics about your log collection. ### Key Metrics **Total Logs** - Total number of log entries collected across all configured sources **Logs Per Hour** - Average rate of log generation (useful for capacity planning) **Average Log Size** - Mean size of log entries (in bytes) **Storage Used** - Total disk/storage space consumed by collected logs **Logs by Level** - Breakdown of logs by severity level - Shows: Error count, Warning count, Info count, Debug count **Logs by Namespace** - Distribution of logs across different namespaces - Helps identify high-volume namespaces ### Interpreting Metrics - **High error rate** - Investigate why errors are occurring in your cluster - **Increasing storage** - Consider enabling archival or increasing retention policies - **Uneven distribution** - Some namespaces may need more focused monitoring - **Log size trends** - Large logs may indicate verbose applications or inefficient logging :::warning **Storage Management** Monitor storage metrics regularly. If storage usage is growing rapidly, consider: 1. Reducing collection intervals 2. Lowering max logs per collection 3. Enabling log compression in archive policies 4. Reducing retention days ::: --- ## Archive Tab - Automatic Log Archival The Archive tab allows you to create policies for automatic log archival and cleanup. ### Why Archive Logs? - **Reduce storage costs** - Move old logs to cheaper S3 storage - **Maintain compliance** - Keep logs for required retention periods - **Optimize performance** - Remove old logs from primary database - **Enable auditing** - Maintain historical logs for investigation ### Creating an Archive Policy 1. Click **Create Policy** 2. Configure the policy: **Policy Name** - A descriptive name for your policy - Example: "Production 90-Day Archive" **Retention Days** - How long to keep logs before archiving - Typical values: 7, 30, 90, 365 days **Compression** - Enable to compress archived logs - Recommended: Always enabled (reduces storage ~70%) **Archive Destination** - Select where to store archived logs - Options: S3, GCS, or database **Target Scope** (Optional) - Specific app ID or namespace to archive - Leave blank to archive all 3. Toggle **Enabled** to activate 4. Click **Create Policy** ### Managing Archive Policies **View Policy Status** - Active policies show last archive run date - Next scheduled run date is displayed **Run Archive Now** 1. Find the policy 2. Click **Run Now** 3. Archives will be created immediately (may take time for large datasets) **Edit Policy** 1. Click **Edit** 2. Modify settings 3. Click **Update** **Delete Policy** 1. Click **Delete** 2. Confirm (archived data remains in S3) ### Archive Jobs View the status of archive operations: - **Pending** - Waiting to start - **Running** - Currently archiving logs - **Completed** - Successfully archived - **Failed** - Review error message ### S3 Archive Configuration To enable S3 archival, you need to configure S3 storage: 1. Go to **Settings Tab** > **Storage Configuration** 2. Enter S3 credentials: - **Bucket Name** - Your S3 bucket - **Region** - AWS region (e.g., us-east-1) - **Prefix** (Optional) - Path prefix for archived logs :::info **Cost Optimization** Archiving logs to S3 can reduce costs by 90%+: - Database storage: ~$0.30/GB/month - S3 Standard: ~$0.023/GB/month - S3 Glacier: ~$0.004/GB/month (for cold archives) ::: --- ## S3 Storage Tab - View Archived Logs The S3 Storage tab shows logs that have been archived to S3. ### Viewing S3 Archived Logs **Search by Criteria** - **Cluster ID** - Filter by cluster - **Namespace** - Filter by namespace - **Pod Name** - Filter by specific pod - **Date Range** - Logs archived in this period **Columns** - Cluster and Namespace - Pod and Container names - S3 location (bucket and key) - Log count and file size - Compression status - Creation date ### Retrieving Archived Logs 1. Find the archive entry you need 2. Click **View Details** 3. Log content will be loaded and displayed 4. Click **Download** to save the archived logs ### Storage Statistics At the top of the tab: - **Total Files** - Number of archived log files - **Total Size** - Combined size of all archives - **Total Logs** - Number of log entries archived - **Oldest Log** - Earliest log in archive - **Newest Log** - Most recent log in archive --- ## Clusters Tab - Manage Cluster Connections The Clusters tab shows all connected Kubernetes clusters and their configurations. ### Cluster Information For each connected cluster: **Cluster Status** - **Healthy** - All components operational - **Degraded** - Some issues but operational - **Unhealthy** - Not operational **Health Indicators** - Log Collector - Is it collecting logs? - Database - Can it store logs? - Storage - Is storage available? **Metrics** - Pods Monitored - Number of pods sending logs - Logs Per Minute - Current logging rate ### Cluster Configuration To configure a cluster: 1. Click **Edit Configuration** on the cluster 2. Modify settings: - **Log Collector** - Enable/disable log collection - **Retention Days** - Default retention period - **Max Log Size** - Maximum size per log entry 3. Click **Save** ### Refresh Cluster Information If cluster info seems outdated: 1. Click **Refresh Clusters** 2. Wait for connection status to update 3. Check if previously unhealthy clusters are now operational ### Troubleshooting Cluster Issues **Cluster shows "Unhealthy"** - Check cluster connectivity - Verify cluster credentials in Settings - Ensure log collector pod is running: `kubectl get pods -n nife-logs` **No logs appearing** - Verify collection configs are enabled - Check if pods in target namespaces are generating logs - Review collection job status for errors **High connection latency** - Check network connectivity to cluster - Review cluster resource utilization - Consider adjusting collection intervals --- ## Settings Tab - System Health & Configuration The Settings tab displays system health information and overall configuration. ### System Health Overview **Overall Status** - Green checkmark = All systems healthy - Yellow warning = Degraded performance - Red X = System issues **System Uptime** - How long the logging system has been operational ### Component Status **Log Collector** - Status of the log collection service - Last health check timestamp - Issues indicate collection may be paused **Database** - Status of the log database - Last health check timestamp - Critical for log storage **Storage** - Status of archive storage - Last health check timestamp - Important for archival operations ### System Configuration Review your system settings: - **API Version** - v1 - **Log Collection Method** - Kubernetes API - **Default Retention** - Default log retention period - **Archive Format** - How logs are compressed - **Search Engine** - LogQL Compatible ### Best Practices Reference The Settings tab includes a best practices guide: 1. **Set up archive policies** - Automatically manage log retention and storage 2. **Use LogQL queries** - Leverage advanced filtering for analysis 3. **Monitor cluster health** - Regular health checks ensure smooth operation 4. **Enable compression** - Reduce storage costs significantly 5. **Use continuous collection** - For production applications requiring real-time monitoring --- ## Common Use Cases ### Finding Error Logs from a Specific Pod 1. Open **Logs Tab** 2. Select namespace containing the pod 3. Enter pod name (optional - helps narrow results) 4. Set Log Level to "Error" 5. Set date range to last 24 hours 6. Click "Search Logs" ### Debugging a Deployment Issue 1. Use **Logs Tab** with LogQL: ```logql |= "error" or "exception" ``` 2. Export results for detailed analysis 3. Share logs with team via JSON export ### Setting Up Log Archival for Compliance 1. Go to **Archive Tab** 2. Create policy: - Retention Days: 365 (1 year) - Compression: Enabled - Destination: S3 3. Enable policy 4. Logs older than 365 days will auto-archive to S3 ### Reducing Storage Costs 1. Review **Metrics Tab** to identify high-volume namespaces 2. Configure collection in **Collection Config Tab**: - Increase collection interval (e.g., 600 seconds) - Reduce max logs per collection - Exclude unnecessary namespaces 3. Set archive policy with shorter retention (e.g., 7 days) 4. Monitor storage usage in Metrics tab ### Real-Time Monitoring of Production 1. Set collection interval to 60 seconds in **Collection Config Tab** 2. Create **Metrics** dashboard showing logs per minute 3. Set up alerts when log volume spikes 4. Use **LogQL** for pattern detection --- ## Troubleshooting ### "No logs found" in search results **Possible causes:** - Collection is disabled for the selected namespace - No logs exist in the selected time range - Search filters are too restrictive **Solutions:** 1. Check Collection Config tab - ensure namespace is enabled 2. Widen date range and try again 3. Try searching without filters 4. Check cluster health in Clusters tab ### High memory/storage usage **Solutions:** 1. Reduce collection interval (collect less frequently) 2. Reduce max logs per collection 3. Reduce retention days 4. Enable archive policies to move old logs to S3 ### LogQL query errors **Common issues:** - Missing quotes around label values: `` ✓ (not ``) - Incorrect operators: Use `|=` for contains, `!=` for does not contain - Missing closing braces `{}` **Validation:** - Test query in a query editor before submitting - Check error message for syntax hints ### Cluster shows "Unhealthy" status **Troubleshooting steps:** 1. Verify cluster credentials in Settings 2. Check cluster connectivity: `kubectl cluster-info` 3. Verify log collector is running: ```bash kubectl get pods -n nife-logs kubectl logs -n nife-logs -l app=log-collector ``` 4. Check cluster resources (CPU, memory, disk) 5. Review firewall/network policies --- ## Performance Tips 1. **Set appropriate collection intervals** - Production: 60-300 seconds - Staging: 300-600 seconds - Development: 600+ seconds 2. **Use specific namespaces** - Collecting all namespaces is slow - Use app filters to narrow scope 3. **Archive old logs regularly** - Frees database space - Improves query performance - Reduces costs 4. **Filter by log level in collection** - Don't collect debug logs in production - Reduces storage and processing 5. **Use date ranges in searches** - Searching 6 months of logs is slow - Use specific time periods when possible --- ## Security Best Practices 1. **Restrict access** - Limit who can view logs (use RBAC) 2. **Encrypt in transit** - Use HTTPS for all API calls 3. **Mask sensitive data** - Configure filters to redact PII 4. **Audit log access** - Monitor who views logs 5. **Secure archive destination** - Use S3 encryption and access controls 6. **Regular backups** - Back up archive policies and configurations --- ## FAQ **Q: How long are logs retained?** A: Default is 30 days. Configure in Archive policies or cluster settings. **Q: Can I search logs across multiple clusters?** A: Currently, you must select one cluster at a time. Use exports to combine results. **Q: What's the maximum date range I can search?** A: No limit, but searching large ranges is slower. Use specific date ranges for better performance. **Q: Does archiving delete logs from the database?** A: Yes, archived logs are removed from the database and moved to S3 (if configured). **Q: Can I recover deleted archive policies?** A: Archive data remains in S3, but the policy cannot be recovered. Create a new policy to access the data. **Q: How do I export logs for long-term storage?** A: Use the Export button in Logs tab (JSON format) or set up S3 archival for automatic storage. **Q: What's the difference between "Continuous" and "One-time" collection?** A: Continuous runs on a schedule automatically. One-time collects logs once on demand. --- ## Next Steps - Review your cluster health in the **Settings Tab** - Configure collections for critical namespaces in **Collection Config Tab** - Set up archival policies in **Archive Tab** - Practice LogQL queries in **Logs Tab** - Monitor metrics in **Metrics Tab** For additional help, contact [Nife Support](https://nife.io/support). ## Related Resources - 🛠️ [Kubernetes YAML Generator](https://freetools.nife.io) — Generate Kubernetes manifests online - 📖 [Blog: Mastering K8s Deployments with Helm](https://blog.nife.io/post/mastering-kubernetes-deployments-with-helm/) - 🚀 [Launch Dashboard](https://launch.nife.io) — View your K8s logs on Nife --- ## K8s Logs Quick Reference & Cheatsheet URL: https://docs.nife.io/K8s-Logs/Quick-Reference A quick reference guide for common tasks and commands in Kubernetes Logs management. ## Dashboard Navigation | Task | Location | |------|----------| | View logs | **Clusters** → Select Cluster → **Logs Tab** | | Search logs | **Logs Tab** → Enter filters → Click "Search Logs" | | Configure collection | **Collection Config Tab** → Create/Edit configs | | Set up archival | **Archive Tab** → Create Policy | | Monitor metrics | **Metrics Tab** → View statistics | | Check system health | **Settings Tab** → System Health section | | View S3 archives | **S3 Storage Tab** → Search archives | | Manage clusters | **Clusters Tab** → View/edit configs | ## Common Search Filters | Filter | Purpose | Example | |--------|---------|---------| | **Namespace** | Limit to specific K8s namespace | "production" | | **Log Level** | Filter by severity | "error" | | **Date Range** | Specify time period | Last 24 hours | | **Search Query** | Full-text search in messages | "connection timeout" | | **Pod Name** | Filter by specific pod | "api-server-1" | ## LogQL Quick Reference ### Basic Queries ```logql # All logs from namespace # Error logs from pod |= "error" # Multiple namespaces # Exclude pattern != "debug" ``` ### Operators | Operator | Meaning | Example | |----------|---------|---------| | `\|=` | Contains (matches) | `\|= "error"` | | `!=` | Does not contain | `!= "debug"` | | `\|~` | Regex match | `\|~ "err.*\[0-9\]"` | | `!~` | Regex not match | `!~ "warn"` | | `>` | Greater than (numeric) | `> 500` | | `=` `= 1000` | ### Label Filters ```logql # Exact match # Label exists # Regex match # Multiple labels ``` ### Advanced Queries ```logql # Combine filters with AND |= "error" |= "database" # Combine with OR (use multiple patterns) |= "error" |~ "fatal|critical" # Extract JSON fields | json | status >= 500 | line_format "}" # Parse labels | regexp "user=(?P\w+)" # Count occurrences | pattern " " ``` ## Collection Configuration Defaults | Setting | Default | Recommended Range | |---------|---------|-------------------| | Collection Interval | 300s (5 min) | 60-600 seconds | | Max Logs Per Fetch | 1000 | 500-5000 | | Retention Days | 30 | 7-365 | | Log Levels | Info, Warn, Error | Depends on needs | ## Archive Policy Presets ### Development Environment ``` Retention: 7 days Compression: Enabled Destination: S3 ``` ### Staging Environment ``` Retention: 30 days Compression: Enabled Destination: S3 ``` ### Production Environment ``` Retention: 90 days Compression: Enabled Destination: S3 Standard-IA ``` ### Compliance (Long-term) ``` Retention: 365+ days Compression: Enabled Destination: S3 Glacier Deep Archive ``` ## Common Troubleshooting ### No Logs Appearing **Checklist:** - [ ] Is collection enabled for the namespace? - [ ] Does the cluster show "healthy" status? - [ ] Are there logs in the selected date range? - [ ] Is at least one pod in the namespace generating logs? **Fix:** 1. Go to **Collection Config Tab** 2. Verify the configuration is **Enabled** 3. Check **Settings Tab** > System Health 4. Expand date range and try again ### LogQL Query Errors **Problem**: `Syntax error at position X` **Solutions**: ```logql # ✗ Wrong - Missing quotes # ✓ Correct - Quotes required # ✗ Wrong - Invalid operator # ✓ Correct - Use label syntax ``` ### High Storage Usage **Solutions**: 1. Reduce retention days in Archive policy 2. Increase collection interval (collect less frequently) 3. Reduce max logs per collection 4. Exclude high-volume namespaces ## Performance Tips ### Searching ``` Fast: - Specific namespace - Narrow date range (24 hours) - Log level filter Slow: - All namespaces - 6+ month range - No filters ``` ### Collection ``` Efficient: - Interval: 300-600 seconds - Max logs: 1000-2000 - Specific namespaces only Inefficient: - Interval: 60 seconds - Max logs: 5000+ - All namespaces including system ``` ## API Rate Limits | Endpoint Type | Limit | Period | |---------------|-------|--------| | Standard calls | 100 | /minute | | Search/Archive | 10 | /minute | | Heavy operations | 5 | /minute | **If rate limited**: Exponential backoff (1s, 2s, 4s, 8s...) ## Storage Calculation ### Database Storage ``` Avg log size: 512 bytes Monthly logs: 1M logs/day × 30 days = 30M logs Space needed: 30M × 512 bytes = ~15 GB/month Cost: ~$4.50/month (at $0.30/GB) ``` ### S3 Storage (After Compression) ``` Compressed size: ~70% reduction (512 → 150 bytes) Space needed: 30M × 150 bytes = ~4.5 GB/month Cost: ~$0.10/month (at $0.023/GB S3 Standard) Cost: ~$0.02/month (at $0.004/GB S3 Glacier) ``` ## Common API Calls ### Get Logs (cURL) ```bash curl -X POST https://api.nife.io/v1/k8s/logs/search \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '' ``` ### Create Archive Policy (cURL) ```bash curl -X POST https://api.nife.io/v1/k8s/logs/archive/policies \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '' ``` ### List Collections (cURL) ```bash curl -X GET "https://api.nife.io/v1/k8s/logs/config?cluster_id=prod-cluster" \ -H "Authorization: Bearer YOUR_TOKEN" ``` ## Field Mapping (UI → API) | UI Field | API Parameter | |----------|---------------| | Cluster ID | `cluster_id` | | Namespace | `namespace` | | Pod Name | `pod_name` | | Container | `container_name` | | Log Level | `log_level` | | Start Time | `start_time` | | End Time | `end_time` | | Log Levels | `log_levels` | | Collection Interval | `collection_interval` | ## Retention vs Archive Timeline ``` Day 1-30 (Default) ├─ Real-time in database ├─ Full query capability └─ Highest cost Day 31-90 (Archive to S3) ├─ Accessible but slower ├─ Limited query capability └─ Low cost Day 91+ (Glacier) ├─ Cold storage ├─ Hours to retrieve └─ Minimal cost ``` ## Collection Options Comparison | Option | When to Use | Cost | Speed | |--------|------------|------|-------| | **Interval: 60s** | High-priority production | High | Real-time | | **Interval: 300s** | Standard production | Medium | Near real-time | | **Interval: 600s** | Staging/Dev | Low | Slightly delayed | | **On-Demand** | Debugging | Variable | On request | ## Status Indicators | Indicator | Meaning | Action | |-----------|---------|--------| | 🟢 Healthy | All systems operational | None needed | | 🟡 Degraded | Some components slow | Monitor closely | | 🔴 Unhealthy | System not operational | Check immediately | ## Useful Metrics to Monitor ``` Production: - Logs per hour > 50,000? - Error logs trending up? - Storage growth > 1GB/day? Staging: - Collection jobs completing? - Archive jobs succeeding? - Any failed operations? ``` ## Quick Wins for Cost Reduction 1. **Archive older logs** - Saves ~90% (moves to S3) 2. **Enable compression** - Saves ~70% of storage 3. **Increase collection interval** - Reduces volume (300s → 600s) 4. **Exclude system namespaces** - Reduces noise 5. **Set shorter retention** - Reduces storage ## Before Contacting Support - [ ] Verified cluster connectivity: `kubectl cluster-info` - [ ] Checked system health status - [ ] Confirmed collection configs are enabled - [ ] Verified date range has logs - [ ] Confirmed LogQL syntax - [ ] Checked rate limits not exceeded - [ ] Exported logs for analysis ## Documentation Links - [Full User Guide](/K8s-Logs/Management) - [API Reference](/K8s-Logs/API-Reference) - [Nife CLI Documentation](/CLI/builtins) ## Help & Support - **Email**: support@nife.io - **Docs**: https://docs.nife.io - **Status**: https://status.nife.io --- ## Nife LiteLLM MCP Server URL: https://docs.nife.io/llm-lite [![Docker Image](https://img.shields.io/badge/docker-nife--llmlite-blue.svg)](https://hub.docker.com/r/nife/nife-llmlite) [![Python](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![GitHub Repo](https://img.shields.io/badge/github-nife--litellm-blue.svg)](https://github.com/nifetency/nife-litellm) **A Model Context Protocol (MCP) server for multi-provider LLM API access via LiteLLM** [Installation](#installation) • [Quick Start](#quick-start) • [Configuration](#configuration) • [API Reference](#api-reference) • [Documentation](https://docs.nife.io) • [GitHub](https://github.com/nifetency/nife-litellm) --- ## Overview The Nife LiteLLM MCP Server provides a standardized Model Context Protocol interface to the Nife LiteLLM API, enabling seamless integration with Claude Desktop and other MCP-compatible clients. It offers unified access to multiple LLM providers including OpenAI, Anthropic, Google, Mistral, Cohere, DeepSeek, and more. ### Key Features - 🔄 **Multi-Provider Support** – OpenAI, Anthropic, Google, Mistral, Cohere, Together AI, DeepSeek - 🧠 **Auto-Detection** – Automatic provider routing from model identifiers - 📦 **Batch Processing** – Handle multiple prompts in a single request - 🛡️ **Secure** – Bearer token authentication, non-root container execution - ⚡ **Fast** – ~2-3s startup time, minimal resource footprint - 🏥 **Production-Ready** – Health checks, structured logging, graceful error handling - 🐳 **Containerized** – Full Docker support with Docker Compose - 📡 **REST API** – Clean, documented HTTP endpoints - 🔐 **Error Resilience** – Partial success handling with 207 status codes ## Supported Providers | Provider | Models | Status | |----------|--------|--------| | **OpenAI** | GPT-4, GPT-4-turbo, GPT-3.5-turbo, GPT-4o | ✅ Supported | | **Anthropic** | Claude 3 Opus, Sonnet, Haiku | ✅ Supported | | **Google** | Gemini Pro, 1.5 Pro, 1.5 Flash | ✅ Supported | | **Mistral** | Large, Medium, Small | ✅ Supported | | **Cohere** | Command, Command-R | ✅ Supported | | **Together AI** | Llama models, Meta LLaMA 3 | ✅ Supported | | **DeepSeek** | DeepSeek-Chat, DeepSeek-Coder | ✅ Supported | | **Groq** | Mixtral, LLaMA 2 | ✅ Supported | ## Installation ### Option 1: Docker Compose (Recommended) ```bash # Clone the repository git clone https://github.com/nifetency/nife-litellm.git cd nife-litellm # Start the API docker-compose up -d # Verify health curl http://localhost:8080/health ``` ### Option 2: Docker ```bash # Build the image docker build -t nife-llmlite . # Run container docker run -d \ -p 8080:8080 \ --name nife-llmlite \ nife-llmlite # Check logs docker logs -f nife-llmlite ``` ### Option 3: Local Development ```bash # Install dependencies pip install -r requirements.txt # Run application python app.py # Or with gunicorn gunicorn --bind 0.0.0.0:8080 --workers 4 app:app ``` ## Quick Start ### 1. Start the Service ```bash docker-compose up -d ``` ### 2. Health Check ```bash curl http://localhost:8080/health ``` **Response:** ```json ``` ### 3. Test a Completion ```bash curl -X POST http://localhost:8080/api/completion \ -H "Content-Type: application/json" \ -d '' ``` ### 4. Batch Processing ```bash curl -X POST http://localhost:8080/api/completion \ -H "Content-Type: application/json" \ -d '' ``` ## Configuration The Nife LiteLLM MCP Server can be configured using environment variables. ### Environment Variables | Variable | Description | Default | |----------|-------------|---------| | `PORT` | The port the server will listen on | `8080` | | `LOG_LEVEL` | Logging level (DEBUG, INFO, WARNING, ERROR) | `INFO` | ## API Reference ### Endpoints #### Root Endpoint ```bash GET / ``` #### Health Check ```bash GET /health ``` #### Completion (Main) ```bash POST /api/completion ``` #### List Models ```bash GET /api/models ``` ## Deployment ### Kubernetes Deployment ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: nife-llmlite spec: replicas: 3 selector: matchLabels: app: nife-llmlite template: metadata: labels: app: nife-llmlite spec: containers: - name: llmlite image: nife-llmlite:latest ports: - containerPort: 8080 env: - name: PORT value: "8080" livenessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 10 periodSeconds: 30 resources: requests: cpu: "0.5" memory: "256Mi" limits: cpu: "1" memory: "512Mi" ``` ## Support - **GitHub Issues:** [nife-litellm/issues](https://github.com/nifetency/nife-litellm/issues) - **Documentation:** [docs.nife.io](https://docs.nife.io) - **Email:** support@nife.io --- Made with ❤️ by the Nife team [Website](https://nife.io) • [Documentation](https://docs.nife.io) • [Blog](https://blog.nife.io) --- ## Nife.io MCP Server URL: https://docs.nife.io/mcp-server/overview [![PyPI version](https://badge.fury.io/py/nife-mcp-server.svg)](https://badge.fury.io/py/nife-mcp-server) [![npm version](https://badge.fury.io/js/@nife%2Fmcp-server.svg)](https://badge.fury.io/js/@nife%2Fmcp-server) [![Python](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Downloads](https://pepy.tech/badge/nife-mcp-server)](https://pepy.tech/project/nife-mcp-server) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) **A Model Context Protocol (MCP) server that interfaces with the Nife.io GraphQL API** [Installation](#installation) • [Quick Start](#quick-start) • [Documentation](https://docs.nife.io) • [Contributing](https://github.com/nife-io/nife-mcp-server/blob/main/CONTRIBUTING.md) --- ## Overview The Nife.io MCP Server provides a standardized interface for interacting with the Nife.io GraphQL API through the Model Context Protocol. It enables seamless usage within Claude Desktop and other MCP-compatible clients, ensuring a consistent, secure, and efficient integration experience. ### Key Features - Intelligent GraphQL schema discovery and adaptation - Dynamic MCP tool generation based on schema - Minimal configuration and fast setup - Secure authentication using bearer tokens - Installable via PyPI, NPM, or directly from source - Compatible with macOS, Linux, and Windows - Production-grade error handling and logging ## Installation ### Option 1: PyPI (Recommended for Python environments) ```bash pip install nife-mcp-server ``` ### Option 2: NPM (Recommended for Claude Desktop usage) ```bash npx @nifelabs/mcp-server ``` ### Option 3: Install From Source ```bash git clone https://github.com/nife-io/nife-mcp-server.git cd nife-mcp-server pip install -r requirements.txt ``` ## Quick Start ### 1. Obtain Your Access Token ```bash nifectl auth login nifectl auth token ``` ### 2. Configure Claude Desktop ```json } } } ``` ### 3. Restart Claude Desktop Your Nife.io MCP integration will now be active. ## Usage ### Starting the Server ```bash # Installed via pip nife-mcp-server # Running from source python -m nife_mcp_server.intelligent_main ``` The server will start on: `http://0.0.0.0:5000` ### Environment Variables - `NIFE_ACCESS_TOKEN` – Required authentication token - `NIFE_API_ENDPOINT` – Optional custom GraphQL endpoint ### Example Prompts for Claude ```text List all my applications in Nife.io Show the status of my deployments Create a new application named "my-app" ``` ## Architecture ```text ┌─────────────────┐ │ Claude Desktop │ └────────┬────────┘ │ MCP Protocol ┌────────▼────────┐ │ Nife MCP Server│ └────────┬────────┘ │ GraphQL ┌────────▼────────┐ │ Nife.io API │ └─────────────────┘ ``` ### Core Components - Schema Manager - MCP Tool Generator - Query Builder - Authentication Layer ## API Endpoints ### MCP Endpoints | Endpoint | Method | Description | |----------------------|--------|-----------------------------| | `/api/mcp/context` | GET | Retrieve model context | | `/api/mcp/context` | POST | Update model context | | `/api/mcp/schema` | GET | Retrieve GraphQL schema | | `/api/mcp/query` | POST | Execute custom query | | `/api/mcp/health` | GET | Health check | ### GraphQL Capabilities - Query all supported resource types - Execute mutations for resource management - Run custom queries - Perform schema introspection ## Development ### Local Development Setup ```bash git clone https://github.com/nife-io/nife-mcp-server.git cd nife-mcp-server python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r requirements.txt pip install -e . python -m nife_mcp_server.intelligent_main ``` ### Project Structure ```text nife-mcp-server/ ├── src/ │ └── nife_mcp_server/ │ ├── intelligent_main.py │ ├── schema_manager.py │ └── routes/ │ └── mcp.py ├── tests/ ├── docs/ └── bin/ ``` ### Running Tests ```bash pytest pytest --cov=nife_mcp_server ``` ## Support - GitHub Issues: https://github.com/nife-io/nife-mcp-server/issues - GitHub Discussions: https://github.com/nife-io/nife-mcp-server/discussions --- Made by the Nife.io team [Website](https://nife.io) • [Documentation](https://docs.nife.io) • [Blog](https://blog.nife.io) ## Related Resources - 🤖 [Nife MCP Server product page](https://nife.io/mcp) — overview, use cases, and setup for the MCP server - 🌐 [nife.io](https://nife.io) — Nife edge cloud platform - 🚀 [Launch Dashboard](https://launch.nife.io) — Access your Nife platform - 📦 [OpenHub](https://openhub.nife.io) — Deploy open source apps in one click --- ## Manage Your Nife App | Monitor Status, Logs, History & Releases URL: https://docs.nife.io/manage/manage Manage, Maintain and Monitor your deployed application, one time and continuously ## Nifectl Deploying an application takes a simple step using the CLI. Ensure that your app is [configured](/configure/configure) before deploying - View App Information:: [nifectl help](/CLI/help) - View App Deployment Status: [nifectl status](/CLI/status) - View App History : [nifectl history](/CLI/history) - View App Releases : [nifectl releases](/CLI/releases) --- ## How to Monitor Applications: Uptime, DNS & HTTP Analytics URL: https://docs.nife.io/Monitoring/Application-Monitoring The **Monitoring** dashboard in Nife Deploy provides comprehensive real-time visibility into your applications' performance, availability, and traffic patterns. Track uptime, analyze HTTP traffic, monitor DNS performance, and identify potential issues before they impact your users. ## Overview The Monitoring dashboard consolidates four key monitoring perspectives: - **HTTP Traffic** - Analyze request patterns, bandwidth usage, and traffic distribution - **DNS Metrics** - Monitor DNS query performance and resolution times - **DNS Analytics** - Deep dive into DNS query patterns and statistics - **Uptime** - Track application availability and response times --- ## HTTP Traffic Analysis The HTTP Traffic tab provides detailed insights into your application's web traffic patterns and performance. ### Configuration Before viewing traffic data, you need to configure your Cloudflare Zone ID: 1. In the **Configuration** card, enter your **Cloudflare Zone ID** - Find your Zone ID in your Cloudflare dashboard under Domain → Overview → API - Format: A 32-character hexadecimal string (e.g., `b032a57f01eac20ad3c4e8ba2a05bb19`) 2. Select your desired **Date Range** - Default: Last 30 days - Adjust the range using the date picker for custom analysis periods 3. Click **Fetch Data** to retrieve traffic analytics - First-time fetch may take a few seconds - Data updates based on your selected date range :::note You need valid Cloudflare API credentials and appropriate permissions to fetch traffic data. Demo mode displays sample data for testing. ::: ### Key Metrics The HTTP Traffic tab displays three primary metric cards: #### Total Requests - **Shows:** Complete count of HTTP requests in your date range - **Why It Matters:** Indicates traffic volume and application popularity - **Interpretation:** Compare across time periods to identify growth or anomalies #### Cache Hit Rate - **Shows:** Percentage of requests served from cache (%) - **Why It Matters:** Higher cache hit rates reduce server load and improve user experience - **Optimal Range:** 80-95% is considered excellent - **Total Bytes:** Displayed below the percentage shows total bandwidth transferred #### Security Threats - **Shows:** Number of requests blocked by security rules - **Why It Matters:** Indicates attack attempts and malicious traffic - **What to Do:** Review and adjust security rules if legitimate traffic is blocked ### Traffic Charts #### Traffic Over Time An area chart showing: - **Blue Area:** HTTP request volume over time - **Green Area:** Unique visitor count over time - **Use:** Identify traffic spikes, patterns, and correlations with business events #### Cache Distribution (Pie Chart) Shows the proportion of cached vs. un-cached requests: - **Cached Requests:** Served from edge servers (faster, lower cost) - **Un-cached Requests:** Processed by origin server (more resource-intensive) **Optimize By:** Increasing cache hit rate through better cache rules and TTL configuration. #### Top Countries (Bar Chart) Horizontal bar chart displaying your top traffic sources by geographic location: - **Uses:** Content localization, CDN optimization, market analysis - **Action:** Deploy edge servers in high-traffic regions for better performance ### Daily Statistics Table A detailed daily breakdown showing: | Column | Description | |--------|-------------| | **Date** | The day of the statistics | | **Requests** | Total HTTP requests processed | | **Cached** | Requests served from cache | | **Cache Rate** | Percentage of cached requests (green highlighting) | | **Bandwidth** | Total bytes transferred (human-readable format) | | **Visitors** | Unique visitors that day | | **Threats** | Security threats blocked | **Export Data:** Use the Export button to download this data as CSV for external analysis, reporting, or archival. --- ## DNS Metrics Monitoring The DNS Metrics tab tracks the performance and health of DNS resolution for your applications. ### Selecting an Application 1. Click the **DNS Metrics** tab 2. From the dropdown, select the application you want to monitor 3. DNS metrics load automatically for the selected application ### Understanding DNS Metrics DNS metrics help you understand: - **Query Response Times:** How quickly DNS servers respond to queries - **Query Volume:** Number of DNS lookups being performed - **Record Types:** Distribution of A, AAAA, CNAME, MX, and other DNS records - **Geographic Performance:** DNS resolution speed by region ### Performance Indicators - **Green:** Healthy response times ( 500ms) ### When to Take Action - If you notice increased query times, contact your DNS provider - If a specific region shows poor performance, consider regional DNS optimization - High query volume spikes may indicate DNS issues or security attacks --- ## DNS Analytics The DNS Analytics tab provides deeper insights into DNS query patterns and statistics. ### Analytics Overview This tab shows: - **Query Pattern Analysis:** Time-series trends in DNS queries - **Query Type Distribution:** Breakdown of different DNS record types - **Recursive vs. Non-Recursive Queries:** Query behavior patterns - **DNSSEC Status:** Security posture of your DNS configuration ### Using Analytics for Optimization - Identify peak DNS query times - Understand query patterns to optimize caching strategies - Monitor for unusual query behavior indicating potential attacks - Track DNSSEC implementation effectiveness --- ## Uptime Monitoring The Uptime tab provides real-time monitoring of your application's availability and performance. ### Selecting an Application 1. Click the **Uptime** tab 2. Select your application from the dropdown menu 3. Uptime data loads automatically ### Time Range Selection View uptime data for different periods: - **Last 1 Hour** - Immediate monitoring and troubleshooting - **Last 3 Hours** - Identify recent patterns - **Last 24 Hours** - Comprehensive daily overview ### Uptime Metrics #### Response Time (ms) - **Current:** The most recent response time measurement - **Shows:** Current application latency to your monitoring endpoint - **Healthy Range:** < 200ms for optimal user experience #### Average Response Time - **Shows:** Average response time across all measurements - **Use:** Identify performance trends and degradation - **Track:** Set baseline for alerting on degradation #### Uptime Percentage - **Shows:** Percentage of time your application was available - **Calculation:** Successful responses ÷ total monitoring checks × 100 - **Target:** Maintain 99.9% or higher for production applications - **SLA Alignment:** Different service tiers have different uptime guarantees #### Certificate Expiration - **Shows:** Days remaining on your SSL/TLS certificate - **Action Required:** Renew when < 30 days remaining - **Alert:** System warns when expiration approaches ### Visual Status Indicator The horizontal colored bar shows real-time status: - **Green Segments:** Successful responses (application up) - **Red Segments:** Failed responses (application down) **Hover over segments** to see: - Response time (ping) in milliseconds - Exact timestamp of the check ### Uptime Chart An area chart displaying response times over your selected period: - **X-Axis:** Time progression - **Y-Axis:** Response time in milliseconds - **Peaks:** Higher spikes indicate slower responses - **Pattern:** Look for consistent patterns that might indicate scheduled jobs or traffic spikes ### Interpreting Uptime Data **Healthy Status:** - Green indicators throughout - Response times consistently under 200ms - Uptime percentage 99.5% or higher **Warning Signs:** - Red indicators appearing - Response times increasing over time - Uptime dropping below 99% **Critical Issues:** - Multiple consecutive red indicators - Response times exceeding 1000ms - Uptime below 95% --- ## Common Monitoring Scenarios ### Scenario 1: Investigate Traffic Spike 1. Go to **HTTP Traffic** tab 2. Adjust date range to include the spike period 3. Review the **Traffic Over Time** chart to identify peak times 4. Check **Top Countries** to see if spike is geographic 5. Review **Daily Statistics** table for the affected day 6. Export data for detailed analysis if needed ### Scenario 2: Debug Slow Performance 1. Navigate to **Uptime** tab for your application 2. Select **Last 3 Hours** to see recent trends 3. Look for the time period with elevated response times 4. Check if the slow period correlates with: - Traffic spike in **HTTP Traffic** tab - DNS resolution issues in **DNS Metrics** tab 5. If consistent pattern, check application logs for errors ### Scenario 3: Monitor Security Threats 1. Go to **HTTP Traffic** tab 2. Monitor the **Security Threats** metric 3. If threats spike, review: - Which countries/IPs are attacking (check logs) - Attack pattern in **Traffic Over Time** chart 4. Consider: - Enabling stricter security rules in Cloudflare - Rate limiting suspicious sources - Updating WAF rules ### Scenario 4: Optimize Cache Strategy 1. Check **Cache Distribution** pie chart in **HTTP Traffic** 2. If cache hit rate is below 80%: - Review cache rules in Cloudflare dashboard - Increase TTL for static content - Check if dynamic content is incorrectly cached 3. Export historical data to identify cache patterns 4. Re-test after changes --- ## Export & Reporting ### Exporting HTTP Traffic Data 1. Click the **Export** button in the HTTP Traffic tab 2. A CSV file downloads with the filename: `http-traffic-YYYY-MM-DD.csv` 3. CSV includes all columns from the **Daily Statistics** table ### CSV File Contents The exported CSV contains: - Date, Requests, Cached, Un-cached - Total Bytes, Unique Visitors, Threats **Use Cases:** - Import into spreadsheet applications for further analysis - Create custom reports combining multiple exports - Archive historical monitoring data - Share with stakeholders or auditors --- ## Refresh & Real-Time Updates ### Manual Refresh Click the **Refresh** button to: - Update all monitoring data immediately - Fetch latest available metrics - Useful after investigating an issue to confirm resolution ### Automatic Updates - **Uptime data:** Updates every 1-5 minutes - **HTTP Traffic:** Updates daily (based on Cloudflare sync) - **DNS Metrics:** Updates every 5-15 minutes --- ## Best Practices ### Daily Monitoring Routine - ✅ Review uptime percentage each morning - ✅ Monitor traffic trends across your active regions - ✅ Check for security threats and unusual activity - ✅ Verify certificate expiration dates (weekly) ### Performance Optimization - ✅ Maintain cache hit rate above 80% - ✅ Keep average response time below 200ms - ✅ Monitor top traffic sources for optimization opportunities - ✅ Review DNS performance metrics weekly ### Security & Alerts - ✅ Review security threats regularly - ✅ Set up alerts for uptime degradation - ✅ Monitor for unusual traffic patterns - ✅ Keep SSL certificates renewed ### Reporting - ✅ Export monthly data for stakeholder reports - ✅ Track uptime trends across quarters - ✅ Document major incidents with timestamps - ✅ Archive data for compliance requirements --- ## Troubleshooting ### No Data Showing **Problem:** "No Uptime Data Available" message - **Solution 1:** Ensure application is selected and deployed - **Solution 2:** Wait 5+ minutes for initial data collection - **Solution 3:** Verify DNS records are properly configured **Problem:** "Failed to login to uptime service" - **Solution:** Check internet connection and try refreshing - **Solution 2:** Contact support if issue persists ### Cloudflare Zone ID Not Working **Problem:** "Failed to fetch traffic data" - **Solution 1:** Verify Zone ID is correct (32 characters) - **Solution 2:** Confirm API token has appropriate permissions - **Solution 3:** Check that domain is active in Cloudflare ### Inaccurate Metrics **Problem:** Metrics seem off or incomplete - **Solution 1:** Ensure correct date range is selected - **Solution 2:** Re-fetch data by clicking "Fetch Data" button - **Solution 3:** Check that your application is receiving traffic --- ## Limits & Considerations | Item | Limit | |------|-------| | **HTTP Traffic History** | Last 30 days (configurable) | | **DNS Metrics History** | Last 7 days rolling window | | **Uptime Data Granularity** | 1-5 minute intervals | | **Response Time Accuracy** | ±50ms | | **Export File Size** | Up to 10,000 rows per export | | **Concurrent Monitors** | Unlimited | ## Related Resources - 🛠️ [Unix Timestamp Converter](https://freetools.nife.io/timestamp-converter/) — convert exported timestamps to human-readable dates, both directions --- ## DNS Analytics & Query Insights URL: https://docs.nife.io/Monitoring/DNS-Analytics # DNS Analytics The DNS Analytics tab provides deeper insights into DNS query patterns, trends, and statistics. Perform advanced analysis of DNS behavior, identify patterns, and optimize your DNS infrastructure based on detailed data. ## Overview While DNS Metrics provides real-time performance monitoring, DNS Analytics offers detailed historical analysis and pattern recognition. Use these insights to understand query behavior, detect anomalies, and make informed optimization decisions. --- ## Getting Started ### Accessing DNS Analytics 1. Navigate to **Monitoring** from the main sidebar 2. Click the **DNS Analytics** tab 3. Analytics load automatically with historical data ### Dashboard Components The DNS Analytics tab displays: - Query pattern analysis - Query type distribution - Recursive vs. non-recursive queries - DNSSEC status and metrics - Historical trend charts - Detailed statistics tables --- ## Analytics Overview ### Query Pattern Analysis **Time-Series Trends in DNS Queries** Shows how DNS query volume changes over time: **Chart Types:** - Line chart: Overall query volume trends - Area chart: Stacked query types over time - Bar chart: Daily/hourly query distribution **What to Look For:** - Daily patterns (peaks and valleys) - Weekly cycles - Seasonal trends - Sudden spikes or drops - Correlation with events **Example Patterns:** - **Daily:** Peak during business hours, low at night - **Weekly:** High weekdays, lower weekends - **Seasonal:** Summer higher, winter lower - **Event-Based:** Spikes around product launches ### Query Type Distribution **Breakdown of Different DNS Record Types** Shows which DNS records are most frequently queried: **Common Record Types:** | Type | Purpose | Expected % | |------|---------|-----------| | **A Records** | IPv4 addresses | 85-95% | | **AAAA Records** | IPv6 addresses | 5-15% | | **CNAME Records** | Aliases | 0-5% | | **MX Records** | Mail servers | 0-1% | | **TXT Records** | Text data (SPF, DKIM) | 0-1% | | **SRV Records** | Service records | 0-1% | | **Other** | Other types | < 1% | **Analyzing Distribution:** **Normal Distribution:** - A records dominant (85%+) - Small percentage of AAAA - Few other types **Unusual Distribution:** - Unexpected record types appearing - AAAA records very low (< 1%) - Excessive MX queries - Unknown record types **What It Indicates:** - IPv6 adoption levels - Email infrastructure queries - Application query patterns - Potential misconfiguration ### Recursive vs. Non-Recursive Queries **Query Behavior Patterns** **Recursive Queries:** - Client asks resolver to find full answer - Resolver asks authority servers - More resource-intensive - Client doesn't query authority directly **Non-Recursive Queries:** - Client asks for specific cached answer - Resolver returns what it has - Less resource-intensive - Faster response possible **Analyzing Your Traffic:** **Expected Pattern:** - Mostly recursive from clients - Mix of recursive/non-recursive from resolvers - Very few non-recursive from origin **Warning Signs:** - Excessive non-recursive queries - Unusual recursive patterns - Queries from unexpected sources - Potential DNS amplification attacks ### DNSSEC Status **DNS Security Extensions Monitoring** DNSSEC provides cryptographic authentication for DNS: **Status Indicators:** - **✅ Enabled & Valid:** DNSSEC properly configured - **⚠️ Enabled & Warning:** DNSSEC enabled but issues detected - **❌ Disabled:** DNSSEC not implemented - **⚠️ Invalid:** DNSSEC validation failing **Metrics Tracked:** 1. **DNSSEC Validation Rate** - Percentage of queries successfully validated - Target: 100% - Issues indicate misconfiguration 2. **DNSSEC Failures** - Failed validation attempts - Should be zero - Indicates potential attacks or configuration errors 3. **DNSSEC Coverage** - Percentage of zones signed - Incomplete coverage creates vulnerabilities - Target: 100% of critical zones 4. **Key Rotation Status** - DNSSEC key age - Rotation frequency - Expiration tracking **Optimization Tips:** - Implement DNSSEC for all zones - Monitor validation success rate - Schedule regular key rotation - Update zone files before expiration --- ## Advanced Analysis ### Pattern Recognition **Identifying Trends in Query Behavior** **Steps:** 1. Review the query pattern chart 2. Identify recurring patterns 3. Note time-based variations 4. Document anomalies **Common Patterns:** **Time-Based Patterns:** - Business hours: 2-3x more queries - Weekend: 30-40% reduction - Midnight to 5am: Lowest volume - Holidays: Significant drops **Event-Based Patterns:** - Marketing campaign: +50% spike - Product launch: Sustained increase - Maintenance window: Temporary drop - Security incident: Sudden change ### Anomaly Detection **Spotting Unusual Query Behavior** **Red Flags:** - Sudden spike > 200% of normal - Unexpected query types appearing - New geographic sources - Recursive query increase - Failed DNSSEC validations **Investigation Steps:** 1. Identify exact time of anomaly 2. Review query sources 3. Check application changes 4. Analyze query types 5. Review security logs **Common Causes:** - Application misconfiguration - DNS caching issues - Cache poisoning attempts - Distributed DoS attack - Misconfigured client ### Comparison Analysis **Comparing Time Periods** **How to Compare:** 1. Select two date ranges 2. Overlay charts 3. Calculate percentage changes 4. Identify differences **Metrics to Compare:** - Total query volume - Query type distribution - Peak times - DNSSEC validation rate - Response times **Example Analysis:** - Week over week: Identify weekly patterns - Month over month: Track growth trends - Year over year: Seasonal changes - Before/after: Impact measurement --- ## Using Analytics for Optimization ### Identify Peak DNS Query Times **Purpose:** Plan maintenance and capacity **Steps:** 1. Review query pattern chart 2. Identify consistent peak times 3. Note duration of peaks 4. Calculate peak load **Uses:** - Schedule maintenance during low periods - Plan capacity expansion - Time software updates - Allocate resources **Example:** - Peak: 2-4 PM daily - Maintain: 11 PM to 3 AM - Capacity needed: 3x average during peak ### Understand Query Patterns **Purpose:** Optimize caching and TTL **Analysis:** 1. Review query type distribution 2. Identify most queried records 3. Check query frequency 4. Analyze client behavior **Optimization:** - Increase TTL for frequently queried records - Implement caching for common queries - Pre-fetch popular records - Load balance based on query patterns ### Monitor for Unusual Behavior **Purpose:** Detect attacks and misconfiguration **Watch For:** - Query patterns changing suddenly - New record types appearing - Query volume spikes - Geographic anomalies - Failed DNSSEC validations **Response:** - Alert on anomalies - Investigate causes - Block malicious queries - Update security rules ### Track DNSSEC Effectiveness **Purpose:** Ensure DNS security **Metrics:** - Validation success rate (target: 100%) - Failed validations (target: 0) - Key expiration dates - Zone coverage percentage **Actions:** - Schedule key rotation in advance - Update expiring keys before deadline - Fix validation failures immediately - Implement DNSSEC for all zones --- ## Common Scenarios ### Scenario 1: Investigate Query Spike **Situation:** DNS queries suddenly increase **Analysis:** 1. Check query pattern chart 2. Identify spike timing 3. Review query type distribution 4. Check geographic distribution 5. Review recursive vs. non-recursive split **Root Causes:** - Cache expiration (TTL expired) - Client misconfiguration - Application change - Increased traffic - DNS amplification attack **Resolution:** 1. Verify spike is legitimate 2. Increase TTL if appropriate 3. Review client configuration 4. Monitor for attacks ### Scenario 2: Optimize Query Volume **Situation:** Reducing DNS load and costs **Analysis:** 1. Review query pattern chart 2. Identify peak periods 3. Check most queried records 4. Analyze query types **Optimization Steps:** 1. Increase TTL for stable records 2. Implement caching at application level 3. Reduce record complexity 4. Batch queries where possible **Expected Results:** - 20-40% reduction in queries - Faster response times - Lower DNS costs ### Scenario 3: Monitor DNSSEC Status **Situation:** Ensuring DNS security **Analysis:** 1. Check DNSSEC status indicator 2. Review validation success rate 3. Monitor key expiration dates 4. Track failed validations **Actions:** 1. Schedule key rotation 2. Monitor expiration dates (30 days before) 3. Fix validation failures 4. Implement DNSSEC gradually if not done ### Scenario 4: Detect Anomalous Patterns **Situation:** Security threat detection **Analysis:** 1. Review historical patterns 2. Compare current to baseline 3. Identify deviations 4. Analyze query sources **Red Flags:** - 300%+ spike in specific query type - Queries from unusual locations - Non-recursive to origin servers - Failed DNSSEC on valid zones **Response:** 1. Enable enhanced logging 2. Review detailed query logs 3. Block suspicious sources 4. Alert security team --- ## Best Practices ### Daily Analysis - ✅ Review query pattern chart - ✅ Check for anomalies - ✅ Monitor DNSSEC status - ✅ Note any unusual activity ### Weekly Review - ✅ Compare week-over-week changes - ✅ Analyze query type trends - ✅ Review peak times - ✅ Plan optimizations ### Monthly Deep Dive - ✅ Month-over-month comparison - ✅ Trend analysis - ✅ Capacity planning - ✅ DNSSEC audit ### Quarterly Planning - ✅ Review annual trends - ✅ Identify seasonal patterns - ✅ Plan infrastructure changes - ✅ Update optimization strategy --- ## Troubleshooting ### Analytics Not Displaying **Problem:** Dashboard shows no data **Solutions:** 1. Ensure application has DNS activity 2. Wait for historical data collection 3. Check date range selection 4. Verify DNS configuration 5. Refresh dashboard ### Patterns Unclear **Problem:** Can't identify clear patterns **Solutions:** 1. Expand date range (at least 7 days) 2. Compare multiple time periods 3. Check for external events 4. Filter by specific record type 5. Contact support ### DNSSEC Issues **Problem:** DNSSEC validation failing **Solutions:** 1. Verify DNSSEC keys are valid 2. Check key expiration dates 3. Review zone configuration 4. Test with validation tools 5. Contact DNS provider --- ## Limits & Considerations | Item | Limit | |------|-------| | **Historical Data** | Last 30-90 days | | **Granularity** | Hourly/Daily aggregation | | **Pattern Detection** | Requires 7+ days data | | **Export Capability** | CSV, JSON formats | | **Real-time Updates** | 15-30 minute delay | | **Query Types Tracked** | All standard types | --- ## Related Documentation - [Monitoring Overview](/Monitoring/Overview) - Overview of all monitoring - [DNS Metrics](/Monitoring/DNS-Metrics) - Real-time DNS performance - [HTTP Traffic](/Monitoring/HTTP-Traffic) - HTTP traffic analysis - [Uptime Monitoring](/Monitoring/Uptime-Monitoring) - Application availability - [Alerts](/Alerts/Alerts-Overview) - Set up anomaly alerts --- ## DNS Metrics Monitoring: Performance & Health URL: https://docs.nife.io/Monitoring/DNS-Metrics The DNS Metrics tab tracks the performance and health of DNS resolution for your applications. Monitor query response times, volume, and geographic performance to ensure optimal DNS operations. ## Overview DNS (Domain Name System) is critical to your application's accessibility. Poor DNS performance directly impacts user experience. The DNS Metrics dashboard helps you understand and optimize your DNS infrastructure. --- ## Getting Started ### Accessing DNS Metrics 1. Navigate to **Monitoring** from the main sidebar 2. Click the **DNS Metrics** tab 3. Select your application from the dropdown ### Selecting an Application 1. Click the **DNS Metrics** tab 2. From the dropdown, select the application you want to monitor 3. DNS metrics load automatically for the selected application 4. Metrics update every 5-15 minutes --- ## Understanding DNS Metrics DNS metrics help you understand critical performance aspects: ### Query Response Times **Shows:** Time taken for DNS servers to respond to queries **Healthy Range:** 500ms) - Critical performance issue - Immediate action needed - Significant user impact likely ### Reading Performance Metrics **Example Healthy Status:** - Response Time: 45ms ✅ - Query Volume: 10K/hour (stable) - Record Types: Expected distribution - Geographic Performance: < 100ms globally **Example Warning Status:** - Response Time: 250ms ⚠️ - Query Volume: 50K/hour (increased) - Record Types: Unusual patterns - Geographic Performance: 200-500ms in some regions **Example Critical Status:** - Response Time: 1000ms+ ❌ - Query Volume: Spike detected - Record Types: Unexpected queries - Geographic Performance: > 500ms in multiple regions --- ## Monitoring DNS Metrics ### Daily Monitoring Routine 1. **Check Response Times** - Click DNS Metrics tab - Review current response time - Compare to historical average 2. **Monitor Query Volume** - Look for unusual spikes - Identify peak times - Track growth trends 3. **Verify Record Distribution** - Ensure expected record types - Detect unauthorized records - Check for DNS poisoning attempts 4. **Review Geographic Performance** - Check all regions are performing well - Identify slow regions - Plan regional optimizations ### Analyzing Trends **Over Time Analysis:** - Daily averages - Weekly patterns - Monthly growth - Seasonal variations **Comparison:** - Compare to previous period - Benchmark against industry standards - Track improvement/degradation --- ## When to Take Action ### Response Time Issues **If response times increase:** 1. Check DNS provider status page 2. Review for recent DNS changes 3. Verify DNS server configuration 4. Contact DNS provider if issue persists **Steps to Resolve:** - Switch DNS servers if available - Use a faster DNS provider - Implement DNS caching - Review TTL settings ### Query Volume Spikes **If query volume increases suddenly:** 1. Check for recent marketing campaigns 2. Verify legitimate traffic increase 3. Look for DNS amplification attacks 4. Review application changes **Actions:** - Increase DNS server capacity - Implement query rate limiting - Cache frequently queried records - Update TTL to reduce queries ### Geographic Performance Issues **If a specific region shows poor performance:** 1. Check regional DNS server status 2. Verify network connectivity 3. Consider regional DNS failover 4. Review CDN configuration **Solutions:** - Deploy regional DNS servers - Use GeoDNS for optimization - Implement anycast DNS - Use backup DNS providers ### Unusual Record Queries **If unexpected record types appear:** 1. Verify queries are legitimate 2. Check for DNS hijacking 3. Review DNS record configuration 4. Monitor for security threats **Investigation Steps:** - Review detailed query logs - Identify query sources - Block suspicious queries - Enable DNS security features --- ## DNS Performance Optimization ### Reduce Query Volume **Strategies:** 1. Increase TTL (Time To Live) values - Longer TTL = fewer queries - Balance with dynamic needs - Recommended: 3600 seconds for static records 2. Implement DNS caching - Cache frequently queried records - Reduce backend DNS load - Improve response times 3. Optimize record structure - Consolidate records where possible - Remove unnecessary records - Simplify DNS hierarchy ### Improve Response Times **Optimization Tips:** 1. Use faster DNS provider - Compare providers: Cloudflare, AWS Route53, Google DNS - Test response times - Consider cost vs. performance 2. Enable DNS security - Implement DNSSEC - Reduce validation overhead - Use dedicated DNS servers 3. Distribute DNS load - Use multiple DNS servers - Implement round-robin DNS - Load balance across regions ### Geographic Optimization **Regional Performance:** 1. Deploy regional DNS servers 2. Use GeoDNS for routing 3. Implement anycast DNS 4. Optimize for each region --- ## Monitoring Scenarios ### Scenario 1: DNS Becoming Slow **Situation:** DNS response times increasing **Investigation:** 1. Check current response time metric 2. Review historical trends 3. Compare to previous day/week 4. Check geographic performance **Root Causes:** - DNS server overload - Network connectivity issues - DNS provider issues - Misconfiguration **Resolution:** 1. Contact DNS provider 2. Switch to backup DNS servers 3. Increase query timeout values 4. Implement caching ### Scenario 2: Query Volume Spike **Situation:** DNS query volume increases suddenly **Investigation:** 1. Check spike timing 2. Review application changes 3. Analyze query types 4. Check geographic distribution **Possible Causes:** - Increased traffic - DNS caching issues - Security attack - Application misconfiguration **Actions:** 1. Verify legitimate traffic 2. Review DNS cache settings 3. Monitor for attacks 4. Scale DNS infrastructure ### Scenario 3: Regional Performance Issues **Situation:** Slow DNS in specific region **Investigation:** 1. Identify affected region 2. Check regional DNS server status 3. Test from that region 4. Review network connectivity **Solutions:** 1. Deploy regional DNS server 2. Use regional DNS provider 3. Implement DNS failover 4. Optimize for that region --- ## Best Practices ### Daily Monitoring - ✅ Check response times each morning - ✅ Monitor query volume trends - ✅ Review for unusual activity - ✅ Verify geographic performance ### Weekly Review - ✅ Analyze response time trends - ✅ Review record type distribution - ✅ Check for performance degradation - ✅ Update TTL if needed ### Monthly Analysis - ✅ Comprehensive performance review - ✅ Compare month-over-month - ✅ Plan capacity expansion - ✅ Update DNS configuration ### Security Monitoring - ✅ Monitor for DNS poisoning - ✅ Review unexpected queries - ✅ Enable DNSSEC - ✅ Track suspicious patterns --- ## Troubleshooting ### No Metrics Showing **Problem:** DNS metrics not displaying **Solutions:** 1. Ensure application is selected 2. Verify DNS records are configured 3. Wait 5+ minutes for data collection 4. Check application is receiving traffic 5. Refresh the dashboard ### Metrics Seem Inaccurate **Problem:** Response times don't match expectations **Solutions:** 1. Verify DNS configuration 2. Test DNS manually (nslookup, dig) 3. Check multiple regions 4. Compare with DNS provider metrics 5. Contact support if persistent ### Geographic Data Missing **Problem:** Some regions not showing data **Solutions:** 1. Ensure traffic from that region 2. Check DNS server status 3. Verify DNS resolution in region 4. Review firewall rules 5. Test from region manually --- ## Limits & Considerations | Item | Limit | |------|-------| | **Historical Data** | Last 7 days rolling window | | **Update Frequency** | Every 5-15 minutes | | **Response Time Accuracy** | ±10ms | | **Regions Tracked** | Globally distributed | | **Record Types** | All standard DNS record types | | **Query Volume Limit** | Unlimited tracking | --- ## Related Documentation - [Monitoring Overview](/Monitoring/Overview) - Overview of all monitoring - [HTTP Traffic](/Monitoring/HTTP-Traffic) - HTTP traffic analysis - [DNS Analytics](/Monitoring/DNS-Analytics) - Advanced DNS query analysis - [Uptime Monitoring](/Monitoring/Uptime-Monitoring) - Application availability - [Alerts](/Alerts/Alerts-Overview) - Set up notifications for DNS issues --- ## HTTP Traffic Analysis: Bandwidth & Security Guide URL: https://docs.nife.io/Monitoring/HTTP-Traffic The HTTP Traffic tab provides detailed insights into your application's web traffic patterns and performance metrics. Analyze request volume, bandwidth consumption, cache effectiveness, and security events. ## Getting Started ### Access HTTP Traffic Monitoring 1. Navigate to **Monitoring** from the main sidebar 2. Click the **HTTP Traffic** tab 3. You'll see the configuration panel and metric cards --- ## Configuration Before viewing traffic data, you need to configure your Cloudflare Zone ID: ### Setting Up Your Cloudflare Zone ID 1. In the **Configuration** card, enter your **Cloudflare Zone ID** - Find your Zone ID in your Cloudflare dashboard: Domain → Overview → API - Format: A 32-character hexadecimal string (e.g., `b032a57f01eac20ad3c4e8ba2a05bb19`) 2. Select your desired **Date Range** - Default: Last 30 days - Use the date picker for custom analysis periods - Adjust to compare specific time periods 3. Click **Fetch Data** to retrieve traffic analytics - First-time fetch may take a few seconds - Data updates based on your selected date range - System will display "Fetching..." while loading :::note You need valid Cloudflare API credentials and appropriate permissions to fetch traffic data. Demo mode displays sample data for testing purposes. ::: --- ## Key Metrics The HTTP Traffic tab displays three primary metric cards: ### Total Requests **Shows:** Complete count of HTTP requests in your date range **Why It Matters:** Indicates traffic volume and application popularity **Interpretation:** - Compare across time periods to identify growth - Look for anomalies indicating unusual activity - Use as baseline for performance testing **Example:** 1.2M requests over 30 days = 40K requests/day average ### Cache Hit Rate **Shows:** Percentage of requests served from cache (%) **Why It Matters:** - Higher cache hit rates reduce server load - Improve user experience with faster responses - Reduce bandwidth costs **Optimal Range:** 80-95% is considered excellent **Total Bytes:** Displayed below percentage shows total bandwidth transferred **Optimization Tips:** - Increase TTL for static content - Review cache rules in Cloudflare - Check for incorrectly cached dynamic content ### Security Threats **Shows:** Number of requests blocked by security rules **Why It Matters:** Indicates attack attempts and malicious traffic **What To Do:** - Monitor threat trends over time - Review and adjust security rules if legitimate traffic is blocked - Consider enabling stricter WAF rules - Rate limit suspicious sources **Alert Triggers:** - Sudden spike in threats - Threats from specific countries - Pattern-based attack detection --- ## Traffic Charts ### Traffic Over Time An area chart showing dual metrics: - **Blue Area:** HTTP request volume over time - **Green Area:** Unique visitor count over time **Uses:** - Identify traffic spikes and patterns - Correlate with business events - Detect seasonal trends - Spot anomalies **How to Read:** - X-axis: Time progression - Y-axis: Request/visitor count - Peaks: High traffic periods - Valleys: Low traffic periods ### Cache Distribution (Pie Chart) Shows the proportion of cached vs. un-cached requests: - **Cached Requests:** Served from edge servers (faster, lower cost) - **Un-cached Requests:** Processed by origin server (more resource-intensive) **Target Distribution:** - 80-95% cached (excellent) - 50-80% cached (good) - Below 50% cached (needs optimization) **Optimization Strategy:** 1. Identify content with low cache rates 2. Increase TTL for static content 3. Review cache bypass rules 4. Remove unnecessary cache exceptions ### Top Countries (Bar Chart) Horizontal bar chart displaying top traffic sources by geographic location: **Information Provided:** - Rank by request volume - Geographic distribution - Regional traffic patterns **Uses:** - Content localization decisions - CDN optimization - Market analysis - Regional deployment strategies **Actions:** - Deploy edge servers in high-traffic regions - Localize content for top countries - Adjust server resources based on geography --- ## Daily Statistics Table A detailed daily breakdown showing comprehensive metrics: | Column | Description | Use Case | |--------|-------------|----------| | **Date** | The day of the statistics | Time tracking | | **Requests** | Total HTTP requests processed | Traffic volume | | **Cached** | Requests served from cache | Cache performance | | **Cache Rate** | Percentage of cached requests (green highlighting) | Cache efficiency | | **Bandwidth** | Total bytes transferred (human-readable format) | Cost analysis | | **Visitors** | Unique visitors that day | User engagement | | **Threats** | Security threats blocked | Security posture | ### Reading the Table **Example Row Analysis:** - Date: 2026-01-06 - Requests: 50,000 - Cached: 42,000 - Cache Rate: 84% (good) - Bandwidth: 2.5GB - Visitors: 5,000 - Threats: 123 **Interpretation:** Good cache performance, significant traffic, moderate threat activity ### Using Daily Data - **Identify trends:** Look for consistent patterns - **Spot anomalies:** Compare to previous days - **Plan capacity:** Review peak days - **Track growth:** Compare across weeks/months --- ## Export & Reporting ### Exporting HTTP Traffic Data 1. Click the **Export** button in the HTTP Traffic tab 2. A CSV file downloads with filename: `http-traffic-YYYY-MM-DD.csv` 3. CSV includes all columns from the Daily Statistics table ### CSV File Format The exported CSV contains these columns: ```csv Date, Requests, Cached, Un-cached, Total Bytes, Unique Visitors, Threats ``` ### Export Use Cases - **Analysis:** Import into spreadsheet applications - **Reporting:** Create custom reports - **Archival:** Long-term data storage - **Sharing:** Distribute to stakeholders - **Compliance:** Regulatory requirements - **Integration:** Feed into BI tools ### Excel Import Tips 1. Open the CSV file in Excel 2. Data will auto-detect column formatting 3. Use built-in charts for visualization 4. Create pivot tables for deeper analysis 5. Add formulas for trend calculations --- ## Common Monitoring Scenarios ### Scenario 1: Investigate Traffic Spike **Situation:** Notice unusual traffic increase **Steps:** 1. Go to **HTTP Traffic** tab 2. Adjust date range to include the spike period 3. Review **Traffic Over Time** chart to identify peak times 4. Check **Top Countries** to see if spike is geographic 5. Review **Daily Statistics** table for the affected day 6. Export data for detailed analysis if needed **Questions to Answer:** - What time did the spike occur? - Where is the traffic coming from? - Is it legitimate traffic or attack? - Did cache hit rate change? ### Scenario 2: Optimize Cache Performance **Situation:** Cache hit rate below 80% **Steps:** 1. Check **Cache Distribution** pie chart 2. Review cache rate in **Daily Statistics** 3. Identify which content has low cache rates 4. Check Cloudflare cache rules 5. Adjust TTL settings for static content 6. Monitor after changes **Optimization Checklist:** - ✅ Set appropriate TTL for static assets - ✅ Remove cache-control headers causing bypass - ✅ Check for query string variations - ✅ Review page rules affecting cache ### Scenario 3: Monitor Security Threats **Situation:** Threats metric is increasing **Steps:** 1. Go to **HTTP Traffic** tab 2. Monitor the **Security Threats** metric daily 3. If threats spike: - Review which countries/IPs are attacking - Check attack pattern in **Traffic Over Time** chart - Analyze detailed logs **Response Actions:** - Enable stricter security rules in Cloudflare - Rate limit suspicious sources - Update WAF (Web Application Firewall) rules - Block entire countries if necessary - Review legitimate user impact ### Scenario 4: Analyze Bandwidth Usage **Situation:** Need to understand bandwidth costs **Steps:** 1. Go to **HTTP Traffic** tab 2. Review **Daily Statistics** Bandwidth column 3. Identify peak bandwidth days 4. Check **Cache Distribution** for optimization potential 5. Review **Top Countries** for regional patterns **Cost Reduction Tips:** - Increase cache hit rate - Compress images and assets - Use modern formats (WebP) - Implement bandwidth limits per region --- ## Performance Optimization ### Cache Optimization **Current Cache Rate:** Check the Cache Hit Rate metric **If Below 80%:** 1. Review cache rules in Cloudflare 2. Increase TTL for static content 3. Check dynamic content is not cached 4. Monitor after changes ### Bandwidth Reduction **Strategies:** - Compress images (50-70% reduction) - Minify CSS/JavaScript (20-30% reduction) - Use CDN caching (80-90% reduction) - Implement gzip compression ### Request Volume Management **Monitor Trends:** - Daily average requests - Peak request times - Request growth rate **Optimization:** - Implement request throttling - Use caching effectively - Optimize database queries - Reduce API calls --- ## Troubleshooting ### No Data Showing **Problem:** "Failed to fetch traffic data" **Solutions:** 1. Verify Zone ID is correct (32 characters) 2. Confirm API token has appropriate permissions 3. Check that domain is active in Cloudflare 4. Ensure date range is valid ### Inaccurate Metrics **Problem:** Metrics seem off or incomplete **Solutions:** 1. Ensure correct date range is selected 2. Re-fetch data by clicking "Fetch Data" button 3. Check that your application is receiving traffic 4. Verify Cloudflare is tracking the domain ### Data Load Issues **Problem:** Dashboard loads slowly **Solutions:** 1. Try refreshing the page 2. Check internet connection 3. Use a shorter date range 4. Contact support if persistent --- ## Limits & Considerations | Item | Limit | |------|-------| | **Historical Data** | Last 30 days (configurable) | | **Data Granularity** | Daily aggregation | | **Export File Size** | Up to 10,000 rows | | **Time to Update** | Daily sync from Cloudflare | | **Date Range Selection** | Minimum 1 day, Maximum 90 days | | **Concurrent Monitors** | Unlimited | --- ## Best Practices ### Daily Routine - ✅ Check traffic volume in morning - ✅ Monitor cache hit rate - ✅ Review security threats - ✅ Spot check top countries ### Weekly Review - ✅ Export and archive data - ✅ Review trend analysis - ✅ Identify optimization opportunities - ✅ Update security rules if needed ### Monthly Reporting - ✅ Generate monthly report - ✅ Compare month-over-month - ✅ Calculate bandwidth costs - ✅ Plan capacity for next month --- ## Related Documentation - [Monitoring Overview](/Monitoring/Overview) - Overview of all monitoring features - [DNS Metrics](/Monitoring/DNS-Metrics) - DNS performance monitoring - [DNS Analytics](/Monitoring/DNS-Analytics) - Advanced DNS analysis - [Uptime Monitoring](/Monitoring/Uptime-Monitoring) - Application availability - [Alerts](/Alerts/Alerts-Overview) - Set up automated notifications --- ## Monitoring Quick Reference URL: https://docs.nife.io/Monitoring/Quick-Reference # Monitoring Quick Reference Quick reference guide for common monitoring tasks, metrics explanation, and troubleshooting. --- ## Quick Navigation ### Accessing Features | Feature | Path | Keyboard | |---------|------|----------| | HTTP Traffic | Monitoring → HTTP Traffic tab | Tab 1 | | DNS Metrics | Monitoring → DNS Metrics tab | Tab 2 | | DNS Analytics | Monitoring → DNS Analytics tab | Tab 3 | | Uptime | Monitoring → Uptime tab | Tab 4 | ### Recommended First Steps 1. **New Users:** Start with [Monitoring Overview](/Monitoring/Overview) 2. **Traffic Issues:** Go to [HTTP Traffic](/Monitoring/HTTP-Traffic) 3. **Slow DNS:** Check [DNS Metrics](/Monitoring/DNS-Metrics) 4. **Ap** --- ## Uptime Monitoring & SLA Tracking Guide URL: https://docs.nife.io/Monitoring/Uptime-Monitoring # Uptime Monitoring The Uptime tab provides real-time monitoring of your application's availability and performance. Track response times, uptime percentage, and SSL certificate expiration with minute-level granularity. ## Overview Uptime monitoring is critical for maintaining service reliability. It continuously checks your application availability and provides real-time visibility into performance metrics. Use this data to identify issues quickly and maintain SLA compliance. --- ## Getting Started ### Accessing Uptime Monitoring 1. Navigate to **Monitoring** from the main sidebar 2. Click the **Uptime** tab 3. Select your application from the dropdown 4. Uptime data loads automatically ### Selecting An Application 1. Click the **Uptime** tab 2. From the dropdown, select the application you want to monitor 3. Wait for metrics to load (typically a few seconds) 4. Data refreshes automatically every 1-5 minutes ### Initial Setup **First Time Setup:** 1. Select your application 2. System begins monitoring immediately 3. Data collection starts in background 4. Historical data available after 5+ minutes **Demo Mode:** - Demo accounts display sample data - Use for testing and learning - Real data available after upgrading --- ## Time Range Selection View uptime data for different monitoring periods to match your needs: ### Available Time Ranges #### Last 1 Hour **Use Case:** Immediate monitoring and troubleshooting **Best For:** - Current issue investigation - Real-time status checking - Rapid response to incidents - Minute-by-minute analysis **Granularity:** 1-minute intervals #### Last 3 Hours **Use Case:** Identify recent patterns **Best For:** - Recent issue investigation - Trend detection - Performance analysis - Root cause investigation **Granularity:** 3-5 minute intervals #### Last 24 Hours **Use Case:** Comprehensive daily overview **Best For:** - Daily health check - Pattern identification - SLA compliance verification - Capacity planning **Granularity:** 15-30 minute intervals ### Switching Time Ranges 1. Click the time range dropdown 2. Select desired period 3. Chart updates automatically 4. Metrics recalculate --- ## Uptime Metrics The dashboard displays four critical metrics that together provide complete visibility into application health: ### Response Time (ms) **Current Response Time:** - **Shows:** The most recent response time measurement - **Unit:** Milliseconds (ms) - **Update Frequency:** Every 1-5 minutes **Healthy Range:** - Excellent: 30 days) **Action:** Continue normal operations ### Warning Signs **Indicators:** - ⚠️ Response times increasing - ⚠️ Occasional red segments - ⚠️ Uptime dropping below 99% - ⚠️ Certificate < 30 days - ⚠️ Increased failure rate **Actions:** 1. Investigate cause of degradation 2. Check application logs 3. Review resource usage 4. Plan certificate renewal 5. monitor closely ### Critical Issues **Indicators:** - 🔴 Multiple consecutive red segments - 🔴 Response times > 1000ms - 🔴 Uptime below 95% - 🔴 Certificate expired - 🔴 Persistent failures **Immediate Actions:** 1. Alert team immediately 2. Check application status 3. Review recent changes 4. Start incident response 5. Communicate to users 6. Renew certificate if expired --- ## Common Monitoring Scenarios ### Scenario 1: Detect Outage **Situation:** Application stops responding **Indicators:** - Red segments appear in status bar - Response time drops to zero/timeout - Chart shows downward spike - Uptime percentage decreases **Steps To Investigate:** 1. Check exact time of failure 2. Review application logs 3. Check infrastructure status 4. Verify DNS resolution 5. Check network connectivity **Resolution:** 1. Restart application if needed 2. Check recent deployments 3. Review resource usage 4. Fix underlying cause 5. Monitor for recurrence ### Scenario 2: Performance Degradation **Situation:** Response times slowly increasing **Indicators:** - Response times trending upward - Chart shows upward slope - Occasional red segments - Uptime still high **Root Causes:** - Increased traffic - Memory leak - Database slowdown - Resource constraints - Network latency **Investigation:** 1. Check traffic volume 2. Review application metrics 3. Check database performance 4. Monitor system resources 5. Review recent changes **Solutions:** 1. Scale application horizontally 2. Optimize code/queries 3. Increase resources 4. Clear caches 5. Deploy fix ### Scenario 3: Traffic Spike **Situation:** Response times spike during peak time **Indicators:** - Response times increase during peak hours - Pattern repeats daily - Returns to normal after peak - Outages don't occur **Analysis:** 1. This is expected behavior 2. Peak is predictable 3. Application recovering normally 4. No critical issue **Optimization:** - Scale during peak times - Increase baseline resources - Implement caching - Optimize code - Use CDN ### Scenario 4: SSL Certificate Expiration **Situation:** Certificate expiration approaching **Indicators:** - Certificate expiration days: 15-30 - Yellow warning in metric - Browser warnings if expired **Action Plan:** - Week 1: Request new certificate - Week 2: Validate and install - Week 3: Verify installation - Day before: Final check - After renewal: Monitor --- ## Best Practices ### Daily Monitoring Routine - ✅ Check uptime percentage each morning - ✅ Review response time trend - ✅ Look for red segments - ✅ Check certificate expiration (weekly) ### Performance Management - ✅ Maintain target uptime > 99% - ✅ Keep response time < 200ms - ✅ Investigate degradation > 20% - ✅ Document response to incidents ### Certificate Management - ✅ Set reminder at 60 days before expiration - ✅ Renew certificate at 30 days before - ✅ Test in staging before production - ✅ Verify installation after renewal ### Incident Response - ✅ Alert team on outage - ✅ Collect monitoring data - ✅ Document timeline - ✅ Perform root cause analysis - ✅ Implement preventive measures --- ## Troubleshooting ### No Uptime Data Showing **Problem:** "No Uptime Data Available" message **Solutions:** 1. Ensure application is selected 2. Verify application is deployed 3. Check application is receiving traffic 4. Wait 5+ minutes for initial data 5. Verify DNS records configured 6. Check firewall rules allow monitoring ### Data Shows Downtime But App Is Up **Problem:** Monitoring shows outage, but app appears working **Possible Causes:** - Monitoring endpoint different from user endpoint - Firewall blocking monitoring requests - Regional network issue - Application partially down - DNS issue **Investigation:** 1. Test application from multiple locations 2. Check network connectivity 3. Verify DNS resolution 4. Review application logs 5. Check firewall rules ### Certificate Expiration Showing Incorrectly **Problem:** Certificate days showing wrong value **Solutions:** 1. Verify certificate is installed correctly 2. Check system clock is correct 3. Refresh monitoring dashboard 4. Wait for next automatic check 5. Contact certificate provider ### Response Times Unrealistic **Problem:** Response times don't match expectations **Causes:** - Monitoring from distant region - Network latency including - Large response payload - Slow network connection - Slow DNS resolution **Verification:** 1. Test locally 2. Test from other regions 3. Check network connectivity 4. Review payload size 5. Benchmark manually --- ## Limits & Considerations | Item | Limit | |------|-------| | **Data Granularity** | 1-5 minute intervals | | **Historical Data** | Full history (unlimited) | | **Response Time Accuracy** | ±50ms | | **Uptime Calculation** | Based on monitoring checks | | **Certificate Check** | Daily verification | | **Monitoring Locations** | Global distributed | --- ## Related Documentation - [Monitoring Overview](/Monitoring/Overview) - Overview of all monitoring - [HTTP Traffic](/Monitoring/HTTP-Traffic) - HTTP traffic analysis - [DNS Metrics](/Monitoring/DNS-Metrics) - DNS performance monitoring - [DNS Analytics](/Monitoring/DNS-Analytics) - Advanced DNS analysis - [Alerts](/Alerts/Alerts-Overview) - Set up uptime alerts - [Applications Management](/UI-Guide/Apps-&-their-Management/App-management/Overview) - Manage your applications --- ## Application Monitoring & Analytics | Nife URL: https://docs.nife.io/Monitoring Comprehensive real-time monitoring dashboard for tracking application uptime, analyzing HTTP traffic, monitoring DNS performance, and understanding application health. ## Getting Started with Monitoring Deploy comprehensive monitoring for your applications: 1. **[Monitoring Overview](/Monitoring/Overview)** - Understand monitoring features 2. **[Uptime Monitoring](/Monitoring/Uptime-Monitoring)** - Track application availability 3. **[HTTP Traffic Analysis](/Monitoring/HTTP-Traffic)** - Analyze web traffic patterns 4. **[DNS Metrics](/Monitoring/DNS-Metrics)** - Monitor DNS performance 5. **[DNS Analytics](/Monitoring/DNS-Analytics)** - Advanced DNS query analysis --- ## Monitoring Features ### 📈 Real-Time Uptime Tracking - Minute-level granularity monitoring - Response time tracking - SLA compliance verification - SSL certificate expiration alerts - 99.9% uptime guarantees ### 📊 HTTP Traffic Analytics - Request volume analysis - Bandwidth usage tracking - Cache hit rate optimization - Security threat detection - Geographic traffic distribution - Daily statistics with export ### 🌐 DNS Performance Monitoring - Query response time tracking - Resolution performance analysis - Query volume monitoring - Record type distribution - Geographic DNS performance - Health indicators by region ### 📉 Advanced Analytics - Query pattern analysis - Trend identification - Anomaly detection - Performance optimization - Historical data analysis - Custom reporting --- ## Key Metrics Overview ### Uptime Metrics ```text ✓ Response Time (ms) - Current & average latency ✓ Uptime Percentage - Availability percentage ✓ SSL Certificate Status - Expiration days remaining ✓ Availability Status - Real-time status indicator ``` ### HTTP Traffic Metrics ```text ✓ Total Requests - Request volume ✓ Cache Hit Rate - Percentage of cached requests ✓ Bandwidth Usage - Total bytes transferred ✓ Security Threats - Blocked malicious requests ✓ Unique Visitors - User engagement ``` ### DNS Metrics ```text ✓ Query Response Times - Performance indicators ✓ Query Volume - Query trends ✓ Record Types - Distribution of DNS records ✓ Geographic Performance - Regional performance ``` --- ## Monitoring Dashboard Tabs ### 1. Uptime Tab Real-time application availability monitoring - Response time tracking - Uptime percentage - SSL certificate status - Historical charts - Time range selection (1h, 3h, 24h) ### 2. HTTP Traffic Tab Web traffic analysis and optimization - Configuration panel (Cloudflare Zone ID) - Metric cards (Requests, Cache, Threats) - Traffic charts with trends - Cache distribution analysis - Top countries by traffic - Daily statistics table - CSV export functionality ### 3. DNS Metrics Tab DNS performance monitoring - Application selection - Performance indicators - Query response times - Query volume analysis - Geographic performance - Status color coding ### 4. DNS Analytics Tab Advanced DNS query analysis - Query pattern trends - Query type distribution - DNSSEC status - Unusual behavior detection - Historical trend analysis --- ## Common Monitoring Scenarios ### 📍 Investigate Application Downtime 1. Navigate to **Uptime** tab 2. Review response time chart 3. Identify failure times on status bar 4. Check red segments for duration 5. Review time range around incident 6. Correlate with traffic/DNS data ### 🔍 Optimize Cache Performance 1. Go to **HTTP Traffic** tab 2. Check cache hit rate metric 3. Review distribution pie chart 4. If below 80%, optimize settings 5. Increase TTL for static content 6. Monitor improvements ### 📊 Analyze Traffic Patterns 1. Click **HTTP Traffic** tab 2. Review traffic over time chart 3. Check top countries 4. Analyze daily statistics 5. Export data for reporting 6. Identify optimization opportunities ### 🛡️ Monitor Security Threats 1. Go to **HTTP Traffic** tab 2. Monitor security threats metric 3. Track threat trends 4. Review spike details 5. Adjust security rules 6. Monitor blocked traffic ### 🌐 Track DNS Performance 1. Navigate to **DNS Metrics** tab 2. Select application 3. Review response times 4. Check geographic performance 5. Monitor query volume 6. Investigate slow regions --- ## Performance Targets ### Uptime Goals ```text Production Apps: 99.9%+ uptime (8.7 hours/year max downtime) Staging Apps: 99%+ uptime Response Time: 500ms (investigate) ``` ### HTTP Traffic Goals ```text Cache Hit Rate: 80-95% (excellent) 50-80% (good) 500ms (investigate) Query Volume: Track growth trends Monitor for spikes Detect anomalies ``` --- ## Frequently Asked Questions ### Q: How Often Does Monitoring Data Update? **A:** Uptime every 1-5 minutes, HTTP traffic daily, DNS metrics every 5-15 minutes. ### Q: Can I export monitoring data? **A:** Yes, HTTP Traffic tab allows CSV export of daily statistics. ### Q: How far back is historical data? **A:** Uptime (unlimited), HTTP Traffic (30 days), DNS Metrics (7 days rolling). ### Q: What should my uptime percentage be? **A:** Target 99.9% or higher for production applications. ### Q: How do I improve cache hit rate? **A:** Increase TTL, review cache rules, check Cloudflare settings. ### Q: What is a good response time? **A:** Under 200ms is excellent, under 500ms is acceptable. ### Q: How do I set up alerts? **A:** See Alerts documentation for configuring uptime/performance alerts. ### Q: Can I monitor multiple applications? **A:** Yes, select different apps from dropdowns in each tab. ### Q: What do the status colors mean? **A:** Green (healthy), Yellow (warning), Red (critical). ### Q: How do I troubleshoot slow DNS? **A:** Check DNS Metrics for response times and geographic performance. --- ## Monitoring Best Practices ### Daily Monitoring - ✅ Check uptime percentage morning - ✅ Review response time trends - ✅ Monitor security threats - ✅ Verify certificate status (weekly) - ✅ Check for red status indicators ### Weekly Review - ✅ Analyze performance trends - ✅ Review traffic patterns - ✅ Check DNS performance - ✅ Export and archive data - ✅ Identify optimization opportunities ### Monthly Analysis - ✅ Comprehensive performance review - ✅ Compare month-over-month metrics - ✅ Calculate SLA compliance - ✅ Plan capacity expansion - ✅ Review security incidents ### Performance Optimization - ✅ Maintain cache > 80% - ✅ Keep response time 99.9% - ✅ Review slow query trends ### Security Monitoring - ✅ Review threats regularly - ✅ Monitor unusual patterns - ✅ Check geographic anomalies - ✅ Update security rules - ✅ Track blocked requests --- ## Monitoring Tools Integration ### Cloudflare Integration - Zone ID configuration - Traffic data syncing - Cache metrics - Security data - Geographic analytics ### Alerts Integration - Real-time notifications - Uptime alerts - Performance degradation - Certificate expiration - Security threats ### Applications Management - Select monitoring apps - Link to app dashboards - Unified monitoring view - Historical data tracking --- ## Quick Links by Use Case ### For Operations Teams - **[Uptime Monitoring](/Monitoring/Uptime-Monitoring)** - SLA tracking - **[Alerts](/Alerts/Alerts-Overview)** - Notifications - **[Applications](/UI-Guide/Apps-&-their-Management/App-management/Overview)** - App management ### For Traffic Analysis - **[HTTP Traffic Analysis](/Monitoring/HTTP-Traffic)** - Bandwidth & caching - **[Export Data](/Monitoring/HTTP-Traffic#export--reporting)** - Reporting ### For Performance Optimization - **[Uptime Monitoring](/Monitoring/Uptime-Monitoring)** - Response times - **[DNS Metrics](/Monitoring/DNS-Metrics)** - DNS performance ### For Security - **[HTTP Traffic Analysis](/Monitoring/HTTP-Traffic)** - Security threats - **[DNS Analytics](/Monitoring/DNS-Analytics)** - DNS attacks --- ## Support & Resources **Need Help?** - **Guides**: Check documentation pages above - **FAQ**: See frequently asked questions - **Status Page**: [Nife Status](https://status.nife.io) - **Contact**: support@nife.io - **Community**: [OpenHub](https://openhub.nife.io) --- ## What's Next? Ready to start monitoring? 1. **[View Overview](/Monitoring/Overview)** - 5 minutes to understand features 2. **[Set Up Uptime](/Monitoring/Uptime-Monitoring)** - 5 minutes to enable 3. **[Configure HTTP Traffic](/Monitoring/HTTP-Traffic)** - 10 minutes setup 4. **[Monitor DNS](/Monitoring/DNS-Metrics)** - 5 minutes to track 5. **[Set Up Alerts](/Alerts/Alerts-Overview)** - 10 minutes for notifications **Estimated total time:** 35 minutes to complete monitoring setup! --- ## How to Manage Organization Members: Roles & Access Control | Nife URL: https://docs.nife.io/organizations/members Control who has access to your organization and what they can do. ## View Organization Members ### Steps 1. Go to **Organizations** page 2. Click on any organization card to open the member management dialog 3. You'll see all members in the **Current Members** section The Members tab also shows all platform members if you're an admin. ## Invite New Members ### Steps 1. Open an organization by clicking on its card 2. Click **Invite Member** button 3. Enter the member's email address 4. Select a role (Member or Viewer) 5. Click **Invite** ### Member Roles #### Admin Role - Full control over organization - Can invite and remove members - Can delete the organization - Can migrate resources - Can manage all workloads and secrets #### Member Role - Can create and update applications - Can manage workloads - Can view and manage secrets - Cannot invite members - Cannot delete organization - Can manage assigned resources #### Viewer Role - Read-only access to all resources - Can view applications and workloads - Cannot create or modify anything - Cannot invite members - Cannot delete organization ### Choosing the Right Role **Use Admin for:** - Team leads - Project managers - Senior engineers **Use Member for:** - Developers - Engineers - Operations staff **Use Viewer for:** - Stakeholders - Product managers (read-only) - Auditors ## Change Member Role ### Steps 1. Open the organization 2. Find the member in the list 3. Click the role dropdown (showing current role) 4. Select the new role 5. The role updates immediately ### Example Workflow - New team member joins → Invite as **Member** - Promoted to team lead → Change to **Admin** - Moved to read-only access → Change to **Viewer** ## Remove a Member ### Steps 1. Open the organization 2. Find the member in the list 3. Click the delete button (trash icon) 4. Confirm the removal 5. The member is removed from the organization ### After Removal - Member loses access to organization - Member cannot access organization resources - Member cannot see organization-specific data - Previous resources remain intact ⚠️ **Note**: Removing a member doesn't delete their user account from the platform. ## Member Invitations When you invite a member: 1. They receive an invitation (via email or system notification) 2. They can accept or decline the invitation 3. Once accepted, they become a full member 4. Before acceptance, their status shows as "Invited" ### Invited Member Status - ⏳ **Invited** - Invitation pending acceptance - ✅ **Active** - Member has accepted and is active ## View All Platform Members Click the **Members** tab to see: - All users on the platform - Their organizations - Their roles in each organization - Their status (Active or Invited) This is useful for: - Finding existing users to add to your organization - Understanding platform-wide user structure - Seeing who has access to what ## Best Practices ✓ **Assign appropriate roles** - Match roles to job responsibilities ✓ **Regular audits** - Review members quarterly ✓ **Principle of least privilege** - Give minimum access needed ✓ **Document access** - Track who has what access and why ✓ **Secure admin access** - Limit number of admins ✓ **Remove inactive members** - Clean up unused accounts ## Troubleshooting ### Can't invite a member? - Check that the email address is valid - Make sure the email isn't already invited to this organization - Verify you have permission to invite members (Admin role required) ### Member not appearing after invite? - Refresh the page - Wait a few moments for the system to update - Check that the member accepted the invitation ### Can't change a member's role? - Verify you have Admin permissions in the organization - Make sure you're not trying to remove yourself as admin - Check that the new role is a valid option ### Want to see member details? Click on a member in the list to see their: - Full name - Email address - Current role - Status (Active or Invited) ## Related Topics - [Create Organizations](./Organizations-Overview.mdx) - [Organizational Secrets](./Organizational-Secrets.mdx) - [Workloads](./Managing-Workloads.mdx) --- ## Manage Organization Workloads: Apps & Deployments URL: https://docs.nife.io/organizations/workloads View and manage all your applications, deployments, and instances at the organization level. ## What are Workloads? Workloads are all the running applications and services in your organization: - **Applications** - Code you've deployed - **Deployments** - Different versions of applications - **Instances** - Running containers and services - **Jobs** - Scheduled or one-time tasks ## Accessing Workloads ### Steps 1. Go to **Organizations** page 2. Click the **Workloads** tab 3. You'll see all workloads in your organization ## View Workload List The workloads list shows: - **Application Name** - The name of your app - **Status** - Running, stopped, or error - **Environment** - Development, staging, production, etc. - **Last Updated** - When changes were last made - **Instances** - Number of running instances - **Memory/CPU** - Resource usage ## Filter Workloads Filter the list by: - **Application** - Show specific app - **Environment** - Dev, staging, prod - **Status** - Running, stopped, error - **Search** - Find by name ### Filter Steps 1. Click the **Filter** button 2. Select filter criteria 3. Results update automatically 4. Click **Clear Filters** to reset ## Search Workloads Use the search box to find workloads by name: - Type the workload name - Results filter as you type - Case insensitive search ## Sort Workloads Click column headers to sort by: - Name (A-Z or Z-A) - Status - Created date - Updated date - Resource usage ## View Workload Details Click on any workload to see: - Full configuration - Deployment history - Current status - Resource usage - Environment variables - Recent activity ## Monitor Workload Status ### Status Indicators - 🟢 **Running** - Workload is active - 🟡 **Starting** - Workload is starting up - 🔴 **Stopped** - Workload is not running - ⚠️ **Error** - Something went wrong - ⏳ **Updating** - Workload is being updated Click on status to see details or error messages. ## Common Workload Management Tasks ### Start a Workload 1. Find the workload 2. Click **Start** button 3. Workload begins running ### Stop a Workload 1. Find the workload 2. Click **Stop** button 3. Workload stops gracefully ### Restart a Workload 1. Find the workload 2. Click **Restart** button 3. Workload stops and starts ### Scale a Workload 1. Find the workload 2. Click **Scale** or instance count 3. Adjust number of instances 4. Click **Apply** ## Monitor Resources Each workload shows: - **CPU Usage** - Processor utilization - **Memory Usage** - RAM consumption - **Network** - Data transfer - **Disk** - Storage usage Click workload to see detailed metrics over time. ## Manage Workload Configuration You can update: - Environment variables - Resource limits - Scaling settings - Port mappings - Volume mounts Changes are applied to running instances automatically or on next restart. ## Deployment History View all previous deployments: - Deployment date and time - Version deployed - Deployed by (which user) - Status and result - Rollback options ## Logs and Monitoring Access workload logs from the workload details: - **Application Logs** - Your app's output - **System Logs** - Container and infrastructure logs - **Error Logs** - Failures and exceptions - **Access Logs** - HTTP requests Use the log viewer to: - Search for specific messages - Filter by log level - Export logs - Set up alerts ## Common Issues ### Workload not starting? - Check resource requirements - Verify configuration is valid - Check logs for error messages - Ensure ports aren't already in use ### High resource usage? - Monitor CPU and memory trends - Scale up instance count - Optimize application code - Consider caching strategies ### Workload crashing? - Check logs for error details - Verify configuration - Check resource limits - Review recent changes ## Best Practices ✓ **Monitor regularly** - Check workload health daily ✓ **Set up alerts** - Get notified of issues ✓ **Use health checks** - Enable monitoring ✓ **Scale appropriately** - Match instances to load ✓ **Document setup** - Keep track of configuration ✓ **Review logs** - Check logs regularly ✓ **Plan updates** - Test before deploying to prod ## Tips - Use meaningful names for workloads - Organize by environment (dev, staging, prod) - Tag workloads for easy filtering - Set resource limits based on needs - Monitor metrics over time - Set up automated alerts for issues ## Related Topics - [Create Organizations](./Organizations-Overview.mdx) - [Manage Organization Members](./Managing-Members.mdx) - [Organizational Secrets](./Organizational-Secrets.mdx) - [Application Deployment](../Deploy/Deploy.mdx) --- ## Organizational Secrets Management: API Keys & Credentials URL: https://docs.nife.io/organizations/secrets Store and manage sensitive information securely at the organization level. ## What are Organizational Secrets? Organizational Secrets are sensitive data stored securely at the organization level, such as: - API keys and tokens - Database passwords - Third-party service credentials - Configuration values - License keys --- ## Accessing Organizational Secrets ### Steps 1. Click **Organizations** in the main navigation 2. Click the **Organizational Secrets** tab 3. You'll see all secrets for the current organization --- ## Create a Secret ### Steps 1. Go to the **Organizational Secrets** tab 2. Click **Add Secret** 3. Enter the secret details: - **Name**: Unique identifier for the secret - **Value**: The sensitive data - **Description**: Optional details about the secret 4. Click **Create** ### Naming Best Practices Use clear, descriptive names: - ✓ `DATABASE_PASSWORD_PROD` - ✓ `STRIPE_API_KEY_LIVE` - ✓ `SLACK_WEBHOOK_URL` - ✗ `secret123` - ✗ `password` - ✗ `key` --- ## View Secrets The secrets list shows: - **Secret Name** - The identifier you gave it - **Last Updated** - When it was last modified - **Created By** - Who created the secret - **Status** - Whether it's active Values are hidden by default for security. Click the eye icon to reveal a secret value. --- ## Update a Secret ### Steps 1. Find the secret in the list 2. Click **Edit** or the pencil icon 3. Update the value and/or description 4. Click **Save** The secret is immediately updated and available to use. --- ## Delete a Secret ### Steps 1. Find the secret in the list 2. Click **Delete** or the trash icon 3. Confirm the deletion ⚠️ **Warning**: Deleted secrets cannot be recovered. Make sure you're deleting the correct secret. --- ## Use Secrets in Applications Once created, use secrets in your applications by referencing their names: ``` $DATABASE_PASSWORD_PROD $STRIPE_API_KEY_LIVE $SLACK_WEBHOOK_URL ``` The system automatically injects the secret values at runtime. --- ## Secret Visibility Secrets are: - ✓ Visible to organization members with appropriate roles - ✓ Hidden from viewers (unless explicitly configured) - ✓ Encrypted in storage - ✓ Never displayed in logs --- ## Security Practices ✓ **Use strong values** - Generate secure random values for passwords and keys ✓ **Regular rotation** - Update secrets periodically ✓ **Limited access** - Only give access to people who need it ✓ **Document secrets** - Keep track of what each secret is for ✓ **Audit usage** - Monitor who accesses which secrets ✓ **Delete unused** - Remove secrets that are no longer needed --- ## Secret Management Best Practices ### Organization-Level Secrets Use for: - Shared credentials - Database connections - Third-party service keys - Configuration that applies to multiple applications ### Application-Level Secrets Use for: - Application-specific configuration - Feature flags - Debug settings ### Environment-Specific Secrets Maintain separate secrets for: - Development - Staging - Production Use naming convention to identify: - `API_KEY_DEV` - `API_KEY_STAGING` - `API_KEY_PROD` --- ## Troubleshooting ### Secret value is showing as empty? - Refresh the page - Verify the secret was created successfully - Check if you have permission to view secrets ### Can't create a secret? - Verify you have the correct role (Admin or Member) - Check that the secret name is unique - Make sure the value isn't empty ### Forgot the secret value? - If you remember the name, you can view it by clicking the eye icon - If you forgot the value completely, you'll need to update it with the correct value - There's no way to recover a forgotten secret value ### Need to share a secret with a team member? - Add them to the organization with appropriate role - They'll have access to all organization secrets - Alternatively, ask an admin to share specific secrets --- ## Security Considerations 🔐 **Encryption**: All secrets are encrypted in storage 🔐 **Access Control**: Only organization members can access 🔐 **Audit Trail**: Access to secrets is logged 🔐 **No Backups**: Deleted secrets cannot be recovered --- ## Common Secrets to Store Database Credentials: - `DB_HOST` - `DB_USER` - `DB_PASSWORD` - `DB_PORT` API Keys: - `STRIPE_API_KEY` - `GITHUB_TOKEN` - `AWS_ACCESS_KEY` - `AWS_SECRET_KEY` Service URLs: - `SMTP_SERVER` - `REDIS_URL` - `ELASTICSEARCH_URL` --- ## Related Topics - [Manage Organization Members](./Managing-Members.mdx) - [Create Organizations](./Organizations-Overview.mdx) - [Application Configuration](../Configure/Configure.mdx) --- ## Organizations Quick Reference URL: https://docs.nife.io/organizations/quick-reference Quick tips and shortcuts for managing your organizations. ## Common Tasks | Task | Steps | |------|-------| | View organizations | Go to Organizations menu | | Create organization | Click "Create Organization" → Enter name → Click "Create" | | Invite member | Click organization → Click "Invite Member" → Enter email → Select role | | Change member role | Click organization → Find member → Click role dropdown → Select new role | | Remove member | Click organization → Find member → Click delete icon → Confirm | | View secrets | Click "Organizational Secrets" tab | | Create secret | Click "Add Secret" → Enter name and value → Click "Create" | | View workloads | Click "Workloads" tab | | Migrate organization | Click migrate icon on organization card → Select destination → Confirm | ## Member Roles at a Glance | Role | Create | Update | Delete | Invite | Permissions | |------|--------|--------|--------|--------|-------------| | Admin | ✓ | ✓ | ✓ | ✓ | Full control | | Member | ✓ | ✓ | - | - | Limited control | | Viewer | - | - | - | - | Read-only | ## Organization Naming Tips ✓ Use descriptive names ✓ Include context ✓ Keep it concise ✓ Use common separators (-, _) Examples: - `Production-US-East` - `Development_Team` - `Client_Project_Staging` ## Member Invitation Status - ⏳ **Invited** - Waiting for acceptance - ✅ **Active** - Member is active in organization ## Secret Management Checklist - [ ] Use clear, descriptive names - [ ] Store sensitive data securely - [ ] Rotate credentials regularly - [ ] Document what each secret is for - [ ] Remove unused secrets - [ ] Limit who can access secrets ## Before Migrating - [ ] Notify your team - [ ] Backup important data - [ ] Verify destination organization - [ ] Plan for timing - [ ] Check team permissions ## Organization Security ✓ Use Admin role sparingly ✓ Review members regularly ✓ Remove inactive users ✓ Use strong secret values ✓ Rotate credentials periodically ✓ Limit secret access ## Tips for Success 1. **Keep organizations organized** - Use clear naming 2. **Document purpose** - Know what each org is for 3. **Regular reviews** - Check members monthly 4. **Secure secrets** - Treat secrets as sensitive data 5. **Plan migrations** - Don't rush big changes 6. **Monitor workloads** - Keep watch on running apps 7. **Backup data** - Keep important data safe ## Keyboard Shortcuts | Action | Shortcut | |--------|----------| | Focus search | `Ctrl + K` or `Cmd + K` | | Create organization | `Ctrl + Shift + O` (if available) | | Refresh | `F5` | ## Role Quick Decision Guide **Choose ADMIN if:** - Person manages the organization - Person invites/removes members - Person owns important projects **Choose MEMBER if:** - Person develops/deploys applications - Person manages workloads - Person needs to create resources **Choose VIEWER if:** - Person only needs to see status - Person is read-only observer - Person is stakeholder/manager ## Troubleshooting at a Glance | Problem | Solution | |---------|----------| | Can't invite member | Check email validity, verify permissions | | Member not appearing | Refresh page, wait a moment | | Can't create organization | Verify name is valid, check permissions | | Migration failed | Check destination, verify permissions | | Can't access secrets | Verify organization membership, check role | ## Common Secret Names ``` DATABASE_PASSWORD_PROD DATABASE_PASSWORD_DEV API_KEY_STRIPE API_KEY_GITHUB SLACK_WEBHOOK_URL SENDGRID_API_KEY AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY JWT_SECRET SESSION_SECRET REDIS_URL MONGODB_URI GITHUB_OAUTH_TOKEN ENCRYPTION_KEY ``` ## Member Email Format Required format: ``` user@example.com john.doe@company.com team+notifications@example.com ``` Invalid formats: ``` user (no domain) @example.com (no username) user@domain (no TLD) ``` ## Status Indicators Meaning | Indicator | Meaning | |-----------|---------| | 🟢 Green | Everything working | | 🟡 Yellow | Warning or starting | | 🔴 Red | Error or stopped | | ⚪ Gray | Initializing | ## Best Time to Perform Actions ✓ **Create organizations** - Anytime ✓ **Invite members** - During onboarding ✓ **Change roles** - As needed ✓ **Migrate organizations** - During low-traffic periods ✓ **Update secrets** - Outside business hours if possible ✓ **Review members** - Monthly or quarterly ## Remember - Always backup important data before major changes - Notify your team before migrating or major changes - Test with non-critical resources first - Keep secrets secure and don't share via chat - Review access permissions regularly - Document your organization structure ## Need Help? - **Creating organizations** - See [Organizations Overview](./Organizations-Overview.mdx) - **Managing members** - See [Managing Members](./Managing-Members.mdx) - **Secrets** - See [Organizational Secrets](./Organizational-Secrets.mdx) - **Workloads** - See [Manage Workloads](./Managing-Workloads.mdx) - **Migration** - See [Migrating Organizations](/organizations/migrate) --- ## Organizations & Team Management: Complete Guide | Nife Docs URL: https://docs.nife.io/organizations Comprehensive guide to setting up and managing organizations, teams, members, workloads, and secrets in Nife. ## Getting Started with Organizations Organize your team and resources efficiently: 1. **[Organizations Overview](/organizations/overview)** - Create and manage organizations 2. **[Managing Members](/organizations/members)** - Invite members and assign roles 3. **[Managing Workloads](/organizations/workloads)** - View and manage all workloads 4. **[Organizational Secrets](/organizations/secrets)** - Manage sensitive data 5. **[Migrating Organizations](/organizations/migrate)** - Move resources between organizations --- ## Organization Features ### 👥 Team Management - Create multiple organizations - Invite team members - Assign roles and permissions - Manage access control - Admin, Member, and Viewer roles ### 📦 Workload Organization - View all workloads across organization - Monitor application status - Manage deployments - Scale applications - Track resource usage ### 🔐 Secrets Management - Store API keys securely - Manage credentials - Organize sensitive data - Control access to secrets - Encrypted storage ### 🔄 Organization Migration - Move resources between organizations - Consolidate teams - Reorganize structure - Transfer workloads - Maintain continuity --- ## Key Concepts ### Organizations Logical grouping of resources, members, and workloads. Each organization: - Has its own members and access control - Contains applications and deployments - Has its own secrets and credentials - Can be isolated or shared ### Roles Control what members can do: **Admin** - Full control of organization - Invite/remove members - Manage all resources - Delete organization - Access all secrets **Member** - Create and manage applications - Manage workloads - Access secrets - Cannot invite members - Cannot delete organization **Viewer** - Read-only access - View applications - View workloads - Cannot modify anything - Cannot invite members ### Workloads All running applications and services: - Applications (deployed code) - Deployments (versions) - Instances (containers) - Jobs (scheduled tasks) ### Secrets Secure storage for sensitive data: - API keys and tokens - Database passwords - Service credentials - Configuration values - License keys --- ## Common Workflows ### Set Up a New Organization 1. **Create Organization** → Go to Organizations, click Create 2. **Invite Members** → Add team members with appropriate roles 3. **Create Applications** → Deploy your first workload 4. **Add Secrets** → Store sensitive credentials 5. **Monitor Workloads** → Track status and metrics ### Add Team Member 1. **Invite** → Go to Organization, click Invite Member 2. **Choose Role** → Select Admin, Member, or Viewer 3. **Accept** → Member receives invitation 4. **Access** → Member can now access organization ### Manage Organizational Secrets 1. **Create** → Add Secret with name and value 2. **Reference** → Use in applications as `$SECRET_NAME` 3. **Update** → Edit secret value when needed 4. **Delete** → Remove unused secrets 5. **Audit** → Monitor secret access ### Migrate Organization 1. **Prepare** → Inform team and backup data 2. **Migrate** → Click Migrate on organization card 3. **Select Destination** → Choose target organization 4. **Confirm** → Review and confirm migration 5. **Verify** → Check all resources moved successfully --- ## Frequently Asked Questions ### Q: How many organizations can I create? **A:** Create as many organizations as needed. Organize by team, project, or environment. ### Q: What's the difference between Member and Viewer? **A:** Members can create and modify resources. Viewers can only read/view. ### Q: Can I change member roles after inviting? **A:** Yes, click the role dropdown and select new role. ### Q: Where do I store API keys? **A:** Use Organizational Secrets to securely store keys and credentials. ### Q: Can I move applications between organizations? **A:** Yes, use the migrate feature to move resources between organizations. ### Q: Are secrets encrypted? **A:** Yes, all secrets are encrypted in storage and transmission. ### Q: What happens when I delete an organization? **A:** All resources in that organization are deleted. This cannot be undone. ### Q: Can I have different members in different organizations? **A:** Yes, each organization has its own members and access control. ### Q: How do I monitor organization-wide activity? **A:** View the Workloads tab to see all applications and deployments. ### Q: Can I share secrets between organizations? **A:** Secrets are organization-specific. Create the same secret in each org if needed. --- ## Best Practices ### Organization Design - ✅ Create separate orgs for different teams - ✅ Use clear, descriptive organization names - ✅ Organize by environment (dev, staging, prod) - ✅ Organize by project or product - ✅ Keep related workloads together ### Member Management - ✅ Follow principle of least privilege - ✅ Assign appropriate roles based on job - ✅ Review members regularly - ✅ Remove inactive members - ✅ Document access decisions ### Secrets Management - ✅ Use clear naming conventions - ✅ Store only sensitive data as secrets - ✅ Rotate credentials regularly - ✅ Limit who can access secrets - ✅ Audit secret usage ### Workload Organization - ✅ Use meaningful application names - ✅ Tag workloads for filtering - ✅ Group by environment - ✅ Monitor resource usage - ✅ Plan scaling needs ### Team Collaboration - ✅ Communicate access changes - ✅ Document organization structure - ✅ Update team on migrations - ✅ Share knowledge about setup - ✅ Maintain access records --- ## Organization Structure Examples ### By Team ``` Org: Frontend Team ├─ Web application ├─ Mobile app └─ Design tools Org: Backend Team ├─ API services ├─ Database services └─ Cache layer Org: DevOps Team ├─ CI/CD pipelines ├─ Monitoring tools └─ Infrastructure ``` ### By Environment ``` Org: Development ├─ Dev database ├─ Dev application └─ Test servers Org: Staging ├─ Staging database ├─ Staging application └─ Load testing Org: Production ├─ Production database ├─ Production application └─ Backup services ``` ### By Project ``` Org: Project Alpha ├─ Alpha backend ├─ Alpha frontend └─ Alpha database Org: Project Beta ├─ Beta backend ├─ Beta frontend └─ Beta database ``` --- ## Quick Links by Role ### For Administrators - **[Organizations Overview](/organizations/overview)** - Create and manage - **[Managing Members](/organizations/members)** - Control access - **[Migrating Organizations](/organizations/migrate)** - Reorganize ### For Team Leads - **[Managing Members](/organizations/members)** - Invite and manage team - **[Managing Workloads](/organizations/workloads)** - Monitor applications - **[Organizational Secrets](/organizations/secrets)** - Manage credentials ### For Developers - **[Managing Workloads](/organizations/workloads)** - Deploy applications - **[Organizational Secrets](/organizations/secrets)** - Use credentials - **[Organizations Overview](/organizations/overview)** - Understand structure ### For Operations - **[Managing Workloads](/organizations/workloads)** - Monitor and scale - **[Organizational Secrets](/organizations/secrets)** - Manage infrastructure secrets - **[Managing Members](/organizations/members)** - Verify access --- ## Related Documentation ### Application Management - [Deploy Applications](/deploy/deploy) - Deploy within organizations - [Application Configuration](/configure/configure) - Configure apps - [Applications Management](/UI-Guide/Apps-&-their-Management/App-management/Overview) - Manage apps ### Team & Access - [Role-Based Access Control](/organizations/members) - Learn about roles - [Member Invitation](/organizations/members) - Invite team members - [Access Management](/organizations/members) - Control permissions ### Infrastructure - [Workload Management](/organizations/workloads) - Manage workloads - [Resource Scaling](/organizations/workloads) - Scale applications - [Monitoring](/Monitoring/Overview) - Monitor organization --- ## Support & Resources **Need Help?** - **Guides**: Check documentation pages above - **FAQ**: See frequently asked questions - **Status Page**: [Nife Status](https://status.nife.io) - **Contact**: support@nife.io - **Community**: [OpenHub](https://openhub.nife.io) --- ## What's Next? Ready to organize your team? 1. **[Create Organization](/organizations/overview)** - 5 minutes 2. **[Invite Members](/organizations/members)** - 10 minutes 3. **[Deploy Application](/organizations/workloads)** - 15 minutes 4. **[Add Secrets](/organizations/secrets)** - 5 minutes **Estimated total time:** 35 minutes to complete team setup! --- ## How to Deploy a Static Site | Step-by-Step Deployment Guide URL: https://docs.nife.io/sites/creating Learn how to deploy your static website to Nife's global CDN in minutes. Complete guide covering all deployment methods and best practices. ## Before You Start ### Prepare Your Site 1. **Build your site** (if using a framework) - React: `npm run build` - Vue: `npm run build` - Angular: `ng build` - Hugo: `hugo` - Jekyll: `jekyll build` 2. **Create output folder** - React: `build/` or `dist/` - Vue: `dist/` - Angular: `dist/` - Hugo: `public/` - Static HTML: Just the folder 3. **Verify files exist** - Look for `index.html` in the output folder - Check that CSS, JS, and images are included ### Requirements - A built/ready-to-deploy site - Site size under 5GB (typical sites are much smaller) - Valid HTML/CSS/JavaScript - Modern browsers support recommended ## Deployment Methods ### Method 1: File Upload **Best for:** Small sites, quick updates, testing #### Steps 1. Click **New Site** on the Sites page 2. Click **Upload Files** 3. Choose how to upload: - **Drag and drop** - Drag your build folder - **Click to browse** - Select files manually - **ZIP file** - Upload compressed folder 4. Enter **site name** (must be unique) 5. Choose **organization** 6. Click **Deploy** #### Naming Your Site - Use lowercase letters and numbers - Use hyphens (not underscores) - Make it memorable - Avoid generic names - Example: `my-portfolio`, `company-docs` **Your site URL will be:** `https://your-site-name.static.nifetency.com/` ### Method 2: Git Repository **Best for:** Continuous deployment, team projects, version control #### Steps 1. Click **New Site** 2. Click **Deploy from Git** 3. Select **Git provider**: - GitHub - GitLab - Bitbucket 4. **Authorize** Nife to access your account 5. Select **repository** 6. Choose **branch** to deploy (main, master, etc.) 7. Configure **build settings**: - **Build command**: `npm run build` - **Output directory**: `dist` or `build` 8. Click **Deploy** #### Auto-Deployment Once connected, you can enable **auto-deploy**: - Automatic deployment on push to branch - No manual action needed - Perfect for CI/CD workflows ### Method 3: S3 Bucket **Best for:** Large files, existing S3 buckets, complex workflows #### Steps 1. Click **New Site** 2. Click **Deploy from S3** 3. Enter **S3 bucket name** 4. Choose **bucket region** 5. Provide **AWS credentials** (access key and secret) 6. Select **source folder** in bucket 7. Choose **output directory** 8. Click **Deploy** #### S3 Bucket Requirements - Bucket must be accessible - Valid AWS credentials needed - Proper IAM permissions set ## Deployment Configuration ### Build Settings If deploying from Git, configure: **Build Command:** - `npm run build` - Node.js projects - `yarn build` - Yarn package manager - `cargo build --release` - Rust projects - `make build` - Custom makefiles **Output Directory:** - `dist` - Vite, Next.js, Nuxt - `build` - Create React App - `public` - Hugo, Jekyll - `.` - Already built **Install Command:** - `npm install` - NPM - `yarn install` - Yarn - `pnpm install` - PNPM ### Environment Variables If your site needs configuration: 1. In deployment settings, add **Environment Variables** 2. Set variable name and value 3. Example: - `REACT_APP_API_URL` = `https://api.example.com` - `VITE_APP_TITLE` = `My Site` ## During Deployment ### Monitoring Progress Your deployment shows: - **Building** - Preparing files - **Uploading** - Sending to CDN - **Activating** - Making live - **Active** - Live and accessible **Duration:** Typically 30 seconds to 2 minutes ### Viewing Logs If deployment fails, check **deployment logs**: 1. Go to Site Details 2. Find failed deployment 3. Click **View Logs** 4. Read error message 5. Fix issue and retry ## After Deployment ### 1. Test Your Site 1. Click the site URL in the Sites list 2. Or go to: `https://your-site-name.static.nifetency.com/` 3. Test functionality: - Links work - Images load - Forms work - Mobile responsive ### 2. Share Your Site Copy the URL and share: - `https://your-site-name.static.nifetency.com/` - Or your custom domain if configured ### 3. Monitor Performance 1. Go to Site Details 2. Check metrics: - Load times - User count - Bandwidth used ### 4. Set Up Custom Domain 1. Add your domain (optional) 2. Update DNS records 3. Site accessible at your domain ## Common Deployment Scenarios ### Deploying a React App 1. Build: `npm run build` 2. Upload the `build` folder 3. Or connect GitHub repo and set: - Build command: `npm run build` - Output directory: `build` ### Deploying a Vue.js App 1. Build: `npm run build` 2. Upload the `dist` folder 3. Or connect GitHub repo with: - Build command: `npm run build` - Output directory: `dist` ### Deploying a Static Blog 1. Build with Hugo: `hugo` 2. Upload the `public` folder 3. Or connect GitHub repo with: - Build command: `hugo` - Output directory: `public` ### Deploying Plain HTML 1. Just upload your HTML/CSS/JS files 2. No build command needed 3. Folder should contain `index.html` ## Troubleshooting Deployments ### Upload Fails **Check:** - File size isn't too large - Connection is stable - All required files included **Solution:** - Try again - Use ZIP if many files - Check file sizes ### Blank Page After Deploy **Check:** - HTML structure is correct - Paths are relative (not absolute) - Assets are in the same folder **Solution:** - Check for errors in browser console - Verify file structure - Check deployment logs ### Assets Not Loading **Check:** - Image paths are relative - CSS file paths are correct - JavaScript paths work **Solution:** - Use relative paths: `./images/photo.jpg` - Avoid absolute paths: `/images/photo.jpg` - Check folder structure ### Build Command Failed **Check:** - Build command is correct - Dependencies installed - Output directory exists **Solution:** - Verify command works locally - Check environment variables - Check build logs ### Site Takes Too Long to Load **Check:** - Image file sizes - JavaScript bundle size - CSS file size **Solution:** - Optimize images - Minify code - Remove unused dependencies - Enable compression ## Deployment Best Practices ✓ **Test locally first** - Verify site works before deploying ✓ **Optimize assets** - Compress images and code ✓ **Use staging** - Test in staging environment first ✓ **Monitor deployment** - Watch deployment logs ✓ **Verify site** - Test after deployment ✓ **Keep old versions** - For easy rollback ✓ **Document settings** - Record build commands ✓ **Backup files** - Keep local backups ## Next Steps - [Manage Your Sites](./Managing-Sites.mdx) - [Configure Custom Domains](./Custom-Domains.mdx) - [Version Control and Rollbacks](./Version-Control.mdx) - [Monitor Performance](./Performance.mdx) --- ````html , , , , ] } */} ```` --- ## Configure Custom Domains with DNS | Complete DNS Setup Guide URL: https://docs.nife.io/sites/custom-domains Replace the default Nife domain with your own custom domain. Complete guide to DNS configuration, SSL certificates, and provider-specific instructions. ## What is a Custom Domain? Instead of: `https://my-portfolio.static.nifetency.com/` Use your own: `https://portfolio.example.com/` ## Benefits ✓ **Professional appearance** - Use your own brand ✓ **Memorable URL** - Easier to remember and share ✓ **SEO friendly** - Better for search rankings ✓ **Email alignment** - Domain matches email ✓ **Credibility** - Looks more professional ## Before You Start ### Requirements 1. **Own a domain** - Must own or control the domain 2. **Access to DNS** - Ability to modify DNS records 3. **Domain registrar access** - Where you registered it ### Prerequisites Checklist - [ ] Domain is registered and active - [ ] Domain isn't expired - [ ] You have DNS control - [ ] Know your DNS provider - [ ] Have registrar login credentials ## Adding a Custom Domain ### Steps 1. Open your site in **Site Details** 2. Click **Add Custom Domain** 3. Enter your domain name (e.g., `portfolio.example.com`) 4. Copy the **CNAME value** provided 5. Go to your DNS provider 6. Add a CNAME record pointing to Nife 7. Wait for DNS propagation (5-48 hours) 8. Domain is live when verified ### DNS Configuration #### Step 1: Get CNAME Value Nife provides a CNAME value to add to your DNS records. **Example CNAME:** - **Name/Host**: `portfolio.example.com` (or just `portfolio`) - **Value**: `static.nife.domains.` - **Type**: CNAME - **TTL**: 3600 (or automatic) #### Step 2: Add to DNS Provider Log into your domain registrar and: 1. Find **DNS Settings** or **DNS Management** 2. Create a **new CNAME record** 3. Enter the values Nife provided 4. Save the record ### Common DNS Providers #### GoDaddy 1. Go to Domain Settings 2. Click **Manage DNS** 3. Click **Add Record** 4. Select **CNAME** record type 5. Enter host and points to values 6. Save #### Namecheap 1. Go to Dashboard 2. Click **Manage** for domain 3. Go to **Advanced DNS** 4. Add **New Record** 5. Select **CNAME** 6. Enter values 7. Save #### Route 53 (AWS) 1. Go to Hosted Zones 2. Select your domain 3. Click **Create Record** 4. Select **CNAME** 5. Enter values 6. Click **Create Records** #### Cloudflare 1. Go to DNS section 2. Click **Add Record** 3. Select **CNAME** 4. Enter values 5. Keep Orange Cloud on (if applicable) 6. Save ## DNS Propagation ### What is DNS Propagation? DNS changes take time to spread across the internet. This is normal and expected. ### How Long Does It Take? - **Immediate**: Usually starts right away - **1-2 hours**: Typically fully propagated - **24 hours**: Guaranteed propagated - **48 hours**: Maximum wait time ### Check DNS Status You can check if DNS is working: 1. Go back to Site Details 2. Look for **Domain Status** 3. Status options: - ✅ **Verified** - Ready to use - ⏳ **Pending** - Still propagating - ❌ **Failed** - Configuration issue ### Verify DNS is Working 1. Use online DNS checker tool 2. Enter your domain 3. Should show CNAME record pointing to Nife 4. Or try in terminal: `nslookup your-domain.com` ## SSL/TLS Certificates ### Automatic Certificate Nife automatically provides: - ✅ **Free SSL certificate** - No cost - ✅ **Auto-renewal** - Never expires - ✅ **HTTPS** - Secure connection - ✅ **Perfect score** - A+ rating ### Certificate Status Check certificate status in: 1. Site Details 2. Security section 3. Shows certificate status and expiration ### Certificate Renewal Nife automatically renews before expiration: - No action required - Happens automatically - Zero downtime ## Testing Custom Domain ### Before Going Live 1. Add custom domain 2. Wait for DNS propagation 3. Test the domain in browser 4. Check for HTTPS lock icon 5. Verify all content loads 6. Test links and functionality ### Verification Steps - [ ] Domain is accessible - [ ] Shows HTTPS (not HTTP) - [ ] Content loads completely - [ ] No mixed content warnings - [ ] All links work - [ ] Mobile responsive - [ ] No error messages ## Removing Custom Domain Go back to Nife default domain: ### Steps 1. Open Site Details 2. Find Custom Domain section 3. Click **Remove** or **Delete** 4. Confirm removal 5. Site reverts to default domain **Note:** Default domain URL remains active. ## Troubleshooting Domain Issues ### Domain Not Working **Check:** 1. DNS record is correctly added 2. CNAME value matches exactly 3. Wait for DNS propagation 4. Domain registrar saved changes **Solution:** - Wait 24 hours for propagation - Verify DNS record in registrar - Clear browser cache - Try incognito/private browsing ### "Domain Already in Use" **Reason:** Domain already connected to another site or service **Solution:** 1. Remove domain from other service 2. Wait a few hours 3. Try adding again 4. Or use subdomain (www.example.com) ### HTTPS Certificate Warning **Reason:** SSL certificate not yet issued **Solution:** 1. Wait for certificate generation 2. Usually takes 5-10 minutes 3. Check certificate status 4. Clear browser cache 5. Try again after 1 hour ### DNS Changes Not Applied **Reason:** DNS records not propagating **Solution:** 1. Verify record is correct 2. Check for typos 3. Confirm record type is CNAME 4. Wait longer (up to 48 hours) 5. Use DNS propagation checker ### Multiple Domains **Use for:** - `example.com` and `www.example.com` - Multiple domain aliases - International domains **Note:** May need separate domains or subdomains ## Best Practices ✓ **Use your domain** - Professional appearance ✓ **Set up early** - Do it when deploying ✓ **Verify DNS** - Check it works before going live ✓ **Monitor certificate** - Ensure SSL is active ✓ **Use www subdomain** - Optional but recommended ✓ **Redirect HTTP to HTTPS** - Security best practice ✓ **Test thoroughly** - Before telling people ✓ **Keep registrar login** - For future updates ## DNS Record Examples ### Example 1: Adding to GoDaddy | Field | Value | |-------|-------| | Type | CNAME | | Name | portfolio | | Points to | static.nife.domains. | | TTL | 3600 | Result: `portfolio.example.com` → Nife ### Example 2: Subdomain | Field | Value | |-------|-------| | Type | CNAME | | Name | www | | Points to | static.nife.domains. | Result: `www.example.com` → Nife ### Example 3: Apex Domain (advanced) For root domain (example.com without www): - Requires A records instead of CNAME - Nife support may provide specific IPs - Contact support for apex domain setup ## Related Topics - [Creating Sites](./Creating-Sites.mdx) - [Managing Sites](./Managing-Sites.mdx) - [Version Control and Rollbacks](./Version-Control.mdx) - [Performance and Optimization](./Performance.mdx) ## Getting Help For domain-related issues: 1. Check DNS configuration first 2. Verify record values match 3. Wait for DNS propagation 4. Check certificate status 5. Contact support with: - Domain name - Screenshot of DNS record - Error message (if any) --- ````html , , , , ] } }, }, }, } ] } ```` ```` --- ## Manage Your Sites | Site Dashboard and Management Guide URL: https://docs.nife.io/sites/managing Learn to view, search, and manage all your deployed sites from one unified dashboard. Complete guide to site management, monitoring, and optimization. ## Sites Dashboard The Sites dashboard shows all your deployed websites with key information. ### Dashboard Metrics At the top you'll see: - **Total Sites** - Total number of deployed sites - **Active** - Live and accessible sites - **Deploying** - Currently being deployed - **Today** - Deployed in last 24 hours ## Viewing Your Sites ### Sites List Each site shows: - **Name** - The site identifier - **Status** - Current status (Active, Deploying, Failed) - **Organization** - Which organization it belongs to - **URL** - Access URL for active sites - **Created** - When it was deployed - **Actions** - Quick actions menu ### Clicking a Site Click any site name to: - View detailed information - See deployment history - Check performance metrics - Manage version history - Configure custom domain - View access logs ## Filtering and Searching ### Search Use the search box to find sites by: - **Site name** - Exact or partial name - **Organization** - Filter by organization - **URL** - Find by domain **Example searches:** - `my-portfolio` - Finds "my-portfolio-2024" site - `react` - Finds any site with "react" in name - `company` - Finds sites in "company" organization ### Sort Options Sort the list by: - **Name** - Alphabetical - **Status** - Active first - **Created Date** - Newest first - **Organization** - Grouped by org ## Site Status ### 🟢 Active Site is live and accessible. - Users can access it - Served from global CDN - All functions working **What you can do:** - View live site - Redeploy new version - Configure domain - View analytics - Rollback if needed ### 🟡 Deploying Deployment is in progress. **What's happening:** - Files are uploading - Build is running - CDN is syncing - Configuration loading **What you should do:** - Wait for completion - Don't delete or modify - Monitor progress - Check logs if slow ### 🔴 Failed Deployment encountered an error. **What happened:** - Build failed - Upload failed - Configuration error - Resource issue **What to do:** - Check error logs - Fix the issue - Retry deployment - Contact support if needed ### ⚪ Building Site files are being prepared. **What's happening:** - Compiling code - Optimizing assets - Running build commands - Preparing files ## Managing Sites ### View Site Details Click on a site to see: **General Info:** - Site name - Current status - Created date - Organization - Owner email **Deployment Info:** - Current version - Deployment time - Build time - Deployment ID **URLs:** - Default Nife URL - Custom domain (if configured) - Preview URLs ### Redeploy a Site Update your site with new code or files. #### Steps 1. Click the site in the list 2. Click **Redeploy** button 3. Choose new files or version 4. Click **Deploy** Or from the site list: 1. Click the menu (⋮) icon 2. Select **Redeploy** 3. Follow deployment process #### When to Redeploy - After code changes - After bug fixes - After design updates - After content changes ### Open Site View your live site in a new tab. **Steps:** 1. Click site URL in the list 2. Or click menu → **Open Site** 3. Site opens in new browser tab **Test:** - Functionality works - Content displays correctly - Mobile responsive - Links functional ### Copy URL Copy the site URL to clipboard. **Steps:** 1. Click menu (⋮) on a site 2. Select **Copy URL** 3. URL copied to clipboard 4. Paste anywhere needed **Use for:** - Sharing with others - Adding to documentation - Adding to portfolios - Social media promotion ## Delete a Site Remove a site you no longer need. ### Warning ⚠️ **This action cannot be undone** - Site becomes inaccessible - All versions are deleted - Cannot be recovered ### Steps 1. Click menu (⋮) on the site 2. Select **Delete** 3. Confirm deletion dialog 4. Site is deleted ### Bulk Delete Delete multiple sites at once. **Steps:** 1. Check the box next to sites 2. Click **Delete Selected** 3. Confirm deletion 4. All selected sites are deleted ## Export Sites Download your sites list for: - Backup purposes - Documentation - Reporting - Integration ### Export as CSV Format for spreadsheet applications: **Steps:** 1. Click **Export** (download icon) 2. Select **CSV** 3. File downloads 4. Open in Excel or similar **Fields included:** - Site name - Status - Organization - URL - Version - Created date ### Export as JSON Format for data interchange: **Steps:** 1. Click **Export** 2. Select **JSON** 3. File downloads 4. Use in applications **Useful for:** - APIs and webhooks - Data analysis - Documentation - Database import ## Site Statistics View statistics for your sites: ### Active Sites - Count of live sites - Percentage of total - Critical for uptime ### Deployment Activity - Deployments today - Deployment frequency - Activity trend ### Organization Distribution - Sites per organization - Load distribution - Resource allocation ## Monitoring Your Sites ### Site Health Check each site's health: - **Availability** - Is it accessible? - **Performance** - How fast does it load? - **Uptime** - Is it running 24/7? - **Errors** - Any problems? ### Performance Metrics View metrics in site details: - **Load time** - How fast it loads - **Page size** - Total file size - **Requests** - Number of requests - **Bandwidth** - Data transferred ### Access Logs See who accessed your site: - **Visitor count** - Unique visitors - **Page views** - Total views - **Top pages** - Most visited - **Geographic data** - Where visitors from ## Best Practices ✓ **Name sites clearly** - Use descriptive names ✓ **Organize by team** - Use organizations effectively ✓ **Regular updates** - Keep sites fresh ✓ **Monitor performance** - Check regularly ✓ **Delete unused sites** - Keep list clean ✓ **Backup important sites** - Export regularly ✓ **Document changes** - Track what changed ✓ **Test after updates** - Verify functionality ## Common Tasks | Task | Steps | |------|-------| | Find a site | Use search box | | Check if site is live | Look for green status | | Update site | Click Redeploy | | Get site URL | Click Copy URL | | Remove old site | Click Delete | | See all versions | Click site name → History | | Share site | Copy URL and share | | Check performance | Click site → Metrics | ## Troubleshooting ### Can't find your site? 1. Check search spelling 2. Try searching by organization 3. Scroll through list 4. Refresh page ### Site not responding? 1. Check status (green = active) 2. Wait if "Deploying" 3. Check browser console for errors 4. Verify custom domain settings ### Wrong version deployed? 1. Go to Version History 2. Find the correct version 3. Click Rollback 4. Site reverts to previous version ### Want to update site? 1. Make changes to code 2. Build locally if needed 3. Click Redeploy 4. Follow deployment process ## Related Topics - [Creating Sites](./Creating-Sites.mdx) - [Custom Domains](./Custom-Domains.mdx) - [Version Control and Rollbacks](./Version-Control.mdx) - [Performance and Optimization](./Performance.mdx) - [Troubleshooting](./Troubleshooting.mdx) --- ````html }, }, }, } ] } ```` ```` --- ## Performance and Optimization | Website Speed Guide URL: https://docs.nife.io/sites/performance Optimize your site for speed and excellent user experience. ## Performance Metrics ### Key Metrics **Load Time:** - How long until site fully loads - Affects user experience - SEO ranking impact - Target: Under 2 seconds **Page Size:** - Total file size downloaded - Affects load speed - Mobile data consideration - Typical range: 1-5 MB **Requests:** - Number of files loaded - Affects performance - Network dependency - Fewer is better **Bandwidth:** - Data transferred to users - Monthly consumption - Can affect costs - Monitor for spikes ## Viewing Performance Metrics ### In Site Details 1. Open Site Details 2. Go to **Performance** tab 3. See: - Load time - Page size - Number of requests - Bandwidth used - Top slow pages ### Monitoring Over Time Check performance trends: 1. Compare week over week 2. Monitor after deployments 3. Check during peak traffic 4. Identify patterns ## Global CDN Advantages ### How CDN Works 1. **Edge servers** worldwide 2. User requests served locally 3. Closest server responds 4. Lightning-fast delivery 5. Automatic fallback ### CDN Benefits ✓ **Speed** - Content from nearest location ✓ **Reliability** - Multiple servers worldwide ✓ **Scalability** - Handles traffic spikes ✓ **Bandwidth savings** - Distributed load ✓ **Latency reduction** - Closer servers ### Regions Served Nife CDN has servers in: - North America - South America - Europe - Asia - Australia - Africa ## Optimization Techniques ### 1. Image Optimization Images are largest files on most sites. **Techniques:** - Compress before uploading - Use WebP format when possible - Resize to display size - Use image services for responsive images **Tools:** - TinyPNG - Image compression - ImageOptim - Mac compression - FileZilla - Bulk optimization - Online tools - Kraken, Compressor **Expected results:** - 50-80% size reduction - No visible quality loss - Faster page loads ### 2. Code Minification Reduce file size of CSS and JavaScript. **What it does:** - Removes unnecessary characters - Shortens variable names - Removes comments - Compresses code **Usually automatic with:** - React build: `npm run build` - Vue build: `npm run build` - Angular build: `ng build --prod` **Expected results:** - 40-60% smaller files - Faster downloads - No functionality change ### 3. Gzip Compression Browser and server compression. **How it works:** - Server compresses files - Browser decompresses - Transparent to users - Already enabled on Nife **Expected results:** - 70-80% compression - Very fast delivery - Works on all modern browsers ### 4. Lazy Loading Delay loading images until needed. **How it works:** - Images load as user scrolls - Only visible images load - Improves initial load time - Better mobile experience **Implementation:** ```html ``` **Expected results:** - Faster initial page load - Reduced bandwidth - Better mobile performance ### 5. Caching Strategy Browser and CDN caching. **Browser Cache:** - CSS, JS cached locally - Images cached on device - Subsequent loads instant - Automatic on all browsers **CDN Cache:** - Content served from nearest location - Reduces origin requests - Global distribution - Automatic on Nife **Expected results:** - Instant subsequent visits - Reduced bandwidth - Better user experience ### 6. CSS and JavaScript Bundling Combine multiple files into fewer files. **Bundling:** - Multiple CSS → One file - Multiple JS → One file - Fewer HTTP requests - Faster overall load **Tools:** - Webpack - Bundler - Vite - Build tool - Esbuild - Fast bundler - Parcel - Zero config **Expected results:** - 30-50% faster load time - Fewer server requests ## Performance Best Practices ### Before Deployment ✓ **Optimize images** - Compress thoroughly ✓ **Minify code** - Remove unnecessary bytes ✓ **Bundle files** - Combine where possible ✓ **Enable compression** - Gzip or Brotli ✓ **Lazy load** - Defer non-critical assets ✓ **Remove unused code** - Trim dependencies ### During Development ✓ **Use performance tools** - Lighthouse, WebPageTest ✓ **Monitor bundle size** - Track JS size ✓ **Test on slow networks** - 3G/4G simulation ✓ **Mobile first** - Design for mobile ✓ **Optimize fonts** - Use system fonts when possible ### Monitoring ✓ **Check metrics regularly** - Weekly or monthly ✓ **Monitor after updates** - After deploying new versions ✓ **Set performance budget** - Target file sizes ✓ **Alert on regressions** - If performance drops ## Performance Testing Tools ### Lighthouse (Free) Built into Chrome browser: 1. Open DevTools (F12) 2. Go to Lighthouse 3. Click Analyze 4. Get score and suggestions ### WebPageTest (Free) Test from multiple locations: 1. Go to webpagetest.org 2. Enter your URL 3. Choose location 4. Get detailed breakdown ### GTmetrix (Free) Website speed analysis: 1. Go to gtmetrix.com 2. Enter URL 3. Get PageSpeed and YSlow scores 4. See optimization suggestions ### Pingdom (Free) Website monitoring: 1. Go to pingdom.com 2. Enter your URL 3. Get load time and breakdown 4. Monitor over time ## Mobile Optimization ### Mobile Performance **Mobile users need:** - Faster load times - Smaller file sizes - Responsive design - Touch-friendly interface ### Mobile Optimization Tips ✓ **Responsive design** - Works on all sizes ✓ **Mobile images** - Smaller on mobile ✓ **Touchable buttons** - At least 44x44 pixels ✓ **Fast transitions** - Smooth animations ✓ **Avoid pop-ups** - Annoying on mobile ✓ **Readable text** - At least 16px ### Test on Mobile 1. Use Chrome DevTools 2. Device mode (toggle in F12) 3. Test all interactions 4. Check load times 5. Verify responsive ## SEO and Performance ### Google's Core Web Vitals Google measures: **Largest Contentful Paint (LCP):** - Time until largest content loads - Target: }, }, }, } ] } ```` ```` --- ## Sites Quick Reference URL: https://docs.nife.io/sites/quick-reference Quick tips, shortcuts, and helpful information for managing sites. --- ## Quick Stats | Metric | What It Shows | |--------|---------------| | Total Sites | All deployed sites | | Active | Live and accessible | | Deploying | Currently being deployed | | Today | Deployed in last 24 hours | --- ## Status Quick Guide | Status | Icon | Meaning | Action | |--------|------|---------|--------| | Active | 🟢 | Live | Monitor | | Deploying | 🟡 | In progress | Wait | | Failed | 🔴 | Error | Fix & retry | | Building | ⚪ | Processing | Wait | --- ## Common Actions | Action | Steps | Time | |--------|-------|------| | Deploy site | Click New Site → Upload/Git | 1-5 min | | View site | Click URL | Instant | | Redeploy | Click menu → Redeploy | 1-5 min | | Rollback | Site Details → Rollback | 1-5 min | | Delete | Click menu → Delete | Instant | | Add domain | Site Details → Add Domain | 5 min+ | --- ## Deployment Methods Comparison | Method | Best For | Speed | Setup | |--------|----------|-------|-------| | File Upload | Small sites | Fast | Easy | | Git | Continuous | Auto | Medium | | S3 | Large files | Medium | Complex | --- ## Popular Framework Build Commands | Framework | Build Command | Output Directory | |-----------|---------------|-----------------| | React (CRA) | `npm run build` | `build` | | Vite | `npm run build` | `dist` | | Vue | `npm run build` | `dist` | | Angular | `ng build --prod` | `dist/` | | Hugo | `hugo` | `public` | | Jekyll | `jekyll build` | `_site` | | Next.js | `npm run build` | `.next` | | Gatsby | `gatsby build` | `public` | --- ## Git Repository Platforms | Platform | Auth Type | Popular | |----------|-----------|---------| | GitHub | OAuth | Most popular | | GitLab | OAuth | Self-hosted option | | Bitbucket | OAuth | AWS integration | --- ## DNS Provider Quick Links | Provider | Portal | Difficulty | |----------|--------|------------| | GoDaddy | godaddy.com | Easy | | Namecheap | namecheap.com | Easy | | CloudFlare | cloudflare.com | Medium | | Route 53 | aws.amazon.com | Hard | | Google Domains | domains.google.com | Easy | --- ## Site URL Format **Default URL:** https://your-site-name.static.nifetency.com/ **Custom Domain:** https://yourdomain.com/ https://www.yourdomain.com/ --- ## Default Nife Domain **Format:** `https://[site-name].static.nifetency.com/` **Examples:** - `https://my-portfolio.static.nifetency.com/` - `https://company-docs.static.nifetency.com/` - `https://landing-page.static.nifetency.com/` --- ## Performance Benchmarks | Metric | Target | Good | Poor | |--------|--------|------|------| | Load Time | <2s | <3s | >5s | | Page Size | <1MB | <3MB | >5MB | | Requests | <50 | <100 | >150 | | Google Score | >90 | >80 | <70 | --- ## File Size Guidelines | File Type | Max | Target | |-----------|-----|--------| | Total Site | 500MB | <100MB | | Images | 50MB | <5MB each | | JavaScript | 100MB | <1MB | | CSS | 50MB | <500KB | | HTML | No limit | Keep small | --- ## Keyboard Shortcuts | Action | Shortcut | |--------|----------| | Refresh page | F5 | | Clear cache | Ctrl+Shift+Del | | Inspect element | F12 | | Search page | Ctrl+F | | New tab | Ctrl+T | --- ## Quick Deploy Checklist - [ ] Site built successfully - [ ] Files ready to upload - [ ] Site name decided - [ ] Organization selected - [ ] Custom domain (optional) - [ ] Environment variables (if needed) --- ## Post-Deployment Checklist - [ ] Site is accessible - [ ] All pages load - [ ] Links work - [ ] Images display - [ ] Mobile responsive - [ ] No console errors - [ ] HTTPS showing - [ ] Load time acceptable --- ## Custom Domain Checklist - [ ] Domain owned and active - [ ] DNS access available - [ ] Domain not expired - [ ] CNAME value copied - [ ] DNS record added - [ ] Propagation verified - [ ] HTTPS working - [ ] Site accessible --- ## Performance Optimization Quick Tips 1. **Compress images** – Reduce file size 50-80% 2. **Minify code** – Reduce JS/CSS 40-60% 3. **Lazy load** – Load images on scroll 4. **Enable cache** – Browser and CDN 5. **Remove unused** – Delete unused files 6. **Use CDN** – Global distribution 7. **Optimize fonts** – Reduce font files 8. **Bundle code** – Combine files --- ## Rollback Guide | Situation | Action | |-----------|--------| | New version broken | Go to Versions → Select previous → Rollback | | Wrong content deployed | Same as above | | Performance issue | Same as above | | Need version X | Go to timeline → Find date → Rollback | --- ## Export Formats | Format | Use | Tool | |--------|-----|------| | CSV | Spreadsheets | Excel/Sheets | | JSON | APIs | Code/Database | | Both | Backup | Archive | --- ## Common Paths Structure react-app/ ├── build/ ├── public/ ├── src/ ├── package.json └── README.md --- ## Troubleshooting Quick Tips | Issue | Quick Fix | |-------|-----------| | Blank page | Clear cache, check console | | 404 error | Verify file exists, check paths | | Slow site | Optimize images, minify code | | Domain issue | Check DNS, wait propagation | | Images missing | Use relative paths | | Links broken | Fix relative paths | | Custom domain error | Verify DNS record | | SSL warning | Wait for certificate | --- ## Time Estimates | Action | Time | |--------|------| | Deploy site | 1-5 minutes | | DNS propagate | 5 minutes – 48 hours | | SSL issue | 5-10 minutes | | Rollback | 1-5 minutes | | Site available | 30 seconds – 2 minutes | --- ## Mobile Optimization ✓ Responsive design ✓ Fast load (<3 seconds) ✓ Touch-friendly buttons ✓ Readable text (16px+) ✓ Optimized images ✓ Minimal JavaScript --- ## SEO Basics for Sites ✓ Fast load time ✓ Mobile responsive ✓ Custom domain ✓ Good Core Web Vitals ✓ Unique content ✓ Proper meta tags ✓ Good site structure --- ## Related Documentation - [Creating Sites](./Creating-Sites.mdx) - [Managing Sites](./Managing-Sites.mdx) - [Custom Domains](./Custom-Domains.mdx) - [Version Control](./Version-Control.mdx) - [Performance](./Performance.mdx) - [Troubleshooting](./Troubleshooting.mdx) --- ## Troubleshooting Sites URL: https://docs.nife.io/sites/troubleshooting Solutions for common issues and problems with your sites. ## Deployment Issues ### Deployment Fails **Symptoms:** - Status shows "Failed" - Site doesn't go live - Red error indication **Check:** 1. Read error message carefully 2. Check deployment logs 3. Note the specific error 4. Look for common causes **Common Causes:** #### Build Command Failed - Syntax errors in code - Missing dependencies - Wrong build command - Environment variables missing **Solutions:** - Run build command locally - Check for TypeScript errors - Verify dependencies installed - Check environment variables #### Output Directory Not Found - Wrong directory name - Directory name has typo - Files in wrong location **Solutions:** - Check your output directory name - Verify build created the folder - Correct the path in settings - Rebuild and deploy #### File Upload Failed - Connection interrupted - Files too large - Network timeout - Too many files **Solutions:** - Use ZIP file instead - Split into smaller uploads - Check internet connection - Retry the deployment - Use different network #### Build Takes Too Long - Large dependencies - Compilation slow - Network timeout **Solutions:** - Optimize dependencies - Use faster build tool - Check network speed - Consider pre-building ### Blank Page After Deploy **Symptoms:** - Site loads but shows blank - No content visible - Browser console has errors **Check:** 1. Open browser console (F12) 2. Look for error messages 3. Check Network tab 4. Review deployment logs **Causes and Solutions:** #### HTML Structure Issues - Missing `index.html` - Wrong HTML syntax - Bad file structure **Solutions:** - Verify `index.html` exists - Check HTML validity - Ensure proper folder structure #### Path Issues - Absolute paths instead of relative - Wrong path separators - Missing file paths **Solutions:** - Use relative paths: `./styles.css` - Not absolute: `/styles.css` - Check all file references - Test locally first #### Asset Loading Fails - Images not loading - CSS not applying - JavaScript not running **Check:** 1. Right-click → Inspect Element 2. Check Network tab 3. See which files fail 4. Note 404 errors **Solutions:** - Use relative paths - Check file exists - Verify file names (case sensitive) - Check folder structure #### JavaScript Errors - Console shows red errors - Scripts not running - Events not firing **Solutions:** - Check browser console - Look for error message - Fix syntax errors locally - Use source maps for debugging ### Custom Domain Not Working **Symptoms:** - Domain shows error - Takes long to load - Connection refused - SSL certificate error **Check:** 1. Domain status in site settings 2. DNS propagation status 3. Browser console errors 4. SSL certificate status **Solutions:** #### DNS Not Propagated - Verify DNS record added correctly - Check CNAME value matches exactly - Wait for propagation (up to 48 hours) - Clear browser cache - Try different browser/device #### DNS Record Wrong - CNAME value doesn't match - Wrong record type - Typo in domain name - Wrong subdomain **Verify:** - Log into registrar - Check CNAME record exists - Verify value matches Nife's CNAME - Confirm record type is CNAME - Check TTL is reasonable #### SSL Certificate Not Issued - Still shows pending - Browser warning about certificate - HTTPS showing error **Solutions:** - Wait 5-10 minutes - Check certificate status - Clear browser cache - Try incognito window - Verify domain points to Nife #### Domain Registered But Not Active - Domain expired - Not properly registered - Registrar issue **Solutions:** - Verify domain is active - Check expiration date - Renew if expired - Contact registrar support ## Site Access Issues ### Site Shows 404 Error **Symptoms:** - Page not found error - URL works but shows 404 - All pages show 404 **Causes:** #### Single Page Application (SPA) Routing - React/Vue routing broken - Direct URL doesn't work - Refresh loses page **Solution:** - Configure server for SPA - Contact Nife support - Fallback all routes to index.html #### File Not Found - Page file doesn't exist - Deleted accidentally - Wrong file name **Solutions:** - Check file exists - Verify file spelling - Use correct path - Redeploy with correct files ### Site Too Slow **Symptoms:** - Takes long to load - Poor performance - Mobile especially slow - Users complaining **Check:** 1. Run performance test 2. Check file sizes 3. Review images 4. Look at JavaScript **Solutions:** - Optimize images (see Performance section) - Minify code - Reduce JavaScript - Enable caching - Use CDN effectively ### Images Not Loading **Symptoms:** - Broken image icons - alt text showing - images folder missing - certain images fail **Check:** 1. Right-click broken image 2. Inspect element 3. Look at image URL 4. Check Network tab **Solutions:** - Use relative paths: `./images/photo.jpg` - Don't use absolute paths: `/images/photo.jpg` - Check file names (case sensitive) - Verify folder structure - Ensure images were deployed ### Links Not Working **Symptoms:** - Click link, page not found - Navigation broken - Some links work, some don't **Check:** 1. Check link href attribute 2. Test link locally 3. Verify target file exists 4. Check path syntax **Solutions:** - Use relative links: `./about.html` - Avoid absolute: `/about.html` - Use proper path separators - Ensure files are deployed - Check for typos ## Performance Issues ### Site Loads Very Slowly **Solutions:** 1. Optimize images 2. Minify code 3. Enable compression 4. Lazy load assets 5. Reduce file size 6. See Performance section for details ### High Bandwidth Usage **Check:** 1. Large uncompressed images 2. Repeated file downloads 3. Inefficient caching 4. Video files **Solutions:** - Compress images - Enable browser caching - Optimize assets - Use CDN effectively ### Mobile Performance Poor **Solutions:** 1. Reduce file sizes 2. Mobile-first design 3. Responsive images 4. Lazy loading 5. Minimize JavaScript ## Security Issues ### Browser Shows Security Warning **Symptoms:** - Red warning in address bar - "Not secure" message - Mixed content warnings **Causes:** #### HTTPS Not Enabled - Using HTTP instead of HTTPS - SSL not configured **Solutions:** - Wait for SSL to be issued - Check domain status - Clear browser cache - Contact support if stuck #### Mixed Content - Some resources load over HTTP - Should all be HTTPS **Solutions:** - Change all URLs to HTTPS - Use protocol-relative URLs: `//cdn.example.com` - Don't hardcode HTTP - Check external resources ## Rollback Issues ### Can't Rollback **Symptoms:** - Rollback button disabled - Rollback fails - Old version not available **Solutions:** - Older versions may be deleted - Can only rollback within retention period - Deploy a fixed version instead - Contact support for archived versions ### Rollback Didn't Work **Symptoms:** - Rolled back but site still broken - Wrong version restored - Content still wrong **Solutions:** - Verify you rolled back to correct version - Clear browser cache - Wait for CDN propagation - Try rolling back further ## Deletion Issues ### Can't Delete Site **Symptoms:** - Delete button disabled - Deletion fails - Site won't disappear **Solutions:** - May be limited to admins - Check permissions - Try clearing cache - Contact site owner - Contact support ### Site Still Accessible After Deletion **Symptoms:** - Deleted but still online - URL still works - Takes time to remove **Solutions:** - CDN cache takes time to clear - Wait 5-15 minutes - Clear browser cache - Try incognito window - If persists, contact support ## Export Issues ### Export Failed **Symptoms:** - Export button doesn't work - No file downloaded - Error message appears **Solutions:** - Try different format (CSV vs JSON) - Check browser popup blocker - Try different browser - Reload page and retry - Contact support if continues ### Export File Incomplete **Symptoms:** - Downloaded file is empty - File is corrupted - Data missing **Solutions:** - Try export again - Use different format - Check if all sites loaded first - Manually note site details ## General Troubleshooting Steps ### Step 1: Gather Information - Write down error message - Note what you were doing - Screenshot the issue - Record time it occurred - Note browser and OS ### Step 2: Check Obvious Things - Refresh page (Ctrl+F5) - Clear browser cache - Try different browser - Try incognito window - Check internet connection ### Step 3: Review Logs - Check deployment logs - Look at browser console (F12) - Review error messages - Search online for error ### Step 4: Try Solutions - Follow guides above for your issue - Test after each change - Rollback if something breaks - Document what worked ### Step 5: Contact Support If still not working: 1. Gather all information from Step 1 2. Test thoroughly first 3. Document attempts made 4. Contact support with: - Site name - Error message - Screenshots - Steps to reproduce - Browser info ## Common Error Messages | Error | Cause | Solution | |-------|-------|----------| | "Build failed" | Code error | Fix code, test locally | | "404 Not Found" | File missing | Check file exists | | "Connection timeout" | Upload interrupted | Retry deployment | | "SSL pending" | Certificate not issued | Wait 5-10 minutes | | "Domain not verified" | DNS not propagated | Wait or verify DNS | | "Blank page" | HTML/Path issue | Check paths and HTML | ## Related Topics - [Creating Sites](./Creating-Sites.mdx) - [Managing Sites](./Managing-Sites.mdx) - [Custom Domains](./Custom-Domains.mdx) - [Performance and Optimization](./Performance.mdx) - [Version Control](./Version-Control.mdx) ## Getting Additional Help 1. **Check documentation** - See related topics above 2. **Search knowledge base** - Find similar issues 3. **Review error logs** - Read detailed error messages 4. **Try solutions** - Systematically test fixes 5. **Contact support** - When stuck, get professional help --- ## Version Control and Rollbacks | Deployment History Guide URL: https://docs.nife.io/sites/versions Keep all your deployment versions and instantly rollback if needed. ## What is Version Control? Every time you deploy, a new version is created automatically. You can: - **View history** - See all deployments - **Compare versions** - See what changed - **Rollback** - Go back to previous version - **Delete versions** - Remove old versions ## Deployment History ### Viewing History Each deployment is recorded with: - **Version number** - Auto-incrementing ID - **Deployment date** - When deployed - **Deployed by** - Who made the deployment - **Status** - Success, in progress, failed - **Notes** - Custom deployment notes ### Accessing History 1. Open Site Details 2. Go to **Versions** or **History** tab 3. See all deployments listed 4. Newest version at top ### Version Information Each version shows: - **Build time** - How long build took - **Deployment time** - When it went live - **Files changed** - What was updated - **Status** - Success or failed - **Size** - Total deployment size ## Rollback to Previous Version Instantly go back to a working version. ### Why Rollback? - **Deployment broke something** - Go back to stable version - **Content error** - Wrong content deployed - **Performance issue** - New version is slow - **Security issue** - Found vulnerability - **User complaints** - Users report problems ### Steps to Rollback 1. Go to Site Details 2. Click **Versions** tab 3. Find the version you want 4. Click **Rollback** or **Restore** 5. Confirm rollback 6. Site reverts to that version ### During Rollback - Site becomes unavailable briefly - Files revert to previous state - CDN updates worldwide - Takes 1-5 minutes typically - You can monitor progress ### After Rollback 1. Verify site works correctly 2. Test key functionality 3. Check for any issues 4. Site should be stable again 5. Note why you rolled back ## Comparing Versions See what changed between versions. ### What You Can Compare - **Files added** - New files in new version - **Files removed** - Deleted from new version - **Files changed** - Modified files - **Size difference** - How much larger/smaller - **Performance** - Load time differences ### How to Compare 1. Go to Versions tab 2. Select two versions to compare 3. Click **Compare** 4. See differences highlighted 5. Review changes in detail ## Managing Versions ### Version Storage All versions are kept: - Automatic storage - No action needed - Accessible anytime - Can be deleted manually ### Deleting Old Versions Free up space by deleting unused versions: **Steps:** 1. Go to Versions tab 2. Find version to delete 3. Click **Delete** or menu 4. Confirm deletion 5. Version is removed **Note:** Cannot delete current active version ### Keeping Important Versions Mark versions as important: - Won't be auto-cleaned - Easier to find later - Quick restoration ## Deployment Strategies ### Blue-Green Deployment Test new version before switching: 1. **Blue (current)** - Live version users see 2. **Green (new)** - New version being tested 3. **Test** - Verify green works 4. **Switch** - Users see green now 5. **Keep blue** - Easy rollback if needed ### Canary Deployment Gradually roll out to users: 1. Deploy to small percentage 2. Monitor for issues 3. Gradually increase percentage 4. Rollback if problems found 5. Full deployment when stable ## Version Naming ### Auto-Generated Names Versions have automatic numbering: - Version 1, Version 2, etc. - Chronological order - Increment automatically ### Custom Version Names You can name versions manually: 1. During deployment, add **version name** 2. Examples: - `v1.2.3` - Semantic versioning - `2024-01-15` - Date-based - `production-stable` - Status-based - `feature-login` - Feature-based ## Deployment Timeline ### Understanding the Timeline Timeline shows: - **Date deployed** - When it happened - **Person who deployed** - User name - **Build duration** - How long build took - **Deployment status** - Success/failed - **File changes** - What was in it ### Finding Specific Version 1. Browse timeline 2. Look for specific date 3. Check who deployed it 4. See what was deployed ## Automatic Versioning ### How It Works - Every deployment creates version automatically - No manual action needed - Versions numbered sequentially - Oldest versions can be deleted - Recent versions always kept ### Retention Policy How long versions are kept: - **Recent (7 days)**: All kept - **1 month old**: Most kept - **3+ months old**: Can be deleted - **Critical versions**: Keep indefinitely ## Best Practices ✓ **Always test before deploying** - Prevent need for rollback ✓ **Keep at least 2-3 versions** - Easy rollback access ✓ **Name versions clearly** - Easy identification ✓ **Document deployments** - Note what changed ✓ **Monitor after deploy** - Catch issues early ✓ **Archive important versions** - Keep long-term ✓ **Regular cleanup** - Delete very old versions ✓ **Test rollback process** - Know it works ## Common Scenarios ### Scenario: Bug in New Version 1. User reports bug 2. Check deployment history 3. Find last stable version 4. Click Rollback 5. Site back to working state 6. Fix bug locally 7. Redeploy when fixed ### Scenario: Content Error 1. Wrong content deployed 2. Check version history 3. Find correct version 4. Restore that version 5. Correct content shows 6. Fix and redeploy ### Scenario: Performance Drop 1. Users report slow site 2. Check recent deployments 3. Compare versions 4. Find performance difference 5. Rollback to faster version 6. Investigate issue 7. Deploy optimized version ### Scenario: Planned Update 1. Plan new feature deployment 2. Deploy to staging (version X) 3. Test thoroughly 4. Deploy to production (version Y) 5. Monitor performance 6. Keep version X available for rollback ## Version Storage Limits ### Space Considerations - Each version takes storage space - Old versions use less space - Can delete to free space - Backups automatically stored ### Deleting to Save Space 1. Go to Versions 2. Sort by date (oldest first) 3. Delete versions over 3 months old 4. Keep recent 5-10 versions 5. Archive critical versions ## Automation and CI/CD ### Continuous Deployment Automatically deploy on code push: 1. Connect Git repository 2. Every push creates version 3. Build runs automatically 4. Deploys if successful 5. Rollback if failed ### Version Naming in CI/CD Use commit hash or semantic versioning: - `v1.2.3` from git tags - Commit hash: `a1b2c3d` - Branch name: `main-2024-01-15` - Timestamp: `20240115-143022` ## Related Topics - [Creating Sites](./Creating-Sites.mdx) - [Managing Sites](./Managing-Sites.mdx) - [Custom Domains](./Custom-Domains.mdx) - [Performance and Optimization](./Performance.mdx) - [Troubleshooting](./Troubleshooting.mdx) ## Quick Reference | Task | Steps | |------|-------| | View versions | Site Details → Versions tab | | Rollback | Select version → Click Rollback | | Compare versions | Select two → Click Compare | | Delete old version | Find version → Click Delete | | Name a version | During deployment, enter name | | Check deployment date | Look at version timeline | --- --- ## Deploy Static Sites | Global CDN Hosting Platform | Nife URL: https://docs.nife.io/sites Deploy static websites and get global CDN distribution, automatic HTTPS, custom domains, and version control all in one place. No servers to manage, no infrastructure to maintain. ## What are Static Sites? Static sites are websites made with: - **HTML** - Page structure - **CSS** - Styling - **JavaScript** - Interactivity - **Images** - Visual content - **Other assets** - Fonts, videos, etc. **Examples:** - React applications - Vue.js sites - Angular apps - Jekyll blogs - Hugo websites - Plain HTML/CSS projects ## Why Deploy on Nife? ### Global CDN Your site served from servers near your users for lightning-fast load times. ### Automatic HTTPS SSL certificates automatically managed and renewed. ### Custom Domains Use your own domain name instead of the default Nife domain. ### Version Control Keep all deployment versions with instant rollback capability. ### Easy Redeploys Redeploy updated versions with a single click. ### Zero Configuration No servers to manage, no infrastructure to maintain. ## Key Features ### 📊 Site Management View all deployed sites with status, URL, and deployment information in one dashboard. ### 🚀 Quick Deploy Deploy sites from: - **Upload files** - Zip or folder upload - **Git repository** - Direct from GitHub, GitLab, etc. - **S3 bucket** - Deploy from AWS S3 ### 🔄 Version History - Every deployment is saved - Instant rollback to previous versions - Track deployment timeline - See who deployed what ### 🌍 Global Distribution - CDN edge servers worldwide - Automatically select closest server - Lightning-fast content delivery - Reduced latency globally ### 🔐 Security - Automatic HTTPS/SSL - DDoS protection - Security headers configured - Safe by default ### 📱 Responsive Design - Works on all devices - Mobile-friendly hosting - Automatic compression - Optimized delivery ## Site Status ### 🟢 Active Site is deployed and accessible to users. ### 🟡 Deploying Site is currently being deployed. Wait for completion. ### 🔴 Failed Deployment failed. Check error logs and retry. ### ⚪ Building Site files are being processed for deployment. ## Getting Started ### Step 1: Prepare Your Site 1. Build your site (if using framework) 2. Create output folder (dist, build, public, etc.) 3. Ensure files are ready to deploy ### Step 2: Deploy 1. Click **New Site** on Sites page 2. Choose deployment method 3. Select files or repository 4. Click deploy ### Step 3: Monitor 1. Watch deployment progress 2. Wait for status to become "Active" 3. Test your site 4. Share your URL ### Step 4: Manage 1. Update site with new versions 2. Use custom domain if desired 3. Monitor analytics 4. Manage versions ## Common Use Cases ### Personal Blog Deploy your static blog built with Hugo, Jekyll, or similar. ### Portfolio Website Showcase your work with a fast, secure portfolio site. ### Documentation Site Host project documentation built with MkDocs, Docusaurus, etc. ### Single Page App (SPA) Deploy React, Vue, or Angular applications. ### Marketing Website Launch marketing and promotional sites with confidence. ### Landing Page Quick deployment of landing pages for campaigns. ## Best Practices ✓ **Build locally first** - Test before deploying ✓ **Optimize assets** - Compress images and code ✓ **Use version control** - Track changes ✓ **Test in staging** - Verify before production ✓ **Monitor performance** - Check load times ✓ **Use custom domain** - Professional appearance ✓ **Setup analytics** - Track visitor behavior ✓ **Regular updates** - Keep content fresh ## Site Components ### Dashboard View See all your sites at a glance with filtering and search. ### Site Details View detailed information including: - Deployment history - Current version - Performance metrics - Access logs - Custom domains - Security settings ### Deployment Options Multiple ways to deploy: - Drag and drop file upload - ZIP file upload - Git repository connection - S3 bucket integration ### Version Management - Rollback to previous versions - View deployment history - Compare versions - Delete old versions ## FAQ **Can I deploy a React app on Nife?** Yes! Build your React app with `npm run build` and deploy the output folder. **What's the maximum site size?** Each site can be up to 5GB, which is more than enough for most sites. **Do you provide SSL certificates?** Yes, completely free. SSL is automatic and renewals happen automatically. **Can I use my own domain?** Absolutely. Add your custom domain and point your DNS records to Nife. **What if I need to rollback?** Instant rollback is available. Go to version history and click rollback on any previous version. --- ## Next Steps Ready to deploy your first site? Follow our guides: - [Create and Deploy Your First Site](./Creating-Sites.mdx) - Step-by-step deployment guide - [Manage Your Deployed Sites](./Managing-Sites.mdx) - Site management and monitoring - [Configure Custom Domains](./Custom-Domains.mdx) - Add your own domain - [Optimize Site Performance](./Performance.mdx) - Speed and performance optimization - [Version Control & Rollbacks](./Version-Control.mdx) - Manage deployment versions - [Troubleshooting Guide](./Troubleshooting.mdx) - Solve common issues --- --- ## Nife Access Tokens Guide URL: https://docs.nife.io/UI-Guide/Access-Tokens ### Obtaining and Using Access Tokens in Nife ### Getting Started 1. If you don’t have a Nife account, [create one here](https://launch.nife.io/register). 2. [Learn more about signing in](/UI-Guide/Sign_in). 3. Go to [Nife Login](https://launch.nife.io) and log in to your account. ### Accessing Settings 1. In the sidebar, locate and click on **Token Management**. 2. Select **Token** from the settings options. ### Obtaining Access Tokens 1. Under **Expire Time**, you will see option to select token expiry time **1 Hour** and **1000** Hours. 2. Choose the token based on the expiration time you need. 3. Copy the access token provided. :::tip For more details on token management, security best practices, and using tokens in your deployment workflow, please visit the [Token Management](/deploy/token-management) documentation. ::: This token can be used for authentication, CI/CD integration, and also for logging into Nife-Cost (Cloud cost monitoring). --- ## App Activity Tracking URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Activity The **Activity** section allows administrators and members to track all actions performed on an application. ### Activity Details The Activity section provides information on: 1. **App State**: Indicates if the application was successfully deployed. 2. **Description and Name**: Details identifying the specific application. 3. **Version**: The version of the deployed application. 4. **Status**: Shows whether the app is currently **Active** or **Inactive**. 5. **User Action**: The admin or organization member who completed the action. 6. **Download Source Code**: An option to download the source code (available for **Custom Deployments**). 7. **Timestamp**: The date and time the activity was completed. :::note Source code downloads are only available if the deployment was made using source code. ::: ### Downloading Source Code If your application was deployed using the **Custom Deployment** method, you can download the source code directly from the **Activity** tab. 1. Navigate to the **Applications** dashboard and select your application. 2. Go to the **Activity** section. 3. Locate the desired version and click the **Download** icon. - The code will be downloaded in a `.zip` format. --- ## App Configuration Settings URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Configuration The Configuration section describes the settings of the deployed application, including: 1. **Image Name**: The Docker image used for the deployment. 2. **Internal and External Ports**: The internal port (container port) and the external port (host port) required to access the service via the web. 3. **Build Type**: The method used to build the application. 4. **Routing Policy**: The strategy for routing traffic to the application. 5. **Version**: The current deployment version. This section also provides options for: - **Redeploy**: Trigger a fresh deployment of the application. - **Revert**: Roll back to a previous version. - **Application Status**: View the health and activity status (e.g., Active and Healthy). - **Environment Arguments**: Manage environment-specific variables. Users can also save their current configuration as a **Config Template** for future use. --- ## Scale & Backup region URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Scale ### Scale The **Scale** feature allows you to deploy your application to additional regions directly from the application overview page. It shows your currently deployed regions and lists all available regions along with their latency, helping you choose the best locations for your workload. #### To Scale resources Scale your application to additional regions using the **Scale** button. 1. Go to the left navigation tab > select an application > **Overview** tab 2. Click the **Scale** button in the top-right area of the page 3. In the **Scale Application** dialog, review the **Currently Deployed** regions 4. Under **Available Regions**, select one or more regions you want to deploy to. Each region displays its current latency for reference. 5. Click **Scale to Regions** Once scaled, the new regions will be reflected in the application's overview page. ### To create a Backup region Configure backup regions from the **Settings** tab under **Configure Deployment Regions**. You can select which regions your application is allowed to run in and toggle any active region as a backup for high availability and disaster recovery. 1. Go to the left navigation tab > select an application > **Settings** tab 2. Under **Configure Deployment Regions**, check the regions you want your application to run in 3. For any selected region, enable the **Backup** toggle to mark it as a backup region 4. Click **Save Region Configuration** --- ## Save Config Template URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/Template ### To Save a New Config Template: A new config template can be created under the configuration section of apps. The application configuration - ports - internal, external, environmental resources additional resources get stored as a template. 1. Go to left navigation tab > select an application> configuration tab of the app 2. Click on “save as config template” The templates are saved under the Config templates under Settings section with the list of templates. To manage the config template visit the Config template Section. The config templates can be used for deployments to learn more visit the Config templates deployment types. --- ## View Deployed Apps URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/View-apps To view all the created Apps, from the left navigation tab>Apps In the app section you can view the following: 1. The listed apps :The apps of all organizations are listed 2. Status: The Status can be Active or Not Deployed or Suspended. An Active status indicates running application a Not Deployed application indicates that the application needs to be deployed a Suspended application is a disabled application that was previously running. 3. Version: The versions of the application deployment is listed 4. Workload: Workload of an app is displayed. If the app is deployed without Workload, then no workload will be displayed 5. Deployment status: A green tick mark indicates that the app is up and running 6. Organisations associated: The associated organization gets listed 7. Build type: Build type of an app is displayed here 8. Link to view the app: The URL created during the deployment is available as a shortcut. 9. User Actions associated with the App, using the hamburger icon, the customer can choose to move, suspend, redeploy or delete an application. 10. Last updated time: Indicates the time when the last deployment or redeployment that was done. Note: If you have many apps you can use the search bar found at the top of the section for searching apps by names, you can also use the sort feature to sort based on deployment status or Organization --- ## Delete Applications URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/delete #### To Delete Applications: Steps: * Open the **Application Dashboard** * Navigate to the **Delete Application** section * Click **Delete** * Confirm the deletion This will remove the application and all associated regions. ⚠️ **Important:** Deleting an application and its regions is **irreversible**. Once deleted, the application and its resources cannot be recovered. --- ## Move Application URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/move **Steps:** * Open the **Application Dashboard** * Navigate to **Move Application** * Select the **Source Region** * Choose the **Destination Region** * Confirm the region change This will deploy the application in the selected destination region. The previous region will no longer be associated with the application. This is same as moving from one availability zone to another Example regions: * India * Europe * United States --- ## Suspend Nife Application URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/suspend #### To Suspend the Applications: 1. Open the **Application Dashboard** 2. Navigate to the **Suspend Application** section 3. Click **Show Regions** to view available regions 4. Toggle the switch to **Suspend** the application Once suspended, the application will no longer be accessible. --- ## Push to Workload App URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/App-management/workload ### Push to Workload App The **Merge** feature allows you to push a version of your application into another app within the same workload. Both apps must belong to the same organization. #### To Push to a Workload App: 1. Go to the left navigation tab > select an application > **Overview** tab 2. In the **Deployments** section, click the **Merge** button 3. In the **Push to Workload App** dialog: - **Step 1** — Select the version of the current app to push - **Step 2** — Select the target app within the same workload to deploy into 4. Click **Push & Deploy** --- ## App Configurations URL: https://docs.nife.io/UI-Guide/Apps-&-their-Management/Configuration ### Additional configuration Information: Once the deployment type is selected there is an additional section at the right side for configuration: Under Additional configuration information you can set the following: 1. Routing policy (this is a policy to define routing) Latency (Latency is the time it takes for data to pass from one point on a network to another.) Geo-location (Location spread across the nearest region) 2. Ports (This is a policy to define the ports required by application) Internal ports - this refers to the ports associated with the container External ports - this refers to the ports associated with the host or the machine 3. Environment variables (optional) Manually add env variables by clicking ‘add’ or paste them in name=value format. Note: Environment variables can also be set as global variables. ### Attach Volume: (Optional) Customers can attach volume if they want. Need to pass the size here. ### Additional Resource Configuration: Customers can also choose to add the resource configuration: Replica vCPU (request and limit) Memory (request and limit) Replica lets you specify the number of replicas, indicating how many Pods your app should be maintaining at any given time. It's a helpful tool for managing high demand and keeping your app responsive. You can set the request (minimum requirement) and the limit (maximum limit) for CPU and memory in Mbs Once all the necessary details are provided. Click on the deploy at the bottom and your app will be up and running If the deployment is successful, you get a message with the link to the app. Once deployed you will get a global URL `http://.on.nifetency.com` Customers can choose scaling options such as extend locations, filters and backup mode. Note: The Global URL can be changed later and mapped to a custom URL. HTTPS support can be added on request. ### App Scaling, backup and extend(Optional) Once the app is deployed, you can choose to scale the application. To Scale the application or create a backup 1. Choose the regions from the drop down to extend or backup. 2. Enable Backup option by selecting the `Backup Mode`, if the backup location is needed 3. Select the filters - Routing 4. Click on `Deploy` Once the application is created, the locations can be extend or backup can be created from the left navigation tab >Apps > Select Application Name > Scale Tab. To learn more visit the [Scale](/UI-Guide/Apps-&-their-Management/App-management/Scale) Section --- ## Bring Your Own Cluster (BYOC) URL: https://docs.nife.io/UI-Guide/Locations/Byoc Nife offers the Bring Your Own Cluster (BYOC) feature, allowing users to integrate their own clusters into the platform. ### Adding BYOC Cluster: 1. From the dashboard, click on `Cluster` in the sidebar. 2. Click on `BYOC`. 3. Click on `Connect now`. 4. Choose the type of cluster you want to add: - AWS - GCP - Azure - Standalone Cluster 5. Fill in the details for your cluster. :::tip For detailed information on connecting with various cloud providers using BYOC, please refer to the [Connecting with BYOC Cloud Providers](/Clusters/Connecting-Clusters#connecting-with-byoc-cloud-providers) guide. ::: 6. Uploading Config File: - You will need to upload a configuration file for your cluster. - Refer to the step-by-step guide on the same page, located on the right-hand side, for assistance on obtaining the configuration file. 7. After uploading the config file, your BYOC gets added to the Nife platform. This BYOC feature provides users with the flexibility to bring and manage their own clusters seamlessly within the Nife platform. --- ## Bring Your Own Host (BYOH) URL: https://docs.nife.io/UI-Guide/Locations/Byoh Nife provides the capability of Bringing Your Own Host (BYOH). ### BYOH Request Process 1. Under BYOH Click on `+ REQUEST BYOH` 2. **Fill in Details:** - Provide the following details: - Name - Region - User Name - Password - IP Address - Organization 3. **Submit Request:** - Once all details are filled, click **Submit**. 4. **Support Team Contact:** - After submitting the request, our support team will contact you shortly for further assistance. The BYOH feature enhances flexibility and allows users on advanced plans to bring their own device configurations to the Nife platform. --- ## Nife Deployment Locations URL: https://docs.nife.io/UI-Guide/Locations/Locations ### Active Locations Active locations are currently in use or provisioned. Active locations provide the following details: - Name - Latency - Cloud ### Available Regions Nife showcases regions available for customers to deploy from the IaaS platform. Nife offers 500+ locations worldwide, Available locations are part of the inventory offered by Nife and can be associated with an account on demand. ### Activation Process To activate new regions, follow these steps: 1. **Submit Request:** - Use the search bar to find and select desired locations. - Note: You can select multiple locations at a time using the checkbox feature. - Click **Submit Request**. 2. **Notification:** - The submit request sends a notification to the team. 3. **Team Interaction:** - The team may reach out to you for further queries. 4. **Confirmation Email:** - You will receive an email confirming the selected locations. This activation process ensures that customers have the locations they need for deployment on the Nife platform. --- ## Invite a New User URL: https://docs.nife.io/UI-Guide/Member To invite a user and manage their roles on the Nife platform. ### Steps to Invite User: 1. On the dashboard, click on your **Organization** from the sidebar. You will see your organization cards. 2. Click the **Invite Member** button in the Members dialog. 3. In the **Invite New Member** dialog, select a role and enter the email address: - `Admin` — Full access with admin privileges - `Member` — Can view, create and update - `Viewer` — View access only 4. Click **Invite** :::tip For more details on member invitations and role management, please visit the [Member Invitations](/organizations/members#member-invitations) documentation. ::: After submitting, the invited user will receive an email containing the username and password to log in to [https://launch.nife.io/](https://launch.nife.io/). ### Edit User Role To modify a user's role or remove them from the organization: 1. Open the organization Members dialog. You will see all current members with their roles. 2. Click the role dropdown next to a member to change their role (Admin, Member, or Viewer). 3. To remove a member, click the delete (trash) icon next to them. Changes are saved automatically. --- ## Migrate Organizations: Move Resources & Workloads | Nife Docs URL: https://docs.nife.io/organizations/migrate ### What gets migrated When you migrate an organization, everything inside it moves to the destination: - All applications and deployments - All instances and volumes (including persistent data) - All workloads and secrets --- ### How to migrate #### Step 1 — Open the Migrate dialog Go to the **Organizations** page. : - Click the **Migrate** button at the top right of the page (next to "Create Organization"). #### Step 2 — Select organizations In the dialog, choose: 1. **Source Organization** — the org you want to move everything *from* 2. **Destination Organization** — the org you want to move everything *to* Once both are selected, click **Next**. #### Step 3 — Confirm Review the migration summary: - The source and destination organizations are shown - The list of what will be moved is displayed Click **Confirm & Migrate** to start. > ⚠️ **Do not close or refresh the page** while migration is in progress. This can take a few minutes depending on how many apps and volumes you have. #### Step 4 — Done Once complete, all your apps will be running in the destination organization. --- --- ## Slack Notification URL: https://docs.nife.io/UI-Guide/Notification/Slack-notify `} #### To receive Slack notifications, you need to set up an incoming webhook. Follow these steps: + Sign in to Slack: If you don't have an account, create one on [Slack's website](https://slack.com/get-started#/createnew) and create a channel in your workspace named "Nife Activity". + Create a Slack App: Go to the https://api.slack.com/apps page and click on `Create an App`. + Click on `From scratch` + Fill in App Details: Enter a name for your app, select your workspace, and click on `Create App`. + Set Up Incoming Webhooks: In the left sidebar, navigate to "Incoming Webhooks" under the "Features" section. + Activate Incoming Webhooks: Toggle the switch to activate incoming webhooks. + Add a New Webhook: Scroll down to the "Webhooks" section and click on "Add New Webhook to Workspace". + Authorize the App: Authorize your app to access the selected workspace and choose a channel. + Copy the Webhook URL: After authorizing, you'll get a webhook URL. Copy it. + Paste this Url in https://launch.nife.io/ > left navigation > Setting page > [Integration Slack Notification](https://launch.nife.io/settings/integration) > `ADD SLACK`. Once you've completed the setup, you're all set to receive comprehensive notifications on user activities within the platform. --- ## Organizations: View, Create & Manage | Nife Docs URL: https://docs.nife.io/UI-Guide/Organizations Organizations help you group and manage multiple applications within a single workspace. They are useful when a company needs separate environments for different teams, departments, or projects. For example, a company may have separate organizations for **marketing**, **engineering**, and **finance**, each managing their own applications and deployments. --- ## Viewing Organizations The Organizations page displays all organizations associated with your account. **Steps:** 1. Log in to the Nife platform. 2. From the **left navigation menu**, click **Organizations**. 3. The Organizations page will display a list of available organizations. You will be able to view details such as: - Organization name - Associated regions - Available actions - Total number of organizations --- ## Creating an Organization You can create a new organization to manage applications and deployments. **Steps:** 1. Navigate to the **Organizations** page. 2. Click **+ Create Organization**. 3. Enter the **name of the organization**. 4. Click **Create**. Once created, the organization will appear in the Organizations list. --- ## Managing Organizations From the Organizations page, you can manage existing organizations. Available management options include: - Editing organization details - Creating **Sub-Organizations** - Creating **Business Units** - Managing regions and configurations Click the **three-dot menu (...)** next to an organization to view the available actions. --- ## Setting a Default Organization A default organization is automatically used during deployments if no organization is selected. **Steps:** 1. Navigate to the **Organizations** page. 2. Look for the **settings button** on desired organization for example **Staging Org** in this case. 3. Click on **Set as Default** button under Organization Settings. 4. Choose the **default region**. ### Notes - Only **one organization can be set as default** at a time. - The default organization is used for **automatic deployments from the marketplace**. - A default organization **cannot be deleted unless another organization is set as default**. --- ## Deleting an Organization If an organization is no longer required, it can be deleted. ⚠️ **Important:** Deleting an organization will also delete all applications associated with it. **Steps:** 1. Navigate to the **Organizations** page. 2. Click the **three-dot menu (...)** next to the organization. 3. Select **Delete Organization**. 4. Enter the **organization name** to confirm deletion. 5. Click **Delete**. Once confirmed, the organization and its associated resources will be permanently removed. --- --- ## Signing in to Nife URL: https://docs.nife.io/UI-Guide/Sign_in If you are already registered, then use Sign in from the website and you land on the UI page. You may sign in using a custom email and password or using Google, GitHub, GitLab, Microsoft and AWS. Note: The login from SSO works only if you have valid credentials on the Platforms. ## Signing In Using Google To sign in using Google, click on the Google icon on the sign-in page. Then enter your Google credentials starting from you email. Then after entering click on **Next**, which will take to the next page where we are supposed to enter our password. ## Signing In Using GitLab Users can also authenticate using their GitLab account. **Steps:** 1. Click **GitLab** on the login page. 2. The GitLab authentication page will open. 3. Enter your **GitLab credentials**. 4. Click **Sign in** to continue. 5. After successful authentication, you will be redirected to the Nife platform. --- ## Signing In Using BitBucket To sign in using BitBucket click on the **BitBucket* icon on the sign in page. This will redirect you the respective page where we are supposed to enter the Email and password else also sign in using an security PassKey. ## Signing In Using Microsoft You can sign in using your Microsoft account. **Steps:** 1. Click **Microsoft** on the sign-in page. 2. Enter your **Microsoft email address**. 3. Choose one of the available authentication methods. --- ### Method 1: Sign In Using Verification Code 1. Click **Send code**. 2. Enter the verification code sent to your email. 3. Click **Sign in** to continue. --- ### Method 2: Sign In Using Password 1. Enter your **Microsoft account password**. 2. Click **Sign in**. 3. After authentication, you will be redirected to the Nife dashboard. --- ## Signing In Using AWS You can also authenticate using your AWS account. **Steps:** 1. Click **AWS** on the sign-in page. 2. Enter your **AWS username**. 3. Enter your **AWS password**. 4. Click **Sign in**. 5. After successful authentication, you will be redirected to the Nife dashboard. --- ### Creating a New AWS Account If you do not already have an AWS account, you can create one from the AWS login page. **Steps:** 1. Click **Create a new AWS account**. 2. Follow the registration process by entering the required account details. 3. After creating the account, return to the Nife sign-in page and log in using your new AWS credentials. --- ## Creating a New Nife Account If you do not already have an account, you can create one directly from the login page. **Steps:** 1. Click **Create one for free**. 2. Enter the required **account details and credentials**. 3. Complete the registration process. 4. Once the account is created, you can sign in and start using the Nife platform. --- ## The Nife Launchpad Once you have successfully signed in, you will be greeted by the Nife Launchpad, your central dashboard for managing all your cloud resources. --- ## Create a build and deploy URL: https://docs.nife.io/UI-Guide/Site-deployment/Create-build `} ### To Create an optimized production build and deploy, follow these steps: ##### 1. **Navigate to the Dashboard:** - From the sidebar menu, click on "Site." ##### 2. **Create a New Site:** - Click on `+ New site` On the right side, you can see options to select the framework. Currently, we support: - React - Angular - Vite - Vue.js - Remix - Ember.js Click on the framework that your source code is based on. ##### 3. **Choose Organization:** + Select the organization where you want to deploy the website. ##### 4. **Deployment Options:** - Choose between: - **Source Code Deployment:** Upload your source code from your local device. - **GitHub Deployment:** Provide the repository link and branch name. After entering the branch name and repo link, click on `Done` ##### 5. **Configuration:** - **Environment Variables:** If your project requires environment variables, add them here. - **Select Install Command:** Enter the command used to install your project's software dependencies. - **Build Command:** Enter the command provided by your frontend framework for compiling your code. - **Output Directory:** Specify the directory where your compiled frontend will be located. ##### 6. **Deploy Site:** - Click on the `Deploy site` button to initiate the deployment process. ##### 7. **After Deployment:** - Once the deployment process is complete, click on the application to view its details. - Click on `Open Site` to visit your website and verify the deployment. ##### 8. **Custom-Domain Option:** - Below the application details, you'll find the custom domain option. - Click on that option to access the link where you can map your domain to the deployed website. --- ## Deleting Site Applications URL: https://docs.nife.io/UI-Guide/Site-deployment/Delete-site-app 1. **Navigate to the Applications List:** - Go to the left navigation tab and click on "Site." 2. **Delete an Application:** - Locate the application you wish to delete. - In the action column, you will find three vertical dots (ellipsis). Click on these dots. - From the dropdown menu, select the `Delete` option. --- ## Create a Secret Variable URL: https://docs.nife.io/UI-Guide/Variables/Create-Secret ### To Create Secrets: ##### Step 1: Navigate to Settings: Click on `Settings` in the sidebar. ##### Step 2: Access Variables: Within the settings, locate and click on the `VARIABLES` section. ##### Step 3: Click the `+ Create Secret` button. ##### Step4: Follow these steps: - Name of the secret (e.g., my-secret) - Choose an organization. - Choose a registry type: - GitHub registry (specific to GitHub) - GitLab registry (for GitLab) - Docker Hub registry (for storing Docker images) - Type the access key. - Type the secret key (a private password). - Finally, click "Submit" to create the secret. :::tip For more information on managing secrets at the organizational level, please visit the [Organizational Secrets](/UI-Guide/Variables/Organizational-Secrets) documentation. ::: ###### Note: All secrets are stored under the dashboard under variables and Ensure that the correct secret key is provided; using the wrong secret may result in deployment failure. ### To Edit Secrets: 1. Under the "Your Variables" section: - Click on the pen-shaped icon (edit button). 2. Modify the fields: - Secret key - Access Key 3. After making changes, click "Save" to save your secrets. ### To Use Secrets: Using secrets is easy. After storing them in the secrets section, you can use them to access private repositories and images from Docker Hub, which is an image storage for both public and private images. You do not need to hard code them but choose them when configuring your apps. --- ## Github-PAT-Secret URL: https://docs.nife.io/UI-Guide/Variables/Github-PAT-Secret ##### Create Secret for GitHub Personal Access Token (PAT) for Your Repository #### Navigate to Settings: Click on `Settings` in the sidebar. #### Access Variables: Within the settings, locate and click on the `VARIABLES` section. #### Create GitHub Personal Access Token (PAT): Look for the option to `CREATE GITHUB PAT` and click on it. #### Provide Information: Fill in the required details for your GitHub PAT: + Name: [Your desired name for the PAT] + Organization: [Name of your organization] + Personal Access Token: [Enter your GitHub personal access token] If you need assistance obtaining Github PAT, refer to our [step-by-step guide](/UI-Guide/Variables/Github-PAT). #### Submit: After entering the necessary information, click on the "SUBMIT" button to add your GitHub PAT. --- ## GitHub Personal Access Token(PAT) URL: https://docs.nife.io/UI-Guide/Variables/Github-PAT ### How to get Github personal access token? 1. Sign in to GitHub: Make sure you're signed in to your GitHub account. If you don't have an account, you'll need to create one first. 2. Access Personal Access Tokens Settings: Click on your profile picture in the upper-right corner of the GitHub page, and then click on "Settings." 3. Access Developer Settings: In the left sidebar, click on "Developer settings." 4. Access Personal Access Tokens: In the Developer settings menu, click on "Personal access tokens." 5. Generate a New Token: Click on the "Generate token" button to create a new personal access token. 6. Configure Token: Configure your personal access token by selecting the scopes (permissions). Make sure to enable the repo scope so that we can list your repositories. Be careful with the permissions you grant, as they determine what the token can access. 7. Generate Token: Scroll down to the bottom of the page, and click on the "Generate token" button. 8. Copy Your Token: Once you've generated the token, you will see it displayed on the screen. Be sure to copy the token and store it securely. You won't be able to see the token again. 9. Use Your Token: Now paste this personal access token to input and click on add. --- ## Global-Variables URL: https://docs.nife.io/UI-Guide/Variables/Global-Variables Global variables are accessible throughout the entire program, making them available globally within the organization where the secret is created. ### To Create Global Variables: ##### Step 1: Navigate to Settings: Click on `Settings` in the sidebar. ##### Step 2: Access Variables: Within the settings, locate and click on the `VARIABLES` section. ##### Step 3: Click on `+ Create Global Variable`. #### Step 4: Follow these steps: - Type the name of the variable. - Choose an existing organization. - Enter the key for the variable. - Enter the value. - Lastly, click `Submit`. For example: name = my-variable, key = number, and value = 2. This creates a Global Variable and stores it. ##### Note: All Global variables are stored under the dashboard under variables. ### To Edit Global Variables: 1. Under the **Your Variables** section, find the global variable. 2. Click the pen icon to edit it. 3. In the edit option, you can modify the following: - Key - Value 4. After editing, click the `Save` button to store the changes. ### To Use Global Variables: Global variables are accessible at the time of deployment as environmental variables. To learn about their usage in the Deployment options, read the **Apps and its Management** section. --- ## Organization Members URL: https://docs.nife.io/UI-Guide/Variables/Members # Members The **Members** tab under Organizations allows you to manage all users who are part of your organization. You can view member details, assign roles, and invite new users to collaborate. --- ## Accessing Members 1. Navigate to **Overview → Organizations** 2. Select your organization --- ## Members Overview Click on the **Members** tab to see a centralized view of all users in the organization. ### Key Information Displayed | Column | Description | |--------|-------------| | **Member** | User's name and email address | | **Status** | Whether the user is active or invited | | **Organizations** | Number of organizations the user belongs to | | **Role** | Access level assigned to the user | | **Actions** | Options to manage the user | --- ## Roles and Permissions Each member is assigned a role that determines their level of access within the organization. | Role | Capabilities | |------|-------------| | **Admin** | Full control — manage members, resources, secrets, and billing | | **Member** | Can create, view, and update resources and workloads | | **Viewer** | Read-only access to all resources | ### Choosing the Right Role - **Admin** — Team leads, project managers, senior engineers - **Member** — Developers, engineers, operations staff - **Viewer** — Stakeholders, product managers, auditors --- ## Invite New Members You can invite new users directly from the Members page. ### Steps to Invite a User 1. Click **Invite User** 2. Enter the **Email Address** 3. Select the **Organization** 4. Review the default role (**Member**) 5. Click **Send Invitation** The invited user will receive a notification to join your organization. Their status will show as **Invited** until they accept. --- ## Default Role Invited users are assigned the **Member** role by default, which allows them to view resources and create and update workloads. You can change the role at any time from the Actions menu. --- ## Managing Members From the **Actions** menu you can: - **Change role** — Promote to Admin or downgrade to Viewer - **Remove user** — Revoke access from the organization - **View details** — See full profile, email, and activity :::note Removing a member revokes their access immediately but does not delete their platform account. ::: --- ## Search Members Use the search bar to quickly find users by name or email address. --- ## Best Practices - Follow the **principle of least privilege** — assign the minimum role needed - **Audit members quarterly** — remove inactive or departed users - **Limit Admin accounts** — only grant Admin to those who genuinely need it - **Document access decisions** — track who has what role and why --- ## Related - [Organizational Secrets](/UI-Guide/Variables/Organizational-Secrets) - [Create Secret](/UI-Guide/Variables/Create-Secret) - [Organizations](/UI-Guide/Organizations) --- ## Organizational Secrets URL: https://docs.nife.io/UI-Guide/Variables/Organizational-Secrets # Organizational Secrets The **Organizational Secrets** tab allows you to securely store and manage sensitive information such as API keys, tokens, and credentials at the organization level. These secrets can be reused across workloads without exposing sensitive data in your code. --- ## Accessing Organizational Secrets 1. Navigate to **Overview → Organizations** 2. Select your organization --- ## Secrets Overview Click on the **Secrets** tab to see a centralized view of all organizational secrets. ### What You'll See | Column | Description | |--------|-------------| | **Name** | The unique identifier for the secret | | **Last Updated** | When the secret value was last changed | | **Created By** | The user who created the secret | | **Actions** | Options to update or delete | Secret values are hidden by default. They are encrypted at rest and never exposed in logs or UI. --- ## Create a New Secret ### Steps to Create a Secret 1. Click **Create Secret** 2. Enter a **Name** — must be unique within the organization 3. Enter the **Secret Value** 4. Click **Create** ### Naming Best Practices Use uppercase, underscore-separated names that describe the purpose: | Good ✅ | Bad ❌ | |---------|--------| | `DB_PASSWORD_PROD` | `password` | | `STRIPE_API_KEY` | `key1` | | `SLACK_WEBHOOK_URL` | `secret123` | --- ## Managing Secrets From the **Actions** menu you can: - **Update** — Change the secret value without changing its name - **Delete** — Permanently remove the secret :::warning Deleted secrets cannot be recovered. Any workload referencing a deleted secret will fail at deploy time. ::: --- ## Using Secrets in Workloads Organizational secrets are injected as environment variables at deploy time. Reference them by name in your application configuration: ```bash $DB_PASSWORD_PROD $STRIPE_API_KEY $SLACK_WEBHOOK_URL ``` They are available to all applications within the organization, making them ideal for shared credentials across multiple workloads. --- ## Environment-Specific Secrets For multi-environment setups, use naming conventions to separate dev, staging, and production values: ```text API_KEY_DEV API_KEY_STAGING API_KEY_PROD ``` --- ## Search Secrets Use the search bar to find secrets by name quickly. --- ## Security Considerations - 🔐 All secrets are **encrypted at rest** - 🔐 Values are **never shown in logs** - 🔐 Access is limited to **organization members** - 🔐 Changes are **audited** — you can see who last updated each secret - 🔐 **Rotate secrets regularly** to reduce exposure risk --- ## Related - [Create Secret](/UI-Guide/Variables/Create-Secret) - [Global Variables](/UI-Guide/Variables/Global-Variables) - [Members](/UI-Guide/Variables/Members) - [Organizations](/UI-Guide/Organizations) --- ## Nife Workload Management URL: https://docs.nife.io/UI-Guide/workload Workloads help organize and manage application environments within the platform. Each workload represents an environment such as **Production**, **Staging**, or **Development**, and allows you to control where your applications are deployed. On this page, you will learn how to: - View workloads - Create a workload - Manage workload regions - Delete a workload --- ## Viewing Workloads To view all available workloads: 1. Navigate to **Workloads** from the centerbar. 2. The page displays all workloads as **cards** under *Workload Environments*. Each card shows important details such as: - Workload name - Organization - Creation date - Number of applications - Region management option --- ## Creating a Workload Follow these steps to create a new workload. ### Step 1: Open Create Workload 1. Go to the **Workloads** page. 2. Click the **Create Workload** button located at the top right of the page. --- ### Step 2: Configure Workload Details A popup window will appear where you must enter the workload information. 1. **Organization** – Select the organization the workload belongs to. 2. **Workload Name** – Enter a name for the environment (e.g., Production, Staging). 3. **Endpoint Name** – Provide the endpoint identifier for the workload. --- ### Step 3: Create the Workload 1. After entering the required information, click **Create**. 2. The workload will be successfully created. --- ### Step 4: Return to the Workloads Page 1. After creation, return to the **Workloads** page. 2. The newly created workload will now appear in the workload list. --- ## Managing Workload Regions Workloads can be deployed across multiple regions. You can add or modify regions for each workload. ### Step 1: Open Region Management 1. Locate the workload card. 2. Click the **Manage Regions** button on that workload. --- ### Step 2: Change or Add Locations 1. In the region management window, select the region(s) you want. 2. Add or change the deployment locations. 3. Save your changes. --- ## Deleting a Workload If a workload is no longer required, it can be permanently removed. ### Steps to Delete 1. Locate the workload card. 2. Click the **Delete (trash) icon** on the workload. --- ### Deletion Confirmation 1. A confirmation dialog will appear. 2. Click **Delete** to permanently remove the workload. ⚠️ **Note:** Deleting a workload is permanent and cannot be undone. --- ## Summary Workloads help you structure your environments and deployments within the platform. With workloads, you can: - Organize applications into environments - Control deployment regions - Manage infrastructure efficiently Using workloads ensures better organization and improved control over your application deployments. --- ## Cloud Provider Setup | AWS, GCP, Azure, OpenShift URL: https://docs.nife.io/VM-Management/cloud-provider-setup This guide walks you through connecting your cloud provider accounts to Nife for VM provisioning and management. Start by gathering credentials from your cloud provider, then add them to Nife through the Cloud Accounts interface. ## Prerequisites Before adding a cloud account to Nife, gather credentials from your cloud provider: - **AWS**: Access Key ID and Secret Access Key from an IAM user with EC2 permissions - **GCP**: Service Account JSON key file with Compute Engine permissions - **Azure**: Subscription ID, Tenant ID, Client ID, and Client Secret from a service principal - **OpenShift**: API URL, Bearer Token, and Kubeconfig from your OpenShift cluster See the detailed credential setup sections below for step-by-step instructions for each provider. ## Adding Cloud Account in Nife All cloud accounts are managed through the **Cloud Accounts** interface in Nife. ### Accessing Cloud Accounts 1. Navigate to **Home** → **Infrastructure** → **Cloud Accounts** 2. Click the **Add Account** button in the top-right corner 3. The "Add Cloud Account" dialog opens ### Common Steps for All Providers Follow these steps regardless of which provider you're adding: 1. **Select Organization**: Choose the organization that will own this cloud account - The account will be scoped to this organization - Only users with access to this org can use the account 2. **Select Provider**: Choose your cloud provider (AWS, GCP, Azure, or OpenShift) - Fields in the dialog update based on your selection 3. **Enter Account Name**: Give your account a descriptive name - Examples: `production-aws`, `staging-gcp`, `dev-azure`, `cluster-ocp` - Used to identify the account in the Cloud Accounts dashboard 4. **Enter Provider-Specific Credentials**: Fill in the required fields for your provider (see below) - Field names and requirements vary by provider 5. **Click Add Account**: Credentials are validated and stored encrypted in Vault - Secret keys and tokens are never returned via API - Account immediately appears in the Cloud Accounts dashboard ### AWS Account Setup When **Amazon Web Services** is selected as the provider, fill in these fields: **Required Fields**: - **Account Name**: e.g., `production-aws`, `staging-aws` - **Access Key ID**: Starts with `AKIA`, e.g., `AKIAIOSFODNN7EXAMPLE` - **Secret Access Key**: Your IAM secret access key (stored securely, hidden after input) - **Default Region**: e.g., `us-east-1`, `us-west-2`, `eu-west-1` **Steps to Add**: 1. Select **Amazon Web Services** from the Provider dropdown 2. Enter a descriptive **Account Name** 3. Paste your **Access Key ID** 4. Paste your **Secret Access Key** (input field is hidden for security) 5. Select or type your **Default Region** 6. Click **Add Account** ![AWS Add Account Dialog](./images/cloud-setup1.png) *Add Cloud Account dialog with AWS provider selected* ![AWS Account Form Complete](./images/cloud-setup2.png) *AWS account form with all required fields including Access Key ID, Secret Access Key, and Default Region* :::info After the account is created, Nife validates the credentials immediately. Valid accounts show an "Active" badge in the Cloud Accounts dashboard. Invalid credentials show as "Invalid" with a red badge. ::: ### GCP Account Setup When **Google Cloud Platform** is selected as the provider, fill in these fields: **Required Fields**: - **Account Name**: e.g., `production-gcp`, `staging-gcp` - **Project ID** (optional): Your GCP project ID, e.g., `my-gcp-project` - **Service Account JSON**: Paste the complete service account key JSON **Steps to Add**: 1. Select **Google Cloud Platform** from the Provider dropdown 2. Enter a descriptive **Account Name** 3. Enter your **Project ID** (optional, helps with account identification) 4. Paste the entire **Service Account JSON** in the text area 5. Click **Add Account** ![GCP Account Form](./images/cloud-setup3.png) *GCP account form with Project ID and Service Account JSON fields* :::info Paste the complete JSON contents from your GCP service account key file. The JSON must be valid and include all required fields from the download. ::: ### Azure Account Setup When **Microsoft Azure** is selected as the provider, fill in these fields: **Required Fields**: - **Account Name**: e.g., `production-azure`, `dev-azure` - **Subscription ID**: Your Azure subscription ID (GUID format) - **Tenant ID**: Your Azure AD tenant ID (GUID format) - **Client ID**: Service principal application ID (GUID format) - **Client Secret**: Service principal secret value (stored securely, hidden after input) **Steps to Add**: 1. Select **Microsoft Azure** from the Provider dropdown 2. Enter a descriptive **Account Name** 3. Enter your **Subscription ID** (from Azure Subscriptions) 4. Enter your **Tenant ID** (from Azure AD → Properties) 5. Enter your **Client ID** (from App registration) 6. Paste your **Client Secret** (input field is hidden for security) 7. Click **Add Account** ![Azure Account Form](./images/cloud-setup4.png) *Azure account form with Subscription ID, Tenant ID, Client ID, and Client Secret fields* :::warning Client Secret is only visible once when created in Azure AD. Copy it immediately and store securely before you lose access to it. ::: ### OpenShift Account Setup When **OpenShift** is selected as the provider, fill in these fields: **Required Fields**: - **Account Name**: e.g., `production-ocp`, `staging-openshift` - **API URL**: Your OpenShift cluster API endpoint, e.g., `https://api.ocp.example.com:6443` - **Bearer Token**: Authentication token for cluster access (stored securely, hidden after input) **Optional Fields**: - **Kubeconfig**: Complete kubeconfig file for cluster authentication (alternative to Bearer Token) **Steps to Add**: 1. Select **OpenShift** from the Provider dropdown 2. Enter a descriptive **Account Name** (e.g., `prod-cluster`) 3. Enter your **API URL** (the OpenShift cluster API endpoint) 4. Paste your **Bearer Token** (input field is hidden for security) - OR provide **Kubeconfig** file content 5. Click **Add Account** ![OpenShift Account Form](./images/cloud-setup5.png) *OpenShift account form with API URL and Bearer Token fields* :::info OpenShift credentials are validated immediately. The connection is tested using the provided API URL and authentication token. Valid accounts show an "Active" badge. ::: ## Cloud Accounts Dashboard Once added, your accounts appear in the **Cloud Accounts** list with the following information: **Account Card**: - **Account Name**: The identifying name you provided - **Status Badge**: - Green "Active" if credentials are valid - Red "Invalid" if credentials failed validation - **Provider**: AWS, GCP, Azure, or OpenShift - **Region/Details**: Default region (AWS), cluster endpoint (OpenShift), or project info - **Last Validated**: When credentials were last verified - **Action Buttons**: - **Validate**: Re-verify credentials - **Delete**: Remove the account ### Account Status **Active**: Credentials are valid and account is ready to use for VM provisioning **Invalid**: Credentials failed validation or have expired. Delete and re-add the account with correct credentials. ### Validating Accounts To verify an account's credentials are still valid: 1. Locate the account card in the Cloud Accounts list 2. Click the **Validate** button 3. Nife checks if credentials still work 4. "Last Validated" timestamp updates 5. Status updates to Active or Invalid ## Detailed Credential Setup by Provider Use the sections below as reference for gathering credentials from your cloud provider before adding them to Nife. --- ## AWS Detailed Setup Guide ### Prerequisites - AWS account with billing enabled - IAM user with appropriate permissions - EC2 instances already created in your AWS account (for testing) ### Step 1: Create IAM User (Recommended) Instead of using root credentials, create a dedicated IAM user for Nife. 1. **Log in to AWS Console** - Go to https://console.aws.amazon.com - Navigate to **IAM** → **Users** 2. **Create New User** - Click **Create user** - Enter username: `nife-vm-management` (or your preference) - Click **Next** 3. **Set Permissions** - Select **Attach policies directly** - Search for and attach: `AmazonEC2FullAccess` - Optionally: Create custom policy with minimal permissions (see below) - Click **Next** 4. **Review and Create** - Review user details - Click **Create user** ### Step 2: Create Access Keys 1. **Select the User** - Click on the user you just created - Go to **Security credentials** tab 2. **Generate Access Key** - Scroll to **Access keys** section - Click **Create access key** - Select **Command Line Interface (CLI)** - Check the confirmation checkbox - Click **Next** 3. **Save Credentials** - Copy **Access Key ID** (starts with `AKIA`) - Copy **Secret Access Key** - **Important**: Save these securely; you won't see the secret key again - Download CSV file as backup 4. **Complete** - Click **Done** ### AWS IAM Policy (Minimal Permissions) For security, create a custom policy with only necessary permissions: ```json ] } ``` ### AWS Troubleshooting **Invalid Access Key Error** - Verify Access Key ID format (starts with `AKIA`) - Check Secret Key for typos - Ensure user is not disabled - Verify user has EC2 permissions **Account Validation Fails** - Confirm credentials are correct - Check user hasn't been deleted in AWS - Verify IAM policy is still attached - Wait 1-2 minutes for IAM changes to propagate **Permission Denied Error** - Verify IAM user has EC2 permissions - Check if attached policy is active - Verify access keys are from correct user - Check user status in AWS console --- ## GCP Detailed Setup Guide ### Prerequisites - Google Cloud Platform account - Active project with billing enabled - Compute Engine API enabled - Existing VM instances in your project (for testing) ### Step 1: Enable Compute Engine API 1. **Go to Google Cloud Console** - Visit https://console.cloud.google.com 2. **Select Your Project** - Click project selector at top - Choose or create a project 3. **Enable API** - Go to **APIs & Services** → **Library** - Search for "Compute Engine API" - Click on it - Click **Enable** 4. **Wait for Activation** - API activation takes a few moments - Proceed once enabled ### Step 2: Create Service Account 1. **Go to Service Accounts** - Navigate to **APIs & Services** → **Credentials** - Click **Create Credentials** → **Service Account** 2. **Fill Service Account Details** - **Service account name**: `nife-vm-management` (or your choice) - **Service account ID**: Auto-generated - **Description**: "Service account for Nife VM Management" - Click **Create and Continue** 3. **Grant Permissions** - Select role: **Compute Instance Admin (v1)** - This grants necessary permissions for VM management - Click **Continue** 4. **Complete Creation** - Click **Done** - Service account is now created ### Step 3: Create and Download Service Account Key 1. **Open Service Account** - Go to **APIs & Services** → **Credentials** - Under "Service Accounts," click on your service account 2. **Go to Keys** - Click **Keys** tab - Click **Add Key** → **Create new key** 3. **Select JSON Format** - Choose **JSON** format - Click **Create** - File automatically downloads (keep it safe) 4. **Secure the Key** - **Important**: This file contains sensitive credentials - Store it securely - Never commit to version control - Don't share with others ### GCP Security Best Practices 1. **Rotate Keys Regularly**: Create new keys every 90 days 2. **Disable Unused Keys**: Remove old service account keys 3. **Monitor Access**: Check Cloud Audit Logs 4. **Use Resource Hierarchy**: Organize projects and folders 5. **Minimal Permissions**: Only grant necessary roles ### GCP Troubleshooting **Service Account JSON Invalid** - Verify JSON file is valid and not corrupted - Try downloading the key again from GCP - Ensure file is complete (should be 1-3 KB) **Account Validation Fails** - Confirm service account has Compute Instance Admin role - Check project has Compute Engine API enabled - Verify service account is in correct project **API Not Enabled** - Go to **APIs & Services** → **Library** - Search "Compute Engine API" - Click **Enable** if not already enabled --- ## Azure Detailed Setup Guide ### Prerequisites - Microsoft Azure account with active subscription - Administrator access to Azure AD - Existing Virtual Machines in your subscription (for testing) ### Step 1: Get Subscription and Tenant Information 1. **Navigate to Azure Portal** - Go to https://portal.azure.com 2. **Find Subscription ID** - Click on **Subscriptions** (or search for it) - Copy your **Subscription ID** (GUID format) 3. **Find Tenant ID** - Click on **Azure Active Directory** - Click **Properties** - Copy **Tenant ID** (also called Directory ID) ### Step 2: Create Service Principal 1. **Go to Azure Active Directory** - Click **Azure Active Directory** in portal - Click **App registrations** - Click **New registration** 2. **Register Application** - **Name**: `nife-vm-management` (or your choice) - **Supported account types**: "Accounts in this organizational directory" - Click **Register** 3. **Copy Application Credentials** - Copy **Application (client) ID** - Copy **Directory (tenant) ID** - Save these values ### Step 3: Create Client Secret 1. **Go to Certificates & secrets** - In your app registration, click **Certificates & secrets** - Click **New client secret** 2. **Create Secret** - **Description**: `nife-vm-management` - **Expires**: Select appropriate duration (24 months recommended) - Click **Add** 3. **Copy Secret** - Immediately copy the secret **Value** (not ID) - **Important**: You won't see this value again - Save it securely ### Step 4: Assign Permissions 1. **Go to Subscriptions** - Click **Subscriptions** - Select your subscription 2. **Access Control (IAM)** - Click **Access Control (IAM)** - Click **Add** → **Add role assignment** 3. **Assign Role** - **Role**: Search and select "Virtual Machine Contributor" - Click **Next** 4. **Assign to Service Principal** - Click **Members** → **Select members** - Search for your service principal name (`nife-vm-management`) - Click to select it - Click **Select** - Click **Review + assign** ### Azure IAM Role Reference **For VM Management, assign:** - **Virtual Machine Contributor**: Full VM management - **Virtual Machine Operator**: Start/stop/restart only - **Virtual Machine User**: Read-only access ### Azure Security Best Practices 1. **Rotate Secrets**: Create new secrets every 90 days 2. **Limit Scope**: Assign permissions at resource group level 3. **Monitor Access**: Use Azure Activity Log 4. **Use Managed Identities**: When available instead of secrets 5. **Enable MFA**: For Azure AD accounts 6. **Review Permissions**: Regularly audit role assignments ### Azure Troubleshooting **Client Secret Error** - Verify secret value (not ID) is used - Check secret hasn't expired - Create new secret if needed - Ensure secret is copied completely **Subscription Not Found** - Verify subscription ID is correct - Confirm account has access to subscription - Check subscription isn't disabled **Permissions Denied** - Verify service principal has Virtual Machine Contributor role - Check role assignment scope - Confirm subscription is selected correctly - Wait 1-2 minutes for IAM changes to propagate **Account Validation Fails** - Re-verify all four credential fields (Subscription ID, Tenant ID, Client ID, Client Secret) - Check credentials haven't expired or been rotated - Create new credentials if needed --- ## OpenShift Detailed Setup Guide ### Prerequisites - OpenShift Container Platform (OCP) cluster v4.8 or later - Administrator access to the cluster - `oc` CLI installed locally (optional, for verification) ### Step 1: Get OpenShift API URL 1. **Find Cluster API Endpoint** - From OpenShift Web Console, click your profile (top-right) - Select **Copy login command** - API URL will be displayed in the command - Format: `https://api.clustername.example.com:6443` 2. **Alternative - From oc CLI** - If already logged in via oc, run: ```bash oc cluster-info | grep 'Kubernetes master' ``` - Copy the API URL shown ### Step 2: Generate Bearer Token 1. **From OpenShift Web Console** - Click your profile (top-right corner) - Select **Copy login command** - A new tab opens with your login information - Copy the token value from the login command - Format: Long string starting with `sha256~` 2. **Alternative - From oc CLI** - If already logged in, run: ```bash oc whoami -t ``` - This outputs your current bearer token - Copy the entire token value 3. **Create Service Account Token (Recommended)** - For better security, create a dedicated service account: ```bash # Create namespace oc create namespace nife-integration # Create service account oc create serviceaccount nife-sa -n nife-integration # Grant cluster admin role oc adm policy add-cluster-role-to-user cluster-admin -z nife-sa -n nife-integration # Get the token oc serviceaccounts get-token nife-sa -n nife-integration ``` - Copy the token output ### Step 3: Verify Cluster Access Before adding to Nife, verify your credentials work: ```bash # Login to cluster with token oc login --token= --server= # Check connection oc cluster-info # Verify permissions oc auth can-i create pods --all-namespaces ``` If these commands succeed, your credentials are valid. ### OpenShift RBAC Permissions Ensure your service account/user has these minimum permissions: ```yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: nife-vm-management rules: - apiGroups: [""] resources: ["nodes", "pods", "services"] verbs: ["get", "list", "watch"] - apiGroups: ["apps"] resources: ["deployments", "statefulsets"] verbs: ["get", "list", "watch"] - apiGroups: ["batch"] resources: ["jobs"] verbs: ["get", "list", "watch"] ``` ### OpenShift Security Best Practices 1. **Use Service Accounts**: Create dedicated service accounts per integration 2. **Rotate Tokens**: Regenerate tokens periodically 3. **Limit Permissions**: Grant only necessary cluster roles 4. **Monitor Access**: Check OpenShift audit logs 5. **Network Policies**: Restrict cluster access via network policies 6. **TLS Verification**: Ensure SSL/TLS certificate validation enabled ### OpenShift Troubleshooting **Invalid API URL** - Verify URL format: `https://api.clustername.com:6443` - Ensure HTTPS protocol (not HTTP) - Check port number (usually 6443) - Verify cluster is accessible from Nife **Bearer Token Expired** - Tokens expire after 24 hours by default - Generate a new token using methods above - Update account in Nife with new token **Permission Denied** - Verify service account has cluster-admin role - Check RBAC policies for the service account - Ensure user/account is not restricted - Check cluster network policies **Account Validation Fails** - Test with oc CLI first: `oc login --token= --server=` - Verify API URL and token are correct - Check cluster connectivity from Nife - Ensure certificate is valid (no self-signed cert issues) --- ## General Cloud Provider Security Tips ### For All Providers 1. **Store Credentials Securely** - Use password managers or vaults - Never store in code or version control - Use environment variables for local development - Enable encryption at rest 2. **Audit Access** - Review credential usage logs - Monitor API calls - Check for unusual activity - Set up alerts for critical operations 3. **Rotate Credentials** - AWS: Rotate access keys every 90 days - GCP: Rotate service account keys every 90 days - Azure: Rotate client secrets every 90 days - OpenShift: Rotate bearer tokens every 90 days 4. **Principle of Least Privilege** - Grant only necessary permissions - Use custom policies when possible - Regularly audit and remove unused permissions - Separate credentials by environment (dev/prod) 5. **Enable Multi-Factor Authentication (MFA)** - Protect cloud provider console access - Use authenticator apps (not SMS when possible) - Require MFA for sensitive operations - For OpenShift: Enable OAuth2 with MFA ## Next Steps - [Creating VM Instances](/VM-Management/creating-vms) - Create instances with your configured providers - [Managing VM Instances](/VM-Management/managing-vms) - Manage your created instances - [Monitoring VM Performance](/VM-Management/monitoring-vms) - Monitor instance metrics --- ## Related Resources - 🛠️ [AWS CLI Command Builder](https://freetools.nife.io/aws-cli-builder/) — build AWS CLI commands interactively without memorizing syntax - 🛠️ [GCP CLI Command Builder](https://freetools.nife.io/gcloud-cli-builder/) — build Google Cloud CLI commands interactively - 🛠️ [JSON Validator](https://freetools.nife.io/json-validator/) — verify your GCP service account key is well-formed JSON --- ## How to Create VM Instances | VM Provisioning Guide URL: https://docs.nife.io/VM-Management/creating-vms This guide walks you through provisioning a new virtual machine instance on your configured cloud provider. ## Prerequisites Before provisioning a VM, ensure you have: - **Cloud Accounts Configured**: At least one cloud provider account (AWS, GCP, or Azure) added to Nife with valid credentials - **Active Organization**: An organization created in your Nife account - **Access to Virtual Machines**: Permission to access the Virtual Machines section ## Step 1: Access VM Provisioning 1. Navigate to **Virtual Machines** in the left sidebar 2. Click on the **Manage Instances** tab 3. Click the **Provision VM** button in the top-right corner 4. The VM provisioning form will open ![VM Management Dashboard](./images/vm1.png) *VM Management page - Manage Instances tab with Provision VM button* ## Step 2: Select Cloud Account At the top of the provisioning form, select which cloud account to use for provisioning. **Cloud Account Selection**: - Click the cloud account dropdown - Select from your configured accounts - Shows provider (AWS, GCP, Azure) and account name - Example: "AWS - test-aws-account" - Default region is displayed below the selection **Example Display**: ``` AWS test-aws-account Default region: ap-south-1 ``` ## Step 3: Node Configuration After selecting your cloud account, fill in the Node Configuration details that determine your VM's specifications and deployment mode. ![Node Configuration Form](./images/vm3.png) *Node Configuration form showing all VM specification fields* ### Node Name Enter a unique name for your VM instance. **Requirements**: - Lowercase letters, numbers, and hyphens only - No uppercase letters or special characters - No spaces allowed - Example: `my-node-01`, `app-server-prod`, `web-01` **Validation Message**: "Lowercase, numbers, hyphens only" ### Region Select the region/zone where your VM will be deployed. **How to Use**: 1. Click the **Region** dropdown 2. Select from available regions/zones for your cloud provider 3. Must be a valid region in your selected cloud account **AWS Regions** (Examples): - ap-south-1 (Mumbai) - us-east-1 (Virginia) - eu-west-1 (Ireland) - ap-southeast-1 (Singapore) **GCP Zones** (Examples): - us-central1-a - europe-west1-b - asia-southeast1-c **Azure Regions** (Examples): - East US - West Europe - Southeast Asia ### Instance Type Select the VM instance size/type based on your workload requirements. **Common Instance Types**: **AWS**: - t3.micro - 1 vCPU, 1 GB RAM (free tier eligible) - t3.small - 2 vCPU, 2 GB RAM - t3.medium - 2 vCPU, 4 GB RAM - m5.large - 2 vCPU, 8 GB RAM - m5.xlarge - 4 vCPU, 16 GB RAM **GCP**: - e2-micro - 0.25-2 vCPU, 1 GB RAM (free tier) - e2-small - 0.5-2 vCPU, 2 GB RAM - e2-medium - 1-2 vCPU, 4 GB RAM - n1-standard-2 - 2 vCPU, 7.5 GB RAM - n1-standard-4 - 4 vCPU, 15 GB RAM **Azure**: - Standard_B1s - 1 vCPU, 1 GB RAM - Standard_B2s - 2 vCPU, 4 GB RAM - Standard_D2s_v3 - 2 vCPU, 8 GB RAM - Standard_D4s_v3 - 4 vCPU, 16 GB RAM **Selection Tips**: - Start with smaller instance types for testing - Scale up based on workload requirements - Consider CPU, memory, and network needs - Check pricing for your region ### Disk Size Select the storage capacity for your VM's primary disk. **Common Disk Sizes**: - 20 GB - Small applications, testing - 30 GB - Standard web applications - 50 GB - Database servers, media storage - 100 GB - High-volume data, development - 200 GB+ - Large datasets, enterprise workloads **How to Select**: 1. Click the Disk Size dropdown 2. Choose appropriate size 3. Consider growth and scaling needs 4. Check cloud provider storage pricing :::info Disk can often be expanded after provisioning, but starting with adequate size is recommended. ::: ### Operating System Select the OS for your VM instance. **Available Operating Systems**: - **Ubuntu 22.04 LTS** (Recommended - Default) - Latest stable Ubuntu long-term support - Wide software compatibility - Nife agent pre-installed support - **Ubuntu 20.04 LTS** - Previous LTS version - Stable and widely used - **Amazon Linux 2** - AWS-optimized Linux - Good for AWS workloads - **CentOS 7** - Enterprise Linux - Red Hat compatible - **Debian 11** - Lightweight, stable - Large package repository **Recommendation**: - Use **Ubuntu 22.04 LTS** for best compatibility with Nife - Default selection is suitable for most use cases ## Step 4: Select Node Mode After Node Configuration, you'll select the deployment mode for your VM. ![Node Mode Selection](./images/vm4.png) *Node Mode selection showing Standalone, Cluster Worker, Monolith, and Bare VM options* ### Node Mode Options #### Standalone (Recommended) **Best for**: Kubernetes deployments, single-node clusters, applications - **K3s server** (lightweight Kubernetes) deployed automatically - **VM agent** installed for monitoring - Full Kubernetes capabilities - Deploy containerized applications - Single command control plane **Installation**: K3s + VM agent (3-8 minutes) #### Cluster Worker **Best for**: Scaling existing Kubernetes clusters - **K3s worker** deployed to join existing cluster - Extends cluster capacity - Works with Standalone node as control plane - Automatic cluster registration **Installation**: K3s worker node #### Monolith **Best for**: Docker-based workloads without Kubernetes - **Docker runtime** deployed - **Monolith agent** for container management - Simpler than Kubernetes - Direct Docker container deployment - No Kubernetes overhead **Installation**: Docker + Monolith agent (3-8 minutes) #### Bare VM **Best for**: Custom applications, SSH-only access - **SSH access** only - No agents installed - Full OS control - Maximum flexibility - Raw compute power **Installation**: None (OS only) ## Step 5: Review and Provision Before creating your VM, review all settings: **Verification Checklist**: - Cloud Account selected - Node Name is valid (lowercase, numbers, hyphens) - Region is appropriate for your use case - Instance Type has adequate resources - Disk Size is sufficient - Operating System selected - Node Mode matches your needs **Provision the VM**: 1. Click the **Provision VM** button 2. Confirmation message appears 3. Provisioning process begins 4. Status page opens showing provisioning progress ## Step 6: VM Provisioning Status After clicking Provision VM, you'll see a status page monitoring the creation process. The workflow shown depends on which Node Mode you selected. ### General Provisioning Stages All Node Modes follow these general stages: #### Stage 1: Provisioning VM (1-2 minutes) Initial creation phase where the VM is being created on your cloud provider. ![VM Provisioning Stage](./images/prov1.png) *VM being created on cloud provider* **What's Happening**: - VM is being launched on your cloud provider - SSH key is being injected - Cloud resources are being allocated - Page auto-refreshes every 6 seconds **Information Shown**: - Instance Name - Cloud Provider & Region - Node Mode - Status: Provisioning #### Stage 2: Bootstrapping Agent (3-8 minutes) Agent and runtime installation phase. ![Bootstrapping Agent Stage](./images/prov2.png) *Agent and services being installed* **What's Happening**: - VM is running on cloud provider - Cloud-init executing on instance - Agent installation in progress - K3s or Docker being configured **Information Shown**: - Instance Name - Cloud Provider & Region - Node Mode - Status: Bootstrapping (orange) - Public IP address - Private IP address --- ## Standalone Mode - Detailed Provisioning Workflow When you select Standalone mode, the provisioning includes K3s (lightweight Kubernetes) and VM agent installation for Kubernetes workloads. ### Standalone Stage 3: Ready - Kubernetes Cluster Setup Provisioning complete and K3s cluster is operational. ![Standalone Ready Status](./images/standalone-ready.png) *Standalone mode - Ready status showing mode, IP addresses, and ready indicator* **Status**: Ready (green checkmark) **What is Completed**: - VM fully created and running - K3s Kubernetes server installed and operational - VM agent installed, running, connected to Nife - Kubernetes networking configured - Cluster ready for workload deployment **Information Shown**: - Instance Name (e.g., sdf) - Cloud Provider and Region (e.g., AWS - ap-south-1 - t3.small) - Node Mode: Standalone - Status: Ready (green) - Public IP Address (e.g., 13.235.78.131) - Private IP Address (e.g., 172.31.8.252) ### Standalone Ready Page - SSH Access The Ready page displays SSH connection instructions for accessing your Standalone instance. ![SSH Access Instructions](./images/standalone-ssh-access.png) *SSH Access section showing connect command and key management options* **SSH Access Section**: **Connect Command**: ``` ssh -i nife-sdf.pem ubuntu@13.235.78.131 ``` **Key Management**: - Download .pem: Download private key (shown only once) - Copy key: Copy key to clipboard - Warning: Save the key now - it won't be shown again after leaving this page **Quick Start**: - Copy and run the SSH command in your terminal - Use the downloaded or copied private key - Default user: ubuntu - SSH port: 22 ### Standalone Ready Page - K3s Cluster Setup The Ready page also displays instructions to connect your K3s cluster to Nife. ![K3s Cluster Setup Instructions](./images/standalone-k3s-setup.png) *K3s cluster setup showing configuration steps and cluster connection* **K3s Setup Steps**: **Step 1**: SSH into the server and create the k3s config file: ```bash sudo nano /etc/rancher/k3s/config.yaml ``` Paste in the following, with your public IP under tls-san: ```yaml tls-san: - 13.235.78.131 ``` **Step 2**: Restart k3s so the new certificate picks up the public IP: ```bash sudo systemctl stop k3s sudo rm -f /var/lib/rancher/k3s/server/tls/dynamic-listeners.json sudo systemctl start k3s ``` **Step 3**: Generate a remote kubeconfig from the default k3s config: ```bash sudo cat /etc/rancher/k3s/k3s.yaml > /home/ubuntu/kubeconfig.yaml ``` Then edit kubeconfig.yaml and replace 127.0.0.1 with your server public IP: ``` Replace 127.0.0.1 with your server's public IP: 13.235.78.131 ``` Download this kubeconfig.yaml to your machine via scp: ```bash scp -i nife-sdf.pem ubuntu@13.235.78.131:/home/ubuntu/kubeconfig.yaml ./kubeconfig.yaml ``` ### Standalone Cluster Connection After following the k3s setup steps: 1. Download the kubeconfig.yaml file to your local machine 2. Set your KUBECONFIG environment variable: ```bash export KUBECONFIG=/path/to/kubeconfig.yaml ``` 3. Verify kubectl connectivity: ```bash kubectl get nodes kubectl get pods -A ``` 4. Cluster is ready for Kubernetes workload deployment 5. Use kubectl to deploy applications 6. Deploy Helm charts if needed 7. Nife VM agent monitors cluster health ### Standalone Server Ready For - Kubernetes workload deployment - Helm chart installation - kubectl command line management - Persistent volume provisioning - Multi-container pod deployment - Network policy configuration - Ingress controller setup - Monitoring and logging integration ### Standalone Mode - Best Practices 1. **Save the Private Key**: Download and secure the SSH key immediately 2. **Backup kubeconfig.yaml**: Store in secure location 3. **Update TLS Certificates**: Include public IP in tls-san 4. **Network Access**: Restrict SSH (port 22) to trusted IPs 5. **Kubernetes Security**: Use RBAC for pod/service access 6. **Storage**: Configure persistent volumes for stateful apps 7. **Monitoring**: Enable Nife monitoring for cluster health 8. **Resource Limits**: Set pod resource requests and limits --- ## Monolith Mode - Detailed Provisioning Workflow When you select **Monolith** mode, the provisioning includes Docker runtime and Monolith agent installation for container workloads. ### Monolith Stage 1: Provisioning VM ![Monolith Provisioning Stage](./images/monolith1.png) *Monolith mode - VM creation in progress* **Status**: Provisioning - VM is being created on your cloud provider - SSH key is being injected - Cloud resources allocation starting - Instance type and disk being configured - Page auto-refreshes every 6 seconds **Information Shown**: - Instance Name (e.g., `mono`) - Cloud Provider & Region (e.g., `AWS - ap-south-1 - t3.small`) - Node Mode: Monolith - Status: Provisioning ### Monolith Stage 2: Bootstrapping Agent ![Monolith Bootstrapping Stage](./images/monolith2.png) *Monolith mode - Docker and agent installation* **Status**: Bootstrapping (orange indicator) **What's Installing**: - Docker runtime environment - Monolith agent for container management - Container networking and storage - Total time: 3-8 minutes **Information Shown**: - Instance Name (e.g., `mono`) - Cloud Provider & Region (e.g., `AWS - ap-south-1 - t3.small`) - Node Mode: Monolith - Status: Bootstrapping - Public IP Address (e.g., `13.234.35.127`) - Private IP Address (e.g., `172.31.42.111`) ### Monolith Stage 3: Ready - Container Server Setup ![Monolith Ready Stage](./images/monolith3.png) *Monolith mode - Ready with container setup instructions* **Status**: Ready (green checkmark) **What's Completed**: - VM fully created and running - Docker runtime installed and operational - Monolith agent installed, running, connected to Nife - Container networking configured - Server ready for Docker container deployment **Information Shown**: - Instance Name (e.g., `mono`) - Cloud Provider & Region (e.g., `AWS - ap-south-1 - t3.small`) - Node Mode: Monolith - Status: Ready (green) - Public IP Address (e.g., `13.234.35.127`) - Private IP Address (e.g., `172.31.42.111`) **On-Screen Instructions** (visible on Ready page): - "Monolith is running - next steps" - Copy server's public IP - Configure security group/firewall for port 5004 - Add containerbase server button - SSH access commands for the server ### Monolith Next Steps - Container Setup When your Monolith server reaches **Ready** status: #### Step 1: Configure Security Group / Firewall Open port 5050 to allow container communication: **For AWS**: 1. Go to AWS EC2 Dashboard 2. Find your instance 3. Click on its Security Group 4. Add inbound rule: - Protocol: TCP - Port: 5050 - Source: Your IP or 0.0.0.0/0 (for open access) 5. Save the rule **For GCP / Azure**: - Add firewall rule allowing port 5050 - Ensure traffic can reach the instance from your network #### Step 2: Add Containerbase Server 1. On the Ready provisioning page, click **"Add containerbase server"** button 2. Server is registered in Nife as a container deployment target 3. Monolith agent establishes connection on port 5050 4. Server appears in Nife for container workload assignment #### Step 3: SSH Access and Verification Connect to your Monolith server: ```bash ssh -i ubuntu@ ``` Example: ```bash ssh -i nife-key.pem ubuntu@13.234.35.127 ``` **Verify Docker is Running**: ```bash # Check running containers docker ps # Check all containers (including stopped) docker ps -a # Verify Docker status docker info # Check Docker version docker version ``` #### Step 4: Deploy Your First Container Once connected, you can deploy Docker containers: ```bash # Pull an image docker pull nginx:latest # Run a container docker run -d -p 80:80 nginx:latest # View running containers docker ps # View container logs docker logs # Stop a container docker stop ``` ### Monolith Server Ready For - Docker container deployment - Full Docker CLI management - Direct SSH administration - Port 5050 connection to Nife for workload management - Container networking and port mapping - Persistent storage for container data --- ## Bare VM Mode - Next Steps When Bare VM reaches Ready: **SSH Access**: 1. SSH command provided: `ssh -i ubuntu@` 2. Full root access to instance 3. Install any software needed 4. Configure operating system as required 5. No Nife agents running - complete freedom --- ## Instance Appears in Dashboard Once provisioning completes, your instance appears in the **VM Management** dashboard: 1. Go to **Virtual Machines** -> **VM Instances** tab 2. New instance appears in the table 3. Shows: Name, Type, Cloud, Region, IP, Status (Ready) 4. Available for management and monitoring ## Common Provisioning Times **Total Time: 4-10 minutes** | Phase | Duration | What Happens | |-------|----------|--------------| | Provisioning | 1-2 min | VM created on cloud provider | | Bootstrapping | 3-8 min | Agents/runtime installed and configured | | Ready | Immediate | Fully operational, ready for use | **Factors Affecting Time**: - Cloud provider response time - Instance size (larger instances may take slightly longer) - Region bandwidth and network latency - Nife system load - Operating system being installed ## Troubleshooting ### Provisioning Takes Too Long - **Normal**: Can take up to 15 minutes in some regions - **Check**: Refresh page to see latest status - **Verify**: Check cloud provider console for instance status - **Still Waiting**: Cloud-init may be installing large packages ### Stuck in Provisioning - **Refresh** the page - **Wait** another 5 minutes (network delays common) - **Check** cloud provider console for actual instance status - **Delete** and reprovision if stuck more than 20 minutes ### Stuck in Bootstrapping - **Refresh** the page - **Normal**: Can take up to 8 minutes - **Check** cloud provider instance logs - **Agent**: May still be installing dependencies ### Cannot SSH After Ready - **Verify** SSH key filename and path correct - **Check** public IP address displayed is accurate - **Ensure** SSH port (22) is open in security group - **Wait** 1-2 minutes after Ready status appears ### Instance Not Appearing in Dashboard - **Refresh** the VM Management dashboard - **Check** you're logged into correct organization - **Wait** 30 seconds and refresh again - **Verify** instance status in cloud provider console ### Port 5004 Not Accessible (Monolith) - **Verify** security group or firewall rule created - **Check** port 5004 is in inbound rules - **Ensure** rule allows traffic from your IP - **Try** opening port to 0.0.0.0/0 temporarily for testing ## Best Practices 1. **Node Naming**: Use descriptive, lowercase names (e.g., `app-server-01`, `db-primary`) 2. **Right-Sizing**: Start with medium size, scale based on actual needs 3. **Region Selection**: Choose region closest to users 4. **OS Selection**: Use Ubuntu 22.04 LTS for best compatibility 5. **Monitoring**: Check performance metrics after provisioning completes 6. **Backups**: Create snapshots after initial setup 7. **Cost Management**: Monitor usage and delete unused instances 8. **Security**: Update security groups to restrict access to needed ports ## Checking Metrics After Provisioning Once your VM reaches Ready status, the Nife VM Agent automatically starts and begins collecting metrics. ### Viewing Provisioned Instance Metrics **Agent Metrics Dashboard** 1. Go to VM Management in left sidebar 2. Click Agent Metrics tab 3. Find your new instance in the unified dashboard 4. View live CPU, Memory, Disk metrics 5. Metrics auto-refresh every 30 seconds **Individual Instance Monitoring** 1. Go to VM Management in left sidebar 2. Click VM Instances tab 3. Click on your instance 4. Select Monitoring from the action menu 5. View detailed performance graphs 6. Select time range (1h, 24h, 7d, 30d) ### Typical Metrics After Provisioning Your newly provisioned instance should show metrics like: - CPU: 1-10 percent (low utilization at startup) - Memory: 30-50 percent (system services running) - Disk: less than 5 percent (OS freshly installed) - Processes: 100-200 (base system processes) Metrics appear within 2-3 minutes after the instance reaches Ready status. ## Next Steps - [Managing VM Instances](/VM-Management/managing-vms) - Control and manage your instances - [Monitoring VM Performance](/VM-Management/monitoring-vms) - Monitor instance metrics and performance - [Cloud Provider Setup](/VM-Management/cloud-provider-setup) - Configure cloud provider accounts --- --- ## Managing VM Instances | Nife URL: https://docs.nife.io/VM-Management/managing-vms This guide covers all operations to manage your virtual machine instances in Nife, including the VM Management dashboard, instance lifecycle operations, and monitoring. ## VM Management Dashboard The VM Management dashboard provides a unified interface for viewing and controlling all your VM instances across cloud providers. ![VM Management Dashboard](./images/manage3.png) *VM Management dashboard showing VM Instances tab with all provisioned VMs* ### Dashboard Overview **Top Section** - **Title**: "VM Management" with total instance count - **Description**: "Manage virtual machine instances and standalone monolithic servers across cloud providers" - **Refresh Button**: Manually refresh the instance list **Statistics Bar** - **Registered**: Number of instances registered in Nife - **Active**: Number of currently active/running instances - **Provisioned**: Total number of provisioned instances ### Navigation Tabs The dashboard has four main tabs for different views: #### 1. VM Instances (Default Tab) View all provisioned VM instances managed through Nife. Shows: - Instance name, type, cloud provider, region/zone - IP addresses (Public and Private) - Current status (Running, Terminated, etc.) - Creation timestamp - Action menu for each instance #### 2. Standalone Servers View all Standalone nodes running Kubernetes. Shows: - K3s server instances - Cluster information - Node status - Workload deployment targets #### 3. Manage Instances View and manage active instances with advanced controls: - Start, stop, restart operations - Configure instance settings - Access console and SSH - Manage snapshots - Monitor performance metrics ![Manage Instances Tab](./images/manage2.png) *Manage Instances tab showing table view with detailed instance information and action controls* #### 4. Agent Metrics Monitor agent performance and health across all instances: - Agent status and heartbeat - Performance metrics - Connection status - Resource utilization ### Action Buttons **Top-Right Button Group**: - **Provision VM**: Create a new VM instance (blue button with icon) - **Register Instance**: Register an existing VM as a Nife instance - **Refresh**: Manually refresh the dashboard ## Instance Display The main VM Instances tab displays all instances in a card-based grid view for easy scanning and management. ![Instance Cards View](./images/manage01.png) *Instance card-based grid showing running instances with quick action icons* ### Instance Card Layout **Card Header** - **Instance Name**: Displayed prominently at the top - User-defined during provisioning or registration - Examples: `judge0`, `Dev Backend/Re...`, `Nife-static-webs...` - **Status Indicator**: Colored dot next to the name - Green = Running - Blue = Provisioning - Orange = Bootstrapping - Red = Terminated/Error **Card Information Section** **Type** - Deployment mode (Standalone or Monolith) - Shown as a label on the card **Cloud Provider** - Cloud provider hosting the instance - Shows: `AWS`, `GCP`, or `Azure` - Badge format with provider name **Organization** - Organization that owns the instance - Examples: `NIFE123`, `production-team` - Determines access control and permissions **Zone / Region** - Deployment location on the cloud provider - AWS examples: `ap-south-1`, `us-east-1a` - GCP examples: `us-central1-a` - Azure examples: `East US` **Status Badge** - Current operational state - Displays as colored badge: - running (green) - stopped (gray) - provisioning (blue) - bootstrapping (orange) - ready (green with checkmark) - terminated (red) **Card Action Icons** Each card includes quick action icons: - Play Icon: Start a stopped instance - Stop Icon: Stop a running instance - Edit Icon: Edit instance configuration - Delete Icon: Delete the instance (with confirmation) **Additional Information** - Click on the card to expand and see full details - View public and private IP addresses - See creation timestamp and agent status - Access full action menu for advanced operations ### Search and Filter **Search Bar** - Placeholder: "Search by name, cloud, or region..." - Type to search across all instances - Real-time results update - Searches: Name, Type, Cloud provider, Region/Zone **Examples**: - Search "aws" to find AWS instances - Search "test" to find instances with "test" in name - Search "ap-south" to find instances in specific region ## Instance Status Types ### Running - Instance is active and operational - Green status indicator - Services and agents are running - Full operations available: stop, restart, configure, console, SSH, snapshots, monitoring ### Terminated - Instance has been deleted or stopped permanently - Red/Gray status indicator - No operations available - Cannot be restarted (must provision new instance) - Shown in historical data ### Provisioning - Instance is being created on cloud provider - Blue status indicator - Initial stage after Provision VM is clicked - Page refreshes automatically to show progress - Typically takes 1-2 minutes ### Bootstrapping - VM is created, now installing Nife agent - Orange status indicator - Cloud-init is running on the instance - Installation in progress (takes 3-8 minutes) - Page auto-refreshes every 6 seconds ### Ready - Instance is fully provisioned and agent is connected - Green status indicator with checkmark - All services are operational - Full operations available - Instance ready for workload deployment ## Registering Existing Cloud Hosts In addition to provisioning new VMs through Nife, you can register existing VM instances from your cloud providers. This allows you to manage already-running instances from AWS, GCP, or Azure within Nife. ### Registering an Existing Host **Access Registration**: 1. Navigate to the VM Management dashboard 2. Click the **Register Instance** button (next to "Provision VM") 3. Select your cloud provider: - **Register existing AWS host** - For EC2 instances - **Register existing GCP host** - For Compute Engine instances - **Register existing Azure host** - For Azure VMs ![Register Instance Dropdown Menu](./images/manage4.png) *Register Instance dropdown showing cloud provider options: GCP, AWS, and Azure* ### Register AWS Host Dialog When registering an existing AWS EC2 instance, complete the following fields: ![Register AWS Host Dialog](./images/manage5.png) *Register AWS Host dialog for adding existing EC2 instances* **Instance Name** * - The name you want to give this instance in Nife - Example: `my-instance`, `web-server-01` - This is how the instance will appear in your dashboard - Can be changed later in instance settings **Organization** * - Select the organization this instance belongs to - Dropdown menu with available organizations - Determines access control and resource allocation - Required field **Zone / Region** - AWS region where the instance is running - Example: `us-east-1a`, `ap-south-1`, `eu-west-1` - Pre-populated with default region if available - Must match the actual region of your instance **Instance ID** - The EC2 instance ID from AWS console - Format: `i-0123456789abcdef0` - Found in AWS EC2 dashboard under "Instances" - Required to identify the exact instance **Access Key** - AWS IAM access key ID - Format: `AKIA...` (20 characters) - Generated in AWS IAM console - Used for authentication - Should have permissions for EC2 management **Secret Key** - AWS IAM secret access key - Keep this confidential - Generated in AWS IAM console alongside Access Key - Used with Access Key for secure authentication - Cannot be retrieved after creation - store safely **Registration Steps**: 1. Fill in all required fields (*) 2. Verify information is correct 3. Click **Register** button 4. Instance is added to your Nife dashboard 5. Status will show as "Running" if the instance is active on AWS 6. Agent installation begins automatically :::info Make sure your AWS IAM credentials have the following permissions: - `ec2:DescribeInstances` - `ec2:DescribeInstanceStatus` - `ec2:StartInstances` - `ec2:StopInstances` - `ec2:RebootInstances` ::: ### Register GCP Host Dialog When registering an existing GCP Compute Engine instance: ![Register GCP Host Dialog](./images/manage6.png) *Register GCP Host dialog for adding existing Compute Engine instances* 1. Click **Register Instance** -> **Register existing GCP host** 2. Fill in the following fields: - **Instance Name**: Display name in Nife - **Organization**: Select organization - **Zone / Region**: GCP zone (e.g., `us-central1-a`) - **Instance ID**: GCP instance name or ID - **Service Account Key**: JSON service account key from GCP 3. Click **Register** to add the instance :::tip Obtain your GCP service account key from Google Cloud Console: 1. Go to IAM & Admin → Service Accounts 2. Create or select a service account 3. Create a JSON key 4. Paste the key contents in the registration form ::: ### Register Azure Host Dialog When registering an existing Azure VM: ![Register Azure Host Dialog](./images/manage7.png) *Register Azure Host dialog for adding existing Azure VMs* 1. Click **Register Instance** -> **Register existing Azure host** 2. Fill in the following fields: - **Instance Name**: Display name in Nife - **Organization**: Select organization - **Zone / Region**: Azure region (e.g., `East US`) - **Instance ID**: Azure resource ID or VM name - **Subscription ID**: Your Azure subscription ID - **Credentials**: Azure credentials or managed identity 3. Click **Register** to complete :::info Ensure your Azure service principal has these permissions: - Virtual Machine Contributor - Reader (for viewing resources) ::: ## Installing Nife VM Agent After registering an existing instance, you need to install the Nife VM Agent on the registered server. This agent enables Nife to monitor metrics, manage the instance, and execute operations. ### Agent Installation Overview The Nife VM Agent is a lightweight monitoring and management daemon that: - Collects real-time metrics (CPU, Memory, Disk, Network, Processes) - Communicates instance health status back to Nife - Enables remote management and monitoring capabilities - Runs securely with encrypted communication ### Prerequisites for Installation Before installing the agent, ensure: 1. **SSH Access**: You can SSH into the registered instance 2. **Sudo Privileges**: The user can run sudo commands without password prompt (or with password) 3. **Internet Connection**: Instance can reach `https://api.nife.io` 4. **Supported OS**: Linux-based instance (Ubuntu, CentOS, Debian, etc.) 5. **Bash Shell**: Bash is available on the instance ### Installation Steps **Step 1: Access Your Instance** SSH into your registered instance: ```bash ssh -i @ ``` Example: ```bash ssh -i nife-key.pem ubuntu@13.206.69.58 ``` **Step 2: Run the Installation Command** Once logged in via SSH, execute the Nife VM Agent installation script. Use the command provided in your Nife dashboard for your specific instance: ```bash curl -fsSL https://api.nife.io/release/vm-agent/install.sh | sudo bash -s -- \ --node_id \ --org_id \ --auth_token \ --endpoint https://api.nife.io \ --mode vm ``` **Step 3: Wait for Installation to Complete** The installation script will: 1. Download the Nife VM Agent binary 2. Install system dependencies 3. Create a systemd service for the agent 4. Start the agent service 5. Register with the Nife backend Installation typically takes **2-5 minutes**. **Step 4: Verify Installation** Check that the agent is running: ```bash systemctl status nife-vm-agent ``` You should see output like: ``` ● nife-vm-agent.service - Nife VM Agent Loaded: loaded (/etc/systemd/system/nife-vm-agent.service; enabled; vendor preset: enabled) Active: active (running) since [timestamp] Main PID: XXXX ``` **Step 5: Check Dashboard Status** After installation: 1. Return to your Nife dashboard 2. Go to **VM Management** -> **VM Instances** (or **Manage Instances**) 3. Find your instance 4. Status should show as **Ready** with a green indicator 5. Click on the instance to view metrics **Step 6: View Agent Metrics** To view live metrics from your registered instance: 1. Go to **VM Management** -> **Agent Metrics** tab 2. You'll see all instances (both registered and created) with live telemetry 3. Metrics auto-refresh every 30 seconds 4. Click on an instance card to view detailed metrics 5. Metrics include CPU, Memory, Disk, and running processes ### Agent Metrics Display Once the agent is installed and connected, you can view real-time metrics from your instance. ![Agent Metrics Dashboard](./images/metrics-screenshot.png) *Nife VM Agent metrics showing CPU usage, memory consumption, disk space, and process count* ### Metrics Available The Nife VM Agent collects and displays: | Metric | Description | Unit | |--------|-------------|------| | **CPU** | Current CPU utilization | % and load average | | **Memory** | RAM usage and total available | MB / GB | | **Disk** | Storage space used and available | GB | | **Processes** | Number of running processes and uptime | count / time | | **Network** | Network throughput (optional) | Mbps | | **Docker Stats** | Docker container metrics (if Docker running) | various | ### Uninstalling the Agent If you need to uninstall the Nife VM Agent: ```bash sudo systemctl stop nife-vm-agent sudo systemctl disable nife-vm-agent sudo rm -rf /opt/nife-vm-agent sudo rm /etc/systemd/system/nife-vm-agent.service sudo systemctl daemon-reload ``` ### Troubleshooting Agent Installation **Installation Failed** - Check internet connectivity: `curl -I https://api.nife.io` - Verify SSH access and sudo permissions - Ensure bash is available: `which bash` - Check disk space: `df -h` **Agent Not Running** ```bash # Check service status systemctl status nife-vm-agent # Check logs journalctl -u nife-vm-agent -n 50 # Restart agent sudo systemctl restart nife-vm-agent ``` **Metrics Not Showing in Dashboard** - Wait 2-3 minutes for initial metrics to appear - Verify agent is running: `systemctl status nife-vm-agent` - Check network connectivity from instance to Nife API - Verify auth token in the installation command is correct - Check firewall rules allow outbound HTTPS to `api.nife.io:443` **Connection Error** - Verify the instance has internet access - Check firewall rules (Security Groups on AWS/Azure, Firewall on GCP) - Ensure API URL is correct: `https://api.nife.io` - Verify the auth token hasn't expired ## Instance Operations ### Starting an Instance Start a previously stopped instance to resume operations. **From the Table Row**: 1. Locate the stopped instance in the table 2. Click the action menu (three dots) at the end of the row 3. Select **Start** from the menu 4. Confirmation dialog appears 5. Click **Confirm** to start 6. Instance status changes to Running :::info You can only start instances that are currently in Stopped or Ready status with no active operations. ::: ### Stopping an Instance Gracefully shut down a running instance to save resources. **From the Table Row**: 1. Locate the running instance in the table 2. Click the action menu (three dots) at the end of the row 3. Select **Stop** from the menu 4. Confirmation dialog appears 5. Click **Confirm** to stop 6. Instance transitions to Stopped status :::warning Stopping an instance will halt all running services. Ensure no critical workloads are active. ::: ### Restarting an Instance Restart an instance to reload services and clear memory. **From the Table Row**: 1. Locate the instance in the table 2. Click the action menu (three dots) 3. Select **Restart** from the menu 4. Confirmation appears 5. Click **Confirm** to restart 6. Instance briefly shows restarting status, then returns to Running **When to Restart**: - After configuration changes - To clear memory issues - When services become unresponsive - After security patches - During troubleshooting ### Configuring Instance Access and modify instance settings and configuration. **From the Table Row**: 1. Click the action menu (three dots) for the instance 2. Select **Configure** 3. Configuration panel opens 4. Adjust settings as needed: - Resource allocation - Network settings - Storage options - Performance tuning 5. Save changes ### Accessing Instance Console Get browser-based terminal access to your instance for direct command execution. **From the Table Row**: 1. Click the action menu (three dots) 2. Select **Console** 3. Browser console opens 4. Execute commands directly on the instance 5. Full terminal access available ### SSH Access Connect securely via SSH using your SSH key. **From the Table Row**: 1. Click the action menu (three dots) 2. Select **SSH** 3. SSH connection details are displayed 4. Copy the SSH command 5. Paste into your terminal 6. Connect with your SSH key **SSH Command Format**: ```bash ssh -i @ ``` **Example**: ```bash ssh -i nife-key.pem ubuntu@13.206.69.58 ``` ### Creating Snapshots Create point-in-time backups of your instance for recovery and cloning. **From the Table Row**: 1. Click the action menu (three dots) 2. Select **Snapshots** 3. Snapshot management panel opens 4. View existing snapshots with creation dates 5. Click **Create Snapshot** to backup current state 6. Snapshot creation begins 7. Use snapshots to: - Backup instance state - Clone instances - Restore to previous states - Create images for scaling ### Monitoring Instance Performance Monitor real-time and historical performance metrics. **From the Table Row**: 1. Click the action menu (three dots) 2. Select **Monitoring** 3. Performance metrics dashboard opens 4. View metrics over different time ranges (1h, 24h, 7d, 30d) **Available Metrics**: - **CPU Utilization**: Percentage of CPU resources used - **Memory Usage**: RAM consumption in GB - **Network Throughput**: Data transfer rate in Mbps - **Disk I/O**: Read/write operations per second - **Disk Usage**: Storage space utilization ## Deleting VM Instances ### Before Deletion :::danger **PERMANENT ACTION**: Deleting a VM instance permanently removes it from Nife and your cloud provider. All data will be lost unless backed up. This action cannot be undone. ::: Before deleting, ensure: 1. **Backup Important Data**: Create snapshots if data needs recovery 2. **No Active Workloads**: Ensure no services depend on this instance 3. **Severed Dependencies**: Disconnect load balancers and databases 4. **Final Confirmation**: You want to permanently delete this instance ### Deletion Process **From the Table Row**: 1. Locate the instance to delete 2. Click the action menu (three dots) 3. Select **Delete** 4. Confirmation dialog appears with warning 5. Review instance name and warning message 6. Click **Confirm Delete** 7. Instance begins termination process **Deletion Timeline**: - **Immediately**: Instance stops accepting new connections - **1-2 seconds**: Instance is shut down - **5-10 seconds**: Cloud resources are released - **15-30 seconds**: Instance disappears from dashboard - **Billing**: Stops immediately upon deletion ### After Deletion Once deleted: - Instance is removed from cloud provider - All resources are released - Billing charges stop - Instance no longer appears in dashboard - Only recoverable through snapshots (if created) ## Bulk Operations ### Searching Instances Find specific instances quickly using the search bar. **Search Examples**: - **By Name**: Type instance name (e.g., "ingress") - **By Cloud**: Type provider name (e.g., "aws", "gcp") - **By Region**: Type region/zone (e.g., "ap-south-1") - **By Type**: Type instance type (e.g., "standalone", "monolith") **Search Tips**: - Search is case-insensitive - Partial matches are supported - Results update in real-time - Clear search with the X button ### Exporting Instance Data Export your VM inventory for reporting, analysis, or backup. **Export Process**: 1. Click **Export** button (if available) 2. Choose export format: - **CSV**: Spreadsheet format for Excel - **JSON**: Structured data format for systems 3. File downloads with columns: - Instance Name - Type (Standalone, Monolith) - Cloud Provider - Region/Zone - IP Address - Status - Organization - Creation Date - Instance ID ### Refreshing the Dashboard Update the instance list to see latest changes. **Manual Refresh**: 1. Click the **Refresh** button in top-right 2. Dashboard updates with latest data 3. Shows newly provisioned instances 4. Updates status of all instances 5. Refreshes metrics and timestamps **Auto-Refresh Behavior**: - Dashboard auto-refreshes during provisioning - Updates every 6 seconds during agent bootstrapping - Manual refresh always available ## Instance Lifecycle ### Complete Instance Lifecycle ``` 1. Provision VM ↓ 2. Provisioning (1-2 min) ↓ 3. Bootstrapping (3-8 min) ↓ 4. Ready (Operational) ↓ 5. Running (Active workloads) ↓ 6. Stop / Pause (Optional) ↓ 7. Restart / Resume ↓ 8. Delete (Final) ``` ### State Transitions - **Provision VM** → **Provisioning**: Cloud VM is being created - **Provisioning** → **Bootstrapping**: VM created, agent installation starting - **Bootstrapping** → **Ready**: Agent installation complete, services running - **Ready** → **Running**: Workloads deployed and executing - **Running** → **Stopped**: Instance gracefully shut down - **Stopped** → **Running**: Instance restarted - **Any State** → **Deleted**: Instance terminated (permanent) ## Keyboard Shortcuts - **Escape**: Close menus and dialogs - **Ctrl/Cmd + F**: Focus search field - **Enter**: Submit search or confirm actions ## Troubleshooting ### Instance Status Not Updating 1. Click **Refresh** button to manually update 2. Wait 30 seconds and refresh again 3. Check cloud provider console for actual status 4. Verify network connectivity 5. Check for error messages in Actions panel ### Cannot Perform Operations 1. Verify instance is in appropriate status (Running, Ready, Stopped) 2. Check that no other operations are in progress 3. Verify your Nife account has organization permissions 4. Try refreshing the dashboard 5. Attempt operation again ### Instance Appears Stuck in Provisioning 1. Refresh the dashboard to check for status updates 2. Check cloud provider console for instance status 3. If stuck for >15 minutes, may need to delete and reprovision 4. Contact Nife support if issue persists ### Cannot Delete Instance 1. Verify instance is not actively running workloads 2. Check organization permissions 3. Ensure no other operations are pending 4. Try from cloud provider console as backup 5. Contact support if deletion repeatedly fails ## Best Practices 1. **Naming**: Use consistent, descriptive naming conventions 2. **Monitoring**: Check performance metrics regularly 3. **Backups**: Create snapshots before major changes 4. **Cleanup**: Delete unused instances to manage costs 5. **Organization**: Organize instances by purpose and environment 6. **Documentation**: Document instance purposes and configurations 7. **Security**: Keep instances patched and updated 8. **Cost Management**: Monitor instance costs and resource utilization ## Next Steps - [Monitoring VM Performance](/VM-Management/monitoring-vms) - Detailed performance monitoring - [Creating VM Instances](/VM-Management/creating-vms) - Create new instances - [Cloud Provider Setup](/VM-Management/cloud-provider-setup) - Provider-specific configuration - [Troubleshooting](/VM-Management/troubleshooting) - Common issues and solutions --- --- ## VM Management: Monitor Performance & Health | Nife URL: https://docs.nife.io/VM-Management/monitoring-vms Comprehensive monitoring is essential for maintaining optimal VM performance and identifying issues before they impact your applications. ## Monitoring Overview Nife provides real-time and historical monitoring capabilities for all your VM instances across AWS, GCP, and Azure. ### Key Monitoring Features - **Real-time Metrics**: Live performance data updated continuously - **Historical Data**: Track metrics over time for trend analysis - **Performance Alerts**: Get notified of performance issues - **Resource Tracking**: Monitor CPU, memory, disk, and network usage - **Health Status**: Quick view of instance health - **Activity Logs**: Review recent instance actions and changes ## Agent Metrics Dashboard The **Agent Metrics** tab in VM Management provides a unified, centralized view of live telemetry from all your VM instances - both those created through Nife and those registered from existing cloud provider instances. ### Accessing Agent Metrics 1. Navigate to **VM Management** in left sidebar 2. Click on **Agent Metrics** tab 3. View live metrics for all instances with agents installed ![Agent Metrics Dashboard](./images/agent-metrics-dashboard.png) *Agent Metrics unified dashboard showing multiple instances with live CPU, Memory, and Disk metrics - auto-refreshes every 30 seconds* ### Dashboard Features **Live Telemetry** - Metrics update automatically every 30 seconds - Shows "Last updated" timestamp at top - No manual refresh needed for real-time monitoring **Unified Instance View** - Displays both registered and created instances - Each instance shown as an individual card - Easy scanning across all your infrastructure **Instance Status** - Color-coded status badges (Ready, Running, Terminated, etc.) - Instant visibility of instance health - Quick identification of problem instances **Quick Metrics** - **CPU**: Current utilization percentage with load average - **Memory**: RAM usage in MB with available/total - **Disk**: Storage usage in GB with available/total - **Processes**: Running process count and uptime **Instance Information** - Instance name prominently displayed - Cloud provider (AWS, GCP, Azure) - Zone/region for instance location - Running status indicator ### When to Use Agent Metrics **Best For**: - Quick health check across all instances - Comparing metrics between instances - Identifying high-resource instances - Monitoring all instances in one view - Real-time incident detection - Quick capacity planning overview ### Auto-Refresh Behavior - Metrics auto-refresh every 30 seconds - No manual refresh required - Timestamps show last update time - Connection status displayed if agent not connected ## Accessing Monitoring ### From Instance Card 1. Locate the instance in the VM Management list 2. Click the **Monitoring** button in the instance actions 3. Monitoring dashboard opens in a panel ### From Detail Panel 1. Open the instance detail panel 2. Click the **Monitoring** tab 3. Comprehensive monitoring dashboard displays ### Monitoring Dashboard The monitoring dashboard shows: **Overview Cards** - Current CPU usage percentage - Memory utilization (GB and percentage) - Network throughput (inbound/outbound) - Disk usage (GB and percentage) **Performance Graphs** - CPU usage over time (last 24 hours, 7 days, 30 days) - Memory usage trending - Network I/O (bytes in/out) - Disk I/O operations **Health Status** - Instance status (Running, Stopped, etc.) - Uptime duration - Last state change - Network reachability ## Key Metrics Explained ### CPU Metrics **CPU Usage Percentage** - How much of the CPU is being utilized - Normal: 20-60% for typical workloads - High: >80% sustained indicates capacity issues - Action: Consider scaling or optimizing application **CPU Cores** - Number of vCPUs allocated to instance - Check if application can utilize all cores - Consider upgrading if CPU-bound ### Memory Metrics **Memory Usage** - How much RAM is currently in use - Shown in GB and as percentage - Normal: 40-70% of available memory - High: >85% may cause slowdowns or crashes **Memory Available** - Free memory available for applications - Should have buffer (10-20% minimum) - Low memory can cause swapping and poor performance ### Network Metrics **Network In** - Incoming data to the instance - Measured in Mbps (megabits per second) - Normal: Depends on application type - Spikes: May indicate traffic surge or attack **Network Out** - Outgoing data from the instance - Measured in Mbps - Monitor for unexpected data transfers - High: May indicate data exfiltration or misconfiguration **Packet Loss** - Percentage of network packets lost - Should be `90%: Risk of out-of-disk errors **Disk I/O** - Read/write operations per second (IOPS) - High: May indicate disk bottleneck - Sustained high: Consider upgrading disk **Disk Latency** - Time taken for disk operations - Normal: `20ms indicates performance issues - Action: Check for background processes ## Performance Analysis ### Setting Time Ranges View metrics for different time periods: - **1 Hour**: Recent performance and current issues - **24 Hours**: Daily patterns and peak usage times - **7 Days**: Weekly trends and recurring issues - **30 Days**: Long-term trends and capacity planning - **Custom Range**: Specific date range analysis ### Identifying Performance Issues **High CPU Usage** 1. Check which processes are consuming CPU 2. Review application logs for errors 3. Check for runaway processes 4. Monitor network I/O for correlation 5. Consider application optimization or scaling **High Memory Usage** 1. Review running processes and services 2. Check for memory leaks in applications 3. Monitor for unnecessary background tasks 4. Consider increasing memory allocation 5. Check for caching issues **High Network Usage** 1. Verify application is performing as expected 2. Check for data downloads/uploads 3. Monitor for malware or unauthorized access 4. Review firewall and security rules 5. Check bandwidth costs and limits **Low Disk Space** 1. Identify large files and directories 2. Clean up logs and temporary files 3. Review application data growth 4. Consider disk expansion 5. Implement log rotation policies ## Health Monitoring ### Instance Health Status **Running** - Instance is active and operational - Applications can be deployed and accessed - Monitoring data is current - Can perform all operations **Stopped** - Instance is powered down - No monitoring data available (shows last known state) - Cannot run applications - Resources are released **Paused** - Instance is temporarily paused - Minimal resource usage - Monitoring paused - Quick resume available **Degraded** - Instance is running but experiencing issues - Some services may be unavailable - Investigate alerts and logs - May require restart or troubleshooting ### Health Checks Automatic health checks monitor: - Instance reachability via network - System disk status - Memory health - CPU functionality - Network connectivity ### Status Indicators **Green**: All systems healthy **Yellow**: Warning conditions detected **Red**: Critical issue requires attention ## Setting Up Alerts ### Alert Types **CPU Alerts** - Trigger when CPU exceeds threshold - Typical threshold: 80% - Duration: Sustained for 5+ minutes **Memory Alerts** - Trigger when memory usage exceeds threshold - Typical threshold: 85% - Duration: Sustained for 5+ minutes **Disk Alerts** - Trigger when disk usage exceeds threshold - Typical threshold: 80% - Action: Requires immediate attention **Network Alerts** - High traffic alerts - Packet loss detection - Connection timeouts ### Creating Alerts 1. Navigate to monitoring dashboard 2. Click **Set Alert** button 3. Choose metric to monitor 4. Set threshold value 5. Set duration (5 minutes, 15 minutes, 1 hour) 6. Choose notification method (Email, Slack, etc.) 7. Save alert ### Alert Notifications Alerts can be sent via: - Email notifications - Slack messages - Webhook calls - SMS (premium) - PagerDuty integration ## Exporting Monitoring Data ### Export Formats **CSV Export** - Timestamp - CPU usage - Memory usage - Network In/Out - Disk usage - Custom metrics **JSON Export** - Full metric details - Metadata information - Custom fields - API-ready format ### Exporting Data 1. Open monitoring dashboard 2. Select time range 3. Click **Export** button 4. Choose format (CSV or JSON) 5. File downloads to computer ## Performance Optimization Tips ### CPU Optimization 1. **Identify CPU-bound Processes** - Use monitoring to identify high CPU processes - Optimize application code - Consider horizontal scaling 2. **Reduce CPU Usage** - Disable unused services - Optimize database queries - Use caching strategies - Implement rate limiting 3. **Upgrade if Needed** - Consider instance type with more vCPUs - Scale across multiple instances - Use load balancing ### Memory Optimization 1. **Monitor Memory Leaks** - Look for gradually increasing memory - Restart services periodically - Review application logs 2. **Optimize Memory Usage** - Increase garbage collection frequency - Reduce cache sizes - Optimize data structures - Limit concurrent connections 3. **Expand Memory** - Upgrade instance type - Consider read replicas for database loads - Implement distributed caching ### Disk Optimization 1. **Manage Disk Space** - Implement log rotation - Archive old data - Remove temporary files - Compress backups 2. **Improve Disk I/O** - Use SSD storage - Implement caching - Optimize database indexing - Separate read/write workloads ### Network Optimization 1. **Reduce Latency** - Use Content Delivery Network (CDN) - Deploy closer to users - Optimize payload sizes - Reduce hops in architecture 2. **Optimize Bandwidth** - Compress data transfer - Use regional endpoints - Implement request batching - Monitor for data leaks ## Troubleshooting with Metrics ### Common Issues and Solutions **Instance Shows as Running but Not Accessible** 1. Check network reachability metric 2. Verify security group rules 3. Check application status 4. Review error logs 5. Attempt restart **Sudden Performance Drop** 1. Check if metrics show resource exhaustion 2. Look for spikes in CPU or memory 3. Review recent deployments or changes 4. Check for background processes 5. Monitor network for DDoS **Intermittent Slowness** 1. Look for periodic spikes in metrics 2. Correlate with scheduled tasks 3. Check for backup operations 4. Review disk I/O patterns 5. Monitor network latency **High Costs Despite Low Usage** 1. Check for reserved instance mismatches 2. Verify instance type allocation 3. Monitor network transfer costs 4. Check for data storage growth 5. Review pricing for current tier ## Best Practices 1. **Regular Review**: Check metrics weekly 2. **Set Baselines**: Know your normal usage patterns 3. **Proactive Alerts**: Set alerts before critical thresholds 4. **Archive Data**: Export historical data for long-term analysis 5. **Document Issues**: Keep records of problems and solutions 6. **Plan Capacity**: Use trends to predict future needs 7. **Correlate Metrics**: Look at multiple metrics together 8. **Test Alerts**: Verify alert notifications work ## Recommended Thresholds | Metric | Warning | Critical | |--------|---------|----------| | CPU | 70% | 85% | | Memory | 75% | 90% | | Disk | 80% | 95% | | Network Out | 1000 Mbps | 1500 Mbps | | Packet Loss | 0.5% | 2% | ## Next Steps - [Managing VM Instances](/VM-Management/managing-vms) - Manage instance operations - [Troubleshooting](/VM-Management/troubleshooting) - Common issues and solutions - [Cloud Provider Setup](/VM-Management/cloud-provider-setup) - Configure providers --- --- ## VM Management Troubleshooting | Common Issues and Solutions URL: https://docs.nife.io/VM-Management/troubleshooting This guide helps you resolve common issues encountered when using Nife VM Management. ## General Troubleshooting Steps Before diving into specific issues, try these general troubleshooting steps: 1. **Refresh the Dashboard** - Click the refresh button to reload instance data - Clear browser cache (Ctrl+Shift+Delete) - Reload the page (F5 or Ctrl+R) 2. **Verify Credentials** - Confirm credentials are still valid in your cloud provider - Check keys haven't been rotated or revoked - Verify IAM permissions are still assigned 3. **Check Cloud Provider Status** - Visit your cloud provider's status page - AWS: https://status.aws.amazon.com - GCP: https://status.cloud.google.com - Azure: https://status.azure.com 4. **Review Error Messages** - Read error messages carefully for specific details - Screenshot errors for support tickets - Check browser console (F12) for JavaScript errors 5. **Wait and Retry** - Some operations are asynchronous - Wait 1-2 minutes for changes to propagate - Retry the operation ## Creating VMs Issues ### "Organization not found" Error **Cause**: Organization doesn't exist or isn't accessible **Solutions**: 1. Refresh the page to reload organizations 2. Verify you have access to the organization 3. Ask organization admin to grant access 4. Create a new organization if needed 5. Contact Nife support if issue persists ### "Cloud provider type is required" Error **Cause**: No cloud provider selected **Solutions**: 1. Select a cloud provider from the dropdown 2. Choose between AWS, GCP, or Azure 3. Don't leave it blank 4. Ensure dropdown opened correctly ### "Instance name is required" Error **Cause**: Instance name field is empty **Solutions**: 1. Enter a descriptive instance name 2. Use lowercase letters, numbers, and hyphens 3. Name should be 3-50 characters 4. Make name unique within organization ### File Upload Issues (GCP) #### "Please enter an instance name before uploading the file" **Cause**: Service account file upload attempted without instance name **Solutions**: 1. First, fill in the Instance Name field 2. Then select the service account JSON file 3. Click Upload #### "Please select a valid JSON file" **Cause**: Selected file is not in JSON format **Solutions**: 1. Verify you selected the correct file from GCP 2. File should be named something like `project-id-xxxxx.json` 3. Don't rename the file 4. Try downloading the key again from GCP 5. Check file extension is `.json` #### "Failed to upload file" **Cause**: Network issue, invalid file, or server error **Solutions**: 1. Check internet connection 2. Try uploading again 3. Refresh the page and retry 4. Use a different browser 5. Try smaller file size (though it shouldn't matter) 6. Check file isn't corrupted 7. Contact support if error persists ### AWS Credential Validation Issues #### "Invalid Access Key ID" **Cause**: Access Key ID is incorrect or no longer valid **Solutions**: 1. Verify Access Key ID starts with `AKIA` 2. Copy key exactly from AWS IAM console 3. Check key hasn't been rotated 4. Ensure key hasn't been disabled 5. Verify IAM user is active 6. Create new access key if needed **To create new AWS access key**: 1. Log into AWS console 2. Go to IAM → Users → Your user 3. Click Security credentials 4. Click Create access key 5. Select CLI usage 6. Copy new Access Key ID 7. Save Secret Access Key securely #### "Invalid Secret Access Key" **Cause**: Secret key is incorrect or invalid **Solutions**: 1. Secret key is only visible once when created 2. If lost, create a new access key 3. Check for extra spaces or characters 4. Verify secret key matches Access Key ID 5. Use password manager to store securely 6. Deactivate old key if regenerating #### "Instance not found in AWS" **Cause**: Instance doesn't exist or wrong region specified **Solutions**: 1. Verify instance exists in AWS console 2. Check instance ID format: should be `i-xxxxxxxxxxxx` 3. Verify you're using the correct region 4. Confirm instance isn't terminated 5. Check instance is in correct AWS account 6. Go to EC2 → Instances and verify #### "Access Denied / Permission Denied" **Cause**: IAM user doesn't have EC2 permissions **Solutions**: 1. Verify user has `AmazonEC2FullAccess` policy 2. Or verify custom policy grants necessary permissions 3. Check policy is attached to user 4. Wait 1-2 minutes for IAM changes to take effect 5. Sign out and back into AWS to refresh 6. Create new access key after policy attachment ### GCP Credential Issues #### "Service account is invalid" **Cause**: Service account key file is invalid or incorrect **Solutions**: 1. Download fresh service account key from GCP 2. Verify file is valid JSON 3. Check file contains all required fields 4. Don't manually edit the JSON file 5. Try uploading again 6. Use a different browser #### "Compute Engine API not enabled" **Cause**: Compute Engine API isn't enabled in GCP project **Solutions**: 1. Go to GCP Console 2. Navigate to APIs & Services → Library 3. Search for "Compute Engine API" 4. Click Enable 5. Wait 2-3 minutes for activation 6. Retry VM creation #### "Instance not found in GCP" **Cause**: Instance doesn't exist or wrong zone specified **Solutions**: 1. Verify instance exists in GCP console 2. Go to Compute Engine → VM instances 3. Verify correct zone (e.g., `us-central1-a`) 4. Check instance name spelling 5. Ensure instance isn't deleted 6. Verify project is correct #### "Service account lacks permissions" **Cause**: Service account missing necessary GCP roles **Solutions**: 1. Go to GCP Console 2. Navigate to IAM & Admin → IAM 3. Find your service account 4. Click Edit 5. Grant "Compute Instance Admin (v1)" role 6. Wait 1-2 minutes for permissions to apply 7. Retry operation ### Azure Credential Issues #### "Invalid Subscription ID" **Cause**: Subscription ID is incorrect or doesn't exist **Solutions**: 1. Go to Azure portal 2. Click Subscriptions 3. Copy exact Subscription ID (GUID) 4. Verify subscription is active 5. Check you have access to subscription 6. Avoid extra spaces when copying #### "Resource Group not found" **Cause**: Resource group doesn't exist in subscription **Solutions**: 1. Go to Azure portal 2. Click Resource groups 3. Find and verify resource group name 4. Check spelling exactly 5. Confirm resource group in correct subscription 6. Verify you have access to resource group #### "Invalid Client ID / Tenant ID" **Cause**: Service principal credentials are incorrect **Solutions**: 1. Go to Azure AD → App registrations 2. Click your app 3. Copy exact Application (client) ID 4. Go to App registration Properties 5. Copy exact Directory (tenant) ID 6. Check GUIDs don't have extra spaces 7. Create new credentials if needed #### "Client secret invalid or expired" **Cause**: Client secret is wrong, expired, or no longer exists **Solutions**: 1. Go to Azure AD → App registrations → Your app 2. Click Certificates & secrets 3. Check if secret has expired (date shown) 4. Create new client secret if expired 5. Copy Value (not ID) of secret 6. Immediately save secret securely (won't show again) 7. Delete old expired secret #### "Insufficient permissions for operation" **Cause**: Service principal lacks required permissions **Solutions**: 1. Go to Azure portal 2. Click Subscriptions → Your subscription 3. Click Access Control (IAM) 4. Click Add → Add role assignment 5. Select "Virtual Machine Contributor" 6. Find and select your service principal 7. Click Review + assign 8. Wait 1-2 minutes for permissions to propagate ## Managing VMs Issues ### "Instance not accessible" / "Cannot connect" #### Symptoms - Instance shows as Running in dashboard - Cannot connect via SSH or console - Connection timeout errors #### Solutions **For AWS**: 1. Go to AWS EC2 console 2. Check Security Group rules 3. Ensure port 22 (SSH) is allowed 4. Check inbound rules allow your IP 5. Verify instance has public IP 6. Try accessing from AWS console first **For GCP**: 1. Go to GCP Compute Engine 2. Click on instance 3. Click Edit 4. Check Firewall rules 5. Ensure ssh tag is applied 6. Check VPC firewall rules allow SSH 7. Try gcloud ssh command first **For Azure**: 1. Go to Azure portal 2. Find Virtual Machine 3. Check Network Interface 4. Verify Network Security Group (NSG) 5. Ensure inbound rule allows port 22 6. Check your IP isn't blocked ### "Operation timed out" **Cause**: Operation took longer than expected **Solutions**: 1. Wait 1-2 minutes and refresh 2. Check instance status in cloud provider console 3. Retry the operation 4. Check network connectivity 5. Try different browser 6. Check for service maintenance windows ### Instance Won't Start **Symptoms**: - Start button disabled or grayed out - Error when clicking start - Instance remains in Stopped state **Solutions**: 1. Check instance status in cloud provider console 2. Verify cloud provider doesn't have issues 3. Check for startup errors in instance logs 4. Verify disk space available 5. Check instance type limitations 6. Try force stopping, then restarting 7. Contact cloud provider support if persists ### Instance Won't Stop **Symptoms**: - Stop operation hangs - Instance remains Running - Timeout errors **Solutions**: 1. Wait longer (stop can take minutes) 2. Force stop from cloud provider console 3. Check for services preventing shutdown 4. Check instance logs for errors 5. Try restart instead 6. Contact cloud provider support ### Cannot Delete Instance **Symptoms**: - Delete operation fails with error - Instance still exists after deletion attempt **Solutions**: 1. Verify instance has no dependencies 2. Detach storage volumes first 3. Remove from load balancers 4. Cancel any ongoing operations 5. Try deleting from cloud provider console 6. Check for resource locks 7. Verify proper permissions ### "Insufficient permissions" Error **Cause**: Your Nife account lacks permissions for this organization **Solutions**: 1. Ask organization admin to grant access 2. Verify your role in organization 3. Check if you're in correct organization 4. Ask for VM management permissions specifically 5. Create test instance in accessible organization ## Monitoring Issues ### No Metrics Displayed **Cause**: Instance too new, metrics not available, or monitoring disabled **Solutions**: 1. Wait 5-10 minutes for metrics to populate 2. Check instance is in Running state 3. Verify instance has been running >5 minutes 4. Refresh the monitoring page 5. Check browser console for errors 6. Try different browser ### Metrics Stopped Updating **Cause**: Instance offline, monitoring service issue, or connectivity problem **Solutions**: 1. Check instance status 2. Refresh the monitoring page 3. Stop and restart instance 4. Check cloud provider is operational 5. Wait 5 minutes and retry 6. Clear browser cache 7. Contact support if persists ### Alerts Not Sending **Cause**: Notification method misconfigured or issue with service **Solutions**: 1. Verify alert threshold settings 2. Check notification email/Slack is correct 3. Verify notification service is enabled 4. Check spam folder if email alert 5. Recreate alert from scratch 6. Test with manual alert trigger 7. Contact support if issue continues ## Export Issues ### Export File Is Empty **Cause**: No instances to export or query failed **Solutions**: 1. Verify you have VM instances created 2. Check instances aren't filtered out 3. Refresh instance list first 4. Try again after refreshing page 5. Check browser console for errors ### Export File Is Corrupted **Cause**: Network issue during download or browser issue **Solutions**: 1. Try exporting again 2. Use different browser 3. Check available disk space 4. Try JSON format instead of CSV (or vice versa) 5. Check browser's download settings ### CSV File Not Readable in Excel **Cause**: Encoding issue or Excel import problem **Solutions**: 1. Open in Google Sheets (usually works better) 2. Import CSV with UTF-8 encoding 3. Use Excel's Text Import Wizard 4. Try opening with different application 5. Export as JSON and convert ## Performance Issues ### Dashboard Loads Slowly **Cause**: Too many instances, network issue, or browser performance **Solutions**: 1. Use filters to reduce visible instances 2. Close other browser tabs 3. Clear browser cache 4. Refresh the page 5. Try different browser 6. Disable extensions 7. Check internet connection ### Operations Are Slow **Cause**: Cloud provider API delays, network latency, or service issues **Solutions**: 1. Wait for current operation to complete 2. Check cloud provider status 3. Try again after 1-2 minutes 4. Verify network connection 5. Try from different location 6. Contact Nife support if recurring ## Getting Help ### When to Contact Support Contact Nife support if: - Issue persists after troubleshooting - Error message unclear or unusual - Multiple operations failing - Data loss or security concern - Performance issues across multiple operations ### Providing Support Information When contacting support, include: 1. **Error message**: Exact text or screenshot 2. **Steps to reproduce**: How you got the error 3. **Instance details**: Name, provider, organization 4. **Timing**: When did the issue start 5. **Environment**: Browser, OS, network 6. **Recent changes**: What changed before issue 7. **Screenshots**: Of error or issue ### Support Channels - **Email**: support@nife.io - **Chat**: Live chat in dashboard - **Documentation**: Check docs first - **Status Page**: Check service status ## FAQ **Q: How long do instance operations take?** A: Start/stop: 1-5 minutes, Restart: 2-10 minutes, Create: 5-20 minutes **Q: Why can't I see my instance?** A: Check filters, search query, or organization selection **Q: Do I lose data when stopping an instance?** A: No, stopping preserves data. Only deleting removes data. **Q: Can I undo a deletion?** A: No. Deletions are permanent. Restore from backups/snapshots if available. **Q: How often are metrics updated?** A: Metrics update every 1-5 minutes depending on metric type. ## Next Steps - [Managing VM Instances](/VM-Management/managing-vms) - Manage your instances - [Cloud Provider Setup](/VM-Management/cloud-provider-setup) - Configure providers - [Monitoring VMs](/VM-Management/monitoring-vms) - Monitor performance --- --- ## Access Console and SSH | Remote Connection Guide for VM Instances URL: https://docs.nife.io/VMs/access Connect to your VM instances using browser-based console or SSH terminal for direct management and troubleshooting. ## Console Access ### Browser-Based Console The Console provides a browser-based terminal connection to your VM instance without needing a local SSH client. **When to Use Console** - Quick troubleshooting without SSH setup - Initial instance configuration - Network troubleshooting - System maintenance - Security group changes preventing SSH ### Opening Console **From VM Card** 1. Locate the VM instance in dashboard 2. Scroll to bottom action buttons section 3. Click the **Console Button** (Terminal icon) 4. Console window opens in your browser **Console Window** - Full-screen terminal interface - Black background with white text - Cursor blinking ready for input - Type commands to execute ### Using Console **Basic Commands** ```bash # Check system information uname -a # View disk usage df -h # Check memory free -m # List processes ps aux # View system logs tail -f /var/log/syslog ``` **Console Features** - Full terminal access to instance - Execute any command allowed by OS - View output in real-time - Copy/paste functionality - Scroll through history **Common Console Tasks** - View system logs - Check service status - Manage users and permissions - Install packages - Update system configuration - Restart services ### Console Limitations **Limitations** - Requires instance to be running - No file transfer capability - Limited scroll-back history - May have latency - Some special characters not supported ### Closing Console **Exit Console** 1. Type `exit` and press Enter 2. Click X button on console window 3. Click outside console area 4. Press Escape key :::info Closing console doesn't affect your instance. It just disconnects your session. ::: ## SSH Access ### Secure Shell Connection SSH (Secure Shell) provides encrypted remote command-line access to your instance with full control and flexibility. **When to Use SSH** - Complex administration tasks - Script execution - File transfer with SCP - Port forwarding - Persistent long-running sessions ### Prerequisites for SSH Before connecting via SSH, you need: **Local SSH Client** - OpenSSH client (included on Linux/Mac) - PuTTY (Windows alternative) - VS Code Remote SSH extension - Git Bash (Windows) **SSH Key Pair** - Private key file (keep secret) - Public key on the instance - Correct file permissions (600) - Key must match instance's authorized keys **Network Access** - Port 22 (SSH) must be open - Security group must allow inbound SSH - Network connectivity to instance IP - Instance must be running **Correct IP Address** - Public IP if connecting from internet - Private IP if on same network - Floating IP or elastic IP if configured ### Getting SSH Connection Information **From VM Card** 1. Scroll to bottom of card 2. Click the **SSH Button** (Terminal icon) 3. Connection information displays 4. Shows SSH command to use 5. May show key file location **Connection String Format** ```bash ssh -i /path/to/key.pem ec2-user@instance-ip ``` Or for other operating systems: ```bash ssh -i /path/to/key.pem ubuntu@instance-ip ssh -i /path/to/key.pem admin@instance-ip ssh -i /path/to/key.pem root@instance-ip ``` **Information Provided** - Complete SSH command - Private key file path - Instance IP address - Default username for OS - Port number (usually 22) ### Connecting via SSH **Using OpenSSH (Linux/Mac/Git Bash)** 1. **Open Terminal** ```bash # On Linux/Mac open Terminal # On Windows with Git Bash right-click and "Git Bash Here" ``` 2. **Copy SSH Command** - Copy the SSH command from dashboard - Or manually construct: `ssh -i keyfile.pem user@ip-address` 3. **Execute Connection** ```bash ssh -i /path/to/key.pem ec2-user@54.123.45.67 ``` 4. **Accept Host Key (First Time)** - Message: "Are you sure you want to continue?" - Type `yes` and press Enter - Host key is added to known_hosts 5. **Connected to Instance** - Prompt changes to instance name - You're now remotely connected - Execute commands directly **Using PuTTY (Windows)** 1. **Convert Private Key** (if needed) - PuTTYgen converts OpenSSH keys - Load private key file - Export as PuTTY format 2. **Open PuTTY** - Launch PuTTY application - Connection type: SSH - Port: 22 3. **Configure Connection** - Host Name: Instance IP address - Username: default OS user - Auth → Private key file: select .ppk file 4. **Connect** - Click "Open" - Accept host key if prompted - You're connected and ready ### SSH Commands **After Successful Connection** ```bash # View system information uname -a lsb_release -a # Check disk space df -h # View memory free -h # List processes ps aux | grep process-name # View recent logs tail -100 /var/log/syslog # Check network connectivity ping google.com netstat -tulpn # Restart a service sudo systemctl restart service-name # View running services sudo systemctl list-units --type=service --state=running # Edit a file nano /path/to/file # or vi /path/to/file ``` ### File Transfer with SCP **Copying Files to Instance** ```bash # Single file scp -i /path/to/key.pem /local/path/file.txt user@instance-ip:/remote/path/ # Entire directory scp -r -i /path/to/key.pem /local/path/directory user@instance-ip:/remote/path/ ``` **Copying Files from Instance** ```bash # Single file scp -i /path/to/key.pem user@instance-ip:/remote/path/file.txt /local/path/ # Entire directory scp -r -i /path/to/key.pem user@instance-ip:/remote/path/directory /local/path/ ``` ### Disconnecting SSH **End SSH Session** ```bash # Type exit command exit # Or press Ctrl+D ``` The terminal closes and you're back on your local machine. ## Key Management ### SSH Key Pair Setup **Creating New Key Pair** (if needed) ```bash # Generate new key ssh-keygen -t rsa -b 4096 -f ~/.ssh/my-instance-key # You'll be prompted for: # - Passphrase (optional but recommended) # - Confirm passphrase # View your public key cat ~/.ssh/my-instance-key.pub ``` **Adding Public Key to Instance** If key isn't already on instance: 1. Generate key pair (above) 2. Copy public key to instance: ```bash ssh-copy-id -i ~/.ssh/my-instance-key.pub user@instance-ip ``` 3. Or manually add to `~/.ssh/authorized_keys` ### Key Permissions **Correct Permissions Required** ```bash # Private key (your computer) chmod 600 ~/.ssh/my-instance-key # SSH directory chmod 700 ~/.ssh # Authorized keys on instance chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ``` **Permission Errors** - "Permission denied" usually means wrong permissions - Run chmod commands above to fix - Common issue with newly created keys ### Key Security :::danger Never share your private key with anyone. ::: **Protecting Private Keys** - Store in secure location (~/.ssh/) - Don't commit to version control - Don't email or upload - Use passphrase for extra protection - Regularly rotate keys - Delete old unused keys ## Troubleshooting Connection Issues ### Cannot Connect to Instance **Check Prerequisites** 1. Is instance running? Check status in dashboard 2. Do you have the correct IP address? 3. Do you have the correct private key? 4. Is the private key in correct location? 5. Are file permissions correct? **Common Errors** **"Permission denied (publickey)"** - Private key doesn't match public key - Public key not added to instance - Wrong key file specified - File permissions wrong (should be 600) - Wrong username for OS **Solution:** ```bash # Verify key permissions ls -la ~/.ssh/my-key.pem # Should show: -rw------- (600) # Re-add public key to instance ssh-copy-id -i ~/.ssh/my-key.pem user@instance-ip ``` **"Connection refused"** - SSH service not running on instance - Port 22 not open in security group - Wrong port specified - Instance is stopping/starting **Solution:** - Check security group allows port 22 - Restart SSH service if you have console access - Wait if instance is starting up - Verify correct IP address **"Connection timeout"** - Network connectivity issue - Security group blocking traffic - Instance is down or unreachable - IP address incorrect **Solution:** - Check instance status in dashboard - Verify security group rules - Check your network firewall - Use console to troubleshoot - Verify correct IP address **"Host key verification failed"** - First time connecting to new instance - Host key not in known_hosts file - Host key changed **Solution:** - Type `yes` when prompted - Host key will be saved - Future connections won't prompt ### SSH Key Issues **"Permission denied" with correct key** 1. Verify correct private key: ```bash ssh-keygen -l -f ~/.ssh/key.pem ``` 2. Verify public key on instance: ```bash cat ~/.ssh/authorized_keys ``` 3. Add public key if missing: ```bash ssh-copy-id -i ~/.ssh/key.pem user@instance-ip ``` **Lost Private Key** - If key is lost, you can't connect - Use console access instead - Request new instance if needed - Generate new key pair for future instances ### Network Issues **Cannot Reach Instance IP** 1. Check instance has public IP (if needed) 2. Verify security group allows SSH (port 22) 3. Check your firewall isn't blocking 4. Test from another network if possible 5. Use instance console to troubleshoot **Latency or Slow Connection** 1. Check network conditions 2. Try different network (if possible) 3. Reduce screen size if high latency 4. Use SCP with -C flag for compression 5. Restart instance if very slow ## Security Best Practices 1. **Protect Private Keys** - Never share with others - Use strong passphrases - Store securely - Regular backups 2. **Use SSH Keys Instead of Passwords** - More secure than passwords - Can't brute-force SSH keys - Required for automation 3. **Regular Key Rotation** - Create new keys periodically - Remove old unused keys - Maintain audit trail 4. **SSH Configuration** - Disable password authentication - Change SSH port (optional) - Use fail2ban for bruteforce protection - Restrict SSH to specific IPs if possible 5. **Monitoring** - Monitor SSH logs for failed attempts - Alert on successful connections from new IPs - Review authorized_keys regularly ## Advanced SSH Features ### SSH Config File **Create ~/.ssh/config** ```text Host my-instance HostName 54.123.45.67 User ec2-user IdentityFile ~/.ssh/my-key.pem StrictHostKeyChecking accept-new UserKnownHostsFile ~/.ssh/known_hosts ``` **Connect using alias:** ```bash ssh my-instance ``` ### Port Forwarding **Local Port Forwarding** ```bash # Access remote database locally ssh -i key.pem -L 3306:localhost:3306 user@instance-ip ``` **Remote Port Forwarding** ```bash # Make local service accessible to instance ssh -i key.pem -R 8080:localhost:8080 user@instance-ip ``` ### SFTP for File Management ```bash # Interactive file transfer sftp -i key.pem user@instance-ip # Commands available: # get file.txt - download # put file.txt - upload # ls - list files # cd path - change directory # exit - quit ``` ## Next Steps - [Managing VMs](/VMs/managing) - Perform operations on instances - [VM Instance Details](/VMs/instance-details) - View complete information - [Monitoring Performance](/VMs/monitoring) - Track metrics --- --- ## Export and Reporting | VM Data Export and Report Generation Guide URL: https://docs.nife.io/VMs/export Export your VM instance data and generate reports for analysis, documentation, and sharing with your team. ## Data Export ### Export Overview The VMs Dashboard allows you to export complete instance data in multiple formats for use in external tools, reporting systems, and documentation. **Export Benefits** - Create backups of infrastructure inventory - Import data into analysis tools - Generate compliance reports - Share infrastructure data with stakeholders - Archive historical data - Integrate with billing systems ## Export Formats ### CSV Export **What's Included** - Instance name - Cloud provider type (AWS, GCP, Azure) - Current status - Zone/region - Organization - Instance ID - Creation date - Created by user **File Format** ```csv name,type,status,zone,organization,instanceId,createdAt,createdBy web-server-01,AWS,running,us-east-1,production,i-1234567890abcdef0,2024-01-15,admin@company.com db-server-01,GCP,stopped,us-central1-a,staging,1234567890,2024-01-10,devops@company.com app-server-01,Azure,running,eastus,production,subscription/vm-name,2024-01-20,engineer@company.com ``` **Opening in Excel/Sheets** 1. Download CSV file 2. Open in Microsoft Excel or Google Sheets 3. Data imports automatically 4. Columns organize for easy viewing 5. Can create pivot tables and charts **CSV Use Cases** - Quick inventory view - Spreadsheet analysis - Email distribution - Printing for documentation - Integration with external systems ### JSON Export **What's Included** - Complete instance information - All metadata and configuration - Status and metrics - Creation and modification details - Custom tags - Network configuration - Storage details **File Format** ```json [ } ] ``` **Opening JSON Files** 1. Download JSON file 2. Open in text editor or IDE 3. Parse with JSON tools 4. Import into applications 5. Use with APIs and automation **JSON Use Cases** - API integration - Application import - Automation scripts - Data migration - Advanced analysis tools ## Exporting Data ### From Dashboard Header **Quick Export** 1. Click the overflow menu (⋮) in page header 2. Select "Export as CSV" or "Export as JSON" 3. File downloads to computer immediately 4. Browser shows download progress **Export Button Location** - Top right of dashboard - Dropdown menu with both options - Also available in right-click context menu ### From Individual Instance **Single Instance Export** 1. Open instance detail panel 2. Click "Export" button in panel header 3. Choose format (CSV or JSON) 4. Only this instance is exported ## Report Generation ### Creating Reports **Report Options** - Generate complete inventory report - Performance trend report - Cost analysis report - Compliance documentation - Custom filtered reports ### Filtering Before Export **Filter to Specific Instances** 1. Use dashboard filters before exporting 2. Choose status filter (Running, Stopped, etc.) 3. Choose provider filter (AWS, GCP, Azure) 4. Use search to find specific instances 5. Export shows only filtered results **Benefits of Filtering** - Smaller file size - Focused analysis - Specific team reports - Reduced clutter ## File Management ### Downloaded Files **File Location** - Files download to default Downloads folder - Can be moved to any location - Recommended: Create VM Reports folder for organization **File Naming** - Format: `vm-instances.csv` or `vm-instances.json` - Timestamp: Add date to name for archives - Example: `vm-instances-2024-01-15.csv` **Organizing Files** - Create folders by month/quarter - Label by environment (prod, staging, dev) - Archive old files - Maintain for compliance period ### File Storage **Cloud Storage Integration** - Upload to Google Drive - Save to Dropbox - Store in AWS S3 - Archive in company repository **Backup Strategy** - Regular exports for backup - Multiple copies in different locations - Version control for changes over time - Long-term archival for compliance ## Using Exported Data ### In Excel/Google Sheets **Import CSV** 1. Open Excel or Google Sheets 2. File → Open → Select CSV 3. Import dialog appears 4. Configure column separators 5. Data imports with headers **Analysis** - Sort by status, provider, organization - Filter for specific criteria - Create pivot tables - Generate charts - Calculate statistics **Adding Data** - Add cost column from billing data - Add team owner column - Add project assignment - Add custom metadata - Track dates and changes ### In Programming/APIs **Reading JSON Data** ```python with open('vm-instances.json', 'r') as f: instances = json.load(f) for instance in instances: print(f": ") ``` **Using in Automation** - Feed data into provisioning scripts - Update infrastructure database - Generate documentation - Sync with other tools - Trigger workflows ### In Documentation **Including in Reports** 1. Export CSV data 2. Create summary table in document 3. Include metrics and statistics 4. Add charts from pivot tables 5. Document current state **Compliance Documentation** - IT audit requirements - Infrastructure inventory - Change management records - Access control documentation - Cost tracking ## Cost Analysis ### Analyzing Instance Costs **Using Exported Data for Cost Analysis** 1. **Identify Expensive Instances** - Export all instances - Add hourly cost to spreadsheet - Sort by cost - Review highest cost instances 2. **Find Unused Instances** - Filter by status: Stopped - Calculate cost of stopped instances - Consider deleting unused instances - Potential savings: 50-70% of compute cost 3. **Optimize Instance Types** - Export instances with metrics - Compare actual usage vs. allocated - Right-size instances - Potential savings: 10-30% 4. **Reserve Instances** - Identify consistent workloads - Use export data to prove business case - Purchase reserved instances - Potential savings: 20-40% ### Cost Reporting **Monthly Cost Report** 1. Export instances on first of month 2. Get cost data from billing system 3. Create comparison to previous month 4. Identify trends and anomalies 5. Share with finance team **Cost Optimization Review** 1. Quarterly review of exported data 2. Identify cost optimization opportunities 3. Calculate potential savings 4. Implement recommendations 5. Measure actual savings ## Team Collaboration ### Sharing Data with Team **Exporting for Distribution** 1. Filter to relevant instances 2. Export as CSV for easy sharing 3. Send via email or collaboration tool 4. Team can import and analyze 5. Maintain version control **Read-Only Sharing** - Export to PDF for static view - Share via cloud storage - No accidental modifications - Good for stakeholders **Collaborative Analysis** - Export to Google Sheets - Multiple team members edit - Real-time collaboration - Comments and notes - Version history ## Compliance and Auditing ### Audit Trail Documentation **Creating Audit Records** 1. Export instance data regularly 2. Include creation date and creator 3. Document changes over time 4. Maintain compliance records 5. Archive for retention periods **Compliance Reports** - SOC 2 compliance - ISO 27001 requirements - GDPR data mapping - HIPAA security documentation - PCI DSS infrastructure inventory ### Regular Exports **Scheduled Exports** - Monthly: First business day - Quarterly: End of quarter - Annually: Year-end inventory - On-demand: For special audits - Before/after: Major changes **Export Archive** - Maintain historical records - Show infrastructure evolution - Track compliance changes - Support audit investigations - Prove retention policies ## Integration with External Tools ### Third-Party Integrations **Monitoring and Analytics** - Import into Datadog - Use with CloudHealth - Send to Cost Optimization tools - Feed into ITSM systems - Custom dashboards **Automation Platforms** - Terraform for IaC management - Ansible for configuration - CloudFormation templates - Puppet for infrastructure - Chef for automation **BI and Reporting** - Power BI for analytics - Tableau for visualization - Looker for dashboards - QlikView for analysis - Custom reporting tools ## Data Privacy ### Protecting Sensitive Data **Before Sharing Exports** - Remove sensitive IPs if needed - Anonymize user information - Redact internal hostnames - Filter to relevant columns only - Encrypt files before sharing **Data Security** - Use encrypted file transfer - Set file access permissions - Use password protection - Limit distribution list - Track who has copies ## Troubleshooting ### Export Issues **File Won't Download** 1. Check browser download settings 2. Disable pop-up blockers 3. Try different browser 4. Check available disk space 5. Try again after clearing cache **File Is Empty** 1. Ensure you have VMs to export 2. Check filters aren't too restrictive 3. Refresh dashboard before export 4. Try exporting single instance 5. Contact support if issue persists **File Is Corrupted** 1. Try exporting again 2. Try different format 3. Try different browser 4. Clear browser cache 5. Check file downloaded completely **CSV Not Opening in Excel** 1. File shows as text instead of spreadsheet 2. Right-click → Open With → Excel 3. Or import using Excel's import function 4. Check file extension is .csv not .txt 5. Try renaming extension to .csv ## Best Practices 1. **Regular Exports** - Monthly backup exports - Quarterly compliance reports - Before major changes - After infrastructure updates 2. **Organized Storage** - Create folder structure by month - Label files with date - Archive old exports - Cloud backup for important files 3. **Version Control** - Track changes over time - Compare month-to-month - Identify growth trends - Document major changes 4. **Data Quality** - Verify exported data matches dashboard - Spot-check instance details - Validate before sharing - Update regularly 5. **Security** - Encrypt sensitive exports - Restrict access to exports - Use secure file transfer - Audit who accesses exports ## Next Steps - [Managing VMs](/VMs/managing) - Perform operations - [Monitoring Performance](/VMs/monitoring) - Track metrics - [VMs Overview](/VMs/overview) - Dashboard guide ## Related Resources - 🛠️ [CSV to JSON Converter](https://freetools.nife.io/csv-to-json/) — convert your exported VM inventory between CSV and JSON - 🛠️ [JSON Formatter](https://freetools.nife.io/json-formatter/) — pretty-print exported JSON for easier review --- ## VM Instance Details | Configuration & Resource Guide URL: https://docs.nife.io/VMs/instance-details The detail panel provides comprehensive information about each VM instance with complete configuration and activity data. ## Opening the Detail Panel ### How to Access Instance Details **Click on VM Card** 1. From the VMs Dashboard, locate a VM instance 2. Click anywhere on the instance card (except action buttons) 3. Right-side detail panel slides in 4. Shows complete instance information **Panel Size** - Takes up approximately 1/3 of the screen - Main content area remains visible - Scrollable for long content ### Closing the Detail Panel **Methods to Close** 1. Click the X button in the panel header 2. Click outside the panel (on main content) 3. Press the Escape key on keyboard 4. Navigate to another instance (replaces current) ## Instance Header Information ### Basic Instance Details **Instance Name** - Primary identifier for the VM - Displayed at the top of the panel - Matches the name in the dashboard card **Status Badge** - Current operational state - Color-coded indicator - Shows: Running, Stopped, Paused, or Terminated **Cloud Provider Icon** - Visual indicator of provider type - AWS: ☁️ (Cloud icon) - GCP: 🟠 (Orange circle) - Azure: 🔵 (Blue circle) **Quick Actions** - Start/Stop buttons (available based on status) - Restart button (for running instances) - Delete button (always available) - Refresh button (to update data) ## Instance Configuration ### General Information **Instance Name** - Name assigned to the VM - Used to identify the instance - Visible in cloud provider console **Instance ID** - Unique identifier from cloud provider - AWS: Starts with "i-" (e.g., i-1234567890abcdef0) - GCP: Numeric ID - Azure: Full resource ID path - Used for API calls and advanced management **Status** - Current operational state - Values: Running, Stopped, Paused, Terminated - Updates in real-time **Cloud Provider** - Which cloud platform hosts the instance - AWS, GCP, or Azure - Determines available operations ### Location Information **Zone/Region** - Geographic location of instance - AWS: Region and availability zone (e.g., us-east-1a) - GCP: Zone (e.g., us-central1-a) - Azure: Region (e.g., eastus) **Organization** - Which Nife organization owns the instance - Used for access control - Determines billing **Created By** - User who created the instance - Email or username ### Temporal Information **Created Date** - When the instance was created - Displayed in local timezone - Format: YYYY-MM-DD **Last Modified** - When configuration was last changed - Helps track recent changes **Uptime** - How long instance has been running continuously - Useful for SLA tracking - Resets when instance is restarted ## Resource Allocation ### Compute Resources **CPU/vCPUs** - Number of virtual CPUs allocated - AWS: vCPU count - GCP: Number of cores - Azure: Number of processors **Memory (RAM)** - Memory allocated to instance - Measured in GB - Determines how many processes can run - Cannot be changed without restart (usually) **Instance Type** - Machine type or SKU - AWS: t2.medium, m5.large, etc. - GCP: n1-standard-1, etc. - Azure: Standard_B1s, etc. ### Storage **Root Volume** - Primary storage disk for OS and applications - Size in GB - Storage type (SSD, HDD, etc.) - Expandable on most providers **Additional Volumes** - Data volumes attached to instance - Number of volumes listed - Size and type information - Mount points shown **Storage Usage** - Current utilization percentage - Free space available - Alerts if approaching capacity ## Network Configuration ### Network Settings **IP Addresses** - **Public IP**: External IP for internet access - **Private IP**: Internal network IP - Both displayed if available **Network Interface** - Primary network adapter details - Connected subnet/VPC - Security groups/firewall rules **DNS** - Domain name system configuration - Resolves instance name to IP - Custom DNS settings if configured ### Security Groups/Firewall Rules **Inbound Rules** - Which ports accept incoming traffic - Port numbers and protocols (TCP, UDP) - Source IP restrictions - SSH access typically on port 22 **Outbound Rules** - Which traffic can leave the instance - Usually allows all outbound traffic - Exceptions for restricted networks **Network Access** - Whether instance is publicly accessible - Private network only vs. internet-facing - Security implications ## Storage and Volumes ### Attached Volumes **Volume List** - All storage volumes attached to instance - Volume size in GB - Mount points (e.g., /dev/sda1) - Volume type and IOPS **Creating Snapshots** - Click Snapshots section - View existing snapshots - Create new point-in-time backups - Manage snapshot retention ### Volume Management **Volume Size** - Current allocated storage - Can usually be expanded - May require instance restart **IOPS (Input/Output Operations Per Second)** - Performance metric for storage - Higher IOPS = faster I/O - Affects database and application performance **Throughput** - Data transfer rate in MB/s - Affects large file operations - Important for data-intensive workloads ## Recent Activity ### Activity Log **Activity Entries** - Recent actions on the instance - Changes and operations - Timestamps for each activity - User who made the change **Activity Types** - Instance created - Configuration changed - Instance started/stopped - Snapshots created - Network changes - Security updates **Viewing More Activities** - Click "View All" to see complete history - Filter activities by type - Export activity logs - Track infrastructure changes ## Performance Metrics ### Real-Time Metrics **CPU Usage** - Current CPU utilization percentage - 0-100% scale - Shows over time graph - Helps identify bottlenecks **Memory Usage** - RAM currently in use - Percentage and absolute GB - Trend over time - Alerts if approaching limit **Network Activity** - Data in and out per second - Mbps (megabits per second) - Spikes indicate heavy traffic - Useful for performance analysis **Disk I/O** - Read/write operations per second - Storage throughput in MB/s - Shows peak usage times ### Metric Graphs **Historical Data** - View metrics over time - 1 hour, 24 hours, 7 days views - Identify patterns and trends - Plan capacity upgrades **Threshold Alerts** - Alerts when metrics exceed limits - CPU >80% sustained - Memory >85% usage - Disk >90% full ## Snapshots ### Snapshot Management **Existing Snapshots** - List of all snapshots for instance - Creation date - Size in GB - Snapshot description **Creating New Snapshot** 1. Click "Create Snapshot" button 2. Enter snapshot name 3. Add optional description 4. Click "Create" 5. Process starts (takes minutes) **Restoring from Snapshot** 1. Select snapshot from list 2. Click "Restore" button 3. Instance data reverts to snapshot point 4. Running instance may be stopped 5. Takes several minutes to complete **Deleting Snapshots** 1. Click snapshot in list 2. Select "Delete" option 3. Confirm deletion 4. Frees up storage space 5. Cannot be recovered ### Snapshot Best Practices - Create before major changes - Schedule regular daily snapshots - Keep production snapshots for weeks - Delete old development snapshots - Name snapshots with dates ## Tags and Labels ### Instance Tags **Custom Tags** - Key-value pairs for organization - Helps group related instances - Useful for automation - Billing and cost allocation **Predefined Tags** - Environment (prod, staging, dev) - Owner or team - Project or application - Cost center ### Label Management **Adding Tags** 1. Click "Add Tag" button 2. Enter tag key and value 3. Click "Add" 4. Tag appears in list **Removing Tags** 1. Locate tag in list 2. Click remove/X icon 3. Tag is deleted ## Advanced Configuration ### Security Settings **Firewall Rules** - Customize inbound/outbound rules - Restrict access to specific IPs - Configure port ranges - SSL/TLS settings **SSH Keys** - Manage authorized SSH keys - Add new keys for users - Remove keys for revoked access - Key fingerprint verification **IAM Roles (AWS/Azure)** - Service principals for API access - Permissions for cloud operations - Instance profile configuration ### Maintenance Windows **Scheduled Maintenance** - Cloud provider planned updates - Expected downtime duration - Reschedule maintenance window - Notifications before maintenance **Auto-Patching** - Enable automatic security patches - Configure patch schedule - Choose maintenance window - Automatic restart if needed ## Monitoring and Alerts ### Setting Up Alerts **Alert Types** - CPU usage exceeds threshold - Memory usage exceeds threshold - Disk space running low - Network latency high - Instance status changes **Creating an Alert** 1. Click "Create Alert" button 2. Select metric to monitor 3. Set threshold value 4. Choose duration (sustained for 5+ minutes) 5. Select notification method 6. Save alert **Alert Notifications** - Email notifications - Slack messages - SMS alerts - Webhook calls - Integration with monitoring tools ### Alert Management **Viewing Alerts** - List of active alerts - Alert status and severity - Last triggered time - History of alerts **Disabling Alerts** - Temporarily suppress alerts - Useful during maintenance - Set duration for suppression ## Billing Information ### Cost Tracking **Monthly Cost** - Current month estimated cost - Based on instance type and utilization - Hourly rate displayed - Comparison to budget **Cost Breakdown** - Compute cost - Storage cost - Network transfer cost - Any additional services **Cost Optimization** - Recommendations for cost savings - Right-sizing suggestions - Reserved instance options - Spot instance pricing ## Settings and Configuration ### General Settings **Auto-Restart** - Instance automatically restarts if stopped - Useful for critical services - Can cause unexpected restarts **Termination Protection** - Prevents accidental deletion - Requires explicit flag removal - Recommended for production **Detailed Monitoring** - Enhanced metrics collection - More frequent data points - May incur additional costs ### Advanced Settings **User Data** - Custom scripts on launch - Configuration automation - Installation commands - Usually base64 encoded **Metadata Options** - Instance metadata service access - IMDSv1 vs. IMDSv2 (security) - Token expiration ## Refresh and Update ### Refreshing Information **Manual Refresh** 1. Click refresh button in panel header 2. Data reloads from cloud provider 3. Shows latest status and metrics **Auto-Refresh** - Data updates every 30 seconds - Automatic background refresh - Shows latest information ## Closing and Navigation ### Exit Detail Panel **Methods to Exit** 1. Click X button in header 2. Click outside panel area 3. Press Escape key 4. Click another instance ### View Another Instance **Switch Between Instances** 1. Close current detail panel 2. Click different instance card 3. Detail panel opens for new instance 4. Replaces previous details ## Print and Export ### Document Information **Print Instance Details** 1. Click print button in panel 2. Browser print dialog opens 3. Choose printer and options 4. Print documentation **Export Details** 1. Click export button 2. Select format (PDF or CSV) 3. File downloads to computer 4. Save for documentation ## Next Steps - [Managing VMs](/VMs/managing) - Perform operations on instances - [Console and SSH Access](/VMs/access) - Connect to instances - [Monitoring Performance](/VMs/monitoring) - Track metrics --- --- ## Manage VM Instances | VM Operations and Control Guide URL: https://docs.nife.io/VMs/managing This guide covers all the operations you can perform on VM instances from the VMs Dashboard. ## Starting VM Instances ### Starting a Stopped Instance **From the VM Card** 1. Locate the VM instance in the dashboard 2. Check the status badge shows "Stopped" 3. Click the **Play Button** (▶️) on the card 4. Instance enters "Starting" state 5. Status updates to "Running" when complete **Success Indicator** - Status badge changes to green "Running" - Play button becomes disabled - Pulsing indicator appears in status badge **When to Start** - After stopping for maintenance - When you need to resume operations - To bring instances back online :::info Starting an instance typically takes 1-5 minutes depending on the cloud provider. ::: ## Stopping VM Instances ### Stopping a Running Instance **From the VM Card** 1. Locate the running VM instance 2. Check the status badge shows "Running" 3. Click the **Pause Button** (⏸️) on the card 4. Instance enters "Stopping" state 5. Status updates to "Stopped" when complete **Success Indicator** - Status badge changes to gray "Stopped" - Pause button becomes disabled - Pulsing indicator disappears **When to Stop** - To save cloud provider costs - During maintenance windows - When instance is no longer needed - To perform system updates :::warning Stopping an instance terminates running services. Ensure no critical operations are in progress. ::: ## Restarting VM Instances ### Restarting a Running Instance **From the VM Card** 1. Locate the VM instance 2. Click the **Restart Button** (↻) on the card 3. Instance enters "Restarting" state 4. Services restart automatically 5. Status updates when restart completes **What Happens During Restart** - Operating system restarts - All running services restart - Memory is cleared - Persistent storage remains intact **When to Restart** - After configuration changes - To apply system updates - If services become unresponsive - To clear memory and free resources - During troubleshooting :::info Restarting typically takes 2-10 minutes. Services will be unavailable during restart. ::: ## Configuring VM Instances ### Opening Configuration Panel **From the VM Card** 1. Click the **Settings Button** (⚙️) on the card 2. Configuration panel opens 3. Available settings depend on cloud provider **Configuration Options** - Resource allocation (CPU, memory) - Network settings and security groups - Storage configuration - Performance parameters - Auto-scaling settings - Backup and recovery options :::note Some configuration changes may require instance restart. ::: ## Deleting VM Instances ### Before Deleting :::danger Deletion is permanent. All data on the instance will be lost unless backed up. ::: Before deleting, ensure: 1. All important data is backed up 2. No critical services depend on this instance 3. Databases are exported if needed 4. Application configurations are saved 5. Certificates and keys are backed up 6. Load balancers are reconfigured ### Deletion Process **From the VM Card** 1. Click the **Delete Button** (🗑️) on the card 2. Confirmation dialog appears 3. Review the warning message 4. Confirm you understand data will be lost 5. Click **Delete** button to confirm **Confirmation Dialog** - Shows instance name being deleted - Displays warning: "This action cannot be undone" - Clearly states all data will be lost - Requires explicit confirmation **After Deletion** - Instance is removed from cloud provider - Status changes to "Terminated" - Instance disappears from dashboard - Billing for instance stops - Resources are released - Recovery is only possible from backups :::warning There is no undo or recovery after deletion. Ensure backups exist if needed. ::: ## Accessing Instance Details ### Opening Detail Panel **Click on Any VM Card** 1. Click anywhere on the VM card (except action buttons) 2. Right-side detail panel opens 3. Displays complete instance information **Detail Panel Shows** - Full instance configuration - Resource allocation details - Storage volumes and snapshots - Network configuration - Activity history - Performance metrics - Advanced settings **Closing the Panel** - Click the X button in the panel - Click outside the panel area - Press the Escape key ## Console Access ### Accessing Instance Console **From the VM Card** 1. Locate the VM instance 2. Scroll to the bottom of the card 3. Click the **Console Button** 4. Browser-based console opens 5. You can execute commands directly **Console Features** - Direct terminal access to instance - Execute shell commands - Monitor system processes - View system logs - Configure services :::info Console access requires the instance to be in Running status. ::: ## SSH Access ### Connecting via SSH **From the VM Card** 1. Locate the VM instance 2. Scroll to the bottom of the card 3. Click the **SSH Button** 4. SSH connection information appears **SSH Connection Steps** 1. Copy the connection command provided 2. Open your local terminal 3. Paste the SSH command 4. Accept the security warning (first time only) 5. You're now connected to the instance **SSH Requirements** - Your local SSH client installed - Valid SSH key pair - Network access to instance - Instance must be running - Inbound SSH rule must be allowed **Common SSH Commands** ```bash # Basic connection ssh -i /path/to/key.pem user@instance-ip # With port specification ssh -i /path/to/key.pem -p 22 user@instance-ip # Verbose mode for troubleshooting ssh -v -i /path/to/key.pem user@instance-ip ``` :::tip Save your SSH connection command for quick access later. ::: ## Snapshot Management ### Creating Snapshots **From the VM Card** 1. Locate the VM instance 2. Scroll to the bottom of the card 3. Click the **Snapshots Button** 4. Snapshot management interface opens **Creating a Snapshot** 1. Click **Create Snapshot** button 2. Enter snapshot name 3. Add description (optional) 4. Click **Create** 5. Snapshot creation begins **Snapshot Benefits** - Point-in-time backups - Quick recovery from issues - Clone instances from snapshots - Disaster recovery preparation - Testing without affecting production **Snapshot Operations** - Create snapshots before major changes - List all snapshots for instance - Delete old or unused snapshots - Schedule automatic snapshots - Restore from snapshots :::info Snapshots may incur storage costs. Delete old snapshots to reduce costs. ::: ## Performance Monitoring ### Accessing Monitoring **From the VM Card** 1. Locate the VM instance 2. Scroll to the bottom of the card 3. Click the **Monitoring Button** 4. Performance metrics dashboard opens **Key Metrics** - **CPU Usage**: Percentage of CPU utilized - **Memory**: RAM usage in GB - **Network**: Data in/out throughput - **Disk**: Storage usage and I/O operations - **Uptime**: How long instance has been running **Performance Analysis** - View real-time metrics - Review historical trends - Identify performance issues - Plan capacity upgrades - Optimize resource allocation ## Bulk Operations ### Exporting VM List **Export as CSV** 1. Click overflow menu (three dots) 2. Select "Export as CSV" 3. CSV file downloads to your computer 4. Open with spreadsheet application 5. Contains columns: Name, Type, Status, Zone, Organization **Export as JSON** 1. Click overflow menu (three dots) 2. Select "Export as JSON" 3. JSON file downloads 4. Can be imported into other tools 5. Contains complete instance data **Use Cases for Export** - Create inventory reports - Backup instance metadata - Import into other tools - Share with team members - Document infrastructure - Compliance reporting ## Filtering and Searching ### Search Functionality **Quick Search** 1. Locate the search box in filter panel 2. Type instance name or organization name 3. Results filter in real-time 4. Clear search to reset **Search Operators** - Search works on instance name - Search works on organization name - Partial matches supported - Case-insensitive search ### Status Filtering **Filter by Status** 1. Click the Status filter dropdown 2. Choose from options: - **All Status**: Show all instances - **Running**: Show active instances only - **Stopped**: Show powered-off instances - **Paused**: Show paused instances ### Provider Filtering **Filter by Cloud Provider** 1. Click the Type/Provider filter dropdown 2. Choose from available providers: - **All Types**: Show all providers - **AWS**: Show EC2 instances only - **GCP**: Show Compute Engine instances only - **Azure**: Show Azure VMs only ## View Modes ### Card View - Visual cards for each instance - Shows key information at a glance - Quick action buttons visible - Good for fewer instances - Intuitive and easy to navigate **Switch to Card View** 1. Click view mode toggle button 2. Select "Cards" option 3. Dashboard displays card layout ### Table View - Detailed information in columns - Shows more data per instance - Efficient for many instances - Sortable columns - Better for dense information **Switch to Table View** 1. Click view mode toggle button 2. Select "Table" option 3. Dashboard displays table layout ## Filter Toggle ### Showing/Hiding Filters **Toggle Filter Panel** 1. Click the **Filter Button** in header 2. Filter panel slides in/out 3. Button highlights when filters active **When Filters are Active** - Filter panel stays visible - Your filter selections persist - Results update as you change filters - Clear filters to reset ## Keyboard Shortcuts | Shortcut | Action | |----------|--------| | Escape | Close detail panel | | Click outside panel | Close detail panel | | Ctrl/Cmd + F | Focus search box | ## Status Reference | Status | Color | Meaning | Available Actions | |--------|-------|---------|-------------------| | Running | Green | Instance is active | Stop, Restart, Configure, Delete | | Stopped | Gray | Instance is powered off | Start, Delete, Configure | | Paused | Yellow | Instance is paused | Resume, Delete | | Terminated | Red | Instance deleted | None (removed from list) | ## Best Practices 1. **Monitor Regularly**: Check metrics and activity logs 2. **Create Snapshots**: Before major configuration changes 3. **Backup Data**: Regularly backup important data 4. **Use Filters**: Organize instances logically 5. **Document Changes**: Keep notes of configuration changes 6. **Review Activity**: Check recent activity logs 7. **Plan Ahead**: Schedule maintenance windows 8. **Cost Management**: Stop unused instances to save costs ## Troubleshooting ### Instance Won't Start 1. Check instance status in cloud provider console 2. Verify cloud provider account has available resources 3. Check network connectivity 4. Review cloud provider status page 5. Try refresh and retry ### Cannot Connect via SSH 1. Verify instance is running 2. Check security group/firewall rules 3. Confirm SSH key is correct 4. Verify network connectivity 5. Check instance IP address ### Operations Taking Too Long 1. Wait 1-2 minutes for operation to complete 2. Refresh dashboard to see updated status 3. Check cloud provider status page 4. Try operation again 5. Contact support if issue persists ## Next Steps - [VM Instance Details](/VMs/instance-details) - View complete instance information - [Console and SSH Access](/VMs/access) - Connect to instances - [Monitoring Performance](/VMs/monitoring) - Track and optimize performance - [Export and Reporting](/VMs/export) - Generate reports from instance data --- --- ## VMs Dashboard: Monitor Performance & Health | Nife URL: https://docs.nife.io/VMs/monitoring Monitor your VM instances' performance, health status, and activity in real-time from the VMs Dashboard. ## Overview The Monitoring section within the Instance Detail Panel provides comprehensive performance tracking and health monitoring for your VM instances. ## Accessing Monitoring ### From VM Card **Quick Access to Monitoring** 1. Locate the VM instance on the dashboard 2. Scroll to the bottom action buttons 3. Click the **Monitoring Button** (Activity icon) 4. Monitoring dashboard opens 5. Real-time metrics display immediately ### Monitoring Dashboard **Dashboard Components** - Real-time metric displays - Historical trend graphs - Performance alerts - Activity log - Health status indicators - Recommendation suggestions ## Real-Time Metrics ### Key Performance Indicators The monitoring dashboard displays live metrics updated every 1-5 minutes: **CPU Usage** - Current CPU utilization percentage (0-100%) - Usage trend graph - Sustained high usage indicates bottleneck - Normal range: 20-60% for typical workloads **Memory Usage** - RAM currently in use (GB and percentage) - Available memory remaining - Memory trend over time - High usage >85% may cause slowdowns **Disk Usage** - Storage space used vs. total - Percentage utilization - Free space available - Alert if approaching 80% **Network Activity** - Data in (ingress) - Mbps - Data out (egress) - Mbps - Network trend graph - Spike detection for anomalies ### Understanding Metrics **CPU Metrics** - Usage shows processor load - Peaks indicate heavy computation - Sustained high indicates need for optimization - Multi-core systems show per-core breakdown **Memory Metrics** - Usage shows RAM consumption - Includes OS, applications, buffers - Trend shows if memory leaking - Available shows headroom for new processes **Disk Metrics** - Usage shows storage capacity consumption - Includes OS files and application data - Growing trend indicates data accumulation - Alerting at 80-90% prevents out-of-disk errors **Network Metrics** - Ingress: Data coming into instance - Egress: Data leaving instance - Spikes may indicate: - Large file transfers - Data download/upload - Network attack or compromise - High traffic periods ## Metric Graphs ### Viewing Historical Trends **Time Range Selection** - **1 Hour**: Recent behavior and current issues - **24 Hours**: Daily patterns and peak usage - **7 Days**: Weekly trends and recurring issues - **30 Days**: Long-term trends and capacity planning - **Custom Range**: Specific date range analysis **Graph Features** - X-axis shows time - Y-axis shows metric value - Hover to see exact values - Zoom in/out for detailed view - Download graph as image ### Analyzing Trends **Identifying Patterns** - Regular spikes at specific times - Steady growth over time - Sudden changes or anomalies - Correlation between metrics **Planning Decisions** - Capacity planning based on trends - Identifying optimal performance windows - Predicting when upgrades needed - Detecting performance degradation ## Performance Status ### Instance Health Status **Status Indicators** | Status | Color | Meaning | |--------|-------|---------| | Healthy | Green | All metrics normal, no issues | | Warning | Yellow | One metric approaching threshold | | Critical | Red | Metric exceeded critical threshold | **Health Components** - CPU usage level - Memory utilization - Disk space availability - Network connectivity - Service responsiveness ### Status Summary **Overall Health** - Quick visual indicator - Summary of all components - Recommendations if issues detected - Actions to improve health ## Performance Alerts ### Setting Up Alerts **Available Alert Types** **CPU Alerts** - Trigger when CPU exceeds threshold - Default threshold: 80% - Duration: Sustained for 5+ minutes - Notification: Immediate **Memory Alerts** - Trigger when memory usage exceeds threshold - Default threshold: 85% - Duration: Sustained for 5+ minutes - Notification: Immediate **Disk Alerts** - Trigger when disk usage exceeds threshold - Default threshold: 80% - Duration: Triggered immediately - Notification: High priority **Network Alerts** - High traffic detected - Packet loss detected - Connection timeouts - Unusual patterns ### Creating Alert **Step-by-Step** 1. Click "Create Alert" button in monitoring panel 2. Select metric to monitor (CPU, Memory, Disk, Network) 3. Set threshold value (percentage or GB) 4. Choose duration (immediate or sustained) 5. Select notification method: - Email - Slack - SMS (premium) - Webhook 6. Save alert ### Managing Alerts **Viewing Alerts** - List of active alerts - Alert status and severity - Last triggered time - Alert history **Modifying Alerts** 1. Click alert in list 2. Select "Edit" 3. Change threshold or settings 4. Click "Save Changes" **Disabling Alerts** 1. Click alert 2. Select "Disable" 3. Alert won't trigger 4. Can be re-enabled later **Deleting Alerts** 1. Click alert 2. Select "Delete" 3. Confirm deletion 4. Alert is permanently removed ## Activity Log ### Recent Activity **Activity Types** - Instance created/deleted - Configuration changed - Instance started/stopped - Snapshots created - Network changes - Security updates - User logins - Failed operations **Activity Details** - Action performed - Timestamp - User who performed action - Status (success/failure) - Details of change ### Viewing Activities **Activity List** 1. Scroll to Activity section in detail panel 2. Shows 5-10 most recent activities 3. Click "View All" to see complete history 4. Filter activities by type 5. Search by user or action ### Exporting Activity Log **Export Options** 1. Click "Export" button 2. Choose format: - CSV for spreadsheets - JSON for integration 3. Select date range 4. File downloads **Use Cases** - Audit trail for compliance - Troubleshooting recent changes - Understanding infrastructure changes - Team activity tracking ## Performance Optimization ### When to Optimize **Signs Your Instance Needs Optimization** 1. **High CPU Usage** - Sustained >80% - Affecting application performance - Slowing response times 2. **High Memory Usage** - Sustained >85% - Causing slowdowns - Application crashes 3. **Low Disk Space** - >80% full - Application warnings - Risk of failures 4. **High Network Usage** - Unexpected peaks - Data transfer bottleneck - Cost implications ### Optimization Strategies **CPU Optimization** 1. Identify CPU-consuming processes 2. Optimize application code 3. Reduce running services 4. Scale to more instances 5. Upgrade to higher CPU instance type **Memory Optimization** 1. Check for memory leaks 2. Optimize application memory use 3. Reduce cache sizes 4. Restart services periodically 5. Increase instance memory allocation **Disk Optimization** 1. Clean up temporary files 2. Implement log rotation 3. Archive old data 4. Remove unused packages 5. Expand disk capacity **Network Optimization** 1. Optimize application payload 2. Compress data transfer 3. Use regional endpoints 4. Implement caching 5. Reduce unnecessary traffic ## Predictive Metrics ### Forecasting **Trend Prediction** - Graph shows projected usage - Based on historical patterns - Helps predict when limits reached - Plan upgrades proactively **Capacity Planning** - Growth rate analysis - Time until capacity reached - Recommended upgrade timing - Cost impact of upgrades ## Benchmarking ### Comparing Performance **Baseline Metrics** - Normal operation values - Average usage patterns - Peak usage times - Minimum resources needed **Performance Comparison** - Current vs. historical - Same time last week/month - Before/after optimization - Between instances ## Export and Reporting ### Export Metrics **Export Options** 1. Click "Export" button 2. Choose format: - CSV for Excel/Sheets - JSON for integration - PDF for reports 3. Select date range 4. File downloads immediately **Using Exported Data** - Import into analysis tools - Create custom reports - Share with team members - Archive for compliance - Integration with monitoring systems ### Report Generation **Creating Reports** 1. Select date range 2. Choose metrics to include 3. Add custom notes 4. Generate PDF report 5. Share or print **Report Contents** - Metric summaries - Trend graphs - Alert history - Recommendations - Capacity analysis ## Alerting Best Practices ### Setting Appropriate Thresholds **CPU Alerts** - Production: 70% for critical apps - Development: 85% for general use - Start with default, adjust based on experience **Memory Alerts** - Production: 75% to allow headroom - Development: 85% is acceptable - Monitor trend, not just threshold **Disk Alerts** - Critical: 80% (watch closely) - Warning: 70% (take action) - Emergency: 90% (immediate action) **Network Alerts** - Baseline: Establish normal usage first - Spike: 2-3x normal usage - Sustained: High for 5+ minutes ### Alert Management 1. **Create Key Alerts** - Disk space critical - Memory exhaustion - CPU sustained high - Service down 2. **Configure Notifications** - Route to on-call team - Escalate if not acknowledged - Include remediation steps 3. **Review and Adjust** - Monitor alert frequency - Reduce false positives - Adjust thresholds quarterly - Update as workload changes ## Troubleshooting with Metrics ### Diagnosis Using Metrics **Instance Not Responding** - Check CPU - is it maxed out? - Check Memory - running low? - Check Network - any activity? - Check Disk - space available? - Review recent activity log **Slow Performance** - CPU usage high? Optimize code - Memory low? Increase or restart - Disk I/O high? Check what's writing - Network latency? Check connection **Unexpected Costs** - Check network egress usage - Review instance type vs. utilization - Check for unused instances - Monitor storage growth ## Recommended Thresholds | Metric | Warning | Critical | Action | |--------|---------|----------|--------| | CPU | 70% | 85% | Optimize or upgrade | | Memory | 75% | 90% | Increase RAM or restart | | Disk | 80% | 95% | Clean up or expand | | Network In | 500 Mbps | 900 Mbps | Monitor or optimize | | Network Out | 500 Mbps | 900 Mbps | Monitor or optimize | ## Next Steps - [Managing VMs](/VMs/managing) - Perform operations on instances - [Console and SSH Access](/VMs/access) - Connect to instances - [Export and Reporting](/VMs/export) - Generate reports --- ## Volume Details and Properties | Storage Info | Nife URL: https://docs.nife.io/Volumes/details Access and understand complete information about your persistent storage volumes. ## Viewing Volume Information ### Volume List Display **Application Volumes Table** When an application is expanded in the Volumes Dashboard, a table displays all associated volumes with key information: **Table Columns** | Column | Shows | |--------|-------| | Volume Name | Name and identifier of volume | | Size | Storage capacity in GB | | Region | Geographic location | | Created At | Date volume was created | | Actions | Snapshot management button | ### Volume Name **Information Provided** - User-assigned identifier - Describes volume purpose - Unique within application - Helps identify volume type **Common Volume Names** - database - Primary data storage - logs - Application logs - cache - Cached data - uploads - User file uploads - backups - Backup storage - temp - Temporary storage **Using Volume Names** - Reference when managing - Include in documentation - Use in troubleshooting - Reference in snapshots ### Volume Size **Size Information** - Allocated storage capacity - Measured in gigabytes (GB) - Shows total available space - Not actual usage amount **Understanding Size** - Larger size = more storage cost - Application may not use all space - Can usually be expanded - May be reduced in some cases **Size Examples** - Small: 10-50 GB (logs, cache) - Medium: 50-200 GB (database) - Large: 200-1000 GB (user data) - Very Large: 1000+ GB (media, archives) **Capacity Planning** - Monitor growth trends - Plan for expansion - Prevent running out of space - Budget for storage costs ### Region Information **Geographic Location** - Where volume is physically stored - Affects data latency - Impacts compliance requirements - May influence costs **Region Examples** - US East (us-east-1) - US West (us-west-2) - EU West (eu-west-1) - EU Central (eu-central-1) - Asia Pacific (ap-south-1) - Asia Northeast (ap-northeast-1) **Region Considerations** - Should match application region - Latency critical for performance - Data residency compliance - Disaster recovery planning - Cost variations by region ### Creation Date **Timestamp Information** - When volume was created - Formatted as readable date - May show timezone - Helps identify age **Using Creation Date** - Track volume lifecycle - Identify old volumes - Plan maintenance windows - Support historical analysis - Documentation reference ## Application Information ### Application Context **Application Details Shown** - Application name - Current status (running, deployed, etc.) - Organization ownership - Deployment regions **Application Name** - Identifies application - Helps group related volumes - Reference for support - Documentation purposes **Status Badge** - Shows application state - Running = active - Deployed = ready - Stopped = offline - Indicates volume accessibility **Organization** - Which team/organization owns - Multi-tenancy support - Access control reference - Billing attribution **Regions** - Where application is deployed - May have multiple regions - Affects volume placement - Impacts redundancy ## Storage Information ### Capacity Details **Total Capacity** - Maximum storage available - Sum of all allocated space - Shows configuration - Basis for cost calculation **Volume Count** - Number of volumes per app - Shown in badge on application - Helps identify storage-heavy apps - Distribution indicator ### Storage Types **Persistent Storage** - Durable across restarts - Survives deployments - Data preservation - Application-dependent **Volume Characteristics** - Attached to specific application - Region-specific - Backed by cloud provider - Supports snapshots ## Volume Metadata ### Additional Information **Volume ID** (if displayed) - System-assigned identifier - Used for API calls - Reference in support tickets - Unique across platform **Volume Type** (if available) - Standard vs. premium - SSD vs. HDD - Performance tier - Cost implications **Mount Path** (if shown) - Where volume mounted in application - File system location - Application specific - Configuration reference ## Multi-Region Volumes ### Applications Across Regions **Regional Distribution** - Same application in multiple regions - Separate volume per region - Independent snapshots - Regional isolation **Volume Accessibility** - Volumes region-specific - Only accessible from local region - Lower latency access - Meets data residency rules **Regional Snapshots** - Each region has own snapshots - Separate snapshot list - Independent retention - Regional disaster recovery ## Sorting and Filtering ### Organizing Volume List **Application Sort** - Applications listed in order - May be sortable by name - May be sortable by volume count - May be sortable by status **Volume Sort** (within application) - Volume name alphabetically - By size (GB) - By region - By creation date **Expanding/Collapsing** - Single application at a time - Click to expand/collapse - View specific volumes - Manage display ## Volume Relationships ### Application Volumes **Volume Group** - Volumes attached to same application - Share application lifecycle - Use same credentials - Part of same deployment **Volume Interdependencies** - Application requires all volumes - Often used together - May have data relationships - Backup together **Cross-Volume Operations** - Backup all application volumes - Disaster recovery - Migration operations - Compliance snapshots ## Accessing Volume Details ### Detail Retrieval **Volume Information Access** 1. Navigate to Volumes Dashboard 2. Locate application 3. Click to expand application 4. View volume table 5. See all volume information 6. Click Snapshots for more details ### Information Completeness **Always Available** - Volume name - Volume size - Region - Creation date - Snapshots button **Sometimes Available** - Detailed metrics - Real-time usage - Performance stats - Advanced properties - Extended metadata ## Common Volume Queries ### What Size Should My Volume Be? **Small Applications** - Databases: 20-50 GB - Logs: 10-20 GB - Cache: 5-10 GB **Medium Applications** - Databases: 50-200 GB - User uploads: 100-500 GB - Archives: 50-200 GB **Large Applications** - Databases: 200-1000+ GB - Media storage: 500-5000+ GB - Archives: 1000+ GB ### How Often Should I Snapshot? **Critical Data** - Hourly or more - Multiple per day - Extensive retention - Redundant backups **Important Data** - Daily snapshots - Weekly archives - 30-day retention - Regular testing **Non-Critical** - Weekly snapshots - Monthly archives - 14-day retention - Basic testing ### Which Region Should I Choose? **Latency Optimization** - Same region as application - Near user location - Minimize access time - Better performance **Compliance** - Data residency rules - Sovereignty requirements - Regulatory compliance - Jurisdiction requirements **Cost** - Different pricing by region - Standard vs. premium regions - Transfer costs - Backup costs ## Volume Troubleshooting ### Cannot Find Volume **Troubleshooting** 1. Refresh dashboard 2. Expand correct application 3. Check if application has volumes 4. Look in all regions 5. Verify permissions 6. Try different browser ### Volume Information Missing **Troubleshooting** 1. Refresh the page 2. Wait for data to load 3. Clear browser cache 4. Try another browser 5. Check network connection 6. Contact support ### Cannot Access Volume Details **Troubleshooting** 1. Verify application expanded 2. Check permissions 3. Ensure application accessible 4. Review account status 5. Try again later 6. Contact support ## Volume Documentation ### Recording Volume Information **Document for Each Volume** - Name and purpose - Size and region - Application association - Owner/team - Critical/non-critical rating - Snapshot policy - Recovery requirements **Team Reference** - Share documentation - Runbooks for operations - Emergency procedures - Contact information - Escalation path ## Summary Volume details provide crucial information for managing your persistent storage. Understanding volume properties—including size, region, and creation date—helps you: - Make informed decisions about capacity planning - Troubleshoot storage-related issues - Comply with data residency requirements - Document infrastructure accurately - Optimize costs based on regional pricing ## Next Steps - [Managing Volumes](/Volumes/managing) - Create, modify, and delete volume storage - [Snapshot Management](/Volumes/snapshots) - Create and restore volume backups - [Export and Analysis](/Volumes/export) - Export and analyze storage data - [Volumes Overview](/Volumes/overview) - Return to volume management guide --- ## Export and Analysis - Volume Reports & Data Analysis | Nife URL: https://docs.nife.io/Volumes/export Export your volume data for reporting, analysis, and documentation purposes. ## Exporting Volume Data ### Export Overview The Volumes Dashboard provides data export functionality to download all volume information for external analysis and reporting. **Export Benefits** - Create infrastructure documentation - Analyze storage distribution - Generate compliance reports - Share with team members - Import into analysis tools - Maintain records - Plan capacity - Track costs ### Export Process **Step 1: Prepare Data** 1. Navigate to Volumes Dashboard 2. All volumes automatically included 3. No filtering required 4. Refresh for latest data **Step 2: Access Export** 1. Locate header area 2. Click overflow menu (three dots) 3. Find "Export Volumes" option 4. Click to start export **Step 3: Download File** 1. Export begins 2. JSON file generated 3. Browser automatically downloads 4. File saves to Downloads folder 5. Notification confirms export **Step 4: File Received** - File named: volumes-YYYY-MM-DD.json - Contains all volume data - Ready for analysis - Portable format ## Export File Format ### JSON Structure **File Format** ```json [ ] ``` **Data Fields** | Field | Description | |-------|-------------| | app | Application name owning volume | | volume | Volume name/identifier | | size | Storage size in GB | | region | Geographic region | | created | ISO 8601 timestamp | ### Data Included **Comprehensive Data** - All applications with volumes - Every volume per application - Complete size information - Region details - Creation timestamps - Application associations **Data Completeness** - Includes all deployed applications - Shows all volumes - Current state captured - Snapshot time recorded - No data filtered ## Opening Exported Files ### Using JSON Files **Text Editor** 1. Open any text editor 2. File → Open 3. Select volumes JSON file 4. View content 5. Format appears structured **JSON Viewer** 1. Use online JSON viewer 2. Paste file content 3. Visual tree display 4. Easier navigation 5. Format highlighting **Command Line** ```bash # View file content cat volumes-2024-01-15.json # Pretty print cat volumes-2024-01-15.json | jq . # Filter specific app cat volumes-2024-01-15.json | jq '.[] | select(.app == "payment-service")' ``` ### Importing to Tools **Spreadsheet Application** 1. Open Google Sheets or Excel 2. File → Import 3. Select volumes JSON file 4. Configure import settings 5. Data appears in spreadsheet **Database** 1. Connect to database 2. Import JSON data 3. Create volumes table 4. Query and analyze 5. Generate reports **Analysis Tools** 1. Load JSON into tool 2. Configure data mapping 3. Create visualizations 4. Generate reports 5. Export results ## Analysis and Reporting ### Volume Statistics **Calculate Metrics** **Total Storage** ```text Sum of all volume sizes = Sum(size for all volumes) ``` **By Application** ```text Total per app = Sum(size for volumes in app) ``` **By Region** ```text Total per region = Sum(size for volumes in region) ``` **Average Values** ```text Average volume size = Total storage / Number of volumes Average per app = Total storage / Number of apps ``` ### Common Analyses **Distribution Analysis** - Storage by application - Storage by region - Application storage needs - Regional distribution - Identify outliers **Capacity Planning** - Current usage trends - Growth projections - Future requirements - Budget planning - Resource allocation **Cost Analysis** - Storage by region (costs vary) - Large volume identification - Optimization opportunities - Budget tracking - Cost forecasting ### Report Generation **Summary Report** ```text Volume Summary Report ==================== Total Applications: 5 Total Volumes: 12 Total Storage: 2,190 GB By Application: - payment-service: 80 GB (3 volumes) - user-api: 300 GB (2 volumes) - analytics-worker: 850 GB (3 volumes) - media-processor: 1,000 GB (1 volume) - notification-service: 40 GB (2 volumes) By Region: - us-east-1: 170 GB - eu-west-1: 10 GB - ap-south-1: 300 GB - us-west-2: 550 GB - eu-central-1: 300 GB - ap-northeast-1: 1,000 GB ``` ## Using Exported Data ### Documentation **Infrastructure Documentation** 1. Export current volumes 2. Include in runbooks 3. Add to architecture docs 4. Share with team 5. Update regularly **Compliance Documentation** - Volume inventory - Storage locations - Data residency - Retention policies - Audit trail ### Team Sharing **Share with Stakeholders** 1. Export volume data 2. Create summary report 3. Share spreadsheet 4. Present findings 5. Discuss optimization **Team Collaboration** 1. Upload to shared drive 2. Team members review 3. Discuss findings 4. Plan improvements 5. Document decisions ### Integration **With Other Systems** - Import to billing system - Feed into monitoring tools - Sync with documentation - Update configuration management - Integrate with automation ## Data Validation ### Verify Exported Data **Check Completeness** 1. Count applications 2. Count volumes 3. Verify totals match dashboard 4. Check all regions included 5. Confirm timestamps **Sample Verification** 1. Pick random volume 2. Find in dashboard 3. Compare details 4. Verify accuracy 5. Confirm data quality ### Data Quality **Ensure Accuracy** - Compare with dashboard - Check creation dates - Verify sizes - Validate regions - Confirm counts **Fresh Data** - Export current data - Refresh before export - Note timestamp of export - Document data age - Regular exports ## File Management ### Organizing Exports **File Naming** ```text volumes-2024-01-15.json # Daily volumes-2024-12-31.json # Specific volumes-backup.json # Archive volumes-analysis.json # Processed ``` **Folder Structure** ```text volumes/ ├── 2024-01/ │ ├── volumes-2024-01-01.json │ ├── volumes-2024-01-15.json │ └── volumes-2024-01-31.json ├── 2024-02/ │ ├── volumes-2024-02-01.json │ └── volumes-2024-02-28.json └── archive/ ├── volumes-2023-12-31.json └── volumes-2023-11-30.json ``` ### Storage and Backup **Local Storage** - Keep on computer - Regular backups - Version control - Encrypted storage - Access restrictions **Cloud Storage** - Upload to Google Drive - Save to Dropbox - Store in AWS S3 - Archive in company repository - Automated backups ### Retention Policy **Keep Exports For** - Current month: Keep all - Past 3 months: Keep weekly - Past year: Keep monthly - Older: Archive as needed - Compliance: Follow requirements ## Troubleshooting Export ### Export Issues **File Won't Download** 1. Check browser download settings 2. Disable pop-up blockers 3. Try different browser 4. Check available disk space 5. Try again after page refresh **File Size Issues** 1. Large files may take time 2. Check file actually downloaded 3. Verify file size in Downloads 4. Try downloading again 5. Contact support if issues persist **File Corrupted** 1. Try export again 2. Try different browser 3. Check disk space 4. File may be incomplete 5. Retry operation **Cannot Open File** 1. Use JSON viewer 2. Try text editor 3. Check file extension is .json 4. Verify file not empty 5. Try online JSON parser ## Export Best Practices ### Regular Exports **Scheduled Exports** - Weekly: Trend tracking - Monthly: Documentation - Quarterly: Capacity planning - Annually: Compliance - Custom: As needed **Before Major Changes** - Export current state - Document baseline - Reference for rollback - Change comparison - Audit trail ### Secure Handling **Data Protection** - Encrypt sensitive exports - Limit distribution - Secure storage - Access controls - Delete after use **Privacy** - Only share necessary data - Anonymize if needed - Redact sensitive info - Control access - Track distribution ### Documentation **Record Exports** - Note export date - Document reason - Track findings - Record decisions - Update regularly **Version Control** - Date-named files - Folder organization - Change notes - Archive old exports - Maintain history ## Advanced Analysis ### Volume Optimization **Identify Large Volumes** 1. Export volume data 2. Sort by size descending 3. Find largest volumes 4. Review usage 5. Identify reduction opportunities **Identify Underutilized** 1. Export all volumes 2. Check creation date 3. Identify old volumes 4. Research usage 5. Plan cleanup **Right-Sizing** 1. Analyze growth trends 2. Project future needs 3. Compare to allocated 4. Plan optimal sizes 5. Implement changes ### Growth Trends **Track Over Time** 1. Monthly exports 2. Calculate growth rate 3. Project future capacity 4. Plan upgrades 5. Budget resources **Forecasting** 1. Historical growth data 2. Linear regression 3. Seasonal patterns 4. Capacity planning 5. Resource allocation ## Summary: Using Export Data Effectively Exporting volume data enables you to: **Documentation** - Create infrastructure inventory - Document storage allocation - Maintain compliance records - Share with team members **Analysis** - Calculate storage metrics - Identify growth trends - Plan capacity upgrades - Analyze distribution patterns **Optimization** - Find unused volumes - Identify optimization opportunities - Plan cost reductions - Right-size storage allocation **Integration** - Feed data to BI tools - Sync with external systems - Automate reporting - Enable data pipelines Regular exports (weekly/monthly) help you maintain accurate infrastructure documentation and identify optimization opportunities. ## Next Steps - [Managing Volumes](/Volumes/managing) - Create and manage volume storage - [Snapshot Management](/Volumes/snapshots) - Backup and recovery operations - [Volume Details](/Volumes/details) - View volume information and properties - [Volumes Overview](/Volumes/overview) - Return to volumes dashboard guide ## Related Resources - 🛠️ [CSV to JSON Converter](https://freetools.nife.io/csv-to-json/) — convert your exported volume inventory between CSV and JSON - 🛠️ [JSON Formatter](https://freetools.nife.io/json-formatter/) — pretty-print exported JSON for easier review --- ## Managing Volumes - Create, Expand & Configure Storage | Nife Docs URL: https://docs.nife.io/Volumes/managing This guide covers all operations for managing persistent storage volumes for your applications. ## Viewing Volumes ### Accessing Volumes Dashboard **Navigate to Volumes** 1. From main dashboard, click Volumes in navigation 2. Dashboard loads with all applications and their volumes 3. Summary cards show volume statistics 4. Applications listed with volume counts ### Volume List Organization Volumes are organized by application: - Each application shows as a collapsible card - Displays application name, status, and regions - Shows count of volumes for each app - Expandable to see detailed volume information ## Expanding Applications ### View Volume Details **Expand Application** 1. Locate application in the volumes list 2. Click on the application card row 3. Application expands to show volume table 4. Volume details become visible 5. Shows all volumes for this application **What Displays** - Volume name and purpose - Storage size in GB - Geographic region - Creation date - Snapshot action button ### Collapse Application **Hide Volume Details** 1. Click the expanded application row 2. Application collapses 3. Volume details hidden 4. Shows only summary information ## Volume Information ### Understanding Volume Details **Volume Name** - User-defined identifier - Describes the volume's purpose - Examples: database, logs, cache, uploads - Must be unique within the application **Volume Size** - Storage capacity allocated - Measured in GB (gigabytes) - Affects monthly costs - Can usually be expanded **Region** - Geographic location of storage - Matches or near application region - Affects latency and compliance - Examples: us-east-1, eu-west-1, ap-south-1 **Created At** - Date volume was created - Formatted as readable date - Helps track volume age - Useful for lifecycle management ## Creating Volumes ### During Application Creation **Add Volumes** 1. When creating new application 2. Specify persistent volumes needed 3. Define volume name 4. Set volume size 5. Choose region **Volume Configuration** - Volume name: Descriptive name - Size: Initial storage capacity in GB - Region: Geographic location - Type: Storage type (if applicable) ### Adding Volumes to Existing Applications **Attach New Volume** 1. Navigate to application settings 2. Find Storage/Volumes section 3. Click "Add Volume" 4. Configure volume details 5. Apply changes 6. Application may need restart **Configuration Details** - Volume name - Initial size - Mount path (if required) - Region selection ## Volume Snapshots ### Snapshot Overview Snapshots provide point-in-time backups: - Capture complete volume state - Enable quick recovery - Support disaster recovery - Useful before major changes - Can be used to create new volumes ### Creating Snapshots **From Volume Row** 1. Locate volume in expanded application 2. Click "Snapshots" button 3. Snapshots dialog opens 4. Click "Create Snapshot" button 5. Enter snapshot details **Snapshot Creation Dialog** **Snapshot Name** - Required field - Must be unique for the volume - Descriptive name recommended - Examples: backup-2024-12-29, pre-update **Snapshot Description** (Optional) - Additional details about snapshot - Reason for snapshot - Context about data state - Helpful for future reference **Creating Snapshot** 1. Enter snapshot name 2. Add description (optional) 3. Click "Create Snapshot" 4. Snapshot creation starts 5. Status shows in snapshots list ### Snapshot Status **Snapshot States** | Status | Meaning | |--------|---------| | Pending | Creation in progress | | Completed | Ready to use | | Failed | Creation unsuccessful | | Restoring | Restore operation underway | **Viewing Snapshots** 1. Click Snapshots button on volume 2. Dialog shows all snapshots 3. See snapshot details 4. Perform snapshot operations ## Snapshot Management ### Snapshot List **Information Shown** - Snapshot name - Description (if provided) - Status (completed, pending, etc.) - Size in GB - Creation date and time **Snapshot Table Columns** | Column | Description | |--------|-------------| | Snapshot Name | User-defined identifier | | Description | Optional notes about snapshot | | Status | Current snapshot state | | Size | Storage size of snapshot | | Created | Date snapshot was created | | Actions | Restore button | ### Restoring Snapshots **Before Restoring** :::warning Restoring a snapshot will overwrite current volume data. Ensure you have a backup if needed. ::: **Restore Process** 1. Open Snapshots dialog for volume 2. Locate snapshot to restore 3. Click "Restore" button 4. Confirmation dialog appears 5. Confirm restoration 6. Restoration begins 7. Wait for completion **Restoration Steps** 1. Snapshot data is copied 2. Current volume data is overwritten 3. Application may experience downtime 4. Services restart after restoration 5. Check application functionality ### Restoring Confirmation **Confirmation Dialog** - Warns about data overwrite - Shows snapshot being restored - Asks for confirmation - Cannot be undone after confirmation **After Restoration** - Volume data returns to snapshot point - Any changes after snapshot are lost - Application continues with restored data - May need service restart ## Snapshot Best Practices ### When to Create Snapshots **Before Major Changes** - Configuration updates - Application upgrades - Database migrations - System patches - Security updates **Regular Backups** - Daily snapshots for critical data - Weekly snapshots for non-critical - Monthly archives for compliance - Before any risky operation **Recovery Scenarios** - Accidental data deletion - Data corruption - Application crash - Failed update rollback - Disaster recovery ### Snapshot Naming Convention **Recommended Format** ```text purpose-date-time backup-2024-12-29-morning before-upgrade-v2.1.0 daily-backup-week-52 ``` **Useful Information** - Date of snapshot - Purpose of backup - Related application version - Recovery priority ### Snapshot Retention **Keep Snapshots For** - Production: 30+ days - Staging: 14+ days - Development: 7+ days - Archive critical: 90+ days **Delete Old Snapshots** - Review quarterly - Remove unnecessary snapshots - Free storage space - Reduce storage costs ## Monitoring Volumes ### Volume Growth **Track Size Changes** - Monitor volume size over time - Identify growth trends - Plan capacity upgrades - Prevent running out of space **When to Expand** - Usage approaching 80% capacity - Frequent storage warnings - Growth trend indicates need - Application requires more space ### Application with Volumes **View Volume Count** - Check badge on application card - Shows number of volumes - Updates in real-time - Helps understand storage needs **Volume Distribution** - See how many volumes per app - Identify storage-heavy apps - Plan allocation strategies - Optimize resource distribution ## Volume Deletion ### Removing Volumes :::danger Deleting a volume is permanent. Ensure all important data is backed up. ::: **Before Deleting** 1. Create snapshot if data needed 2. Export important data 3. Notify team members 4. Check for dependencies 5. Get approvals if needed **Delete Volume** 1. Navigate to application settings 2. Find Storage/Volumes section 3. Select volume to delete 4. Click "Delete" button 5. Confirm deletion 6. Volume is removed **After Deletion** - Volume data is permanently lost - Cannot be recovered without snapshot - Storage costs cease - Application behavior changes ## Troubleshooting ### Volume Issues **Volume Not Appearing** 1. Refresh the dashboard 2. Check application status 3. Verify application has volumes 4. Try different browser 5. Contact support if issue persists **Snapshot Creation Failed** 1. Check available storage 2. Verify sufficient disk space 3. Confirm volume accessibility 4. Review error message 5. Try creating snapshot again **Restore Failed** 1. Check volume status 2. Verify snapshot is valid 3. Ensure sufficient space 4. Check application status 5. Review error details **Cannot Access Volume** 1. Verify application is running 2. Check network connectivity 3. Confirm proper permissions 4. Review security settings 5. Check cloud provider status ## Volume Operations Summary | Operation | Purpose | Prerequisites | |-----------|---------|---------------| | Create Volume | Add persistent storage | Application created | | View Details | See volume information | Volume exists | | Create Snapshot | Backup volume data | Volume exists | | Restore Snapshot | Recover volume data | Snapshot exists | | Expand Volume | Increase capacity | Volume created | | Delete Volume | Remove persistent storage | Data backed up | ## Best Practices 1. **Naming**: Use clear, descriptive volume names 2. **Sizing**: Allocate appropriate size for workload 3. **Snapshots**: Create before major changes 4. **Monitoring**: Track volume growth and usage 5. **Cleanup**: Delete unused volumes regularly 6. **Backup**: Maintain snapshot retention policy 7. **Documentation**: Keep records of critical volumes 8. **Testing**: Test snapshot restoration regularly ## Summary: Volume Management Workflow Managing volumes effectively involves: 1. **Planning**: Determine storage needs based on application requirements 2. **Creation**: Create volumes during application deployment or later 3. **Configuration**: Set appropriate size, region, and naming conventions 4. **Monitoring**: Track usage and plan for growth 5. **Maintenance**: Expand, optimize, or delete volumes as needed 6. **Documentation**: Keep records of all volume configurations Regular reviews of your volume allocation ensure optimal performance and cost efficiency. ## Next Steps - [Snapshot Management](/Volumes/snapshots) - Backup volumes and implement disaster recovery - [Volume Details](/Volumes/details) - View detailed storage information and properties - [Export and Analysis](/Volumes/export) - Export and analyze volume data for reporting - [Volumes Overview](/Volumes/overview) - Return to volumes dashboard guide --- ## Snapshot Management - Backup, Restore & Disaster Recovery | Nife URL: https://docs.nife.io/Volumes/snapshots Snapshots provide point-in-time backups of your persistent storage volumes, enabling quick recovery and disaster management. ## What are Snapshots? ### Snapshot Overview A snapshot is a complete backup of a volume at a specific moment in time: **Snapshot Features** - **Point-in-time backup**: Captures complete volume state - **Quick recovery**: Restore volume to specific point - **Data preservation**: Protects against data loss - **Versioning**: Multiple snapshots for different times - **Zero-downtime creation**: Snapshots don't disrupt operations - **Space-efficient**: Only stores changes from previous version **Snapshot Benefits** - Disaster recovery capability - Testing and development support - Accidental deletion protection - Version control for data - Regulatory compliance requirements - Rapid recovery point objectives (RPO) ## Accessing Snapshots ### Opening Snapshots Dialog **From Volumes Dashboard** 1. Navigate to Volumes section 2. Locate application with volumes 3. Click application to expand 4. Find volume in the table 5. Click "Snapshots" button 6. Snapshots management dialog opens **Snapshots Dialog** - Shows all existing snapshots - Displays snapshot details - Create Snapshot button - Restore button for each snapshot ## Creating Snapshots ### Snapshot Creation Process **Step 1: Open Create Dialog** 1. Open Snapshots dialog for volume 2. Click "Create Snapshot" button 3. Create Snapshot dialog opens 4. Shows volume being backed up **Step 2: Enter Snapshot Details** **Snapshot Name** (Required) - Unique identifier for snapshot - Must be provided to create - Descriptive names recommended - Examples: - backup-2024-12-29 - before-upgrade-v2.1.0 - pre-maintenance - daily-backup **Snapshot Description** (Optional) - Additional context about snapshot - Reason for creating snapshot - Data state information - Recovery notes - Team communication **Example Details** ```text Name: backup-2024-12-29-morning Description: Daily backup before scheduled maintenance. Database includes latest transactions and user data as of 2024-12-29 09:00 UTC. ``` **Step 3: Create Snapshot** 1. Enter snapshot name 2. Add description (optional) 3. Click "Create Snapshot" button 4. Confirm creation 5. Snapshot creation begins **Step 4: Monitor Creation** - Snapshot appears in list immediately - Status shows "Pending" or "In Progress" - Creation may take several minutes - Status updates to "Completed" - Notification shows when complete ### Snapshot Time **Creation Time** - Shows when snapshot was created - Records exact date and time - Helps identify snapshot point - Useful for choosing restore point **Duration** - Snapshot creation usually quick - May take longer for large volumes - Size and system load affect duration - Completed status indicates readiness ## Snapshot List ### Viewing Snapshots **Snapshots Table** | Column | Information | |--------|-------------| | Snapshot Name | User-defined identifier | | Description | Optional notes about snapshot | | Status | Current snapshot state | | Size | Storage size in GB | | Created | Date and time snapshot was created | | Actions | Restore button | **Snapshot Status** | Status | Meaning | Usable | |--------|---------|--------| | Pending | Creation in progress | No | | Completed | Ready for use | Yes | | Failed | Creation unsuccessful | No | | Restoring | Restore operation underway | No | | Deleted | Marked for deletion | No | ### Snapshot Information **Snapshot Name** - User-provided identifier - Unique within the volume - Helps identify snapshot purpose - Displayed in list and dialogs **Description** - Optional additional information - Shows reason for snapshot - Notes about data state - Context for recovery decisions - Displayed as "-" if not provided **Status** - Current state of snapshot - Indicates readiness - "Completed" means ready to use - Affects available operations **Size** - Storage space used by snapshot - Measured in GB - May be smaller than volume - Shows as "N/A" if not available **Created Date** - Date and time snapshot was created - Formatted for readability - Helps choose appropriate restore point - Shows timezone information ## Restoring Snapshots ### Before Restoring :::warning Restoring a snapshot will replace current volume data with snapshot data. Any changes made after the snapshot was created will be lost. ::: **Pre-Restoration Checklist** 1. Verify you're restoring correct snapshot 2. Create backup of current data if needed 3. Check if data after snapshot is needed 4. Notify team members 5. Plan for application downtime 6. Have rollback plan ready 7. Verify snapshot status is "Completed" ### Restoration Process **Step 1: Select Snapshot** 1. Open Snapshots dialog 2. Locate snapshot to restore 3. Review snapshot details 4. Verify correct snapshot selected **Step 2: Initiate Restore** 1. Click "Restore" button on snapshot 2. Confirmation dialog appears 3. Shows volume being restored 4. Displays restoration warning 5. Requires explicit confirmation **Step 3: Confirm Restoration** - Read confirmation message carefully - Understand data will be overwritten - Confirm you want to proceed - Click "Confirm" button - Restoration begins **Step 4: Monitor Restoration** - Restoration starts immediately - May show progress indicator - Takes time based on volume size - Status updates to "Completed" - Notification appears when done **Step 5: Verify Recovery** 1. Check volume is restored 2. Verify data is correct 3. Test application functionality 4. Confirm no data corruption 5. Check business logic works ### Application During Restoration **Service Behavior** - Application may experience downtime - Services may be restarted - Connections may drop - Data temporarily unavailable - Plan for user impact **Recovery Time** - Depends on volume size - Larger volumes take longer - Network speed affects time - System load impacts duration - Usually completes in minutes ### After Restoration **Post-Restoration Steps** 1. Verify volume data 2. Test application functionality 3. Run smoke tests 4. Check user-facing features 5. Monitor for issues 6. Review logs for errors 7. Confirm data integrity **What Changed** - Volume data matches snapshot - Any changes after snapshot lost - Application sees restored data - Previous version data gone - Current state overwritten ## Snapshot Retention ### Retention Policy **Define Your Policy** - How long to keep snapshots - Based on regulatory requirements - Consider backup needs - Plan storage costs - Balance recovery needs **Retention Examples** **Production** - Keep 30+ days of snapshots - Daily snapshots - Weekly snapshots - Monthly archives - Quarterly retention **Staging** - Keep 14+ days of snapshots - 2-3 times per week - Less frequent than production - Testing recovery procedures - Cost optimization **Development** - Keep 7 days of snapshots - Minimal retention - Quick cleanup possible - Less critical data - Lower cost ### Deleting Snapshots **Before Deleting** 1. Verify snapshot not needed 2. Check recent restores 3. Confirm no compliance holds 4. Review organizational policy 5. Get approvals if required **Delete Snapshot** 1. Locate snapshot in list 2. Look for delete option 3. Confirm deletion 4. Snapshot is removed 5. Storage freed up **After Deletion** - Data permanently lost - Cannot be recovered - Storage space freed - No longer available for restore - May reduce monthly costs ## Snapshot Best Practices ### Naming Convention **Recommended Format** ```text [purpose]-[date]-[optional-info] Examples: backup-2024-12-29 before-upgrade-v2.1.0 daily-backup-morning pre-maintenance-week-52 recovery-test-2024-12-20 ``` **Naming Guidelines** - Descriptive and clear - Include date when created - Indicate purpose of snapshot - Make it searchable - Avoid special characters - Keep reasonably short ### Snapshot Frequency **Critical Volumes** - Multiple per day - Hourly for critical data - Daily minimum - Keep extended history - Test recovery regularly **Important Volumes** - Daily snapshots - Weekly archives - Monthly long-term - Regular testing - Documented procedures **Non-Critical Volumes** - 2-3 per week - Weekly minimum - Monthly cleanup - Less frequent testing - Standard retention ### Testing Recovery **Validate Snapshots** 1. Create test volume 2. Restore snapshot to test volume 3. Verify data integrity 4. Test application with restored data 5. Document any issues 6. Update recovery procedures **Recovery Drills** - Test restoration process quarterly - Document actual recovery time - Train team on procedures - Identify bottlenecks - Improve processes ### Documentation **Snapshot Records** - Document purpose of snapshot - Record creation date and time - Note any issues encountered - Track restoration history - Plan recovery strategy **Team Communication** - Notify team of critical snapshots - Share snapshot locations - Document recovery procedures - Train on restoration process - Keep runbooks updated ## Snapshot Monitoring ### Tracking Snapshots **Monitor Snapshot Count** - Don't accumulate too many - Delete old/unused snapshots - Clean up regularly - Prevent storage waste - Reduce management overhead **Monitor Snapshot Size** - Track total snapshot storage - Identify large snapshots - Plan storage growth - Budget for costs - Optimize retention ### Alerts and Notifications **Get Notified** - Snapshot creation completion - Snapshot restoration status - Storage capacity warnings - Retention policy violations - Failed snapshot operations ## Snapshot Limitations ### Know the Limitations **Snapshot Scope** - Captures single volume only - Not application-level backup - Need separate backup strategy - Multiple snapshots for app - Coordination required **Recovery Point** - Only to specific snapshot time - Lost changes after snapshot - Cannot partially restore - All-or-nothing operation - Must choose right snapshot **Operational Limits** - Snapshot creation takes time - Restoration causes downtime - Large volumes take longer - System resource intensive - Plan accordingly ## Troubleshooting ### Snapshot Issues **Snapshot Creation Failed** 1. Check volume status 2. Verify available storage 3. Check system resources 4. Review error message 5. Try again after waiting 6. Contact support if persists **Snapshot Not Appearing** 1. Refresh the dashboard 2. Check volume exists 3. Verify permissions 4. Try different browser 5. Clear cache and reload **Restore Failed** 1. Verify snapshot valid 2. Check volume accessible 3. Ensure sufficient space 4. Confirm application stopped 5. Review error details 6. Try again or contact support **Restore Takes Too Long** 1. Check system load 2. Verify network connectivity 3. Monitor resource usage 4. Be patient, large volumes take time 5. Check for errors in logs ## Snapshot Use Cases ### Backup and Disaster Recovery - Regular backups for protection - Quick recovery from data loss - Disaster recovery planning - Compliance documentation - Long-term archival ### Testing and Development - Test destructive operations - Restore to pre-test state - Development environment cloning - Regression testing - Performance testing ### Version Control - Multiple versions of data - Time-based data history - Rollback capability - Change tracking - Audit trail ### Compliance and Audit - Meeting retention requirements - Regulatory compliance - Data preservation - Audit documentation - Incident investigation ## Snapshot Best Practices Summary **Creating Snapshots:** - Create before major changes (deployments, updates, migrations) - Use descriptive names with dates - Include descriptions for context and recovery decisions **Restoring Snapshots:** - Always test restore procedures quarterly - Verify correct snapshot before restoration - Create backup of current data if uncertain - Plan for downtime during restoration **Retention Strategy:** - Production: 30+ days of snapshots - Standard: 14-30 days - Development: 7-14 days - Archive critical backups longer-term **Monitoring:** - Clean up old snapshots monthly - Track snapshot storage costs - Monitor creation failures - Test restoration procedures regularly ## Next Steps - [Managing Volumes](/Volumes/managing) - Create and manage volume storage - [Volume Details](/Volumes/details) - View volume information and properties - [Export and Analysis](/Volumes/export) - Export and analyze snapshot data - [Volumes Overview](/Volumes/overview) - Return to volumes dashboard guide --- ## Building a Healthy Measurement System URL: https://docs.nife.io/Devops-Handbook/DevOps-Metrics/building-a-healthy-measurement-system/index It is crucial to have a healthy measurement system to ensure meaningful insights and drive continuous improvement. In a complex system where multiple variables are involved. It becomes very hard to track down the exact reason for performance failure.   It is impossible to create a perfect metric system. However, you can create a measurement system that is both effective and sustainable by implementing the following principles and practices.   **Relevance and Alignment:** When defining metrics it is crucial to ensure that each metric is relevant. Each metric should serve a purpose that aligns with your organization’s goal. Defining irrelevant metrics makes results more complex and unactionable.   **Specificity and Clarity:** It is crucial to ensure that each metric is specified. Everyone in the organization should be able to understand the purpose of the metric and how it is measured. Any ambiguity can result in a faulty report.   **Avoid Metric Overload:** Overloading of anything is bad. You should only employ high-impact metrics. Employing excess number metrics makes your dashboard complex and hinders your decision-making.   **Consistency and Reliability:** It is necessary to ensure consistency and reliability in data collection. You can also utilize automation to ensure consistency. You need to ensure that the metrics collected are delivered as it is without any alteration. Any fluctuation in the metrics can lead to misinterpretations.   **Feedback Loop:** Metrics should be a part of a feedback loop that triggers alerts about specific problems. This not only helps identify problems but also solves them timely to avoid any future disasters. The combination of the feedback loop and DevOps metrics drives continuous improvement.   **Balanced Metric:** It is crucial to ensure a balance between leading indicators (predictive metrics) and lagging indicators ( historic metrics). By keeping a fine balance between the two you can achieve specific goals of your organization. --- ## Developers Experience Metrics URL: https://docs.nife.io/Devops-Handbook/DevOps-Metrics/developers-experience-metrics/index Internal development platforms are created for the developer’s ease. Moreover, the whole concept of platform engineering exists to solve developer’s problems. This shows that the developer experience is a key component in the recipe for successful software development.    A happy developer means your software is of high quality. It also ensures that all deadlines are met. On the other hand, a bad developer experience can affect the quality of the code. This is why it is crucial to measure and maintain developer experience.   But how can one measure developer metrics? How developer experience can be improved? Let’s explore the rabbit hole together to get the answers to these questions.   ### **Key DevEx Metrics:** Studies show a better developer experience can result in successful software development and on-time delivery of features. Let’s explore some key metrics to measure developer experience. These metrics can be used to enhance developer experience.    These key metrics are: - Feedback Time - Cognitive Load --- ## DevOps Metrics Overview URL: https://docs.nife.io/Devops-Handbook/DevOps-Metrics/devops-metrics/index DevOps metrics are parameters that allow you to judge the state of DevOps implementation in your organization. If you are in the early stages of DevOps adoption then you might want to know about the changes in your organization's culture and workflow. These metrics can help you make changes in your strategies to achieve your desirable workplace culture.   These metrics act as a compass and guide you on your journey of streamlining your workplace culture, tools, and workflows. These metrics give you actionable insights about the state of your organization. These metrics help you make decisions based on facts rather than your gut feelings.   DevOps metrics are employed by organizations to achieve the following goals: - Continuous Improvement  - Quality Assurance - Acceleration of Delivery - Customer Satisfaction - Cost Reduction  - Risk Mitigation   You can create custom metrics for your organization. However, creating a framework from scratch is not an easy task. You can leverage DORA Metrics and SPACE framework. Both these DevOps metrics are widely used by organizations to achieve their goals. --- ## Different DevOps Metrics URL: https://docs.nife.io/Devops-Handbook/DevOps-Metrics/different-devops-metrics/index Perhaps you're wondering about how you'll manage all those metrics and build a framework that guides your DevOps journey. No need to worry you can also utilize already-built frameworks and metric systems for your organization.   Let's cover some of the popular frameworks and metrics systems.   - DORA Metrics - SPACE Framework - MONK Metrics - Developer Experience Metrics --- ## DORA Metrics Explained | DevOps Handbook URL: https://docs.nife.io/Devops-Handbook/DevOps-Metrics/dora-metrics/index DORA ( DevOps Research and Assessment) is a research organization that conducts extensive research about DevOps methodologies, cultures, and tools. These researches and surveys help them understand the impact of DevOps practices on software delivery, performance, and organization culture.   DORA metrics are widely recognized as benchmarks for measuring DevOps performance. These metrics are vital because they allow organizations to take a data-driven approach. These metrics give quantifiable and objective indicators. These indicators allow organizations to identify areas of improvement and take necessary actions.   DORA metrics allow organizations to access the following aspects of software development and delivery:   **Speed:** Lead time and deployment frequency metrics within DORA metrics help you measure the speed of code changes deployed to production. **Stability:** Change Failure Rate and Mean Time to Recovery (MTTR) metrics allow you to assess the reliability and stability of development and operation processes. **Quality:** The quality of software is indirectly measured. When the frequency of changes and their success rate are measured.   Let us explore the 5 metrics that we’ve introduced above.     ## **Key DORA Metrics:** In this section, we’ll delve into some key DORA metrics and their importance in software delivery. We will also discuss the factors that influence it.   ### **Lead Time:** In the DORA metric, Lead time is the time it takes to take the code from commit to the production environment. It navigates through all the steps of the software delivery pipeline. More lead time means that the delivery pipeline is slow. Lead time is crucial for DevOps because it is directly related to the end user. Lead time impacts the ability of the organization to deliver new features to the end user. Less lead time means that the organization can release bug fixes and new features frequently. The main goal of DevOps is to shorten the lead time. Lead time depends on different factors. By focusing on these factors you can improve your lead time. These factors include: - Code Complexity - The efficiency of the CI/CD pipeline - Effectiveness of Testing - Collaboration and Communication between Development and Operation Teams. ### **Deployment Frequency:** In context to DORA metrics, deployment frequency refers to the number of deployments made. It measures the frequency of releases/updates/bug fixes. It is measured over some time. Different organizations measure it differently. It can be measured as number of deployments per day, per week, and per month. Deployment frequency metric is crucial as it indicates the ability of an organization to adapt to changing market needs. High deployment frequency means an organization can act quickly in case of any error and new features are released frequently. High deployment frequency is crucial as it is a core aspect of the continuous delivery process. Continuous delivery is a core aspect of DevOps. Organizations aim to automate and streamline the release process. ### **Change Failure Rate:** The change failure rate is the percentage of deployments that failed in the production environment. Change failure rate gives information about the stability and reliability of the deployment process.  If the change failure rate is high then your deployment process needs to be changed. There can also be problems in your testing and quality assurance process.  The change failure rate can be lowered by: - Improving Code Quality - Enhancing Testing Procedures - Implementing automated testing and deployment practices ### **Mean Time To Recovery:** MTTR is the average time an organization takes to restart its operations after a disaster. It measures how quickly you can get back to your normal operations after an issue arises. It is critical for resilience and incident management. A small MTTR means an efficient response to incidents. It can be minimized by: - Implementing incident response best practices - Automating incident detection and recovery - Conducting post-incident reviews ## Related Resources - 📖 [Blog: DevOps Best Practices](https://blog.nife.io) — More DevOps insights from Nife - 🚀 [Launch Dashboard](https://launch.nife.io) — Track DORA metrics for your Nife deployments - 🌐 [nife.io](https://nife.io) — Nife's edge cloud platform for faster deployments --- ## MONK Metrics Framework URL: https://docs.nife.io/Devops-Handbook/DevOps-Metrics/monk-metrics/index MONK metrics help you evaluate your internal development platform within DevOps. Like DevOps, you also need to measure the performance of Platform Engineering in your organization. Let’s explore MONK metrics in detail.   MONK stands for Monitoring, Observability, Networking, and Knowledge. Like other metrics, it also measures and accesses different aspects of platform engineering to evaluate the effectiveness of an internal development platform.   ## **Key MONK Metrics:** Now that you’ve grasped the basics of MONK let’s take a deeper dive into the framework. Imagine MONK as the base holding your platform engineering structure. Where each letter in MONK represents a pillar. Each pillar is significant for holding the structure.   ### Let’s explore all 4 pillars in all their glory.   ### **M- Monitoring:** Monitoring is a crucial aspect of MONK metrics. Different aspects of your platform like health and performance are continuously monitored to ensure proper functioning. It's like having a team of assistants watching your every move.  Monitoring helps you stay informed on every aspect of your platform. Monitoring allows you to identify and resolve issues early on. By addressing issues early you can make prevent big disasters.   ### **O- Observability:** Observability is the second pillar of MONK metrics. It goes beyond monitoring and allows you to go deeper into platform engineering. Observability allows you to find issues that are not visible at the surface level. It is like having an X-ray vision of the situation to understand it better.   It allows you to answer questions like: - What's happening inside the system?  - Why did that issue occur? - How can we prevent it from happening again? Observability allows you to make informed decisions based on facts and figures. It also helps you increase collaboration between different teams.    ### **N-  Networking:** Networking is also a crucial part of the MONK metric. Networking ensures different teams within platform engineering have smooth data flow and communication within the internal development platform is seamless. It emphasizes connecting different aspects of a platform including physical hardware, software, and the flow of information between different components.  Networking is crucial because it increases reliability and redundancy ensuring that your platform can keep going even in case of any issues. It also helps you solve scalability issues. It ensures you can scale effectively whether you have a small platform or a big one. You can optimize networking in platform engineering by monitoring the health and performance of your network. You can utilize efficient routing to ensure traffic takes the optimal path. Also use firewalls, encryptions, and security protocols to keep your network secure. ### **K-  Knowledge:**  Knowledge is also a crucial aspect of MONK metrics. It encompasses all the information available to platform engineering teams. It ensures all the decisions made are based on proven results. This makes the whole process more predictable and cost-effective. Teams must learn from their previous mistakes and correct them. It’s about understanding the knowledge, not just having it. For example, imagine a scenario where you need to troubleshoot a server and you have all the knowledge at your disposal. But you don't understand anything from it. The knowledge is of no use to you.   Here are some key knowledge aspects every organization must focus on: - Documentation - Training and Skill Development - Knowledge Sharing - Incident Post Mortems You can foster knowledge in platform engineering by: - Documenting everything from code to configuration. - Training your teams with the latest technology and keeping them up to date. - Fostering a culture of collaboration and communication where new employees can learn from their seniors. - Periodically review and update your documentation and knowledge repositories to keep them up to date. --- ## The SPACE Framework URL: https://docs.nife.io/Devops-Handbook/DevOps-Metrics/the-space-framework/index The SPACE framework is designed to help organizations create custom metrics that align with their specific needs. It is the acronym for Speed, Process, Availability, Cost, and Experience. This framework helps you set your focus according to your specific needs.   Each of the five fundamentals of the SPACE framework is crucial for DevOps measurement. Here are these 5 fundamentals. **Speed:**  It focuses on the speed of changes delivered to the end user. It highlights the need for rapid and efficient deployment. **Process:** It deals with the quality and efficiency of software development and delivery processes focusing on automation and consistency. **Availability:** It emphasizes the importance of a robust and reliable infrastructure. It emphasizes metrics that can track incident management and system uptime. **Cost:** It delves into different financial aspects of DevOps like development, deployment, resource allocation, and maintenance. **Experience:** It focuses on the end user. Measuring the satisfaction, performance, and engagement of end users.   Measurement in DevOps is crucial as it guides the journey towards better software delivery. The importance of effective measurement lies in its ability to: - Identify bottlenecks and inefficiencies within the development and delivery pipelines. - Enable data-driven decision-making, ensuring that changes are based on evidence rather than assumptions. - Assess the health and effectiveness of DevOps practices, facilitating continuous improvement. - Align DevOps goals with broader business objectives, ensuring that software delivery is not just swift but also strategic.     Now let's explore the 5 dimensions of the SPACE framework. ## **Speed Metrics (S)** Speed metric within the SPACE framework focuses on software delivery speed. It encompasses various aspects including lead time deployment, cycle time, and deployment frequency.   These metrics are vital for DevOps because they tell you how fast code changes move from development to production. By focusing on speed organizations can ensure rapid delivery and rapid response to market changes. **Lead Time Deployment:** It is the time taken for code to go from development to production environment. **Cycle Time:** It is the time taken for a single unit of work to go from development to production. **Deployment Frequency:** It is the number of deployments made in a specific period.     ## **Process Metrics:** Process metrics within the SPACE framework focus on assessing the software development and delivery processes. They check the quality and efficiency of these processes. These metrics are crucial to optimize the delivery pipeline.   Efficient processes result in improved software quality and reliability. Let's explore some key process metrics. **Deployment Automation Rate:** The extent to which the deployment processes can be automated is called the deployment automation rate. When this rate is high it means the organization is heavy on the automation side and the chances of human errors are very low. **Change Failure Rate:** The percentage of deployments that failed in production is called the change failure rate. A low change failure rate indicates that the code changes are well-tested and less likely to introduce errors in the production environment. **Release Frequency:** It gives information about the frequency of updates and feature releases at a specific time.     ## **Availability Metrics (A)** These metrics focus on calculating the availability and reliability of software delivery infrastructure. These metrics are crucial to ensure minimal downtime and availability of services all the time.   Here are some key availability metrics. **Downtime and Uptime:** The uptime of a software or service is the amount of time it remains operational. A downtime refers to the period during which a service or software was unavailable. These metrics give information about the system’s availability. **Mean Time to Recovery:**  MTTR is the average time it takes to recover a system from a disaster. It is also a crucial availability metric. **Incident Frequency:** This is the number of errors or disruptions that cause service interruptions.     ## **Cost Metrics (C)** These metrics are responsible for measuring the financial aspect of DevOps metrics. These metrics are vital to understand the financial implications of different projects. Organizations can utilize these metrics to reduce the cost of resource allocation and infrastructure.   Let’s explore some key cost metrics: **Cost Per Deployment:** This metric measures the cost of every release and update. It is helpful to evaluate the value of change to its cost. **Cost of Downtime:** This metric measures the financial loss bore in the time of unavailability or disaster. It helps organizations understand the financial risks associated with downtime.  **Infrastructure Cost:** This metric evaluates the cost of servers, data centers, cloud services, and other infrastructure. ## **Experience Metrics (E)** These metrics evaluate the experience of customers related to software delivery through DevOps practices. These metrics are crucial as they give an insight into the customer's needs. These metrics allow organizations to take rapid action and tailor their services or products according to customer needs.   Here are some key experience metrics. **User Satisfaction:** User satisfaction metrics like NPS (Net Promoter Score) measure the likelihood of your software being referred by customers. Higher NPS reflects the quality of your product and the loyalty of your customers. **Response time and latency:** These metrics measure the response time and latency of your software/product. Quick response time gives a smooth user experience and increases the likelihood. **User Engagement:** These metrics assess the different aspects of user interaction with the software/product like response time, session duration, feature usage, and more. A high user engagement metric indicates that the product is aligned with customer needs. --- ## Adopting Continuous Delivery in Organizations URL: https://docs.nife.io/Devops-Handbook/continuous-delivery/adopting-continuous-delivery-in-organizations Continuous delivery has become crucial for software development. Modern software development practices focus on shorter development cycles, faster time to market, and frequent software releases. Continuous delivery embraces agile and DevOps practices embrace collaboration and provide high-quality and reliable software delivery.   In this section, we will explore why organizations should adopt Continuous Delivery. We’ll explore different aspects of CD including the problems it addresses, the benefits it offers, and the challenges organizations might face in adopting CD. By examining all these aspects you’ll be able to make informed decisions.   ## **Problems Addressed by Continuous Delivery** The software development space faced many problems before continuous delivery, resulting in a comprised software development cycle and quality. But with continuous delivery in the picture, the majority of these problems are addressed. Here are key problems addressed by continuous delivery.   ### **Traditional Software Development Challenges:** Traditional software development has longer development cycles and delayed releases, making it harder to meet changing market needs. CD promotes frequent releases and shorter development cycles.   Manual deployments are another problem in the traditional software development process. Manual deployments often lead to errors, inconsistencies, and time-consuming rollback. CD automates the deployment lifecycle resulting in fewer errors and consistent releases.   With large and infrequent releases, catching and fixing errors become very difficult. These errors can cause serious problems and downtime, resulting in financial and data loss. But CD automated testing identifies errors at an early stage and prevents them from leaking into production.  ### **Bottlenecks in the Development Lifecycle:** In the traditional software development process different teams work on different components  with little to no communication, resulting in integration issues. CD embraces cross-functional communication and regular integration, ensuring smooth software delivery.   In traditional software practices, the testing and validation phase is lengthy and comes at the end of the development process. This might lead to errors and other problems. CD integrates automated testing in the development cycle. Automated testing catches errors in the early development stages and code is tested automatically several times in the development process to ensure safety and reliability.    ### **Customer Expectations and Market Demands:** We live in an era of so many options. Customers expect new features and updates regularly. There is a lack of regular delivery of new features in traditional software development practices. CD solves this problem by delivering new features quickly and consistently to your end user, increasing customer satisfaction.   There is constant change in the software industry. New trends and demands surface now and then. The CD gives you the ability to catch new trends and make changes according to real-time market trends and customer feedback.   By addressing these challenges, Continuous Delivery provides organizations with a structured approach to software development that aligns with the modern demands of agility, quality, and responsiveness.   ## **Benefits of Continuous Delivery** Continuous delivery solves several problems and creates a reliable software delivery process. Among the many benefits of continuous delivery are accelerated software cycles, Improved software quality, Team collaboration and communication, and risk reduction.   ### **Accelerated Software Release Cycles:** Continuous delivery accelerates software release cycles through automated delivery pipelines, faster feedback loops, and reduced time between development and production.     CD automated delivery pipeline automates the build, test, and deployment process of software. By eliminating all human interventions deployment is made faster and more reliable. Faster deployments result in shorter release cycles and high customer satisfaction.   Continuous delivery practices include frequent testing and integration so developers can get faster feedback and they can make improvements where necessary. Frequent testing and integration accelerate the software release cycle and ensure the software is always ready for deployment.   ### **Improved Software Quality:** Another benefit of continuous delivery in software development is improved software quality. CD improves software quality through continuous testing, early detection of bugs and resolution, and enhanced user experience.   In continuous delivery, code is tested at various stages of the development process to catch bugs or other problems. Automated testing ensures that code is tested several times, and bugs and errors are detected and resolved at an early stage. Testing ensures software runs smoothly in production.   By testing you make sure the code reaches to end user in perfect condition. This leads to a high customer satisfaction rate and creates loyalty.   ### **Enhanced Collaboration and Communication:** Collaboration and Communication are components of a successful project. Continuous Delivery promotes collaboration and communication between IT development and operation teams by encouraging cross-functional teams.    Collaboration and communication between different teams create a sense of shared responsibility where everyone is responsible for code quality, testing, and deployment, resulting in an efficient and streamlined process.   Continuous Delivery encourages regular meetings between teams, resulting in faster decision-making and rapid resolution of issues in codes.   All these factors collectively benefit your organization in delivering [high-quality software](https://levelup.gitconnected.com/5-elements-of-high-quality-software-3342560b2d86) efficiently.   ### **Business Benefits:** Continuous Delivery also provides business benefits to organizations. Continuous Delivery allows you to introduce new features and bug fixes regularly. With consistent delivery, you can give faster time to market.      The tech industry is ever-evolving. Every day starts with new technology and changes in the market. These technologies and changes are like opportunities.  Continuous delivery allows you to stay ahead of the competition by acting on these opportunities and delivering them promptly   By catching the wave early on and launching products and services you can get a major portion of the revenue sooner before any of your competitors jump in.    ### **Risk Reduction:** Another important benefit of Continuous Delivery is risk reduction. Continuous delivery focuses on the rapid release of features in the production environment. Changes are made in small batches frequently rather than in a large batch once in a while.   In traditional software development practice changes all changes are made at once. This causes operational problems and risks. Continuous delivery allows you to roll back to the previous version of the software in case of any operational problem. --- ## Challenges of Adopting Continuous Delivery URL: https://docs.nife.io/Devops-Handbook/continuous-delivery/challenges-of-adopting-continuous-delivery No doubt continuous delivery is essential for modern software development. But there are plenty of challenges you will face during your transition. Have a look at some of these challenges below. Speaking of Challenges let’s first explore Technical challenges. ### **Technical Challenges:** Transitioning toward Continuous Delivery requires automation in various aspects of software development including infrastructure provisioning and configuration management. This creates a consistent environment in the development lifecycle.   Continuous delivery relies heavily on automated testing, which requires the integration of suites and different tools. Setting up a version control system and defining branches is also a big challenge in the early days of adoption. Now that we’ve discussed the technical challenges of CD adoption. Let’s move on towards Cultural changes. Cultural changes should be addressed early on.  ### **Cultural Challenges:** One of the biggest challenges during the Continuous Delivery transition is resistance within the organization. Traditional software practices promote a toxic culture of competition between employees.   CD success requires close collaboration between teams which might be challenging in a traditional setting. To overcome this challenge you need to change norms in your organization   Another critical challenge you might face is the lack of skill set. Your technical team might lack expertise in some areas. You can fill the knowledge gap of your employees with proper training.    Now let’s move on to Security and Compliance Challenges.   ### **Security and Compliance Challenges:** Security is a vital component of an organization’s safety. However implementing security measures can be challenging for organizations in the early stages of the Continuous Delivery transition. Maintaining --- ## Continuous Delivery Capabilities URL: https://docs.nife.io/Devops-Handbook/continuous-delivery/continuous-delivery-capabilities ### **Continuous Integration (CI):** [Continuous Integration](https://blog.nife.io/post/how-do-continuous-integration-and-continuous-deployment-work/) is the process of Integrating code changes from a shared repository to the main code base. In traditional software development practices, a developer had to go through different phases while making a code commit. Although the process worked fine for several years, but at the cost of delays and inefficiencies.   On the other hand, Continuous Integration allows developers to make changes in the code several times a day. As soon as changes are made by developers these changes are then automatically tested.    Once the testing process is completed, the code is packaged for deployment, if no errors are found. Otherwise, developers get instant feedback about bugs and errors.   CI has several benefits, including faster deployment, frequent releases, rapid feedback, and easy integration. ### **Continuous Testing:**   Testing is the process that continues even after the code is deployed into the production environment. Continuous testing is vital to ensure the proper functioning of the software. Through Continuous testing, developers get feedback on their code. This feedback helps developers make improvements in newer releases. Testing is of different types. Each test is for a different purpose. Common testing purposes are security assurance, usability assurance, and user access. These automated tests not only make your codebase secure but also take the burden off your employees.     ### **Version Control System (VCS):** Version Control system is another important capability of Continuous Delivery. Version Control allows developers to work on different branches of a code base without affecting the main code. If you are a developer yourself then you must be familiar with Git. You have used GitHub or other services for your repositories.   Version Control System records all the changes made in the code with necessary information like who made the changes and when were the changes made. This information allows you to respond rapidly in case of any disaster.   Apart from recovery and rollback, there are also other applications of VCS. [VCS](https://www.geeksforgeeks.org/version-control-systems/) provides a solid foundation for implementing Continuous Delivery practices. ### **Monitoring and Observability:** Monitoring and Observability are crucial to ensure software performance throughout the CD lifecycle. Once the application is deployed, the next step is to collect different kinds of data related to the application and infrastructure and its analysis.   Read about: [Tools for Continuous Delivery](/Devops-Handbook/continuous-delivery/tools-for-continuous-delivery) Read about: [Deployment Automation](/Devops-Handbook/continuous-delivery/why-should-you-automate-your-deployment-pipeline) --- ## Continuous Delivery URL: https://docs.nife.io/Devops-Handbook/continuous-delivery/continuous-delivery-devops-handbook/index ### What is Continuous Delivery? Continuous delivery in Software Development is a software delivery approach crucial for DevOps. It improves the release frequency and quality of software. It extends continuous integration by automating the deployment and testing process.   The main goal of continuous is delivery to improve the delivery lifecycle and provide value to the end user.      Continuous delivery is a set of principles organizations need to adopt to streamline their software delivery. Here are some fundamental principles for the adoption of continuous delivery in software development.   - Automation - Version Control and Traceability - Incremental Changes - [Infrastructure as Code](https://en.wikipedia.org/wiki/Infrastructure_as_code) - Shared Responsibility ### **Further Reading** These resources will help you find out more about Continuous Delivery: - [Adopting Continuous Delivery in Organizations](/Devops-Handbook/continuous-delivery/adopting-continuous-delivery-in-organizations) - [Challenges of Adopting Continuous Delivery](/Devops-Handbook/continuous-delivery/challenges-of-adopting-continuous-delivery) - Our blog on [Understanding Continuous Integration (CI) and Continuous Deployment (CD) in DevOps](https://blog.nife.io/post/understanding-continuous-integration-ci-and-continuous-deployment-cd-in-devops/) ## Related Resources - 📖 [Blog: Mastering Kubernetes Deployments with Helm](https://blog.nife.io/post/mastering-kubernetes-deployments-with-helm/) - 🚀 [Launch Dashboard](https://launch.nife.io) — Implement continuous delivery with Nife - 🌐 [nife.io](https://nife.io) — Nife's edge cloud platform for continuous deployment --- ## Deployment Pipeline Automation Components URL: https://docs.nife.io/Devops-Handbook/continuous-delivery/deployment-pipeline-automation-components As you already know automation is an essential aspect of DevOps. It lowers your burden and risks while maintaining efficiency. Deployment pipeline automation is crucial to streamlining software deployment. It consists of several stages and components that work together.   Let’s Explore the key components/tools for deployment automation. ### **CI Platforms:** Continuous Integration platforms or build tools lower your burden and handle the building process efficiently. After a developer commits code changes these platforms automatically compile the code, test it, and package the code into a deployable artifact.     There are many build tools and CI platforms in the market. Each offer solution to specific problems. You can research these tools and choose what best addresses your needs.    Here are some popular CI platforms and build tools. - Jenkins - Travis CI - Circle CI - Git Lab CI/CD - [Git Hub actions](https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions)   The DevOps and CI/CD landscape is continuously evolving you’ll find new tools and technologies that might give you better options.    Many cloud services have introduced built-in build tools for their customers. You can also utilize those tools for your build process.   ### **Packaging:** The packaging tool automatically packages your application for deployment. There are many things to consider while choosing a Packaging tool. Before choosing a packaging tool first of all consider these few things.   - The type of your application ( web, desktop, mobile, etc.) - Identify the programming language and technology used in your project. - Which Operation System your application is designed for? - How do you plan to distribute your application?   After considering all the above aspects analyze your requirements and choose a packaging tool. For example, if your concern is portability and consistency you can consider docker.   ### **Deployments:** When choosing a deployment tool for your application you might want to consider some aspects like:   - Nature of Application - Deployment requirements (e.g. target environment, supported platforms, and deployment frequency) - Determine whether you need full automation or partial.    After considering all these aspects, you can select deployment tools that best satisfy your needs. --- ## Deployment Pipelines URL: https://docs.nife.io/Devops-Handbook/continuous-delivery/deployment-pipelines/index You are already familiar with the word pipeline and its purpose. In the context of DevOps, Continuous delivery, and Continuous delivery it serves the same purpose. A deployment pipeline is a set of practices and tools that delivers software from the developer to the end user efficiently and reliably. Deployment pipeline is an essential component of DevOps and CI/CD. The main purpose of the deployment pipeline is to ensure that the software changes are integrated, tested, and deployed systematically. Now that you’ve grasped the concept of the Deployment pipeline let’s explore its stages and components. # **Stages of a Deployment Pipeline:** You can add as many stages to a deployment pipeline as you want. But here are the 5 key stages of a deployment pipeline. - Code Commit - Build and Compilation - Automated Testing - Staging Environment Deployment - Production Deployment Let’s explore each stage in detail. ### **Code Commit:** Code commit is the first stage of the deployment pipeline. It starts with the developer writing and committing code to a version control system like Git. The code is committed to the main repository where all the developers collaborate. DevOps practices encourage code commitment several times a day to ensure efficiency and quality. We’ve already discussed in detail the importance of committing in small batches. It allows developers to test and integrate effortlessly. As soon as the code is committed it triggers the build process. Let’s Explore the build phase. ### **Build and Compilation:** When the developer commits the code into the repository the build and compilation stage triggers, at this stage, the code is transformed into deployable artifacts. It is a critical stage because it prepares the code for further testing and deployment. You can utilize build tools for this stage. Various build tools are available with different configurations, you can utilize one based on your project needs. After the build and compilation, the next stage is testing. Let’s explore it in detail. ### **Automated Testing:** Automated testing is a crucial aspect of the DevOps and CI/CD pipeline. These tests are vital to ensure the proper functioning of code changes. Automated testing is of different types. Each test has its purpose for example integration testing, functionality testing, security testing etc. Some essential automated test types are: - Unit Test - Integration Test - Functional Test - Load and Performance Test - [Security Test](https://medium.com/@dave-patten/application-security-testing-in-ci-cd-pipelines-1e948b45a936) - Acceptance Test After the automated testing stage, comes Staging environment deployment. ### **Staging Environment Deployment:** After automated testing, the code is deployed into the staging environment with all its dependencies. Applications are given an environment that resembles the production environment when they are in the testing or staging environment. The purpose of this stage is to perform additional validation and testing of the application in a controlled environment. ### **Production Deployment:** After completing all the above stages the last stage is to deploy your application into the production environment. The production environment is where your software reaches the end user. Deployment strategies like blue-green deployment, canary releases, and rolling updates can be utilized to lower the risk of downtime. Once all the changes are deployed in the live environment you need to monitor these code changes to ensure proper functionality. ## Further Reading - [Deployment Pipeline Automation Components](/Devops-Handbook/continuous-delivery/deployment-pipeline-automation-components) --- ## Fundamental Principles of Continuous Delivery URL: https://docs.nife.io/Devops-Handbook/continuous-delivery/fundamental-principles-of-continuous-delivery/index Continuous Delivery is an approach that embodies the principles of Agile and DevOps. Have a look at these fundamental principles that'll help you adopt continuous delivery in your organization. These fundamental principles are: - Automation - Traceability - Incremental Changes - Infrastructure as Code - Shared Responsibility Now let's explore each principle. Apply these principles in your delivery pipeline for streamlined delivery. ### **Automation:** Automation is an important aspect of continuous delivery. Automating various stages of software development like build, test, and deployment ensures software reliability and rapid release. Experiments have shown that humans aren't good at repetitive tasks. Repetitive tasks have mental and physical effects. Most importantly, humans can put your software development at risk. Apart from operation risks, automation frees up your time to focus on more complex and essential tasks. Automation delivery is about automating the code compiling, merging, testing, packaging, and deployment. If you're just getting started with Continuous Delivery, you'll need some tools for automating the deployment pipeline. Research and identify tools that align with your goals and get started. ### **Traceability:** Traceability is a vital principle in DevOps and Continuous Delivery. It is a crucial practice for CD adoption. It is like having an invisible companion tracking every big and small change in the code base. Establishing a traceable system is crucial as it can be helpful in case of errors and disasters. When your software evolution is stored in one place you can instantly recover any previous version of your code in case of any disaster. Make your code traceable by implementing a version control system. Utilize popular version control tools. ### **Incremental Changes:** To avoid downtime and operational difficulties, Businesses typically stack code changes and integrate them periodically. Incremental changes are a critical aspect of continuous integration within CD. It involves breaking down large problems into smaller manageable parts. Incremental changes make the development lifecycle efficient and manageable. Small batches of code changes are easy to build, test, package, and deploy. To incorporate Incremental changes in your organization implement the following best practices. - Feature Branches - Atomic Commits - Continuous Testing - Frequent Integration Now let's move towards Infrastructure as Code (IaC). ### **Infrastructure as Code:** Infrastructure as code is an essential practice for continuous Delivery. It allows you to provision and manage infrastructure using code and automation. It is different from traditional infrastructure provisioning and management. Traditional practices have their risks. But why transition now? Why not stick with traditional practices? This approach also has risks, you may argue. However, its benefits outweigh its risks. Have a look at some of its benefits. - IaC allows you to recreate environments which is crucial for testing and deployment. - It also gives you better scalability options. You can scale resources up and down based on your needs and customer demands. - Manual configuration is risky because of the human variability involved. However, IaC automates everything and makes the process more predictable and reliable. - IaC provides better rollback and recovery options. In case of disaster, it can quickly roll back to the last known stable state. - Like code collaboration, IaC allows you to manage provision infrastructure, test, and improve collaboratively with your teammates. Integrate infrastructure as Code practices (IaC) practice in your organization to make the CD adoption process more efficient. Now let's move on to the last principle (i.e. Shared Responsibility) and discuss how it is crucial for CD adoption. ### **Shared Responsibility:** To make big changes in your organization it is crucial to address the critical principle that'll help you adopt Continuous Delivery and DevOps which is cultural change. In the previous sections, we've already discussed the importance of [workplace culture](/Devops-Handbook/devops-culture/devops-understanding-workplace-culture). It is vital to transform your workplace culture into a generative culture for the successful adoption of [Continuous delivery practices](https://www.atlassian.com/continuous-delivery/principles). Here is how you can transform your workplace culture. - Encourage collaboration between employees - Break down silos and encourage them to take risks. - Make your employees feel important. - Don't punish them when they make mistakes instead encourage them to do better in the future. - Create a fear-free environment where everyone is entitled to have opinions. Although implementation of these principles into your organization will help you adopt continuous delivery. However, the success of adoption depends upon some capabilities that you must have. In the [next section](/Devops-Handbook/continuous-delivery/continuous-delivery-capabilities), we'll uncover capabilities that allow you to streamline the software development and delivery process. --- ## Tools for Continuous Delivery URL: https://docs.nife.io/Devops-Handbook/continuous-delivery/tools-for-continuous-delivery # Continuous Delivery Tools   Now that we’ve discussed Continuous Delivery capabilities and principles. Tools are another vital aspect of Continuous Delivery. Tools help streamline the software development and deployment process. Tools help solve complex tasks in seconds. With the help of tools, you can automate tasks to improve the delivery process. In the modern software development space, you can easily find any tool for any task. For efficiency and cost-effectiveness, you should incorporate CD tools in your delivery process. You’ll find many tools in the same category but each one is designed with specific applications in mind. Choose the tools that best fulfill your needs. Don’t get carried away. Let’s explore some popular continuous delivery tools to streamline different aspects of your deployment pipeline.   ### **Version Control:** Version control is essential for every organization in the IT sector. It keeps track of all the changes in the code base. It allows developers to collaborate on different projects.   Git is a popular version control tool other version control tools are Mercurial and Subversion. All these tools allow distributed development.   Web-based version control tools are also helpful for developers. These tools enable developers to host their code repositories and collaborate with their team members seamlessly.   Popular Web-based version control systems are:   - GitHub - GitLab - BitBucket   ### **Build Automation:**     Build automation is a crucial aspect of continuous delivery. It automates the compiling, assembling, and packaging process of source code. It makes the build process efficient, reliable, and reproducible.   Here are some popular build tools.   - Jenkins - Circle CI - Azure DevOps - Apache Maven - Gradle - MSBuild   Build automation tools often have dependencies management features. Moreover, some build tools provide plugins and extensions to integrate them with other [tools](https://blog.nife.io/post/devops-as-a-service-devops-as-a-service-in-singapore/) and applications.   ### **Monitoring and Logging:** Monitoring and Logging are crucial aspects of Continuous Delivery. They help ensure the performance and reliability of software in the production environment. Monitoring and logging tools collect different metrics like [CPU usage](https://www.solarwinds.com/resources/it-glossary/what-is-cpu#:~:text=monitor%20CPU%20usage%3F-,CPU%20Usage%20Definition,computer%20at%20any%20given%20point.),  memory consumption, etc.  Metrics collected by these tools are analyzed to create reports and trigger alerts. These reports and alerts give insights into application performance. Here are some popular tools that you can utilize. - Prometheus - Grafana - New Relic - ELK Stack - Data Dog - Prometheus Operator ### **Configuration Management:** Configuration management is another vital aspect of Continuous delivery. It is quite challenging and costly to manage it manually. Tools enable developers to better manage and scale applications and infrastructure.   Here are some popular configuration management tools: - Terraform - Puppet - Ansible - SaltStack   ### **Containerization and Orchestration:** Containerization is crucial for continuous delivery. These tools enable developers to package applications with their dependencies in a container. These tools provide consistency, reproducibility, scalability, and flexibility.   Here are some popular Container and orchestration tools. - Docker - Kubernetes - Docker Swarm - Amazon ECS - Apache Mesos ### **Automated Testing:** Automated testing is a critical aspect of the [Continuous Delivery](/Devops-Handbook/continuous-delivery/challenges-of-adopting-continuous-delivery) pipeline. It ensures bugs and errors are detected before they reach the production environment.   Testing is of different types and so are the testing tools. Here are some popular automated testing tools. - Selenium - JUnit and TestNG - JMeter - Burp Suit ### **Deployment Automation:**   Deployment tools enable you to seamlessly deploy your application in the production environment. Here are some popular deployment tools. - Jenkins - Spinnaker - AWS deploy - GitLab CI/CD   Automation has revolutionized the modern software development landscape. It has become the backbone of Continuous delivery. It has applications in every industry. No matter which IT sector you belong to, you can not deny its importance. Although automation can streamline workflow and provide other benefits, organizations experience resistance from the inside. Employees prefer traditional ways of continuous delivery. These conventional ways affect the deployment process.  With traditional practices, your workflow becomes inefficient and complex. For example, traditionally tests are done after long commit phases or during deployment. This type of testing makes the identification of errors and bugs very difficult. On the other hand automation ( Continuous testing) allows you to test your code with each commit continuously, allowing you to identify errors and bugs instantly. Another problem with traditional practices is the long deployment phases. Organizations avoid frequent deployments to prevent downtime and other operational difficulties. They stack up updates to release them all at once. This deployment can cause integration problems, errors, and lower customer satisfaction. One of the reasons organizations use traditional frameworks is for cost optimization. However, automation can significantly reduce infrastructure and operational costs. The only thing you need for cost reduction is better management. Speaking of automation you might wonder what can you automate in your deployment process. --- ## Automate Your Deployment Pipeline URL: https://docs.nife.io/Devops-Handbook/continuous-delivery/why-should-you-automate-your-deployment-pipeline Why Should You Automate Your Deployment Pipeline? Apart from fast delivery, several other reasons force you to automate your deployment pipeline. Let’s explore some of them. ### **Inefficiency:** It’s been long established that humans are not good at repetitive tasks. Studies show repetitive tasks can decrease human efficiency significantly. So, the chances of human error during repetitive tasks also increase significantly.   On the other hand, machines are good at repetitive tasks. Just a few lines of code and you can automate various repetitive tasks. By automating repetitive tasks you can save your resources and manpower for more complex and important tasks.   Automation gets your work done without compromising on quality. It makes your entire process ### **Automation Brings Efficiency and Speed:**  You already know that automation brings efficiency and speed. The more you automate your deployment process, the faster it will become. A faster deployment cycle has its benefits.    Benefits of an automated deployment cycle include early detection of errors and rapid feedback. Continuous testing identifies errors so they don’t become a bigger problem in upcoming phases. Apart from bug detection automation allows you to get immediate feedback about the performance of your application.   With automation, you can act on real-time feedback and make changes in your software faster to deliver more reliability and quality to your end user.  ### **Consistency and Reliability:** Predictability is crucial for any business. Automation makes your whole process more predictable. Deployment automation ensures that deployment follows a predefined process each time code is deployed to production.   Automation also makes the processes reusable. You can re-create specific deployment any time which is crucial for troubleshooting and auditing. You can also utilize this repeatability to recreate environments for packaging applications with their dependencies.   Another vital aspect of automation is consistency. Automation encourages version and infrastructure control. By automating these processes you have all the information about your code and infrastructure from the start of the project. The information includes every single detail from a big change to a small change. It's like having a time machine that allows you to go back to any instant of your project timeline. ### **Cost Savings:** One of the main reasons you should adopt automation is because it has financial benefits. Automation provides several cost benefits. Automation tools provide the capability to optimize resource utilization.   Automation tools save you from on-premise infrastructure and its monthly maintenance cost. With automation tools, you can automate scaling and infrastructure provisioning without affecting your budget.    With automation, you only have to pay an upfront fee and then you pay as you use. And you can also optimize these costs with careful planning. ## **Does total automation make sense?** This is the question asked by many people. No, you can not automate everything. You use automation to get value out of your money. Automation enables you to save time while optimizing the costs of several of your deployment components.   As you analyze your organization’s framework, you will discover several components that can be automated. But either they provide relatively low value as compared to their cost or you lack technical capabilities. In these cases, you can not utilize automation for your benefit. --- ## Bureaucratic Culture URL: https://docs.nife.io/Devops-Handbook/devops-culture/bureaucratic-culture/index Bureaucratic culture is one where hierarchy is everything and strict rules are applied. Bureaucratic culture focuses on stability and predictability.     Here are some characteristics of a bureaucratic culture. **Clear Hierarchy:** In a Bureaucratic culture, the organization flows into departments with a clear hierarchy from top to bottom. Each department contains people specialized in doing specific tasks. **Solid Communication:** Information flow is limited. Usually, a few people at the top of the hierarchy control all the information.  Only formal communication is allowed between employees. **Rules are Everything:** The bureaucratic culture emphasizes adherence to rules. This prevents employees from taking bold steps and trying something new, resulting in a lack of innovation. **Lack of Shared Responsibility:** Like pathological culture, employees also lack a sense of shared responsibility in bureaucratic culture. But unlike pathological culture fingers are only pointed to improve the culture by implementing more rules.  This type of culture is also harmful to DevOps. In the software development process, cross-communication between teams is crucial to prevent bottlenecks in the delivery process. But [bureaucratic culture](https://www.viquepedia.com/articles/bureaucratic-culture) discourages cross-communication. The software development process moves at a fast pace. Organizations must be able to adapt to changing customer needs, but bureaucratic culture practices prevent any change. For stability and predictability, a bureaucratic culture discourages any change. But when change does happen, it happens at a larger scale to prevent many instances of downtime. [DevOps](https://blog.nife.io/post/develop-digital-first-culture-edge-computing-applications/), on the other hand, emphasizes continuous integration practices, which means various code changes are made every day. --- ## Generative Culture URL: https://docs.nife.io/Devops-Handbook/devops-culture/devops-generative-culture/index Generative culture encourages collaboration and communication between employees. Each member of the team is empowered to improve overall performance. Innovative steps are taken without hesitation by employees, and the failure doesn't stop them from taking more.  Generative culture embraces failure and takes it as an opportunity to learn from mistakes. Generative culture is perfect for DevOps. **Shared Vision and Values:** In a generative culture, every employee works hard towards a common goal. Organizational goals and values are communicated and understood by all employees. Core values can guide decision-making.  **Collaboration and Teamwork:** In generative workplace culture silos are broken down.   Collaboration and communication are encouraged between different departments to streamline the delivery process. Unlike pathological and bureaucratic culture knowledge is shared among teams.  **Trust and Psychological Safety:**  Employees feel comfortable sharing their views, ideas, and concerns about a topic. They can trust each other without fear of being blamed. Employees are encouraged to make mistakes. Because in generative culture mistakes are seen as an opportunity to learn. **Innovation and Experimentation:** Generative cultures embrace employees to showcase their creativity and ideas. Employees are encouraged to take bold steps. Generative culture aligns with DevOps culture. DevOps emphasizes collaboration and communication and generative culture promotes knowledge sharing and open communication. [DevOps](https://blog.nife.io/post/collaboration-communication-techniques-for-devops-teams-agile-methodologies-and-culture/) encourages continuous learning and improvement through a feedback loop. While a generative culture promotes this by adopting a growth mindset, DevOps embraces change and adaptability. In a generative culture employees also embrace change and take it as an opportunity for growth. --- ## Understanding Workplace Culture URL: https://docs.nife.io/Devops-Handbook/devops-culture/devops-understanding-workplace-culture Organizations looking to streamline their software development process and change their work culture usually end up with DevOps work culture and Westrum Topology. There is a correlation between the two. Westrum topology is said to be at the core of DevOps culture.     Ron Westrum introduced the concept of [Westrum Topology](https://cloud.google.com/architecture/devops/devops-culture-westrum-organizational-culture). His research is based on organizational culture. His research provides valuable insights into an organization's culture. He divided organizational culture into 3 categories. - Pathological - Beaurocratical  - Generative Westrum topology in context to [DevOps](https://blog.nife.io/post/8-reasons-why-modern-businesses-should-adapt-to-devops/) allows you to evaluate the state of work culture in your organization. It provides a framework to identify areas of improvement so you can make changes and create a path towards a generative DevOps culture. --- ## How to Change Your Current Culture to Generative? URL: https://docs.nife.io/Devops-Handbook/devops-culture/how-to-change-your-current-culture-to-generative/index Once you have identified your workplace culture. It's time to transform it completely. Changing to a generative culture is not easy but it's a step you must take to save your organization in the long run. It won't be easy to begin your DevOps journey, as years of working in a bad culture have affected the organization at its core. Getting over such an effect is not impossible, but it takes time.  Transformation time depends on the overall condition of [workplace culture](https://www.workhuman.com) and how fast you are adopting strategies. At times you’ll feel like identifying all three cultures in your organization. But you can transform your organization.   Here are some tips and strategies you must follow to start moving toward a generative culture. ### **Encourage Collaboration:** Collaboration is a crucial aspect of a generative culture in an organization. It involves breaking traditional practices and fostering an environment where everyone works together towards a shared goal.      Here’s how you can encourage collaboration in your organization.   **Formation of Cross-Functional Teams:** Form a cross-functional team taking people from different departments, and diversifying the skill set and perspective.   **Informal Collaboration:** Employees should be encouraged to have informal communication channels This helps increase collaboration.  **Understanding of Shared Goal:** Ensure your employees understand the mission of your [organization](https://blog.nife.io/post/ai-driven-businesses-best-edge-computing-platform/). Make them understand the shared goal and how their contribution matters. Make them collaborate and feel connected to your organization's goal. ### **Lead by Example:** Leadership is about leading by example, and it plays a crucial role in shaping the culture of an organization, especially when transitioning to a generative culture. Leading by example means that leaders demonstrate the behaviors and values they expect from their employees.   Here are a couple of things leaders should do. **Embrace Vulnerability:** Leaders should embrace vulnerability and showcase their failures in front of their employees. This creates an environment of trust and creates a learning mindset. By doing so employees feel confident and embrace mistakes as learning opportunities.  **Transparent Communication:** Leaders should involve everyone in decision-making. Transparent communication builds trust and ensures everyone is on the same page. **Appreciation:** Hardworking employees should be recognized and rewarded. This shows their contribution matters to the organization and motivates others to do the same. **Building Relationships:** Leaders should build meaningful relationships with their employees. Building relationships fosters trust and loyalty toward the organization **Collaboration and Communication:**  Leaders should collaborate and communicate with employees in every matter. This builds a sense of ownership among employees and makes them valuable.   ### **Embracing Learning and Continuous Improvement**   ### **Providing Training and Support**   ### **Sustaining the Generative Culture** --- ## Implementing DevOps Culture in Your Workplace URL: https://docs.nife.io/Devops-Handbook/devops-culture/implementing-devops-culture-in-your-workplace/index DevOps isn't all about tools and technologies. Culture is also an essential part of DevOps. In traditional Software development practices, development and operation teams work separately with little to no communication that results in.   - Longer Development Cycles - Errors - Inefficient workflow - Fewer releases   To overcome all these problems, you need to embrace DevOps culture. DevOps embraces collaboration between different teams to deliver quality software.        Here are some essential elements of DevOps culture ### **Collaborative Mindset** A collaborative mindset is an essential element of DevOps. In DevOps culture, different teams work together towards a shared goal. They share knowledge to deliver high-quality software.   ### **Effective Communication** Effective communication is also an essential element of DevOps culture. DevOps fosters a culture of open communication between different teams to ensure.   - Everyone is on the same page - Faster decision making - Issue Resolution   ### **Sense of Ownership** There is no I or Me in DevOps. Its culture fosters a sense of ownership among development and operations teams. DevOps fosters a culture where Development and Operation teams actively engage and provide feedback and insight throughout the software development lifecycle, which results in high-quality software delivery.   ### **Continuous Learning**  Another essential element of DevOps culture is continuous learning. In DevOps, teams collaborate and learn from their previous mistakes to deliver high-quality software in the next cycle. DevOps also encourages people to stay up-to-date and expand their skill set because these skills benefit the entire organization. By incorporating all these elements into your work culture, you can unlock the full potential of DevOps, fostering innovation, agility, and resilience. --- ## DevOps Culture Overview URL: https://docs.nife.io/Devops-Handbook/devops-culture # DevOps Culture Culture is the foundation of DevOps. Technology and tooling can only take you so far — sustainable DevOps transformation requires organisations to examine how their teams think, collaborate, and respond to failure. This section explores the different cultural patterns found in organisations, what separates high-performing teams from struggling ones, and how to shift toward a healthier, generative culture. --- ## Articles 🏢 Understanding Workplace Culture Learn how to read the cultural landscape of your organisation and identify what's driving team behaviour. Read → ⚠️ Pathological Culture Recognise the signs of a fear-driven, power-oriented culture and understand the damage it causes to teams and systems. Read → 📋 Bureaucratic Culture How rule-driven, process-heavy cultures slow down delivery and how to navigate them. Read → ✨ Generative Culture The high-trust, performance-oriented culture that enables DevOps to flourish — and how to recognise it. Read → 🔄 How to Change to Generative Practical steps and strategies for shifting your organisation's culture toward generative, collaborative practices. Read → 🛠️ Implementing DevOps Culture A practical guide to introducing and sustaining DevOps culture in your workplace — what works and what doesn't. Read → --- ← [Back to DevOps Handbook](/Devops-Handbook) --- ## Pathological Culture URL: https://docs.nife.io/Devops-Handbook/devops-culture/pathological-culture/index Pathological culture is one where an individualist workplace environment is the norm. A pathological culture involves mistrust, fear, and a lack of communication among employees. Let's discuss the characteristics of pathological culture in detail.     **Mistrust and Fear:** [Pathological culture](https://www.linkedin.com/pulse/what-your-organisational-culture-pathological-josef-langerman) promotes workplace politics, creating an uncollaborative and mistrustful environment. The fear of blame and punishment for failure prevents innovation among employees. **Siloed Communication**: Pathological culture promotes silos between different departments. It promotes hierarchy and formal communication channels. Information flow between different departments is discouraged. **Blame Oriented:** Pathological culture is blame-oriented. Individuals focus on deflecting responsibilities instead of finding solutions to problems and learning from their mistakes. They look for a scapegoat in case of failure resulting in finger-pointing and eventually punishment. **Lack of Shared Responsibility:** In pathological culture, employees lack a sense of shared responsibility.  Usually, decision-making power is in the hands of a few individuals or departments. **Psychological Pressure:** Pathological culture creates psychological pressure among employees. Employees live in a constant fear of being blamed which makes them inefficient in work. Pathological culture is bad for [DevOps](https://blog.nife.io/post/collaboration-communication-techniques-for-devops-teams-agile-methodologies-and-culture/). It benefits only a few people in the organization. Manipulative and inefficient people are rewarded while the voices of hardworking and sincere people are ignored. While fewer non-deserving people benefit from it, the organization suffers. --- ## DevOps Introduction URL: https://docs.nife.io/Devops-Handbook/devops-introduction # DevOps Introduction Technological space is changing faster than ever. In the past few years, there have been many advancements in the technology landscape that have changed the way software is developed and deployed. A few years ago the software development process was challenging, as traditional silos separated development and operation teams. DevOps emerged as a game changer and revolutionized the software development process. DevOps broke traditional silos and merged the development (Dev) and Operations (Ops) teams to provide an efficient and innovative approach to software delivery. So why a sudden shift? Traditional software development practices failed to cope with the complexity of modern software, which led to this change. [DevOps](https://blog.nife.io/post/8-reasons-why-modern-businesses-should-adapt-to-devops/) provided a non-traditional collaborative approach which resulted in shorter development cycles and high-quality software delivery. --- ## Platform Engineering URL: https://docs.nife.io/Devops-Handbook/platform-engineering/platform-engineering/index Platform Engineering is creating and designing tools and workflows for developers to remove complexity and provide self-serving capabilities. It is an emerging concept in modern software development. Platform Engineers create an Internal Developer Platform (IDP), where developers can find different tools and technologies. These tools and technologies lower the cognitive burden on developers. It lowers the burden by helping them manage different tasks. ## **Role of Platform Engineering within DevOps** Platform Engineering is a part of the DevOps philosophy that embraces collaboration, automation, and continuous delivery. Internal Developer Platform (IDP) helps you streamline your software delivery process. It addresses some key concerns that include: - Building Infrastructure - Automation - Tooling - Collaboration - Scalability - Reliability Platform Engineering within DevOps helps achieve the goal of faster, reliable, and efficient software development and delivery. Platform engineering acts as a helping hand for developers by providing them with tools and workflows for stable deployment. By doing so they support the entire DevOps lifecycle. ## **Rise of Internal Developer Platforms (IDPs)** Here's a quick history lesson on DevOps. By understanding the pre-DevOps and post-DevOps era your questions about Platform Engineering will be answered. You'll be able to understand How do IDPs emerge? Why are IDPs important? What role do IDPs play in increasing the efficiency of your organization? Why should you have a platform engineering team for the Internal Developer Platform (IDP)? ### **Pre-DevOps Era** Now let's power the time machine and move some decades back. Let's move back to the pre-DevOps era. This is the time when development operation teams are constantly in conflict. Teams in the organization are more divided than ever. Each team has separate responsibilities with little to no communication. Employees are punished for establishing informal means of communication within the organization. This created several problems. First of all, the lack of communication created inefficiency and complexity. Operation teams are punished for the mistakes of the development team due to a lack of collaboration. This era is the worst nightmare of every development and operations team. ### **DevOps Era** Now let's move forward to the time when AWS was first launched. This is the point in history that revolutionized the software development landscape. The introduction of cloud technology provided many benefits that include scalability, flexibility, cost-effectiveness, and reliability. At the same time emerged DevOps practices. DevOps broke down traditional silos between development and operation teams. It focused on collaboration, communication, and working on shared goals for the benefit of the organization. The evolution of technology solved many problems but it also introduced some new ones. Now developers have to master several different tools to successfully build, test, and deploy applications. ### **Post DevOps Era** Now let's move forward in the post-DevOps era where every organization is trying to replicate "you build it, you run it". This slogan of DevOps is rather unrealistic. Big organizations can implement true DevOps but for small organizations, they see a fall in their performance. This is when developers try to do DevOps tasks by themselves. Studies show when Organizations try to implement true DevOps, the overall performance of the organization drops. This is where platform engineering teams build [Internal Developer Platforms](https://internaldeveloperplatform.org/what-is-an-internal-developer-platform/) (IDPs). Developers can utilize IDPs to lower their burden and run their cloud services according to their needs. **Platform Engineering Principles:** In the past few years tech organizations have started to realize the importance of Internal Developer Platforms. Although IDPs can significantly improve your [DevOps](/Devops-Handbook/devops-introduction) game, successfully implementing them is the problem. A recent report by Puppet State of DevOps states that Only incorporating platform teams does not improve your DevOps. Only the right teams can scale out the benefits. But sometimes the creation of a perfect team harms more than it benefits. [Platform Engineers](/Devops-Handbook/platform-engineering/when-to-adopt-platform-engineering) might create complex software for the developers which they might avoid. There are several other problems attached. To get the maximum benefit of Platform Engineering and Internal Developer Platforms (IDPs) adhere to the following principles. ### **Treat IDP as a Product:** According to another Puppet platform engineering report, platform engineers fail to deliver when they do not treat IDP as a product. To solve real problems, IDP should be treated as a product and developers as customers. Developers need different tools for their product and every developer likes working with a certain set of tools. Instead of generalizing a platform with tools, platform teams should focus on creating tools that best align with developer and organization needs. When creating tools for developers their feedback should be considered seriously. Your organization moves closer to true DevOps when platform teams make their choices with developers in mind. ### **Solve Common Problems** The main focus of platform teams is to create solutions for developers that tackle common problems. Platform teams do not create already available software and refrain from other teams within the organization from doing so. Instead, they tailor these tools for developers to meet their needs. The main purpose of the platform team is to remove bottlenecks and slowdowns. They do that by taking feedback from developers and analyzing their performance. ### **Give Developers Leverage** Tools within IDPs are created for developers, they should be given leverage to contribute to it. At the end of the day, they understand their needs better than anybody else. By keeping the product open source within the organization, developers can work on the product to make it better. Should developers be given a free hand? No set of rules should be defined. Each edit developers make should be passed by the platform team. Developers should be refrained from reinventing the wheel. Now the question is should open sourcing be introduced from the start? The answer to this question varies from organization to organization. You know your organization better than anyone. You should decide when and how it should be introduced. --- ## Platform Engineering Patterns and Anti-Patterns URL: https://docs.nife.io/Devops-Handbook/platform-engineering/platform-engineering-patterns-and-anti-patterns/index Platform engineering has significantly impacted software development and deployment. It saves developers from overload and cognitive burden. An IDP gives developers an upper hand with tools and technologies.   Platform engineering can be beneficial if implemented correctly. It can do more harm than benefit if implemented incorrectly. In this section, we will cover best practices (Patterns) and common pitfalls (Anti Patterns) of platform engineering.   Let's explore some anti-patterns first.   ### **Over Complicated Platforms:** The main purpose of an IDP is to solve developers' problems. If the IDP is made complicated, it defeats its whole purpose. Complexity can be due to several reasons.    One of the main reasons is inconsistent file formats. Developers are not comfortable with all file formats. Using multiple file formats can increase the burden. Files formats should be decided based on the developer's ease.   Another reason is inconsistency in APIs and documentation. To ensure the intended usage of IDPs, everything should be documented. It helps developers understand and use technology better. It also lowers the cognitive burden.   ### **Focusing on Unrelated Problems:**  One of the common pitfalls of platform engineering is a lack of planning. Creating a platform without proper planning can do more harm. Developers should be consulted at every step. Otherwise, the platform would be no more than a useless crap.   The developer’s opinion about the technology and tools matters the most. Creating a platform without the opinion can result in developers avoiding the platform. That is why it is better to talk to the customer about the product.   Focusing on the solution of existing problems can result in a higher adoption rate. This can be done by consulting developers from all the departments. Involving all the stakeholders ensures a smooth transition and a high adoption rate.   ### **Lack of Adaptability:** The only way to survive in the tech industry is to evolve continuously. The same thing goes with an IDP. If the technology and tools are updated developers can complete their work with ease. Otherwise, the platform will just be a drag.   An outdated tech stack can result in developers moving away from the platform. To prevent this from happening, IDPs should be given proper concentration and funds.    Moving to a new platform is never easy. It takes time to understand new technology and tools. You need to give them time to adapt to the new platform. As time passes they will have reservations regarding the tools and technology. By addressing all the problems you can ensure everyone is ready to adopt the platform. --- ## When to Adopt Platform Engineering URL: https://docs.nife.io/Devops-Handbook/platform-engineering/when-to-adopt-platform-engineering In recent years platform engineering has emerged in DevOps. It has become popular in the software development landscape due to the value it provides to the software. Internal Developer Platform (IDP) solves several problems of developers which include:   - Complex problems - Burnouts and overload - Lack of tools ## **Signs Your Organization Needs Platform Engineering** No doubt platform engineering has emerged as a game changer in the software development landscape.    ### **Rapid Growth and Scalability Challenges:** Organizations experiencing rapid growth encounter scalability challenges. The management of infrastructure and development processes becomes more challenging as demand increases. In this case, your organization encounters outages, performance bottlenecks, delays in the release cycle, and lower customer satisfaction.   Platform engineering helps you address all your scalability challenges with ease. It can provide scalable and automated solutions that you can incorporate in your projects.   If you feel your organization has scalability problems adopt platform engineering.   ### **Increasing Complexity in your Technology Stack:** The complex technology stack is another sign of platform engineering adoption. Every developer feels comfortable with different tools and frameworks. Your organization may be working with different languages, tools, and frameworks. Different teams are working on different projects, which is why this happens.     Using diverse tools and technologies may have benefits at the individual level. However, this diversity can lead to integration complications. A complex technology stack is also hard to maintain. It becomes hard to keep these tools updated.   ### **Inefficiencies and Bottlenecks in Software Development:** It might be time to adopt platform engineering if your organization struggles with inefficiencies and bottlenecks in software development and [deployment](https://blog.nife.io/post/application-deployment-and-the-various-deployment-types-explained/). Inefficiencies and bottlenecks in software development result in poor software quality and longer and infrequent release cycles.   Lack of automation and repetitive manual tasks contribute to inefficiency. Platform engineering addresses this issue by focusing on automation. Inconsistent development practices are another problem. These practices result in a codebase that is hard to maintain and has a high risk of errors.   Inconsistent provisioning of infrastructure can also lead to performance problems. By implementing this in your organization you can tackle inefficiencies and bottlenecks in your software development process.   ### **Competitive Pressures and Market Demands:** Competitive pressure and market demand within your niche or industry is a sign that your organization should adopt platform engineering. The technology industry is ever-evolving, Every now and then you see innovations and trends. To cope with these market trends and satisfy your customers you need to adopt [platform engineering](https://www.youtube.com/watch?v=Bfhl8kcSaEI).   Here are some problems, your organization faces if you don’t adopt platform engineering. We live in an era where software releases are faster than ever and the quality bar of software is rising day by day. As a software development [organization](/Devops-Handbook/continuous-delivery/adopting-continuous-delivery-in-organizations), you should increase software release frequency and respond to market needs faster than your competitors.   If you feel left behind and cannot compete you need to transform your organization and incorporate platform engineering. Platform engineering provides tools for faster development cycles. Through the use of continuous integration and Continuous Delivery, it ensures software releases are fast and reliable.   Platform engineering integrates monitoring and analytic tools in IDP. You can get insights into your software performance, customer behavior, and changing market needs. You can make informed decisions.   ### **Overload and Burnout:** One of the crucial reasons to adopt platform engineering is overload and burnout. If your developers feel overloaded with operations and fail to cope, then it's time to make the switch.    IDP can make your developer's life way easier. With an IDP your developers can utilize automation and other tools to increase the agility and efficiency of operations.   ### **Cognitive Overload:** Cognitive overload among developers is another sign that you should adopt platform engineering. No matter how smart a developer is, the human brain has some limitations. A complex technology stack can overwhelm developers when they have to learn different technologies and languages to manage different applications.   Developers spending the majority of their time doing manual repeated tasks can be overwhelmed. The transition between different projects and the use of different technologies and languages in all these projects can also cause cognitive overload. Tight deadlines can also be one of the reasons.   Platform engineering reduces this burden on developers and allows them to work peacefully without cognitive overload. Platform engineering promotes standardized technology stacks and workflow. It embraces automation to increase efficiency.    By incorporating CI/CD practices, platform engineering reduces the complexity of manual procedures and streamlines development and deployment.   It can address cognitive overload and related problems. Using IDPs can lead to improved developer productivity, code quality, and employee satisfaction. A satisfied employee can deliver better than an underpressure employee. --- ## Understanding the Principles of DevOps URL: https://docs.nife.io/Devops-Handbook/understanding-the-principles-of-devops/index Among DevOps' core principles and values are collaboration and automation. Both automation and collaboration go a long way in transforming traditional software development practices. Here are some details on these [principles](https://blog.nife.io/post/what-is-the-principle-of-devops/).   ## Main Principles of DevOps ### **Collaboration and Communication** Collaboration and effective communication between development and operation teams is essential for DevOps implementation. For successful DevOps implementation following aspects need to be considered.   - Establishing cross-functional teams involving development, operations, and other relevant departments. - Foster a team-based work environment. - Foster an environment of open discussion to identify areas of problem and collaboration. ### **Automation**  Automation can streamline the software development lifecycle. Automation reduces manual effort and chances of human error. By automating repetitive tasks, teams can focus on crucial and more complex tasks, which results in productivity.    With Continuous Integration (CI), Continuous Delivery (CD), and Infrastructure as Code (IaC) practices, you can automate the development cycle as well as infrastructure provisioning. ### **Continuous Integration (CI)** Continuous Integration is an essential DevOps practice. It emphasizes on   - Shared Code repository - Automated build and Test process - Early detection of bugs - Frequent release of updates and bug fixes.   In traditional software development practices, code changes are made occasionally, resulting in inconsistent updates and bug fixes, a slow development cycle, and low customer satisfaction.   [Continuous Integration](https://blog.nife.io/post/how-do-continuous-integration-and-continuous-deployment-work/) can streamline and streamline the development process by automating it. With automated build, test, and code quality tests, developers can get immediate feedback on their work, resulting in the solution of integration-related issues in the early stage. ### **Continuous Delivery (CD)** Continuous Delivery ensures the release of software to the end user. As a result, it emphasizes:   - Automation of the Deployment process to prevent manual errors - Utilization of configuration management tools or deployment automation framework. - Establishing well-defined release pipelines.   In traditional practices, software delivery happens after a long time, sometimes after several months, and testing is done at the end of the development process. These traditional practices result in infrequent releases and undetected code-related issues.   Continuous Delivery offers several benefits that include:   - Low Risk - Faster time to market. - Auto-detection of issues in code. - High-Quality software releases - High rates of customer satisfaction   Continuous Delivery and Continuous Integration also referred to as (CI/CD) are essential for successful DevOps implementation. They automate most of the software development lifecycle and ensure efficiency, reliability, and high quality.   ### Infrastructure as Code (IaC)