Low-Code Platform

    Deploy Appsmith on RamNode VPS

    Appsmith is an open-source low-code platform that enables developers to build internal applications quickly. Deploy it on RamNode's reliable VPS infrastructure to create powerful dashboards, admin panels, and workflow tools for your team.

    Ubuntu 20.04+
    Docker
    ⏱️ 25-35 minutes

    Prerequisites

    Before starting, ensure you have:

    Server Requirements

    • • RamNode VPS (2GB+ RAM, 4GB recommended)
    • • 20GB+ storage
    • • Ubuntu 20.04 LTS or newer
    • • Root or sudo access

    Additional Requirements

    • • Domain name (optional but recommended)
    • • SSH client
    • • Basic command line knowledge
    2

    Initial Server Setup

    Connect to your RamNode VPS and secure the server:

    Connect via SSH
    ssh root@your-server-ip
    Update System and Install Essentials
    # Update package repositories
    apt update && apt upgrade -y
    
    # Install essential packages
    apt install -y curl wget git ufw fail2ban

    Configure firewall:

    UFW Firewall Setup
    # Configure basic firewall
    ufw default deny incoming
    ufw default allow outgoing
    ufw allow ssh
    ufw allow 80
    ufw allow 443
    ufw enable

    Create a non-root user (recommended):

    Create User
    # Create new user
    adduser appsmith
    
    # Add to sudo group
    usermod -aG sudo appsmith
    
    # Switch to new user
    su - appsmith
    3

    Install Docker and Docker Compose

    Appsmith runs in Docker containers for easy management:

    Install Docker
    # Install Docker
    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh
    
    # Add user to docker group
    sudo usermod -aG docker $USER
    Install Docker Compose
    sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    Verify Installations
    docker --version
    docker-compose --version

    🔄 Log out and back in for group changes to take effect.

    4

    Deploy Appsmith

    Choose your deployment method:

    Option A: Quick Start (Development/Testing)

    Quick Deploy with Docker Run
    # Create appsmith directory
    mkdir ~/appsmith && cd ~/appsmith
    
    # Run Appsmith container
    docker run -d --name appsmith \
      -p 80:80 -p 443:443 \
      -v appsmith-data:/appsmith-stacks \
      --restart unless-stopped \
      appsmith/appsmith-ce

    Access at: http://your-server-ip

    Option B: Production Deployment with Docker Compose

    Setup with Docker Compose
    # Create project directory
    mkdir ~/appsmith-production && cd ~/appsmith-production
    
    # Download docker-compose.yml
    curl -L https://bit.ly/appsmith-docker-compose -o docker-compose.yml

    Create environment configuration:

    Create .env File
    # MongoDB Configuration
    APPSMITH_MONGODB_URI=mongodb://localhost:27017/appsmith
    
    # Encryption keys (generate your own)
    APPSMITH_ENCRYPTION_PASSWORD=your-encryption-password
    APPSMITH_ENCRYPTION_SALT=your-encryption-salt
    
    # Mail configuration (optional)
    APPSMITH_MAIL_ENABLED=false
    
    # OAuth configuration (optional)
    APPSMITH_OAUTH2_GOOGLE_CLIENT_ID=
    APPSMITH_OAUTH2_GOOGLE_CLIENT_SECRET=
    
    # Redis configuration
    APPSMITH_REDIS_URL=redis://redis:6379
    
    # Custom domain (replace with your domain)
    APPSMITH_CUSTOM_DOMAIN=your-domain.com
    Start Services
    docker-compose up -d
    5

    Configure NGINX Reverse Proxy (Optional)

    For production with custom domains, set up NGINX:

    Install NGINX
    sudo apt install nginx
    Create NGINX Configuration
    sudo tee /etc/nginx/sites-available/appsmith << 'EOF'
    server {
        listen 80;
        server_name your-domain.com;
    
        location / {
            proxy_pass http://localhost:8080;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_cache_bypass $http_upgrade;
            proxy_read_timeout 300;
        }
    }
    EOF
    Enable Site
    sudo ln -s /etc/nginx/sites-available/appsmith /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl restart nginx

    Run Appsmith on port 8080 when using NGINX:

    Deploy on Port 8080
    docker run -d --name appsmith \
      -p 8080:80 \
      -v appsmith-data:/appsmith-stacks \
      --restart unless-stopped \
      appsmith/appsmith-ce
    6

    SSL Certificate Setup

    Secure your Appsmith deployment with Let's Encrypt:

    Install Certbot
    sudo apt install certbot python3-certbot-nginx
    Obtain SSL Certificate
    sudo certbot --nginx -d your-domain.com
    Verify Auto-Renewal
    sudo certbot renew --dry-run

    ✅ Certbot will automatically configure NGINX for HTTPS and set up auto-renewal.

    7

    Initial Appsmith Configuration

    Complete the initial setup through the web interface:

    1. Access Your Installation

    Navigate to your server's IP address or domain in a web browser. You'll see the Appsmith setup wizard.

    2. Create Admin Account

    • • Click "Get Started" on the welcome screen
    • • Fill in administrator details: Name, Email, Password
    • • Choose your use case (team size, organization type)
    • • Complete the setup wizard

    3. Basic Configuration

    • Organization Settings: Set name, logo, and info under Settings → General
    • User Management: Invite team members via Settings → Users & Groups
    • Email Configuration: Set up SMTP for invitations under Settings → Email
    8

    Performance Optimization

    Optimize your Appsmith deployment:

    Monitor resource usage:

    Check Container Resources
    # Check container resource usage
    docker stats appsmith
    
    # Optimize Docker container limits
    docker update --memory="2g" --cpus="2" appsmith
    
    # Monitor system resources
    htop

    External database for production:

    Configure External MongoDB
    docker run -d --name appsmith \
      -p 80:80 -p 443:443 \
      -e APPSMITH_MONGODB_URI="mongodb://your-external-mongodb:27017/appsmith" \
      -v appsmith-data:/appsmith-stacks \
      --restart unless-stopped \
      appsmith/appsmith-ce
    9

    Backup Strategy

    Implement regular backups for your Appsmith data:

    Create Backup Script
    cat > ~/backup-appsmith.sh << 'EOF'
    #!/bin/bash
    BACKUP_DIR="/home/appsmith/backups"
    DATE=$(date +%Y%m%d_%H%M%S)
    
    # Create backup directory
    mkdir -p $BACKUP_DIR
    
    # Backup Docker volumes
    docker run --rm -v appsmith-data:/data -v $BACKUP_DIR:/backup alpine tar czf /backup/appsmith-backup-$DATE.tar.gz -C /data .
    
    # Keep only last 7 backups
    find $BACKUP_DIR -name "appsmith-backup-*.tar.gz" -mtime +7 -delete
    EOF
    
    chmod +x ~/backup-appsmith.sh
    Schedule Daily Backups
    (crontab -l 2>/dev/null; echo "0 2 * * * /home/appsmith/backup-appsmith.sh") | crontab -

    💾 Backups will run daily at 2:00 AM, keeping the last 7 days of backups.

    10

    Monitoring and Maintenance

    Keep your Appsmith installation healthy:

    Health monitoring:

    Monitor System
    # Check container health
    docker ps
    docker logs appsmith
    
    # Monitor disk usage
    df -h
    
    # Check memory usage
    free -h
    
    # Monitor network connections
    netstat -tulnp | grep :80

    Update Appsmith:

    Update to Latest Version
    # Pull latest image
    docker pull appsmith/appsmith-ce:latest
    
    # Stop current container
    docker stop appsmith
    
    # Remove old container
    docker rm appsmith
    
    # Start new container with updated image
    docker run -d --name appsmith \
      -p 80:80 -p 443:443 \
      -v appsmith-data:/appsmith-stacks \
      --restart unless-stopped \
      appsmith/appsmith-ce:latest

    Log management:

    Configure Log Rotation
    # Configure Docker logging
    sudo tee /etc/docker/daemon.json << 'EOF'
    {
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "10m",
        "max-file": "3"
      }
    }
    EOF
    
    sudo systemctl restart docker
    11

    Security Best Practices

    Implement additional security measures:

    Server hardening:

    Security Configuration
    # Configure fail2ban for SSH protection
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    
    # Disable root SSH login
    sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
    sudo systemctl restart ssh
    
    # Set up automatic security updates
    sudo apt install unattended-upgrades
    sudo dpkg-reconfigure unattended-upgrades

    Network security:

    Network Configuration
    # Restrict database access
    ufw deny 27017
    
    # Limit SSH access to specific IPs (optional)
    ufw allow from YOUR_IP_ADDRESS to any port ssh
    
    # Enable DDoS protection
    echo "net.netfilter.nf_conntrack_max = 2000000" >> /etc/sysctl.conf
    sysctl -p

    Appsmith Security Checklist

    • • Enable two-factor authentication for admin accounts
    • • Use strong encryption passwords
    • • Regularly review user permissions
    • • Enable audit logging
    • • Configure session timeouts
    12

    Troubleshooting

    Common issues and their solutions:

    Container Won't Start

    Diagnose Startup Issues
    # Check container logs
    docker logs appsmith
    
    # Check system resources
    free -h
    df -h
    
    # Verify port availability
    sudo netstat -tulnp | grep :80

    Performance Issues

    Improve Performance
    docker update --memory="4g" appsmith
    docker exec -it appsmith mongo --eval "db.stats()"
    htop

    SSL Certificate Problems

    SSL Troubleshooting
    sudo certbot certificates
    sudo certbot renew
    sudo nginx -t

    🎉 Congratulations!

    You now have a fully functional Appsmith installation on your RamNode VPS! Start building amazing internal tools and dashboards for your team with this powerful low-code platform.

    Next Steps

    • • Connect your databases and APIs to Appsmith
    • • Explore the widget library and pre-built templates
    • • Invite team members and configure role-based access
    • • Build your first dashboard or admin panel
    • • Set up monitoring for usage and performance
    • • Configure email notifications and alerts
    • • Consider scaling options as your team grows