Docs / Self-Hosted Applications / Setting Up Appsmith for Internal Tools

Setting Up Appsmith for Internal Tools

By Admin · Mar 11, 2026 · Updated Apr 23, 2026 · 5 views · 2 min read

Setting Up Appsmith for Internal Tools is a common requirement for VPS administrators. This guide provides practical instructions that you can follow on Ubuntu 22.04/24.04 or Debian 12, though most steps apply to other distributions as well.

Prerequisites

  • Root or sudo access to the server
  • A registered domain name (for public-facing services)
  • Basic familiarity with the Linux command line

Docker Compose Setup

The internal-tools component plays a crucial role in the overall architecture. Understanding how it interacts with appsmith will help you make better configuration decisions.


# docker-compose.yml
version: '3.8'
services:
  appsmith:
    image: appsmith/appsmith:latest
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - appsmith_data:/data
      - appsmith_config:/config
    environment:
      - TZ=UTC
      - PUID=1000
      - PGID=1000
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=appsmith
      - POSTGRES_USER=appsmith
      - POSTGRES_PASSWORD=changeme

volumes:
  appsmith_data:
  appsmith_config:
  db_data:

The output should show the service running without errors. If you see any warning messages, address them before proceeding to the next step.

Initial Configuration

For production deployments, consider implementing high availability by running multiple instances behind a load balancer. This approach provides both redundancy and improved performance under heavy load.


# Reverse proxy configuration
server {
    listen 443 ssl http2;
    server_name appsmith.example.com;

    ssl_certificate /etc/letsencrypt/live/appsmith.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/appsmith.example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        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_buffering off;
        client_max_body_size 0;
    }
}

The output should show the service running without errors. If you see any warning messages, address them before proceeding to the next step.

Wrapping Up

Following this guide, your appsmith setup should be production-ready. Keep an eye on resource usage as your traffic grows and don't forget to test your backup and recovery procedures periodically.

Was this article helpful?