{"id":477926,"date":"2022-07-26T09:02:39","date_gmt":"2022-07-26T06:02:39","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/how-to-deploy-the-appsmith-low-code-platform-with-docker\/"},"modified":"2022-07-26T09:02:39","modified_gmt":"2022-07-26T06:02:39","slug":"how-to-deploy-the-appsmith-low-code-platform-with-docker","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/how-to-deploy-the-appsmith-low-code-platform-with-docker\/","title":{"rendered":"#How to Deploy the Appsmith Low Code Platform With Docker"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_88 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6ad02d8499924\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6ad02d8499924\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-deploy-the-appsmith-low-code-platform-with-docker\/#%E2%80%9CHow_to_Deploy_the_Appsmith_Low_Code_Platform_With_Docker%E2%80%9D\" >&#8220;How to Deploy the Appsmith Low Code Platform With Docker&#8221;<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-deploy-the-appsmith-low-code-platform-with-docker\/#A_First_Deployment\" >A First Deployment<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-deploy-the-appsmith-low-code-platform-with-docker\/#Setting_Up_Appsmith\" >Setting Up Appsmith<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-deploy-the-appsmith-low-code-platform-with-docker\/#Using_Supervisor\" >Using Supervisor<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-deploy-the-appsmith-low-code-platform-with-docker\/#Using_Docker_Compose\" >Using Docker Compose<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-deploy-the-appsmith-low-code-platform-with-docker\/#Writing_Your_Own_Compose_File\" >Writing Your Own Compose File<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-deploy-the-appsmith-low-code-platform-with-docker\/#Updating_Your_Installation\" >Updating Your Installation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-deploy-the-appsmith-low-code-platform-with-docker\/#Configuring_Your_Instance\" >Configuring Your Instance<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-deploy-the-appsmith-low-code-platform-with-docker\/#Exporting_Your_Data\" >Exporting Your Data<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-deploy-the-appsmith-low-code-platform-with-docker\/#Using_Appsmith\" >Using Appsmith<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-deploy-the-appsmith-low-code-platform-with-docker\/#Summary\" >Summary<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"%E2%80%9CHow_to_Deploy_the_Appsmith_Low_Code_Platform_With_Docker%E2%80%9D\"><\/span>&#8220;How to Deploy the Appsmith Low Code Platform With Docker&#8221;<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<div>\n<!-- UNCACHED CONTENT --><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage aligncenter size-full wp-image-16194\" data-pagespeed-no-defer=\"\" src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2022\/04\/e5000253.jpeg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Graphic showing the Appsmith logo\" width=\"1202\" height=\"677\"\/><\/p>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.appsmith.com\">Appsmith<\/a> is a low code platform for assembling complex line-of-business software from pre-built UI components. It connects to your existing data sources such as SQL databases, spreadsheets, REST APIs and GraphQL endpoints. You can wire these information repositories up to rich widgets including tables, lists, and charts.<\/p>\n<p>The <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">App<\/a>smith Community Edition is open-source and can be fully self-hosted. In this guide, we\u2019ll show how to deploy your own Appsmith instance as a Docker container. This <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.appsmith.com\/setup\/docker\">is the recommended<\/a> method which simplifies initial installation and ongoing maintenance. We\u2019ll assume you\u2019ve already got Docker and Docker Compose installed on your system.<\/p>\n<h2 id=\"a-first-deployment\"><span class=\"ez-toc-section\" id=\"A_First_Deployment\"><\/span>A First Deployment<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>You can start a basic Appsmith server for experimentation using <code>docker run<\/code> alone:<\/p>\n<pre>$ docker run -d --name appsmith -p 8080:80 -p 9001:9001 &#13;\n    -v $PWD\/appsmith-stacks:\/appsmith-stacks&#13;\n    appsmith\/appsmith-ce<\/pre>\n<p>This starts a new container using the <code>appsmith\/appsmith-ce<\/code> image and binds the <code>appsmith-stacks<\/code> directory in your working directory to <code>\/appsmith-stacks<\/code> inside the container. You should always mount a volume to this location to avoid data loss after you update or restart the Appsmith container.<\/p>\n<p>Appsmith\u2019s first initialization can take a while to complete. The container will generate config files, create your MongoDB database, and enable the initial set of application plugins. You can check when your instance is ready for connections by following the container logs:<\/p>\n<pre>$ docker logs appsmith --follow<\/pre>\n<p>Wait to see an <code>Appsmith is Running!<\/code> message in the log output.<\/p>\n<h2 id=\"setting-up-appsmith\"><span class=\"ez-toc-section\" id=\"Setting_Up_Appsmith\"><\/span>Setting Up Appsmith<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Now visit <code>localhost:8080<\/code> in your browser. This port was bound to the container\u2019s port 80 in the <code>docker run<\/code> command above. Substitute in your own value if you changed the port number in the command.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16199\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2022\/04\/5724043e.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"image of the Appsmith landing page after a fresh installation\" width=\"1280\" height=\"720\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>You should see the Appsmith web UI\u2019s landing page. Click \u201cGet Started\u201d and fill out the form to set up your Appsmith instance. You\u2019ll then be taken straight to a new application that\u2019s ready to connect to your data sources.<\/p>\n<h2 id=\"using-supervisor\"><span class=\"ez-toc-section\" id=\"Using_Supervisor\"><\/span>Using Supervisor<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The Appsmith Docker image uses <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/supervisord.org\"><code>supervisord<\/code><\/a> to run multiple processes inside a single container. The Supervisor web UI is exposed on port 9001; in the <code>docker run<\/code> command above, host port 9001 was bound to the container, so you can view your container\u2019s process list by visiting <code>localhost:9001<\/code> in your browser.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16201\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2022\/04\/7526d1e5.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"image of the supervisord web interface for Appsmith\" width=\"1280\" height=\"720\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Visiting Supervisor can help you debug issues when one of the Appsmith components stops working. You can restart processes, view their logs, and shut them down without killing the Docker container. Keeping Supervisor exposed like this is a security risk though: don\u2019t bind port 9001 to a production Appsmith container unless you set up authentication first.<\/p>\n<h2 id=\"using-docker-compose\"><span class=\"ez-toc-section\" id=\"Using_Docker_Compose\"><\/span>Using Docker Compose<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>It\u2019s recommended to use Docker Compose for long-term Appsmith deployments. Appsmith maintains <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.appsmith.com\/setup\/docker\">its own <code>docker-compose.yml<\/code><\/a> that automatically configures a container with an <code>appsmith-stack<\/code> bind mount and HTTP, HTTPS, and Supervisor port binds.<\/p>\n<p>This official Docker Compose stack comes with <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/containrrr\/watchtower\">Watchtower integration<\/a>. Watchtower will automatically replace your Appsmith container each time the image gets updated, ensuring you\u2019re using the newest available release.<\/p>\n<p>Download the Docker Compose file to your Docker host:<\/p>\n<pre>$ curl -L https:\/\/bit.ly\/32jBNin -o $PWD\/docker-compose.yml<\/pre>\n<p>Now use Docker Compose to bring up the Appsmith stack:<\/p>\n<pre>$ docker-compose up -d<\/pre>\n<p>Wait for <code>Appsmith is Running!<\/code> to show up in the logs before you visit <code>localhost<\/code> in your browser.<\/p>\n<h2 id=\"writing-your-own-compose-file\"><span class=\"ez-toc-section\" id=\"Writing_Your_Own_Compose_File\"><\/span>Writing Your Own Compose File<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Appsmith\u2019s Compose file doesn\u2019t provide environment variables to customize the port binds or image version. This alternative stack lets you use different ports and pin to a specific version of the Appsmith image.<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co3\">version<\/span><span class=\"sy2\">: <\/span><span class=\"st0\">\"3\"<\/span>\n<span class=\"co4\">\nservices<\/span>:<span class=\"co4\">\n  appsmith<\/span>:<span class=\"co3\">\n    image<\/span><span class=\"sy2\">: <\/span>appsmith\/appsmith-ce:$<span class=\"br0\">{<\/span>IMAGE_TAG:-latest<span class=\"br0\">}<\/span><span class=\"co4\">\n    ports<\/span><span class=\"sy2\">:\n<\/span>      - $<span class=\"br0\">{<\/span>HTTP_PORT:-80<span class=\"br0\">}<\/span>:80\n      - $<span class=\"br0\">{<\/span>HTTPS_PORT:-443<span class=\"br0\">}<\/span>:443<span class=\"co4\">\n    volumes<\/span><span class=\"sy2\">:\n<\/span>      - stacks:\/appsmith_stacks<span class=\"co3\">\n    restart<\/span><span class=\"sy2\">: <\/span>unless-stopped\n<span class=\"co4\">\nvolumes<\/span><span class=\"sy2\">:\n<\/span>  stacks:<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Now you can run <code>docker-compose up -d<\/code> to start a specific Appsmith version on a particular port.<\/p>\n<pre>$ IMAGE_TAG=v1.6.19 HTTP_PORT=8080 docker-compose up -d<\/pre>\n<p>This Compose file also uses a named Docker volume instead of the direct host bind mount.<\/p>\n<h2 id=\"updating-your-installation\"><span class=\"ez-toc-section\" id=\"Updating_Your_Installation\"><\/span>Updating Your Installation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>You can update to new Appsmith releases by pulling the latest image and restarting your stack:<\/p>\n<pre>$ docker-compose pull &amp;&amp; docker-compose up -d --force-recreate appsmith<\/pre>\n<p>This is safe as all your persistent data is stored inside the <code>stacks<\/code> volume.<\/p>\n<p>You don\u2019t need to manually update when you\u2019re using the Watchtower integration included with the official Compose file. You can add Watchtower to your own stack by including it as an extra service:<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co3\">version<\/span><span class=\"sy2\">: <\/span><span class=\"st0\">\"3\"<\/span>\n<span class=\"co4\">\nservices<\/span>:<span class=\"co4\">\n  appsmith<\/span>:<span class=\"co3\">\n    image<\/span><span class=\"sy2\">: <\/span>appsmith\/appsmith-ce:$<span class=\"br0\">{<\/span>IMAGE_TAG:-latest<span class=\"br0\">}<\/span><span class=\"co4\">\n    ports<\/span><span class=\"sy2\">:\n<\/span>      - $<span class=\"br0\">{<\/span>HTTP_PORT:-80<span class=\"br0\">}<\/span>:80\n      - $<span class=\"br0\">{<\/span>HTTPS_PORT:-443<span class=\"br0\">}<\/span>:443<span class=\"co4\">\n    volumes<\/span><span class=\"sy2\">:\n<\/span>      - stacks:\/appsmith_stacks<span class=\"co4\">\n    labels<\/span>:<span class=\"co3\">\n      com.centurylinklabs.watchtower.enable<\/span><span class=\"sy2\">: <\/span><span class=\"st0\">\"true\"<\/span><span class=\"co3\">\n    restart<\/span><span class=\"sy2\">: <\/span>unless-stopped<span class=\"co4\">\n  watchtower<\/span>:<span class=\"co3\">\n    image<\/span><span class=\"sy2\">: <\/span>containrrr\/watchtower:latest<span class=\"co4\">\n    volumes<\/span><span class=\"sy2\">:\n<\/span>      - \/var\/run\/docker.sock:\/var\/run\/docker.sock<span class=\"co3\">\n    command<\/span><span class=\"sy2\">: <\/span>--interval 3600 --label-enable --cleanup<span class=\"co3\">\n    restart<\/span><span class=\"sy2\">: <\/span>unless-stopped\n<span class=\"co4\">\nvolumes<\/span><span class=\"sy2\">:\n<\/span>  stacks:<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>This runs Appsmith with a Watchtower container that checks for image updates every hour (3600 seconds). Only containers with the <code>com.centurylinklabs.watchtower.enable<\/code> label are checked so this is added to the <code>appsmith<\/code> service. Watchtower needs access to your host\u2019s Docker socket so it can pull new images and replace running containers.<\/p>\n<h2 id=\"configuring-your-instance\"><span class=\"ez-toc-section\" id=\"Configuring_Your_Instance\"><\/span>Configuring Your Instance<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Appsmith\u2019s config file is available at <code>\/appsmith-stacks\/configuration\/docker.env<\/code> inside the container. If you\u2019ve bind mounted a local directory to this path, you can edit the file on your host instead of connecting directly to the container.<\/p>\n<pre># If you're bind mounting \"stacks\" to \/appsmith-stacks&#13;\n$ nano stacks\/configuration\/docker.env&#13;\n&#13;\n# If you're using a Docker volume&#13;\n$ docker cp appsmith:\/appsmith-stacks\/configuration\/docker.env docker.env&#13;\n$ nano docker.env&#13;\n$ docker cp docker.env appsmith:\/appsmith-stacks\/configuration\/docker.env<\/pre>\n<p>The <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.appsmith.com\/setup\/instance-configuration#available-configurations\">config file sets up<\/a> environment variables that will be made available to your Appsmith installation. The possible settings include credentials for different data sources, API keys for third-party integrations, and connection details for your mail server and MongoDB database. Required values are automatically populated during Appsmith\u2019s first run routine.<\/p>\n<p>To change a setting, first update its value in the config file:<\/p>\n<pre>APPSMITH_MAIL_ENABLED=true&#13;\nAPPSMITH_MAIL_HOST=mail.example.com&#13;\nAPPSMITH_MAIL_PORT=465&#13;\nAPPSMITH_MAIL_USERNAME=appsmith&#13;\nAPPSMITH_MAIL_PASSWORD=$3cureP@ss&#13;\nAPPSMITH_MAIL_FROM=appsmith@example.com<\/pre>\n<p>Next restart your Appsmith container to apply the changes:<\/p>\n<pre>$ docker-compose restart appsmith<\/pre>\n<p>Appsmith will use the new configuration automatically next time it starts.<\/p>\n<h2 id=\"exporting-your-data\"><span class=\"ez-toc-section\" id=\"Exporting_Your_Data\"><\/span>Exporting Your Data<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Once you begin using Appsmith, you\u2019ll quickly assemble apps which could be difficult to replicate in the future. You should frequently back up your installation to guard against data loss.<\/p>\n<p>The Docker image includes a command that can produce a complete archive on-demand:<\/p>\n<pre>$ docker-compose exec appsmith appsmithctl export_db<\/pre>\n<p>The backup will be stored to <code>\/appsmith-stacks\/data\/backup\/appsmith-data.archive<\/code> inside the container. Use <code>docker cp<\/code> to move the archive to your Docker host:<\/p>\n<pre>$ docker cp appsmith:\/appsmith-stacks\/data\/backup\/appsmith-data.archive appsmith-backup-$(date +%Y-%m-%d).archive<\/pre>\n<p>Next copy the <code>\/appsmith-stacks\/configuration<\/code> directory out of the container. Including these files in your final backup will avoid having to reconstruct your config file after a backup restoration. Now you can upload your backup to cloud storage or a dedicated server to protect your data if your Docker host suffers a failure.<\/p>\n<p>To restore a backup archive in the future, copy it to <code>\/appsmith-stacks\/data\/restore<\/code> in a new Appsmith container and run the <code>import_db<\/code> command:<\/p>\n<pre>$ docker cp appsmith-backup-2022-04-13.archive appsmith:\/appsmith-stacks\/data\/restore&#13;\n$ docker-compose exec appsmith appsmithctl import_db<\/pre>\n<p>Restart Appsmith to complete the restoration:<\/p>\n<pre>$ docker-compose restart appsmith<\/pre>\n<h2 id=\"using-appsmith\"><span class=\"ez-toc-section\" id=\"Using_Appsmith\"><\/span>Using Appsmith<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Appsmith applications have four fundamental components:<\/p>\n<ul>\n<li><strong>Pages<\/strong> \u2013 The screens in your app.<\/li>\n<li><strong>Widgets<\/strong> \u2013 The UI components on those screens.<\/li>\n<li><strong>Queries\/JavaScript<\/strong> \u2013 Custom JavaScript snippets that add advanced functionality.<\/li>\n<li><strong>Datasources<\/strong> \u2013 Connections to your external databases.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16200\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2022\/04\/c65a5eb6.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"image of an empty Appsmith app\" width=\"1280\" height=\"720\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Start a new app by clicking the \u201cAdd a Datasource\u201d button on its landing page. You can quickly scaffold an example app using one of the built-in sample databases. Click the \u201cusers\u201d option to add a PostgreSQL database populated with some user data.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16195\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2022\/04\/eecf85b6.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"image of creating a datasource in Appsmith\" width=\"1280\" height=\"648\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Next click the \u201cNew Query\u201d button to add a query that surfaces information from the datastore.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16196\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2022\/04\/fbfebefe.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"image of creating a datasource in Appsmith\" width=\"1280\" height=\"648\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16197\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2022\/04\/c3352ad2.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"image of creating a datasource in Appsmith\" width=\"1280\" height=\"648\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Go back to your application\u2019s page by clicking \u201cPage 1\u201d in the left sidebar. Press \u201cAdd a Widget\u201d and drag one of the widgets from the sidebar onto the canvas. We\u2019re using a List.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16198\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2022\/04\/1d61fd96.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"image of an empty page with an &quot;Add a Widget&quot; button in Appsmith\" width=\"1280\" height=\"648\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>In the properties pane on the right, clear out the sample data and replace it with <code>{{Query1.data}}<\/code>. This executes the query created earlier to surface data from the users database. The live preview will update and show the user list.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16205\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2022\/04\/1e55ddba.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"image of configuring an Appsmith widget to work with a data source\" width=\"1280\" height=\"648\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>\u00a0<\/p>\n<p>You can keep adding widgets to build out your app\u2019s capabilities. Once you\u2019re done, click the \u201cDeploy\u201d button in the top-right to publish your app and launch it in Appsmith\u2019s viewing mode.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16203\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2022\/04\/2feb9071.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"image of an Appsmith app showing the default users list in viewing mode\" width=\"1274\" height=\"648\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<h2 id=\"summary\"><span class=\"ez-toc-section\" id=\"Summary\"><\/span>Summary<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Appsmith is an open-source low code platform for rapidly developing new business apps. The official Docker image lets you quickly start your own Appsmith instance with minimal configuration.<\/p>\n<p>Once your container\u2019s operational, you can use the included suite of connectors to query, edit, and visualize your organization\u2019s data stores. Then you can share your app with other team members or enable public access so external contractors, suppliers, and customers can join in.<\/p>\n<p>A Dockerized Appsmith instance should require little long-term maintenance beyond regular updates and backups. Using Docker for deployment also makes it easy to wipe Appsmith from your system if you decide it\u2019s not for you. Run <code>docker-compose down --volumes<\/code> to completely tear down your stack, including the data stored inside your <code>appsmith-stacks<\/code> volume.<\/p>\n<\/div>\n<p><script>\n setTimeout(function(){\n  !function(f,b,e,v,n,t,s)\n  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n  n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n  n.queue=[];t=b.createElement(e);t.async=!0;\n  t.src=v;s=b.getElementsByTagName(e)[0];\n  s.parentNode.insertBefore(t,s) } (window, document,'script',\n  'https:\/\/connect.facebook.net\/en_US\/fbevents.js');\n   fbq('init', '335401813750447');\n   fbq('track', 'PageView');\n  },3000);\n<\/script><\/p>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.howtogeek.com\/devops\/how-to-deploy-the-appsmith-low-code-platform-with-docker\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;How to Deploy the Appsmith Low Code Platform With Docker&#8221; Appsmith is a low code platform for assembling complex line-of-business software from pre-built UI components. It connects to your existing data sources such as SQL databases, spreadsheets, REST APIs and GraphQL endpoints. You can wire these information repositories up to rich widgets including tables, lists,&#8230;<\/p>\n","protected":false},"author":1,"featured_media":477927,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.howtogeek.com\/wp-content\/uploads\/csit\/2022\/04\/e5000253.jpeg?height=200p&trim=2,2,2,2","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-477926","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/477926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=477926"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/477926\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/477927"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=477926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=477926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=477926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}